Пример 1. Открывание закрытой двери. Простая последовательность команд - алгоритм линейной структуры ( рис. 1).
Рис 1.
Пример 2. Проставление адреса и штампа на конверте. Простая последовательность с выбором - алгоритм разветвленной структуры (рис.2).
Рис 2.
Пример 3. Использование электрической мясорубки для размельчения мяса. Повторение нескольких процессов - алгоритм циклической структуры (рис.3, рис.4, рис.5).
Приведем три стадии программирования сверху - вниз.
Стадия 1. Общая последовательность действий
Рис 3
Стадия 2.
Рис 4
Стадия 3.
Рис 5
Пример 4. Приготовление напитка на выбор. Перечисление случаев - алгоритм структуры с выбором ( рис. 6 ).
Исходные данные:
1) чайник с чаем;
2) кофейник с кофе;
3) молочник с молоком;
4) чашка;
5) ложка;
6) сахарница с сахаром.
Рис 6
Пример 5. Забивание гвоздя в деревянную доску. Цикл (рис. 7).
Рис 7
Цикл в этом примере отличается от цикла в примере с мясорубкой. Здесь мы сначала ударяем молотком, затем проверяем забили гвоздь или нет. В примере с мясорубкой сначала делали проверку (есть куски мяса), затем выполняли действие (проверяли их).
Псевдокод
В качестве основного языка структурного программирования будем использовать псевдокод. В тексте псевдокода в последующих примерах строчными буквами будет написано то, что написано в блоках блок-схемы, а прописными специальные слова псевдокода, называемые ключевыми.
Псевдокод представляет собой систему обозначений и правил, предназначенную для единообразной записи алгоритмов. Он занимает промежуточное место между естественным и формальным языками.
С одной стороны, он близок к обычному естественному языку, поэтому алгоритмы могут на нем записываться и читаться как обычный текст. С другой стороны, в псевдокоде используются некоторые формальные конструкции и математическая символика, что приближает запись алгоритма к общепринятой математической записи.
В псевдокоде не приняты строгие синтаксические правила для записи команд, присущие формальным языкам, что облегчает запись алгоритма на стадии его проектирования и дает возможность использовать более широкий набор команд, рассчитанный на абстрактного исполнителя. Однако в псевдокоде обычно имеются некоторые конструкции, присущие формальным языкам, что облегчает переход от записи на псевдокоде к записи алгоритма на формальном языке. В частности, в псевдокоде, так же, как и в формальных языках, есть служебные слова, смысл которых определен раз и навсегда. Они выделяются в печатном тексте жирным шрифтом, а в рукописном тексте подчеркиваются. Единого или формального определения псевдокода не существует, поэтому возможны различные псевдокоды, отличающиеся набором служебных слов и основных (базовых) конструкций.
Основные служебные слова
алг (алгоритм) | сим (символьный) | дано | для | да |
арг (аргумент) | лит (литерный) | надо | от | нет |
рез (результат) | лог (логический) | если | до | при |
нач (начало) | таб(таблица) | то | знач | выбор |
кон (конец) | нц (начало цикла) | иначе | и | ввод |
цел (целый) | кц (конец цикла) | все | или | вывод |
вещ (вещественный) | длин (длина) | пока | не | утв |
Примеры блок-схем и эквивалентного им псевдокода.
- Линейный алгоритм. BEGIN и END соответствуют блокам начала и конца (рис. 8).
Блок-схема
Рис 8
- Разветвление (рис. 9)
Блок-схема
Рис 9
- Простой цикл (рис. 10)
Блок-схема
Рис 10