Главная Теоретический материал Лабораторные работы Задачи Тесты Контакты

Узбекское Агентство
Связи и Информатизации



Ташкентский Университет Информационных Технологий


Кафедра
«Программное обеспечение информационных технологий»

Направления:

5521900Информатика и
информационные технологии,
5523500Защита информации,
5523600Электронная коммерция,
5811200Сервис (информационный сервис),
5811300Сервис (электронные и
компьютерные технологии),
5320200Информатика и
библиотековедение,
5140900Профессиональное образование
(по направлению
информатика и
информационные технологии).


Преподаватель дисциплины



Доцент
Чернев Дмитрий Алексеевич

Структурное программирование

Структурное программированиеодно из крупнейших достижений в технологии программирования. Хотя самое общее и довольно смутное представление о структурном программи­ровании имеется почти у всех, общепринятого четкого его определения нет. Структурное програм­мирование ставит своей целью писать программы минимальной сложности, заставить программиста мыслить ясно, облегчить восприятие программы.

Текст программы должен быть таким, чтобы его можно было читать «сверху - вниз». Неограниченное использование операторов безусловного перехода (GO TO) нарушает это условие, поэтому структурное программирование часто называют программирова­нием без GO ТО.

Можно привести примеры программ, которые не содержат GO TO, и аккуратно расположены лесенкой в соответствии с уровнем вложенности операторов, но совершенно непонятны и бывают другие программы, содержащие GO TO и все же понятны. Так что наличие или отсутствие GO TO — плохой показатель качества программы (иллюстрации в Д. Кнут). И все же: наиболее трудно контролируемым и потенциально неустойчивым является оператор безусловного перехода — GO TO.

Структура тела модулей и используемые базовые конструкции програм­мирования должны быть потенциально устойчивыми к аппаратурным сбоям, искажениям исходных данных и к ошибкам в программах.

Любую программу можно синтезировать на основе элементар­ных базовых конструкций трех типов:

1. Простая последовательность.                      2. Условия (альтернативы).

1

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 должна быть сле­дующей: избегать использование GO TO всюду, где это воз­можно, но не ценой ясности программ. Часто оказывается целе­сообразным использовать GO TO для выхода из цикла или модуля, для перехода в конструкции ON (например, в языке Basic) или во избежание слишком большой глубины вложенности развилок, тем более что переход осуществляется на последующие (расположенные ниже) операторы программы, и структурная программа продолжает оставаться легко читаемой сверху вниз. Наихудшим применением оператора GO TO считается передача управления на оператор, расположенный выше (раньше) в тексте программы.

Кроме того, чтобы облегчить чтение программы, ее текст необходимо разбить физически на части, добавляя пустые строки между разделами, подразделениями. Текст программы должен быть написан с правильными сдвигами, так что разрывы в последовательности выполнения легко прослеживаются. Одноцелевые выполняемые предложения каждого модуля должны уме­щаться на одной странице печатающего устройства.


Назад


Главная Теоретический материал Лабораторные работы Тесты Контакты