Лекция 8. Понятие алгоритма. Изображение алгоритма в виде блок–схемы. Алгоритмы линейной и разветвляющейся структуры
Решение любой задачи на ЭВМ необходимо разбить на следующие этапы: разработка алгоритма решения задачи, составление программы решения задачи на алгоритмическом языке, ввод программы в ЭВМ, отладка программы (исправление ошибок), выполнение программы на ПК, анализ полученных результатов. Рассмотрим первый этап решения задачи – разработку алгоритма.
Понятие алгоритма
Алгоритм – четкое описание последовательности действий, которые необходимо выполнить при решении задачи. Можно сказать, что алгоритм описывает процесс преобразования исходных данных в результаты, т.к. для решения любой задачи необходимо:
1. Ввести исходные данные.
2. Преобразовать исходные данные в результаты (выходные данные).
3. Вывести результаты.
Разработка алгоритма решения задачи – это разбиение задачи на последовательно выполняемые этапы, причем результаты выполнения предыдущих этапов могут использоваться при выполнении последующих. При этом должны быть четко указаны как содержание каждого этапа, так и порядок выполнения этапов. Отдельный этап алгоритма представляет собой либо другую, более простую задачу, алгоритм решения которой известен (разработан заранее), либо должен быть достаточно простым и понятным без пояснений.
Разработанный алгоритм можно записать несколькими способами:
· на естественном языке;
· в виде блок-схемы;
· в виде R-схемы.
Рассмотрим пример алгоритма на естественном языке:
1. Ввести в компьютер числовые значения переменных а, b и с.
2. Вычислить d по формуле d = b² - 4ас.
3.
|
4. Прекратить вычисления.
Изображение алгоритма в виде блок-схемы
Блок-схемой называется наглядное графическое изображение алгоритма, когда отдельные его этапы изображаются при помощи различных геометрических фигур – блоков, а связи между этапами (последовательность выполнения этапов) указываются при помощи стрелок, соединяющих эти фигуры. Блоки сопровождаются надписями. Типичные действия алгоритма изображаются следующими геометрическими фигурами:
Блок начала-конца алгоритма (рис. 8.1).Надпись на блоке: «начало» («конец»). Блок ввода- вывода данных (рис. 8.2). Надпись на блоке: слово «ввод» («вывод» или «печать») и список вводимых (выводимых) переменных.
Рис. 8.1. Блок начала-конца алгоритма
Рис. 8.2. Блок ввода-вывода данных
Блок решения или арифметический (рис. 8.3). Надпись на блоке: операция или группа операций.
Условный блок (рис. 8.4). Надпись на блоке: условие. В результате проверки условия осуществляется выбор одного из возможных путей (ветвей) вычислительного процесса. Если условие выполняется, то следующим выполняется этап по ветви «+», если условие не выполняется, то выполняется этап по ветви «−».
Рис. 8.3. Арифметический блок Рис. 8.4. Условный блок
В качестве примера рассмотрим блок-схему алгоритма решения уравнения (рис. 8.5), описанного в предыдущем подразделе.
Рис. 8.5. Блок-схема алгоритма решения квадратного уравнения
Алгоритмы линейной структуры
Линейный алгоритм – это такой, в котором все операции выполняются последовательно одна за другой
Размещение блоков в линейном алгоритме Рассмотрим несколько примеров линейных алгоритмов.
ПРИМЕР 3.1. Зная длины трех сторон треугольника, вычислить площадь и периметр треугольника.
Пусть a, b, c – длины сторон треугольника. Необходимо найти S – площадь треугольника, P – периметр. Для нахождения площади можно воспользоваться формулой Герона.
Входные данные: a, b, c. Выходные данные: S, P. Блок- схема алгоритма представлена на рис.
Алгоритм примера
Внимание!!!В этих блоках знак «=» означает не математическое равенство, а операцию присваивания. Переменной, стоящей слева от оператора, присваивается значение, указанное справа. Причем это значение может быть уже определено или его необходимо вычислить с помощью выражения.
Например, операция r = (a+b+c)/2 – имеет смысл (переменной r присвоить значение r=(a+b+c)/2), а выражение (a+b+c)/2=r – бессмыслица.
ПРИМЕР Известны плотность и геометрические размеры цилиндрического слитка, полученного в металлургической лаборатории. Найти объем, массу и площадь основания слитка.
Входные данные: R – радиус основания цилиндра, h – высота цилиндра, – плотность материала слитка. Выходные данные: m – масса слитка, V – объем, S – площадь основания. Блок-схема представлена на рис. 3.3.
Алгоритм примера
ПРИМЕР. Заданы длины двух катетов в прямоугольном треугольнике. Найти длину гипотенузы, площадь треугольника и величину его углов.
Входные данные: a, b – длины катетов. Выходные данные: с – длина гипотенузы, S – площадь треугольника, α, β – углы. Блок-схема представлена на рис.
Алгоритмы разветвленной структуры
Алгоритмы разветвленной структуры применяются, когда в зависимости от некоторого условия необходимо выполнить либо одно, либо другое действие. В блок-схемах разветвленные алгоритмы изображаются так, как показано на рис.
.