Условные операторы
A) if Ь > шах then b •= ma* else if с > max then с = max else a = max |
8) if b > шах then b = max Else If с > max Then с Max Else a Max Рис. 1.2. Пример структурированного расположения строк программы: а — текст программы без отступов; б — текст программы с использованием отступов, приводящих К разрыву строк, что затрудняет чтение программы. |
Особенности языка программирования — это то, чем один алгоритмический язык отличается от другого. Из многих аспектов различия алгоритмических языков исследованы лишь не - котррые, в первую очередь те, которые касаются передачи
Таблица ,15 Достоинства н недостатки использования отступов в тексте программы
Литературный
Результаты эксперииентов источник
Использование отступов в программе не оказывало заметного влияния при умозрительном («ручном») моделировании работы программы [89] В задаче умозрительного моделирования работы программы комментарии н отступы, используемые совместно, оказывались менее полезными, чем при раздельном их применении [89]
TOC o "1-3" h z Использование отступов в программе не оказывало заметного влияния на результаты процесса ее модификации [76]
Использование отступов в программе не оказывало заметного влияния на понимание программы [44]
Использование отступов в программах, написанных на Фортране, не облегчало ее восстановления в памяти [56]
При использовании отступов восстановление пропущенных строк облегчалось [55]
Любой способ структурирования текста программы способствует ее лучшему пониманию; сдвиг строк на 2—4 пробела давал лучшие результаты, чем отсутствие сдвига или сдвиг на 6 пробелов [50]
Управления в программе. В очень многих исследованиях проводилось сравнение «структурных» операторов передачи управления, таких, как WHILE-DO и IF-THEN-ELSE, и «вездесущего» GOTO (табл. 1.6 и 1.7). Очевидно, что использования оператора GOTO следует избегать (авторы работы [79] имеют на этот счет другое мнение), поскольку при этом достигается хорошая структурированность программы.
Авторы работ [78] и [27] изучали новые возможности, не нашедшие пока применения в существующих языках программирования, но в отношении которых были доказаны их преимущества по сравнению со стандартными средствами. Очевидно, что использование этих возможностей есть способ усовершенствования большинства языков программирования.
В единственном в своем роде исследовании [31] показано, что языки программирования, имеющие средства контроля типов переменных (такие, как Паскаль, Ада, Меза и Модула-2), более удобны, чем языки, не имеющие таких средств (например, Лисп или Фортран), по крайней мере для решения некоторых задач. Большинство новых языков, разработанных после публикации указанной работы, имеют средства контроля типов, кроме примечательных исключений — языков Форт и Пролог.
Таблица 16. Достоинства и недостатки структурных и неструктурных конструкций языка программирования
Результаты экспериментов
Для целен обеспечения правильности программ использование GOTO (после IF) хуже, чем применение конструкции IF-THEN-ELSE [77]
Студенты предпочитали использовать структурные конструкции [89] Программисты, не обученные приемам структурного программирования, осуществляли большее число прогонов программы прн кодировании с применением оператора GOTO При отказе от использования оператора GOTO уменьшались время программирования, время компиляции и размер объект - [46] ного кода
Структурированную программу на Фортране легче вспомнить, чем неструктурированную
В задачах запоминания и модификации программ структурированный текст на Фортране лучше, чем неструктурированный Использование в программах на Фортране конструкции IF-THEN легче для понимания начинающими, чем использование операторов GOTO [79] Использование в программах на Фортране операторов GOTO легче для понимания начинающими, чем использование конструкции IF-THEN/WHILE-DO Сравнительное изучение использования ограничителей вида BEGIN-END н IF-ENDIF показало, что последние предпочтительнее [83]