–блок, определяющий начало, конец или прерывание процесса вычисления;
– блок ввода-вывода информации;
– блок вычислений;
– блок проверки выполнения условия (логический блок);
– блок цикла (модификация);
– вычисление по подпрограмме, стандартной программе;
– печать результатов на бумаге;
– линии потока, изображают последовательность связей между блоками;
– соединители, указывают связи между прерванными линиями потока, связывающими блоки;
---– пояснения, содержание подпрограмм, формулы.
Рассмотренный выше алгоритм Евклида может быть представлен в виде блок-схемы на рис. 1.
Правила построения алгоритмов на языке блок-схем:
1.Блок-схема строится сверху вниз.
2.В любой блок-схеме имеется один элемент, соответствующий началу, и один элемент, соответствующий концу.
3.Должен быть хотя бы один путь из начала блок-схемы к любому
элементу.
11
4. Должен быть хотя бы один путь от каждого элемента алгоритма в конец блок-схемы.
Рис. 1. Блок-схема алгоритма Евклида
Описание на алгоритмическом языке. Алгоритм можно рассматривать как задание для исполнителя, который получит правильный результат, если точно выполнит то, что в нем написано. Человек, автоматическое устройство, компьютер – это разные исполнители. Для того, чтобы компьютер мог выполнить алгоритм, он должен быть написан на понятном ему языке. Компьютер понимает машинный язык. Человеку трудно писать и читать алгоритмы на машинном языке, ему понятен естественный язык. Но научить компьютер понимать естественный язык затруднительно потому, что в естественном языке слишком много слов и нет строгих правил записи предложений.
Для того, чтобы человек и компьютер понимали друг друга, разработаны специальные языки для записей алгоритмов – алгоритмические языки. Алгоритмический язык отличается от машинного тем, что состоит из слов и символов, как естественный язык, но в нем мало слов (обычно 30–40) и очень строгие
12
правила составления предложений. Основные слова языка называют служебными словами. В алгоритмических языках используют слова английского алфавита. Алгоритмический язык легко понимают и человек, и компьютер. Алгоритм, записанный на алгоритмическом языке, – это программа для компьютера. Каждое предложение в программе – оператор.
Совокупность вычислительных процессов, используемых при решении математических, экономических, научно-технических и др. задач на ЭВМ, по характеру связей между выполняемыми в алгоритме операциями в общем виде может быть разделена на три группы: линейные, разветвляющиеся и циклические. Структура алгоритма находится в прямой зависимости от типа отображаемого вычислительного процесса.
Контрольные вопросы и упражнения
1.Какие способы описания схем алгоритмов вы знаете?
2.Что такое переменная, ввод, присваивание?
3.Укажите отличие операций ввода и присваивания.
4.Поясните отличие равенства и присваивания.
5.Укажите достоинства и недостатки словесного и формульнословесного описания алгоритмов.
6.В чем достоинства графического метода описания алгоритмов?
7.Дать определение блок-схемы.
8.Перечислите известные блоки и укажите их назначение.
9.Перечислите правила построения алгоритмов на языке блок-схем.
Занятие 3. Управляющие структуры. Типовые задачи программирования
В предыдущем описании алгоритма Евклида мы увидели ряд операций различного характера и назначения. Основными являются:
1)последовательное исполнение – исполнение инструкций алгоритма в том порядке, как они представлены в тексте программы (естественный порядок). Линейный алгоритм – это алгоритм, в котором действия выполняются только один раз и строго в том порядке, в котором они записаны;
2)переход – записывается в виде инструкции «перейти к m», где m – метка, указывающая место в программе, куда необходимо передать управление ходом вычислительного процесса;
3)условное исполнение или разветвление – исполнение одной группы действий при выполнении некоторого условия и другой группы действий при его нарушении. Разветвляющийся алгоритм – это алгоритм, в котором то или иное действие выполняется после анализа условия, который на блок-схеме показывают с помощью логического блока (ромб). Логический блок имеет один вход и два выхода (ветвь «да» и ветвь «нет»). Существуют две формы условного исполнения:
13
а) полное условное предложение «если А, то В, иначе С». Здесь А – условие, В и С – разные группы действий (рис. 2а);
б) укороченное условное предложение «если А, то В» (рис. 2б)
4) цикл – многократное исполнение некоторой группы действий при различных значениях входящих параметров. С точки зрения алгоритмизации, цикл
– это алгоритм, в котором группа операторов выполняется несколько раз подряд. Циклы бывают с известным (фиксированным, заданным, конечным) числом повторений (другие названия – цикл с параметром, цикл со счетчиком, цикл типа арифметической прогрессии) и с неизвестным числом повторений (по иному – циклы с условием, циклы типа «пока», итерационные циклы). У любого цикла должна производиться проверка окончания, то есть выхода из цикла.
Рис.2. Блок-схема вариантов разветвлений
Цикл с предусловием. Проверка окончания осуществляется в начале цикла до исполнения операторов области действия цикла (тела цикла).
«Пока А, повторяй В». Здесь, как и ранее, А – условие, В – операторы тела цикла. Блок-схема изображена на рис. 3а). Предполагается, естественно, что исполнение группы действий В влияет на выполнение условия А и при какомто повторе условие А не будет выполнено и произойдет выход из цикла (иначе он некорректно построен).
Цикл с постусловием. Проверка производится в конце цикла после исполнения операторов тела цикла. Блок-схема изображена на рис. 3б).
Отличие этих двух циклов в том, что в первом из них группа действий В может быть не выполнена ни разу. Во втором случае это невозможно и тело цикла исполняется хотя бы один раз.
Цикл с параметром. Конструкция цикла выглядит следующим образом: Для I от M до N шаг H повторяй B,
где I – параметр или индекс цикла, он выполняет роль счетчика, то есть следит за количеством повторений в цикле;
M и N – соответственно нижняя и верхняя границы изменения параметра цикла;
Н – шаг изменения параметра цикла;
14
В– некоторая группа действий.
Впроцессе работы параметр I принимает последовательные значения M, M+H, M+2H, …, соответствующие членам арифметической прогрессии.
Контрольные вопросы и упражнения
1.Перечислите и охарактеризуйте основные управляющие структуры.
2.В чем отличие полного условного предложения и укороченного условного предложения?
3.Почему цикл с параметром можно называть циклом типа арифметической прогрессии?
4.Дайте определение линейного вычислительного процесса.
5.Какой процесс называется разветвляющимся?
6.Чем определяется выбор ветви вычислений?
7.Какие типы циклов вы знаете?
8.В чем отличие циклов с предусловием и с постусловием?
9.Какие величины задаются в случае цикла с заданным числом повторе-
ний?
Типовые задачи программирования Рассмотрим ряд примеров использования управляющих структур.
1. Тривиальный. Найти наибольшее из двух чисел – max{A,B}. На неформальном уровне алгоритм решения прост
1)Ввод (А,В)
2)Если A≥B, то MAX:=A, иначе MAX:=B
3)Вывод (MAX)
15