1. Pascal / Говнокод #8447

    +111

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    var
    s:string;
    begin
    repeat
    readln(s);
    until
    (length(s)=4)
    and(
                    (s[1]='1')
                  or(s[1]='2')
                  or(s[1]='3')
                  or(s[1]='4')
                  or(s[1]='5')
                  or(s[1]='6')
                  or(s[1]='7')
                  or(s[1]='8')
                  or(s[1]='9')
                              )
    and(
                    (s[2]='1')
                  or(s[2]='2')
                  or(s[2]='3')
                  or(s[2]='4')
                  or(s[2]='5')
                  or(s[2]='6')
                  or(s[2]='7')
                  or(s[2]='8')
                  or(s[2]='9')
                  or(s[2]='0')
                              )
    and(
                    (s[3]='1')
                  or(s[3]='2')
                  or(s[3]='3')
                  or(s[3]='4')
                  or(s[3]='5')
                  or(s[3]='6')
                  or(s[3]='7')
                  or(s[3]='8')
                  or(s[3]='9')
                  or(s[3]='0')
                              )
    and(
                    (s[4]='1')
                  or(s[4]='2')
                  or(s[4]='3')
                  or(s[4]='4')
                  or(s[4]='5')
                  or(s[4]='6')
                  or(s[4]='7')
                  or(s[4]='8')
                  or(s[4]='9')
                  or(s[4]='0')
                              )
    end.

    Нашёл у себя из первого курса.

    Запостил: ReallyBugMeNot2, 07 Ноября 2011

    Комментарии (88) RSS

    • а главное, как все отформатировано!
      Ответить
      • Да, это тебе не богомерзский С++!
        Ответить
        • аве языку для школьников
          Ответить
          • не, для школьников - бейсик. а этот для студентов
            Ответить
            • не везде кое где начинают сразу с си
              Ответить
            • ну это уже у кого какое трудное детство было
              бейсику меня не учили, с 10 класса сразу это виртоблядство уровня PrOgRaM MaSsIv;
              а в бейсике, вроде, требовали перед каждой строчкой номер строки писать? да, отличный язык для начинающих
              Ответить
              • нет, не требовали
                Ответить
                • «Студентов, ранее изучавших Бейсик, практически невозможно обучить хорошему программированию. Как потенциальные программисты они подверглись необратимой умственной деградации»
                  Ответить
                  • Вот и я говорю начинать надо с лиспа
                    а ещё лучше с python
                    Ответить
                    • лисп окончательно взорвет неокрепшие умы
                      учителя средней школы да и многие преподаватели высшей с трудом то паскаль и бейсик осваивают
                      что может объяснить учитель по информатике, сам ничего не понимающий даже в ООП
                      может и правильно, что детей сейчас учат ворду и экселю, а не калечат таким програмированием
                      Ответить
                      • пичалька...
                        ладно, пусть будет pascal
                        Ответить
                        • кстати не вижу разницы в сложности между С и паскалем, кто то почему то однажды решил, что паскаль проще и давайте его преподавать в школе/1 курсе, хотя алгоритмы с псевдоязыка или блок-схемы (чему там учат на первых занятиях) замечательно переводятся как на первый, так и на второй, при этом на С текст, наверняка, получится еще короче из-за {} вместо begin/end, if () вместо if .. then
                          печалит отсутствие вложенных подпрограмм? зато не надо писать procedure, function
                          потом выходят из школы такие подготовленные ребята, на 1 курсе закрепляют еще, а если повезет, то других языков в институте им даже не покажут, после института скрываются от армии в каком то задрищенском НИИ, как программисты абсолютно ничего не умеют, потому что научники такие же бакланы, ничего кроме процедурного программирования в паскале не делавшие всю жизнь, зато получают гранты от государства. И вот приходят такие люди потом на собеседование на позицию программиста на С++ - каждый первый такой, плакать хочется. И ладно бы не знали чего то в шаблонах/специализациях, виртуальном наследовании или хитрожопом выборе неконстантных операторов приведения типов, но азы то тоже не знают... а ты - лисп
                          *cry*
                          Ответить

                          • ПОКОРМЛЮ


                            > кстати не вижу разницы в сложности между С и паскалем

                            Но она есть.
                            Попробуй показать левому человеку запись i=i+1, он долго будет думать, почему решение этого уравнения не заставляет компьютер делить на ноль. А вот математический знак := как раз более понятный.

                            > ничего кроме процедурного программирования в паскале не делавшие всю жизнь, зато получают гранты от государства

                            А потом марсианская ракета с орбиты уйти не может ;(

                            > печалит отсутствие вложенных подпрограмм? зато не надо писать procedure, function

                            Ну ты сравнил. Полезную возможность языка и несущественное сокращение записи.
                            Ответить
                            • кстати меня всегда в детстве вымораживало почему двоеточие так некрасиво расположено рядом с =, причем в синем турбопаскале вроде еще куда ни шло, а где посовременней шрифты - караул
                              я сам начинал с паскаля, никаких проблем потом с переходом :=,= на =,== не возникло
                              Ответить
                            • > А потом марсианская ракета с орбиты уйти не может
                              я в последнее время все чаще замечаю эти фейлы, то тихоокеанская группировка спутников, то недолетит очередное говно из НИИ - вспомни "Булаву"
                              да с пару лет назад у нас работал человек, до этого полировавший штаны в ОКБ Сухой - они делали этот гражданский недосамолёт. Столько страхов понарассказывал
                              Ответить
                            • > левому человеку
                              ..он и член разобьёт, и лоб себе изрежет.

                              > почему решение этого уравнения
                              Крайне унылая отмазка. Это не является уравнением. С таким же успехом могу повторить свой прошлый аргумент, что
                              if a <> b then
                              должно разрывать мозг при попытке понять, как же это выходит, что a меньшебольше b.
                              Ответить
                              • > ..он и член разобьёт, и лоб себе изрежет.

                                Унылая отмазка сишников. Реальность говорит о другом.

                                > С таким же успехом могу повторить свой прошлый аргумент, что
                                if a <> b then
                                должно разрывать мозг при попытке понять, как же это выходит, что a меньшебольше b.

                                Надо один раз сказать, что это значит, и человек больше путаться не будет. А вот =/== - известная няшапроблема
                                Ответить
                                • > Унылая отмазка сишников
                                  Я сишник только в том случае, если считать, что це мне нравится больше паскакаля.
                                  Це-вэй широко распространён во всём мире, паскалевский синтаксис я могу вспомнить в трёх языках, включая сам паскаль. Это не спич про миллионы мух, но близко.

                                  > Надо один раз сказать, что это значит
                                  Надо один раз сказать, что это не уравнение, и что уравнений в таких ЯП не бывает. Бывают присваивания и проверка на равенство.
                                  Ответить
                                • кстати компилятор обычно нормально ругается на =/==
                                  для бисексулингвальных программистов, отключающих или игнорирующих ворнинги есть рекомендация делать
                                  if (SOME_CONST_VALUE == somevar) ...
                                  Ответить
                          • В C основными сложностями является акцент на указатели, отсутствие полноценных строк и большое количество различных закорючек. В Pascal синтаксис проще, да и создавался он фактически для обучения.
                            А про Лисп, я, разумеется, пошутил. Scheme очень проста, но чтобы понять и оценить эту простоту нужно пройти через императивное чистилище
                            Ответить
                            • а строки по 254 символа - достаточно полноценны?
                              кстати это минус, когда человека учат какому то языку, многие вещи как что то работает для него получаются на уровне мейджик, ну или просто верит на слово - делай так и только так, потому что экосистема другого тебе не позволяет
                              ученик не задумывается, а где хранится в памяти вот это или вот это, а почему плохо здоровые куски памяти тупо туда сюда копировать, да и не один раз
                              может поэтому подрастающее поколение называет близкие к машине языки богомерзкими?
                              Ответить
                              • По-моему, богомерзким Ц тут считает только Тарас.
                                А по поводу ограниченности средств Pascal... Слона надо есть по кусочкам. Если сразу загрузить школоту матаном - пропадёт интерес. С начала всё должно казаться простым и весёлым. А потом уже сами сишку ковырять начнут в поисках ответов.
                                Ответить
                                • да нет, не только Тарас, спасибо ему за питание - приходил один на собеседование, в резюме написал, что паскаль/дельфи - продвинутый, С++ - средний уровень, но пришел на программиста С++. Спросил его - сравните их. Сказал, что паскаль ему нравится больше, для него он структурированней. С ООП и шаблонами не работал ни там, ни там
                                  искалеченные судьбы
                                  Ответить
                                • >По-моему, богомерзким Ц тут считает только Тарас
                                  А с++говно?
                                  Ответить
                                • > А по поводу ограниченности средств Pascal...

                                  Расскажи же про ограниченность Паскаля по сравнению с Си.
                                  Ответить
                                  • я имел в виду упомянутое ограничение на длину строк
                                    Ответить
                                    • В Паскале тоже есть бесконечные строки на ноль, с которыми тоже надо работать руками, проблемы?
                                      Ответить
                              • > кстати это минус, когда человека учат какому то языку, многие вещи как что то работает для него получаются на уровне мейджик

                                Ололо, чё, учить программистов, начиная с работы транзисторов и ручной пайки процессора?
                                Ответить
                                • нет. достаточно рассказать про организацию памяти и последовательность вызовов
                                  это пиздец когда выпускник по специальности "математик. системный программист" приличного московского вуза не знает что такое точка входа в программу
                                  а другой выпускник по примерно такой же специальности, только вуза из жопы страны, без зазрения совести передаёт кучу аргументов std::string копированием
                                  Ответить
                                  • > а другой выпускник по примерно такой же специальности, только вуза из жопы страны, без зазрения совести передаёт кучу аргументов std::string копированием

                                    Это пиздец, что аргументы по умолчанию передаются как копии, а не как const&.
                                    Ответить
                                  • >без зазрения совести передаёт кучу аргументов std::string копированием

                                    И правильно делает. Оказался умнее тебя.
                                    Ответить
                                • меня кстати в институте и этому всему тоже учили, и транзисторам, и колебаниям в цепи, на схемотехнике свой проц по ТЗ собирали на fpga xilinx, но я не скажу, что это обязательное требование для приличного специалиста-программиста, так, факультативные знания, собственно другие кафедры на моем факультете, более математические, вместо вышеперечисленного давали модулу-2, оберон, 6 семестров дискретной математики и много еще чего
                                  Ответить
                                  • > собственно другие кафедры на моем факультете, более математические, вместо вышеперечисленного давали модулу-2, оберон, 6 семестров дискретной математики и много еще чего

                                    Математика нужна.
                                    Языки для понимания базовых вещей хорошие.
                                    А что касается крестошаблнов - то человек, осиливший математику, осилит их без труда при возникновении потребности. Так что таких выпускников брать надо, если общие знания хороши - через месяц будут шпарить на крестах не хуже бородатых дядек.
                                    Ответить
                                    • не через месяц, через месяца три, и то, если его целенаправленно нагружать в нужную сторону, исправлять ошибки и продолжать учить, давать задачи, сложнее чем он может решить на текущий момент
                                      вот тут зачастую и хочется просто проверить адекватность такого кандидата, сможет ли он вообще что то освоить? пока что всё печально, российская система образования готовит малопригодных специалистов.
                                      Ответить
                          • Извольте изложить и обосновать каждый пункт, тогда получится более менее обоснованно.

                            Лично у нас (учителей информатики) изучаются Pascal, Object Pascal, C++ (основы ООП на данном языке), Prolog.

                            Прим.: Не считая методики преподавания информатики/математики, математических и других наук.

                            Все именно в таком порядке. И, вы не поверите, большую часть студентов напрягает именно предметы по специальности, хотя те студенты, которые пришли на специальность не штаны протирать, не согласны.

                            Обучение стараются строить таким образом, чтобы человек железно знал основы языков программирования, умел применять свои знания на практике, а так же умел самостоятельно обучаться.

                            И данная цепочка языков программирования выбрана не случайно. С точки зрения новичков, которые кое-как обладают единственным языком после школы (русским, а с англ. хотя бы знакомы), им гораздо проще изучать ЯП близкий по семантике к обычным языкам. В языке Pascal для описания конструкций используются английские слова. Они кажутся вам непорядочно длинными для ЯП, но студенту (предположительно прошедшему курс англ. языка в школе) легче оперировать именно словами, а не другими символами.

                            Чет я запизделся..
                            Ответить
                            • Кстати, насчет того же англ. языка.
                              Количество студентов, учивших данный язык в школе, но нифига не научившихся с каждым годом все больше и больше =\
                              Ответить
                            • будущий учитель?
                              я надеюсь, что когда-нибудь хоть кто то в школе сможет детям дать современные знания, но это вряд ли случится, пока для этого будет выделяться 1 академический час в неделю. я не знаю, сколько дают детям сейчас, 10 лет назад всё было именно так.
                              лично я в 10-11 классе вместо школьной информатики ходил на отдельные городские курсы по 6-8 часов в неделю, без траты времени на ворд, пейнт и прочее, которое и так осваивается интуитивно, если дома есть компьютер.
                              беда же ведь еще в том, что детям дают очень скромную базу, не выпрямляют руки, чтобы писался чистый, стильный код, а не каша, не рассказывают о хорошем стиле, типичных ошибках, не дают погрузиться достаточно глубоко.
                              даже меня, выпускника кибернетического факультета, по программированию не особо нагружали (хотя, конечно, кому то эта несчастная программа давалась с трудом)
                              вот и остается, как если брать человека без опыта, то первые полгода его только и учить, фактически заново
                              почему краснодипломнику тяжело нарисовать иерархию из 1 базового класса и 2 наследников с одним сраным виртуальным методом? потому что в институте дай бог успеть ему дать простейшие алгоритмы сортировки, пару задач на ввод-вывод и отпустить с миром
                              Ответить
                              • > почему краснодипломнику тяжело нарисовать иерархию из 1 базового класса и 2 наследников с одним сраным виртуальным методом?

                                Потому что структуры и указатели на функции намного проще для понимания и кодирования. ООП, в том виде, в каком оно массово есть, это просто бесполезный сахар для вариантных полей структур и указателей на функции.
                                Ответить
                                • надеюсь, мсье понимает что такое полиморфизм и инкапсуляция?
                                  Ответить
                                  • Полиморфизм - способность менять указатели на функции. Более того, их можно менять прямо в реальном времени! Стандартное ООП так не может.
                                    Инкапсуляция - пометка некоторых полей, как нежелательных для изменения снаружи.
                                    Сахар, короче.
                                    Ответить
                                    • конечно, сахар
                                      а еще экономия ручного кодирования при назначении указателей методов
                                      а еще проверка типов компилятором
                                      а еще если наследование вспомнить, то без такого сахара ты заебешься дописывать к структуре добавленные в наследнике поля - останется небезопасное приведение типов и error-prone
                                      я писал на С с этими указателями функций, в структуре хранилось состояние конечного автомата, с десятком указателей на "методы", и этих состояний было штук 40, можно не рассказывать
                                      Ответить
                                      • > а еще экономия ручного кодирования при назначении указателей методов

                                        Да, указатели придётся ставить руками.

                                        > а еще проверка типов компилятором

                                        Каким местом стандартное ООП даёт проверку типа компилятором?

                                        > а еще если наследование вспомнить, то без такого сахара ты заебешься дописывать к структуре добавленные в наследнике поля

                                        Варианта тут два:
                                        1. Вариантные поля.
                                        2. Создать новую структуру, которая первым же членом включает в себя старую.

                                        В общем, ручной работы становится больше, но код становится более примитивным и понятным, как ни странно.
                                        Ответить
                                        • об этом еще даже чувак на моей аватаре писал
                                          использовать ООП можно и в языке, не приспособленном к ООП
                                          но только ООП-язык позволит сделать это удобно и безопасно
                                          малая часть - переход от миллиона форвард-деклараций функций-"методов" к ручному назначению их указателей в нужные места структуры
                                          http://dl.dropbox.com/u/4275844/states1.png
                                          ручной работы намного больше, чем кажется на первый взгляд
                                          а ведь еще можно и промахнуться и назначить не тот метод не в то место (какая собсно разница для компилятора между onEnter и onExit если у них одинаковая сигнатура)
                                          а еще ах это сладкое отсутствие неймспейсов или другого вложения имён
                                          Ответить
                                          • Впечатляет, но всё-таки это всё только подтверждает то, что ОПП по сравнению с процедурным программированием - "тривиальная надстройка". Да, иногда повышает удобство. Иногда понижает, кстати. Но в целом - ничего революционно нового.
                                            Ответить
                                            • да по сути с момента перехода от машинных кодов к ассемблеру ничего революционного не изобрели, чтобы будоражило умы красноармейцев

                                              ООП всего лишь парадигма, одна из многих, например
                                              если её приплетать где не требуется, получится что и понижает удобство, а кому то и быстродействие снизит, а кому то и фундаментальные типы захочется объектами сделать, всё объекты, объекты объектов, наконец то большевики дождались!
                                              Ответить
                                              • > да по сути с момента перехода от машинных кодов к ассемблеру ничего революционного не изобрели, чтобы будоражило умы красноармейцев

                                                Не согласен. Качественные скачки всё же были. А ООП - это количественный скачок, не более. Это как сравнивать константу и порядок во времени работы... программиста.

                                                > ООП всего лишь парадигма, одна из многих

                                                Она слишком легко реализуется процедурными средствами.

                                                > а кому то и фундаментальные типы захочется объектами сделать, всё объекты, объекты объектов, наконец то большевики дождались!

                                                Это да.
                                                Основной минус ООП даже не в каких-то её качествах, а нездоровой популярности и повсеместном насаждении.
                                                Ответить
                                                • нездоровая популярность из ниоткуда не берётся
                                                  если есть данные и как минимум 2 метода, завязанные на эти данные (допустим 1 корректная инициализация и 1 работа над ними), то обёртка их в один класс сразу решает кучу проблем, а ведь зачастую надо еще и корректно деинициализироваться
                                                  инкапсуляция - самая востребованная фича ООП
                                                  а наследование и полиморфизм лечат изжоги в других местах, иногда с целью сахара, иногда их можно заменить через шаблоны, но иногда (контейнер указателей на базовый класс, или хранение объекта, созданного как someobject<T>) без них не обойтись
                                                  Ответить
                                                  • > если есть данные и как минимум 2 метода, завязанные на эти данные (допустим 1 корректная инициализация и 1 работа над ними), то обёртка их в один класс сразу решает кучу проблем

                                                    Ну или в структуру :3

                                                    > инкапсуляция - самая востребованная фича ООП

                                                    Если понимать под инкапсуляцией запред доступа к приватным полям, то это, скорее, просто сахар.

                                                    > но иногда (контейнер указателей на базовый класс, или хранение объекта, созданного как someobject<T>) без них не обойтись

                                                    Контейнер указателей на базовую структуру почти так же удобен в обращении.
                                                    Ответить
                                                    • почти так же?
                                                      продумай объект "строка" на С
                                                      сделай ей ну, скажем, несколько методов - присваивание другой строки, сравнение с другой строкой, формирование нового объекта подстроки (с позиции N до M), корректное умирание
                                                      ты не сможешь сделать a.assign(b), потому что assign ничего не будет знать об a, тебе придется делать my_awesome_string_assign(a, b), ну или извращенное a.assign(a, b)
                                                      ты не сможешь воспользоваться автоматическим вызовом деструктора при выходе объекта из видимости - придется делать a.delete(a) руками
                                                      даже если ты сделаешь a.assign(a, b) тебе для этого по-хорошему надо будет все функции, что относятся к работе с этой строкой загнать в отдельный cpp, сделать их static и для инициализации объекта a делать функцию init
                                                      т.е. фактически у тебя получится
                                                      my_string a, b;
                                                      a.init(a); b.init(b);
                                                      a.assign(a, b);
                                                      a.delete(a);
                                                      b.delete(b);
                                                      не error-prone? не butt-hurt?
                                                      отрицай ООП дальше
                                                      Ответить
                                                      • ну или точнее a.init(&a), a.assign(&a, b) и т.д.
                                                        Ответить
                                                      • Чтобы в одну строку записать другую, я напишу процедуру copy(a,b), a.copy(b) является просто сахаром этого. Что касается автодеструкторов, да и всего РАИИ, то это вообще к ООП не относится. Как бы в крестах они и для структур работают.
                                                        Ответить
                                                        • ты не задумывался, что в С++ структуры это какбе и есть классы.
                                                          Для обратной совместимости для структур, содержащих только plain old поля, сохранится сишное поведение, но как только ты выйдешь из си (объявишь внутри метод, не сишное поле, да даже private: впишешь), структура превращается в класс с дефолтным доступом public, дефолтными конструкторами, операцией присваивания и деструктором
                                                          ты же не будешь спорить, что конструктор и деструктор - это ООП
                                                          Ответить
                                                          • В стандартном ООП нет ни слова про РАИИ. Его вообще можно натянуть на любой тип. Я в некоем гипотетическом языке могу определить свой целый тип, написав в конструкторе обнуление, но это же не значит, что этот целый тип стал объектом?
                                                            Ответить
                                                        • конечно сахаром, по секрету a.dosmth(arg) фактически преобразовывается в примерно в A::dosmth(&a, arg) при вызове
                                                          только никому не охота ебать себе мозг эмуляцией ООП ручными вызовами
                                                          кроме тебя, фаната процедурного программирования
                                                          Ответить
                                                          • > a.dosmth(arg) фактически преобразовывается в примерно в A::dosmth(&a, arg) при вызове

                                                            Я в курсе. Только экономия в письме от этого ннебольшая. Впрочем, код становится чуть логичнее. С другой стороны Compare(a,b) смотрится нормально, а a.Compare(b) смотрится по-идиотски.

                                                            > кроме тебя, фаната процедурного программирования

                                                            Все парадигмы - частный случай процедурной. Даже функциональная - ведь функция и процедура это одно и то же.
                                                            Шутка.
                                                            Если серьёзно, то я бы определил функциональное программирование как процедурное, в котором процедуры можно выполнять над функциями.
                                                            Ответить
                                                            • Во многом тут согласен с Тарасом.
                                                              >a.Compare(b) смотрится по-идиотски.
                                                              Однозначно.

                                                              Хочу спросить. А вот как при таком использовании структур геттеры и сеттеры - отдельные методы.
                                                              Или ты вообще считаешь их избыточными в большинстве случаев?
                                                              Ответить
                                                              • Нет, я их не считаю избыточными, но свойства - вообще неоднозначная вещь.
                                                                Неоднозначная не в плане UB, а в плане, что у разных людей очень разное мнение на их счёт.
                                                                Ответить на твой вопрос не могу. Он глубже и выходит за рамки текущей темы.
                                                                Ответить
                              • Снова и снова понимаю маленькую истину: чтобы быть настоящим мастером, нужно любить свою профессию больше всего на свете и иметь шило в заднице, заставляющее тебя копать всё глубже и глубже, мучить себя в бесконечных поисках способов сделать свой код короче, понятнее и быстрее. Если у тебя этого нет, никакой университет тебя ничему не научит.
                                С музыкой такая же фигня, кстати.
                                Ответить
                                • в этом году средний проходной балл егэ упал совсем ниже плинтуса
                                  что заставит копать глубже и глубже студента, поступившего на бюджет с 120 баллами за 3 экзамена, если одноклеточная школьная программа не усвоилась
                                  а тебе в будущем придется учить этих детей
                                  готовься
                                  Ответить
                                  • Уже... пока вроде нормально
                                    Ответить
                                    • Да ничего нормального нету, поступает одно болото. Потом под это болото начинают подстраиваться. А почему? А потому, что никто другой не идет.
                                      Ответить
                                      • Ах, да. Забыл сказать, на факультете наша группа последняя с педагогической специальностью по информатике.

                                        Кстати, недавно мне сказали, что одной кафедре не хватает часов по предметам, поэтому нам поставили больше часов по методике преподавания математике. Преподаватель с психическими расстройствами. Бабулька старая. Да и преподавание математики нам ни к чему. Вот из-за этой "нехватки часов" нам все 4 года не дают спокойно заниматься информатикой, так что я учить никого не собираюсь. Мне не стыдно идти с моими знаниями в школу даже сейчас, мне стыдно, что я натолкнусь на школьников, которые захотят изучать какую-то область информатики глубже, а я не смогу в ней толком разбираться. Пока нам ипали мозги время шло. Такова политика деканата, который информатику не особо любит.
                                        Ответить
                                        • если кто-то захочет изучить какую-то область информатики глубже, будет неплохой повод изучить её вместе
                                          или предложить читать хорошие книжки, ведь по каждому языку есть хорошие книжки (уверен, даже по php!)
                                          разобраться и применять ООП в бедном турбо паскале мне не помешало то, что учительница курсов тщательно скрывала свое полное невежество в нем, и я её в этом не собираюсь винить
                                          Ответить
                                          • Ой, вы не учитываете количество трудных учеников. Я же не могу заниматься только с теми, кто шарит быстрее)
                                            Ответить
                                      • упс, я же только наших внутрикомпанейских юниоров мучаю матаном, они прошли предварительный отбор. Да, пожалуй, впереди жопа.
                                        Ответить
    • коли уж ООП - сахар над указателями, то процедурное программирование - надстройка над goto!
      Ответить
      • ну, по сути, С - это надстройка над ассемблером, тривиальный синтаксический сахар
        а паскаль... нет, паскаль - это француз такой и единица измерения давления
        Ответить
      • да. но я бы выразился иначе
        - структурное программирование надстройка над GOTO
        - процедурное программирование надстройка над старым добрым GOSUB
        Ответить
      • ну теперь то ты понимаешь, почему эти хитрожопые "гуру" так тщательно маскируются и запрещают нам использовать goto!
        повсюду дейкстроблядский заговор!
        Ответить
        • сначала они сказали, что если ты знаешь бейсик, то быть тебе высмеянным
          потом они запретили номера строк
          потом изьяли goto и gosub

          а сейчас мы программируем не для процессора, а для виртуальных машин
          Ответить
          • Офигенно, плюсанул.
            Такие вещи надо говорить на площади, вытянув руку вверх в кулак.
            А толпа должна хором поддакивать конец каждой фразы.
            Я уже представил, это бы выглядело шикарно.
            Ответить
            • ну вот наверное примерно так:
              http://www.youtube.com/watch?feature=player_detailpage&v=XGtKXMAgbVk#t=99s
              Ответить
              • У меня почему-то сразу же возникли аналогичные ассоциации.
                Ответить
          • покайтесь!
            грядёт конец всему сущему!

            1. не сотвори себе языка программирования пред ассемблером
            2. не сотвори виртуальные машины
            3. не используй ассемблер всуе
            4. помни пятницу и не работай
            5. почитай процессор твой, мать твою
            6. не дели на ноль!
            7. не используй синтаксические сахары и прочие функциональные программирования
            8. не копипасть
            9. не тролль
            10. не желай кода ближнего твоего, не желай компьютера ближнего своего, ни мыши, ни клавиатуры
            Ответить
            • Ну ваще нихрена нельзя, тока печеньки над клавиатурой жрать.
              Ответить
            • Слышь, ты, лысый, не бгхульствуй
              Ответить
            • 1. Да не будет у тебя других богов кроме Функции
              2. Не сотвори начальников, не поклоняйся им и не служи им
              3. Не создавай побочных эффектов понапрасну
              4. Помни о пятнице и будь ленив
              5. Почитай Лисп и Си
              6. Не удаляй поломанные тесты, чини их
              7. Не пиши на C++
              8. Не нарушай лицензии GPL
              9. Не сваливай вину за сломанный билд на ближнего своего
              10. Не возжелай писать под платформу соседа
              Ответить
      • > ООП - сахар над указателями
        Именно так и есть, Object Pascal с необязательным дереференцом указателей на структурные типы тому пример. Тарас подтвердит.
        Ответить
        • ну кагбе никто не спорит, что обьекты - те же структуры с указателями на функции. но спор был в том, что это типа ненужный сахар, не дающий преимуществ в написании кода
          Ответить
          • Ну ладно, не чувствую в себе решимости прочитать всю войну и мир выше.
            Ответить
    • показать все, что скрытоvanished
      Ответить
    • - А я не знаю что! Но, по-моему, то, что вы меня любите, и то, что выпороли, совсем не противоречит друг другу!
      Ответить

    Добавить комментарий