Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Информатика учебное пособие часть2.doc
Скачиваний:
30
Добавлен:
16.09.2019
Размер:
1.14 Mб
Скачать

6.3 Графическая форма представления алгоритма

Другое название данной формы – схема алгоритма. Графическая форма предназначена только для исполнителя «человек». Главное достоинство такой формы - наглядность. Схема позволяет охватить весь алгоритм сразу, отследить различные варианты его выполнения.

На стадии разработки в блоках можно делать записи как на естественном, так и на формализованном языке. Однако в схемах, как правило, подробное описание конкретных действий выполняется только для простых алгоритмов.

В данной форме для представления отдельных блоков алгоритма используется обусловленный набор геометрических фигур. Принятые обозначения – графические примитивы приведены на рисунке 6.1.

По блок-схеме гораздо проще осуществлять запись алгоритма на каком-либо формальном языке. Правда, синтаксическое богатство языков программирования выше языка графических схем (например, различные виды циклов не имеют собственного представления в языке схем алгоритмов).

Отметим наиболее важные моменты при составлении блок-схем:

  • не надо излишне детализировать и усложнять блок-схему; необходимо показывать только основные и наиболее важные для решения шаги;

  • используйте только вертикальные и горизонтальные линии;

  • линии не должны пересекаться, во избежание пересечений можно пользоваться символами – соединителями;

  • указывать направления необходимо для линий, направленных вверх или влево, для других – стрелки необязательны;

  • любая линия должна быть направлена к какому-либо блоку;

  • в точках разветвления программы необходимо писать слова «да» или «нет» с целью указания выбранного направления.

Примеры схем алгоритмов.

  1. Нахождение корней квадратного уравнения

2. Алгоритм Евклида

6.4 Структурная теорема

До середины 60-х годов теории разработки алгоритмов не существовало – процесс разработки целиком определялся опытом и искусством программиста. Однако по мере роста сложности программ возникла необходимость создания методологии их разработки, и она появилась в виде структурного программирования.

Идеи структурного программирования были высказаны в 1965 года Дейкстрой, но сведены в законченную систему правил итальянскими математиками Бомом и Джакопини.

Введем следующее понятие функционального блока.

Функциональный блок – часть алгоритма, организованная как простое действие (то есть имеющее один вход и один выход).

Функциональные блоки связываются между собой с помощью базовых управляющих структур (включаются в поток управления).

Стандартные базовые управляющие структуры:

1. последовательный (линейный) управляющий блок – последовательно выполняется несколько функциональных блоков.

Линейному потоку управления на языке блок схем соответствует структура, приведенная на рисунке 6.2.

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

Второй тип потока управления называется ветвлением – он организует выполнение одного из 2-х функциональных блоков в зависимости от значения проверяемого логического условия (рисунок 6.3).

Если структура содержит два функциональных блока (S1 и S2), то ветвление называется полным. Возможно существование неполного ветвления – при этом один из блоков пуст (обычно это S1).

Третий тип потока управления называется циклическим – он организует многократное повторение функционального блока, пока логическое условие его выполнения является истинным.

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

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

Структурный алгоритм обладает рядом замечательных преимуществ по сравнению с неструктурированным:

  • понятность и простота восприятия (так как невелико число структур, которыми он образован);

  • проверяемость (для проверки любой из основных структур достаточно убедиться в правильности входящих в нее функциональных блоков);

  • модифицируемость (простота изменения структуры алгоритма, поскольку составляющие блоки относительно независимы).

На основе структурной теоремы разработан и широко используется так называемый структурный метод программирования.

Основой метода является использование принципа модульности построения сложных программ. При этом каждый программный модуль организуется в виде стандартного функционального блока (то есть строится из 3-х базовых управляющих структур) и выполняет лишь одну функцию по обработке данных.

Модули обладают определенной автономностью, что позволяет их отладку вести независимо (даже отдельно разрабатывать). Это обеспечивает относительную простую модифицируемость как отдельного модуля, так и программы в целом.