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

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

  1. Pavia

    Pavia Well-Known Member

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

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

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

    if надо выйти then
    begin
    Result:= рез;
    Exit;
    end;

    хужей, чем

    if надо выйти then return рез;

    beginner
    Плохо то, что из-за отсутствия типизации можно поиметь кучу случайных проблем. В Паскале можно написать то же самое, но с явным приведением типов. Менее красиво, зато надёжнее. Возможно, помогут процедуры Inc и Dec -- не пробовал, так что сказать не могу (хотя это уже Дельфи, а не стандартный Паскаль, но стандартный обсуждать смысла нет).

    Наверное. Удачные комменты -- вещь полезная, кто ж спорит?

    Pavia
    Речь изначально шла о первоначальном обучении, а не о профессиональной работе. Профессионал должен знать Си++, иначе это не профессионал. Даже если основная его работа идёт на другом языке.

    Ну так заимствовать с умом надо. А приведение типов сишное в своём списке недостатков я упомянуть забыл. Ещё один из кошмаров, запутывающих программу...

    CyberManiac
    Ни в коей мере. Нет никакой разницы, что возвращать. Это забота компилятора, а не программиста, и если компилятор может вернуть значение через присваивание переменной Result (или имени самой функции), то сможет это сделать и в return/exit.

    Не согласен. Загромождение кода лишними проверками условий -- плохо.

    Pavia
    Да, я несколькими страницами выше писал, что в последней версии вроде это появилось.

    Ursus
    Читайте внимательнее, речь была о Си, а не о Си++.
     
  3. GoldFinch

    GoldFinch New Member

    Публикаций:
    0
    Регистрация:
    29 мар 2008
    Сообщения:
    1.775
    не понимаю тех кто пишет
    if xxx then
    begin
    ...
    end;

    меня учили не делать пустых строк в листинге, и писать
    if xxx then begin
    ...
    end;
     
  4. wsd

    wsd New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2007
    Сообщения:
    2.824
    GoldFinch

    это называется корпоративный стиль или почерк :)
     
  5. CyberManiac

    CyberManiac New Member

    Публикаций:
    0
    Регистрация:
    2 сен 2003
    Сообщения:
    2.473
    Адрес:
    Russia
    SII
    "Профессионал" - понятие растяжимое. Ежели изначально предполагается пилить бабло на решениях Oracle - плюсатые Си годятся только чтобы мозги себе забивать ненужной хренью.

    Если основная работа идёт на японском языке - таки лучше знать японский. Иначе даже формы рисовать не подпустят.

    Delphi позволяет возвращать сложные типы. И даже очень сложные типы, например, динамические массивы. Я не очень представляю процесс возврата по значению динамического массива при помощи статической конструкции. А вот к Result можно применять SetLength и всё такое.

    Лишние проверки условий появляются оттого, что некоторые люди боятся многоуровневых if. Лечится элементарной дисциплиной в отступах и краткими комментариями в конце блоков на тему, а что, собственно, здесь кончается.
     
  6. Pavia

    Pavia Well-Known Member

    Публикаций:
    0
    Регистрация:
    17 июн 2003
    Сообщения:
    2.409
    Адрес:
    Fryazino
    GoldFinch
    Меня учили писать чтобы begin и end был на одной линии. Тогда всегда ясно какой участок относиться к какому блоку. По привычки переношу на один пробел. Но советуют два и более.
     
  7. wsd

    wsd New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2007
    Сообщения:
    2.824
    Pavia
    советуют табом это делать
     
  8. CyberManiac

    CyberManiac New Member

    Публикаций:
    0
    Регистрация:
    2 сен 2003
    Сообщения:
    2.473
    Адрес:
    Russia
    GoldFinch
    А я бы плевал в каждого, кто сделает ударение в слове "Паттайя" на второй слог. Каждый паттайчанин знает, что ударение должно падать на последний слог.
     
  9. beginner

    beginner New Member

    Публикаций:
    0
    Регистрация:
    18 янв 2008
    Сообщения:
    233
    война продолжается? :)
    Если кому то не нравится приведение типов - это его проблемы
    если мне не нравится конструкция begin.... end и жесткая типизация переменных - это мои проблемы :)
    Язык программирование отображает характер человека
    Си - это свобода практически во всем, порой доходит до анархии
    паскаль - жестко заданные рамки, шаг влево, шаг вправо - стена и колючая проволока :)

    Код (Text):
    1. if xxx then
    2. begin
    3. ...
    4. end;
    Это что бы строчек кода было больше ;)
    Больше строчек кода - больше зарплата :)
    Не зря же все большие продукты измеряются именно в строчках кода
    :-D :-D :-D :-D
     
  10. GoldFinch

    GoldFinch New Member

    Публикаций:
    0
    Регистрация:
    29 мар 2008
    Сообщения:
    1.775
    чето мне не удается привести указатель на метод к char* чтоб его посплайсить =\
     
  11. leo

    leo Active Member

    Публикаций:
    0
    Регистрация:
    4 авг 2004
    Сообщения:
    2.542
    Адрес:
    Russia
    beginner
    А асм ? В подобных религиозных баталиях меня всегда умиляют шарахания из одной крайности в другую - либо Си с его "свободой" и возможностью впихнуть весь код в одну строчку, либо асм, где каждую мелочь нужно ручками выписывать. А паскаль - почему то считают "отстоем", хотя на самом деле он вполне тянет на золотую середину ;)

    Нет, это для того, чтобы мысль успевала за набором кода. А то ведь в Ц с его суперсокращениями наверное и подумать то некогда :lol:
     
  12. amvoz

    amvoz Member

    Публикаций:
    0
    Регистрация:
    12 ноя 2008
    Сообщения:
    653
    ...А по всему вышеизложенному, можно дать такой совет:
    Парень, есть язык С. Он не строг в синтаксисе. Но чтобы умело воспользоваться таким его качеством, необходимое условие- быть очень очень аккуратным и знать: твои ошибки никто за тебя исправлять не будет. А это тяжело. Найти и исправить.

    А есть Pascal Он гораздо строже в синтаксисе. Что ж, если тебе вдруг не понравится строгость, то вот тебе обратная плюсовая сторона медали- ты можешь позволить себе некоторую расхлябанность. Прелставляешь- твои ошибки будут выявлены -не тобой, нет- машиной... То есть работа над ошибками в Pascal легче, чем в C

    ...Я всё правильно сформулировал?
     
  13. SII

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

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

    Так это не значит, что надо вообще запрещать возвращать с помощью Return/Exit. В конце концов, динмассивы -- это весьма специфический случай, и обычно возвращается что-либо попроще.

    Так и поступаем. Но всё равно по возможности стараемся избегать лишней вложенности. Если я в начале функции выяснил, что дальнейшее её выполнение не требуется, почему мне сразу не вернуть результат и не завершить её работу?
     
  14. SII

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

    Публикаций:
    0
    Регистрация:
    31 окт 2007
    Сообщения:
    1.483
    Адрес:
    Подмосковье
    amvoz
    Нет, неправильно :-P Ошибку в логике алгоритма Паскаль точно так же не поймает, как и любой другой язык. Он ограничивает лишь возможность совершения случайных ошибок.
     
  15. CyberManiac

    CyberManiac New Member

    Публикаций:
    0
    Регистрация:
    2 сен 2003
    Сообщения:
    2.473
    Адрес:
    Russia
    SII
    Ну тогда профессионалов в природе не существует. Чтобы с Фортрана перепрыгнуть на VBA (или наоборот - абсолютно непринципиально), надо изрядно самому себе изнасиловать мозг, причём не один месяц подряд, драйверописатель запросто подохнет в дебрях курсоров, запросов и триггеров (и никакие книжки а-ля Oracle за 21 день его не спасут) и т.д. Хотя умение прыгать по верхушкам и пускать пыль в глаза сейчас тоже приносит некоторые дивиденды, и это тоже в некотором роде можно назвать профессионализмом.

    Чем меньше исключений из правил - тем лучше. В самом лучшем случае их быть вообще не должно. А то несколько странно читать в сурьёзных книжках экзерсисы типа "а вот у нас есть чудесное множественное наследование, только вы им лучше не пользуйтесь, потому что мы тут сами попробовали, а там столько всяких заморочек, что оно нас задолбало, пока мы примеры к этой книжке сочиняли".

    Это довольно редкий случай, чтобы ради него делать новую конструкцию. Вот кое-где сделали, что после каждого case в 99.9% случаев нужно писать break - и весь этот зоопарк развели ради жалкого 0.1% "особых случаев". А может даже и просто левая пятка зачесалась, вот и получилось, как получилось. Хотя ничто не мешало обойтись без break, а на особые случаи буй покласть.
     
  16. beginner

    beginner New Member

    Публикаций:
    0
    Регистрация:
    18 янв 2008
    Сообщения:
    233
    Код (Text):
    1. char *s = new char[5];
    2. wsprintf(buff, "%p", &AAA::get);
    3. DWORD addr = atoi(buff);
    4. s = (char*)addr;
    5. s[0] = ....// спокойно сплайсим
     
  17. Ursus

    Ursus Member

    Публикаций:
    0
    Регистрация:
    15 мар 2006
    Сообщения:
    238
    Адрес:
    Russia
    А-ха-ха-ха... Спасибо, уважаемый, рассмешил! :)
     
  18. Ursus

    Ursus Member

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

    А если и встречаются где-то такие несчастные люди, то только потому, что пишут они под некие очень специфические платформы, под которые нет компилятора С++, а только С... Таких только пожалеть остается.
     
  19. CyberManiac

    CyberManiac New Member

    Публикаций:
    0
    Регистрация:
    2 сен 2003
    Сообщения:
    2.473
    Адрес:
    Russia
    Ursus
    Легко. http://www.cybercom.net/~dcoffin/dcraw/

    Кстати, настоятельно рекомендую заценить сей мегакодез. ТруЪ х@кс0рЪ стайлЪ, едреныть. Если кто-нибудь из здесь присутствующих так пишет - советую подумать о скорейшем уходе в монастырь. В мужской монастырь.

    Ну, тут как бы Столлмана цитировали. Полагаю, его не пытают программированием под арифмометр.
     
  20. Y_Mur

    Y_Mur Active Member

    Публикаций:
    0
    Регистрация:
    6 сен 2006
    Сообщения:
    2.494
    Ursus
    например kaspersky неоднократно упоминал, что счастлив когда работает с С кодом, а несчастным его делает как раз необходимость лезть в плюсы :)