Главная

Популярная публикация

Научная публикация

Случайная публикация

Обратная связь

ТОР 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. Подходы и приёмы

 






Не нашли, что искали? Воспользуйтесь поиском:

vikidalka.ru - 2015-2024 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных