Основные элементы блок-схемы. Типы блок-схем.
Описание алгоритма с помощью блок схем осуществляется рисованием последовательности геометрических фигур, каждая из которых подразумевает выполнение определенного действия алгоритма. Порядок выполнения действий указывается стрелками. Написание алгоритмов с помощью блок-схем регламентируется ГОСТом. Внешний вид основных блоков, применяемых при написании блок схем, приведен на рисунке.
Представление алгоритма программы в виде блок-схемы имеет два недостатка:
· предполагает слишком низкий уровень детализации, что часто скрывает суть сложных алгоритмов
· и позволяет использовать неструктурные способы передачи управления (goto), причем часто на схеме алгоритма они выглядят проще, чем эквивалентные структурные.
Кроме схем, для описания алгоритмов можно использовать псевдокоды, Flow-формы и диаграммы Насси-Шнейдермана. Все перечисленные способы с одной стороны базируются на тех же основных структурах, а с другой стороны, допускают разные уровни детализации.
Каждый символ Flow-формы соответствует управляющей структуре и изображается в виде прямоугольника. Для демонстрации вложенности структур символ Flow-формы вписывается в соответствующую область прямоугольника любого другого символа. Символы Flow-форм, соответствующие основным и дополнительным управляющим конструкциям, приведены на рисунке А1.
<Действие 1> |
<Действие 2> |
<Действие 3> |
Если <Условие> |
<Действие 2> |
<Действие 1> |
то |
иначе |
Выбор <Код> |
<Действие 2> |
<Действие 1> |
Код 1 |
иначе |
<Действие 3> |
Код 2 |
Пока <Условие> |
<Действие> |
Для i=1, n, h |
<Действие> |
До <Условие> |
<Действие> |
а) |
б) |
в) |
г) |
д) |
е) |
Рисунок А1 - Условные обозначения Flow-форм для основных конструкций:
а - следование; б - ветвление; в - выбор; г - цикл-пока; д - цикл-до; е - счетный цикл
<Действие 1> |
<Действие 2> |
<Действие 3> |
<Условие> |
<Действие 2> |
<Действие 1> |
да |
нет |
Код |
<Действие 3> |
<Действие 2> |
иначе |
<Действие 1> |
Пока <Условие> |
<Действие> |
До <Условие> |
<Действие> |
а) |
б) |
в) |
г) |
д) |
Рисунок А2 - Условные обозначения диаграмм Насси-Шнейдермана для основных конструкций:
а - следование; б - ветвление; в - выбор; г - цикл-пока; д - цикл-до
Основное отличие диаграмм Насси-Шнейдермана от Flow-форм заключается в том, что область обозначения условий и вариантов ветвления изображают в виде треугольников (рисунок А2). Такое обозначение обеспечивает большую наглядность представления алгоритма.
Общим недостатком Flow-форм и диаграмм Насси-Шнейдермана является сложность построения изображений символов, что усложняет практическое применение этих нотаций для описания больших алгоритмов.
В отличие от блок-схем псевдокоды не ограничивают степень детализации операций, но, не являясь графическими, хуже отображают их вложенность.
Описать неструктурный алгоритм с помощью псевдокодов, Flow-форм и диаграмм Насси-Шнейдермана невозможно, т. к. для неструктурной передачи управления в них отсутствуют условные обозначения. Их использование изначально ориентирует проектировщика только на структурные способы передачи управления, а потому требует тщательного анализа алгоритма.
В зависимости от последовательности выполнения действий в алгоритме выделяют алгоритмы:
· линейной,
· разветвленной
· и циклической структуры.
В алгоритмах линейной структуры действия выполняются последовательно одно за другим.
В алгоритмах разветвленной структуры в зависимости от выполнения или невыполнения какого-либо условия производятся различные последовательности действий. Каждая такая последовательность действий называется ветвью алгоритма.
В алгоритмах циклической структуры в зависимости от выполнения или невыполнения какого-либо условия выполняется повторяющаяся последовательность действий, называющаяся телом цикла. Вложенным называется цикл, находящийся внутри тела другого цикла. Различают циклы с предусловием и постусловием:
Итерационным называется цикл, число повторений которого не задается, а определяется в ходе выполнения цикла. В этом случае одно повторение цикла называется итерацией.
Итак: При всем многообразии алгоритмов решения задач в них можно выделить три основных вида вычислительных процессов:
· линейный,
· разветвленный
· и циклический,
для реализации которых в программах используют соответствующие базовые управляющие конструкции:
· следование,
· ветвление,
· цикл-пока.
Помимо базовых, процедурные языки программирования высокого уровня используют еще три конструкции (структуры), которые легко реализуются через базовые:
· выбор,
· цикл-до,
· цикл с заданным числом повторений.
Перечисленные шесть конструкций были положены в основу структурного программирования. Слово «структурное» в названии подчеркивает тот факт, что при программировании использованы только перечисленные конструкции. Отсюда и понятие «программирование без go to». Программы, написанные с использованием только структурных операторов передачи управления, называют структурными, чтобы подчеркнуть их отличие от программ, при реализации которых использовались низкоуровневые способы передачи управления.
Разработанный алгоритм реализуется в виде программных кодов (программы) на одном из языков программирования.
Дата добавления: 2016-05-31; просмотров: 28539;