Начало программирования.

Тема в разделе "WASM.BEGINNERS", создана пользователем Heineken, 22 ноя 2008.

  1. SII

    SII Воин против дзена

    Публикаций:
    0
    Регистрация:
    31 окт 2007
    Сообщения:
    1.483
    Адрес:
    Подмосковье
    driver
    Частично зависит от назначения языка. Я Паскаль тут "рекламирую" не из-за его идеальности, а из-за того, что изначально был задан вопрос, что учить. Модула-2, ИМХО, лучше, но где человек найдёт для неё компилятор, не говоря о нормальной среде разработки и т.д.? И именно из-за такой "приземлённой материи" фактически приходится выбирать между Паскалем и Си -- и, есно, я делаю выбор в пользу Паскаля.
     
  2. GoldFinch

    GoldFinch New Member

    Публикаций:
    0
    Регистрация:
    29 мар 2008
    Сообщения:
    1.775
    проблемно-ориентированность, настраиваемость синтаксиса под конкретную задачу

    мне например для текущих задач нужна типизация как в асме в сочетании с лаконичностью ЯВУ
     
  3. beginner

    beginner New Member

    Публикаций:
    0
    Регистрация:
    18 янв 2008
    Сообщения:
    233
    leo
    ничего странного, язык Си мне дает свободу в кодинге. Когда нужно - использую сложные конструкции, но на проверку - они оказываются простыми. А когда нужно - использую необходимый минимум.
    Все зависит от поставленной задачи.
     
  4. osrootd

    osrootd New Member

    Публикаций:
    0
    Регистрация:
    30 июл 2008
    Сообщения:
    1.086
    Так так так. Я понял в этой теме можно давать любые ответы на любые вопросы?

    Сранник - есть такой пакет. Там Оберон, Модула и Паскаль

    Вообще, тогда лучше Аду брать - и компиль есть и кодить нормально научит
     
  5. driver

    driver New Member

    Публикаций:
    0
    Регистрация:
    18 июн 2008
    Сообщения:
    302
    предлагаю пункт 1-й :

    НЕ должно быть скобок
     
  6. CyberManiac

    CyberManiac New Member

    Публикаций:
    0
    Регистрация:
    2 сен 2003
    Сообщения:
    2.473
    Адрес:
    Russia
    SII
    Вообще есть Exit, но это жестокий метод. При правильном и структурном программировании в такой фигне потребность возникает ну очень редко. Увы, в программировании сейчас полно слюнтяев, которые даже с фигурными скобками if до конца дописать ленятся, и оттого плодят точки выхода из функций, как тараканов.
     
  7. GoldFinch

    GoldFinch New Member

    Публикаций:
    0
    Регистрация:
    29 мар 2008
    Сообщения:
    1.775
    компилятор Си сам их собирает в начало функции
    а то что в асмах LOCAL только в начале функции, это плохо, хотелось бы создавать и удалять локальные переменные по ходу выполнения кода, например, если в коде есть switch\case, в каждой ветви делать свои локальные переменные
     
  8. SII

    SII Воин против дзена

    Публикаций:
    0
    Регистрация:
    31 окт 2007
    Сообщения:
    1.483
    Адрес:
    Подмосковье
    beginner
    1) Ошибки могут возникать случайно. Строгая типизация снижает их вероятность, хотя и не исключает, есно, полностью. В конце концов, можно некорректно использовать явное приведение типов.

    2) Булевский -- это не числовой тип по смыслу. А как он хранится -- совсем другой разговор. Если б в Си был логический тип, несовместимый с числовым, то выражение вроде BoolVar = IntVar1 = IntVar2 вызвало б ошибку компиляции, ну а в реальном Си этого не происходит.

    3) Ошибки могут возникать случайно, независимо от опыта и квалификации, и наличие докторов здесь роли не играет. Я прекрасно знаю, что & и && или там = и == являются разными операциями. Однако я не могу быть уверен, что я случайно не ошибусь (рука дрогнет и возникнет == вместо =, например). Случайно пропустил или лишний символ влепил -- и получил неверную логически, но корректную синтаксически программу. И ищи потом эту ошибку.

    4) Редко или не редко -- другое дело. И см. п. 3 :)

    5) Когда пишешь, то вообще-то понимаешь, что пишешь. Ну а когда вернулся к той же программе через три месяца, например? Сходу понять бывает затруднительно, и даже комментарии не всегда помогают (в конце концов, в них обычно указывают, что должно делаться, а не то, что делается на самом деле).

    leo
    Угу. Обобщив, можно сказать так: в Паскале каждый оператор применяется для того, для чего он предназначен.
     
  9. SII

    SII Воин против дзена

    Публикаций:
    0
    Регистрация:
    31 окт 2007
    Сообщения:
    1.483
    Адрес:
    Подмосковье
    CyberManiac
    Exit не позволяет вернуть значение. А насчёт правильного и структурного не соглашусь: досрочный выход -- достаточно часто требуемая вещь. Конечно, без него можно обойтись, но только за счёт большей вложенности условных операторов и/или постоянной проверки лишних условий, от чего лучше избавляться.
     
  10. SII

    SII Воин против дзена

    Публикаций:
    0
    Регистрация:
    31 окт 2007
    Сообщения:
    1.483
    Адрес:
    Подмосковье
    GoldFinch
    Речь не о компиляторе, а о языке.

    А зачем? Если под них выделять место в каждой ветке -- лишние такты, ну а если выделять всё равно в самом начале, то почему б не продумать, сколько чего потребуется? Ведь в асме важен прямой контроль программиста над кодом, т.е. транслятор не должен заниматься отсебятиной.
     
  11. Ursus

    Ursus Member

    Публикаций:
    0
    Регистрация:
    15 мар 2006
    Сообщения:
    238
    Адрес:
    Russia
    Ну что за люди... Говорю же - бестолку спорите!
     
  12. GoldFinch

    GoldFinch New Member

    Публикаций:
    0
    Регистрация:
    29 мар 2008
    Сообщения:
    1.775
    зато в паскале есть встроенная переменная result, что гораздо лучше, чем
    int func()
    {
    int r=0;
    ...
    return r;
    }
     
  13. beginner

    beginner New Member

    Публикаций:
    0
    Регистрация:
    18 янв 2008
    Сообщения:
    233
    SII
    Мне порой не нужна типизация
    если, например есть char sym = 'a';
    и я хочу получить другой какой то символ - я пишу sym += 5;
    Мне понятно, что я получу 'e'
    Что в этом плохого?

    счас пишу проект под себя, был перерыв на 3 месяца, достаточно было беглого взгляда на код и на комменты, которыми я писал что делает каждая функция - хватило что бы понять, на чем я остановился :)
    Значит комменты были удачными.
     
  14. osrootd

    osrootd New Member

    Публикаций:
    0
    Регистрация:
    30 июл 2008
    Сообщения:
    1.086
    beginner

    chr / ord
     
  15. Pavia

    Pavia Well-Known Member

    Публикаций:
    0
    Регистрация:
    17 июн 2003
    Сообщения:
    2.409
    Адрес:
    Fryazino
    SII
    Учить надо Си пригодится. А остальное по велению сердца.

    В Си мне не нравиться приведение типов: (тип) переменная. Сделали бы по человечески скобки, как в паскали и никаких проблем. тип(переменная) . В Си много чего запутанного чего можно упростить или избежать. Правда Delphi пошел по такому же пути :dntknw: .
    C# интересный язык. Много плюсов и много минусов.
     
  16. CyberManiac

    CyberManiac New Member

    Публикаций:
    0
    Регистрация:
    2 сен 2003
    Сообщения:
    2.473
    Адрес:
    Russia
    SII
    Что есть следствие возможности вернуть значение большинства типов, а не только целого числа/числа с плавающей точкой/указателя. Можно было бы, конечно, сочинить какого-нибудь синтаксического мутанта, скрестив Exit с объявлением константы, но... Впрочем, может ещё сочинят :) Перегрузку операторов вот уже сочинили.

    Вот обычно так и бывает - можно, а не хотят. Несмотря на то, что это был бы правильный способ. Но есть люди, которым ради большей надёжности begin/end написать не вломы, а есть люди, которые даже свои любимые фигурные скобки поставить ленятся.
     
  17. Pavia

    Pavia Well-Known Member

    Публикаций:
    0
    Регистрация:
    17 июн 2003
    Сообщения:
    2.409
    Адрес:
    Fryazino
    SII
    Можно так.
    Return:=ggg; exit;
    А вообще в последних версиях дельфи exit(ggg)
     
  18. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    Я тут решил Java поизучать, это ж пипец, тот же самый С#. Во майкрософт дают, даже языки тырят (шутко).
     
  19. CyberManiac

    CyberManiac New Member

    Публикаций:
    0
    Регистрация:
    2 сен 2003
    Сообщения:
    2.473
    Адрес:
    Russia
    beginner
    А то, что заграничные чудодеи вот тоже так же писали a&=0x20, а потом по бескрайним просторам Родины нёсся стон "а хрен ли в вашем ванючем линугзе фтупляют на большие и маленькие русские буквы" (с сортировками строк так и вообще такая джоппа творилась - до сих пор вспомнить страшно). Amarok, кстати, до сих пор фтупляет на русских тегах.
     
  20. Ursus

    Ursus Member

    Публикаций:
    0
    Регистрация:
    15 мар 2006
    Сообщения:
    238
    Адрес:
    Russia
    Мля, господа ассемблерщики, вы съели мой мозк. Уже который человек на этом форуме говорит вещи типа "а вот С++ отстой, потому, что YYY". А потом выясняется, что человек даже не удосужился заглянуть не то что в стандарт языка, а просто в приличный учебник, а про "YYY" он вообще из пальца высосал!

    Есть в С++ и такое приведение

    Код (Text):
    1. int x = (int)0.5;
    и такое

    Код (Text):
    1. double x = 0.5;
    2. int a = int(x);
    и такое

    Код (Text):
    1. int a = static_cast<int>(x);
    Читайте книжки... там иногда пишут интересные вещи :)