
- •Понятие алгоритма и его свойства
- •Детерминированность. Процесс применения правил к исходным данным (путь решения задачи) определен однозначно или по другому - каждый шаг однозначно определяется состоянием системы
- •Формальность - инструкции алгоритма могут выполняться формально (бездумно)
- •Определение алгоритма на основе рекурсивных функций
- •Определение алгоритма на основе абстрактных автоматов (машины Тьюринга)
- •Правила выполнения соединений
- •Линейный алгоритм
- •Разветвляющийся алгоритм
- •Циклический алгоритм
- •Гост 19.701-90;
- •Объекты алгоритма
- •Разработать алгоритм задачи: «ввести два числа, найти их среднее арифметическое, выдать результат» Разработать алгоритм задачи: «ввести два числа, найти среднее геометрическое, выдать результат»
- •Вставить пропущенный текст в программу определения количества нечетных чисел в последовательности, вводимой с клавиатуры до тех пор, пока не будет введена единица.
- •Ввести X
- •Конец пока
Линейный алгоритм
Линейный алгоритм (следование) состоит из последовательности операций, выполняющихся в порядке их следования.
Фрагмент алгоритма, имеющий линейную структуру.
Рис. 1 Линейная структура алгоритма
Линейным называется алгоритм, в котором все действия выполняются строго последовательно.
Рассмотрим примеры составления схем различных алгоритмов.
Пример
1. Даны
стороны треугольника
,
b, c и радиус
r вписанной
окружности. Требуется вычислить высоту
треугольника
.
Р е ш е н и е. Площадь треугольника вычисляется по формуле S = pr , где p=( +b+c)/2 - полупериметр.
Определив площадь, можно вычислить высоту треугольника, которая будет равна =2S/ .
Схема алгоритма примера изображенная структурограммами, представлена на рис.2.
Ввод
,b,c,r
Вычислить p
Вычислить S
Вычислить
Печать
Конец
производятся последовательно одно за другим
и менять их местами нельзя.
Рис.2
Пример 2. Даны переменные A и B. Требуется поменять значения переменных, то есть A присвоить значение B, а B - значение A.
Р
е ш е н и е. Введем еще одну промежуточную
переменную C. Схема алгоритма примера
приведена на рис.3.
В блоке 2 вводятся значения A=1,
A=1; B=5
значения: C=1; A=5; B=1.
C=1; A=5; B=1
A=5; B=1.Так как переменные
A
и B поменяли свои значения,
алгоритм
верен.
Рис.3
Разветвляющийся алгоритм
Р
азветвляющийся
алгоритм содержит точку ветвления
(выбора)
(
нет
да
ЛВ
Действие «нет»
Действие «да»
Разветвляющиеся алгоритмы (ветвление).
Алгоритм, в котором в зависимости от заданного условия выполняется та или иная последовательность действий (ветвь) называется разветвляющимся алгоритмом. Условие обычно содержит два арифметических выражения, соединенных знаками отношения такими,
как <, ≤, =, >, ≥, < >.
Например, C<0; X>15; Y=B +D.
В схеме алгоритма проверка условия изображается блоком решения (логическим блоком), представляющим собой ромб. Внутри этого блока записывается заданное условие, а возле выходов блока- Да и Нет. Если условие выполняется, то оно считается истинным и вычислительный поток по выходу Да направляется к следующим блокам. Если условие не выполняется, то оно считается ложным и вычислительный поток направляется к следующим блокам по выходу Нет.
Примеры составления схем разветвляющихся алгоритмов.
Пример
3. Составить
схему (рис.4) алгоритма вычисления
корней квадратного уравнения
.
Р
е ш е н и е. Формула вычисления корней
квадратного уравнения имеющего в общем
случае как вещественные так и комплексные
корни хорошо известна и поэтому
словестно-формульный способ не приводится.
Алгоритм имеет две ветви. После вычис-
ления
в блоке 3 дискриминанта D,
осуществляется проверка его в блоке
D=b2-4ac
нуля, то по выходу Да в блоке 5
Да
Нет
осуществляется вычисление
вещественных
корней
уравнения.
нуля,
то вычисления идут по второй
ветви (по выходу Нет), в которой
вычисляются
действительная
и
мнимая
части
корней уравнения.
Рис.4 В блоке 7 (или 8) осуществляется
вывод полученных результатов.
Рассмотрим задачу, когда вычислительный процесс имеет три или более ветвей.
Пример 4. Составить схему (рис.5) алгоритма для вычисления выражения
Р е ш е н и е. Схему алгоритма представим структурограммой.
После
ввода исходных данных (переменных
)
проверяется
значение переменной
в блоке
решения. Если условие выполняется (истинно), то
вычисляется
значение
переменной
.
Полученное значение выводится на печать и
вычисления по этой ветви прекращается.
Если условие ложно, то проверяется значение
переменной
в
следующем блоке решения.
Рис.5 Если это условие выполняется, то вычисляется
значение
переменной
и печатается полученное значение
.
Вычисления прекращаются. Если проверка,
осуществляемая блоком решения, показывает,
что условие не выполняется, то будет
вычислено значение
,
которое и будет выведено на печать.
|
|
Рис. 2 Разветвляющаяся структура алгоритма |
Рис. 3 Структура «неполное ветвление» |