ТОР 5 статей: Методические подходы к анализу финансового состояния предприятия Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века Характеристика шлифовальных кругов и ее маркировка Служебные части речи. Предлог. Союз. Частицы КАТЕГОРИИ:
|
Структурное программирование. Структурное программирование — одно из крупнейших достижений в технологии программирования
Структурное программирование — одно из крупнейших достижений в технологии программирования. Хотя самое общее и довольно смутное представление о структурном программировании имеется почти у всех, общепринятого четкого его определения нет. Структурное программирование ставит своей целью писать программы минимальной сложности, заставить программиста мыслить ясно, облегчить восприятие программы. Текст программы должен быть таким, чтобы его можно было читать «сверху - вниз». Неограниченное использование операторов безусловного перехода (GO TO) нарушает это условие, поэтому структурное программирование часто называют программированием без GOТО. Можно привести примеры программ, которые не содержат GO TO, и аккуратно расположены лесенкой в соответствии с уровнем вложенности операторов, но совершенно непонятны и бывают другие программы, содержащие GO TO и все же понятны. Так что наличие или отсутствие GO TO— плохой показатель качества программы (иллюстрации в Д. Кнут). И все же: наиболее трудно контролируемым и потенциально неустойчивым является оператор безусловного перехода — GOTO. Структура тела модулей и используемые базовые конструкции программирования должны быть потенциально устойчивыми к аппаратурным сбоям, искажениям исходных данных и к ошибкам в программах. Любую программу можно синтезировать на основе элементарных базовых конструкций трех типов: Рисунок 1 1. Простая последовательность. 2. Условия (альтернативы).
3. Повторение (циклы, итерации). Возможны один из двух или оба вида: Рисунок 2 Делать «пока» Делать «пока не» 4. Можно добавить четвертую конструкцию - выбор (переключатель). Рисунок 3 Блоки определяются рекурсивно: прямоугольники изображают вложенные строительные блоки, используемые вместо прямоугольника. Перечисленные элементарные конструкции, например, в языке Паскаль реализованы так: Условный операторIF лог. выр. THEN оператор 1 ELSE оператор2; IF лог. выражение THEN оператор; Повторение (циклы, итерации) а) Делать «пока» WHILE условие продолжения DO оператор; б) Делать «пока не» REPEAT оператор UNTIL условие завершения; в) Цикл с перебором FOR К:=В1 ТО В2 DO оператор; FOR K:=B2 DOWNTO B1 DO оператор; Выбор (переключатель)CASE условие OF N1,... Nk: оператор 1; Ni,... Nm: оператор п; END; В языке FoxBASE эти конструкции реализованы в виде: Условный операторIF лог. выражение операторы1 [ ELSE операторы2 ] ENDIF ЦиклDO WHILE выражение операторы ENDDO Выбор (переключатель)DO CASE CASE лог. выражение 1 операторы CASE лог. выражение2 Операторы CASE лог. Выражение п Операторы [OTHERWISE операторы ] ENDCASE Каждая структура характеризуется единственной точкой передачи управления в структуру (единственный вход) и единственной точкой выхода из структуры. Эти конструкции имеют систематизирующее и дисциплинирующее значение. Простота исходных конструкций структурного программирования предотвращает появление сложных информационных связей и запуганных передач управления. При повышении структурированности модулей снижается сложность программ, возрастает их наглядность, что способствует сокращению числа ошибок. Однако за повышение качества программ приходится расплачиваться дополнительной памятью и временем их реализации на ЭВМ. Структурность программы зависит от используемого языка программирования. Современные программные средства разработки программ являются «наилучшими» языками структурного программирования. Из распространенных языков программирования самыми подходящими считаются Паскаль, Basic, FoxBASE. Структурное программирование, например, на языке Ассемблер почти невозможно. Сам факт использования языка Ассемблера указывает на то, что программа написана в основном в терминах машинного языка. Структурное программирование ориентировано на общение с людьми, а не с машиной, способствует написанию программ, представляющих собой простое и ясное решение задачи. Важно, чтобы программист, еще только приступая к программированию логики, мыслил в терминах основных базовых структурных конструкций. Позиция в отношении оператора GO TO должна быть следующей: избегать использование GOTO всюду, где это возможно, но не ценой ясности программ. Часто оказывается целесообразным использовать GO TO для выхода из цикла или модуля, для перехода в конструкции ON (например, в языке Basic) или во избежание слишком большой глубины вложенности развилок, тем более что переход осуществляется на последующие (расположенные ниже) операторы программы, и структурная программа продолжает оставаться легко читаемой сверху вниз. Наихудшим применением оператора GO TO считается передача управления на оператор, расположенный выше (раньше) в тексте программы. Кроме того, чтобы облегчить чтение программы, ее текст необходимо разбить физически на части, добавляя пустые строки между разделами, подразделениями. Текст программы должен быть написан с правильными сдвигами, так что разрывы в последовательности выполнения легко прослеживаются. Одноцелевые выполняемые предложения каждого модуля должны умещаться на одной странице печатающего устройства. Таким образом, по мнению Роберта Флойда, в отличие от парадигм в научном мире, описанных Куном, парадигмы программирования могут сочетаться, обогащая инструментарий программиста. Глава 2. Подходы и приёмы
Не нашли, что искали? Воспользуйтесь поиском:
|