Программная форма записи алгоритма
Программный способ записи алгоритма представляет собой написанный на языке программирования текст программы.
Например:
Program Prim;
Var
S, x, a: integer;
Begin
Writeln(‘Введите a и х’):
Readln(a,x);
s:=a+x;
Writeln(‘Сумма чисел а и х равна ’);
Readln;
End.
Базовые алгоритмические структуры
Типы базовых алгоритмических структур
В общем случае блок-схема алгоритма имеет сложную структуру и, следовательно, может быть выражена композицией элементарных блок-схем, которые принято называть базовыми.
Логическая структура любого алгоритма может быть представлена комбинацией трех базовых алгоритмических структур:
- алгоритмов линейной структуры, которые иногда называют следованием (последовательностью),
- алгоритмов разветвляющейся структуры, называемых ветвлением,
- алгоритмов циклической структуры, называемых циклами.
Характерной особенностью базовых структур является наличие в них одного входа и одного выхода.
14.3.2 Линейная базовая структура ("последовательность")
Линейная базовая структура — это алгоритм, в котором блоки выполняются последовательно друг за другом, в порядке, заданном схемой. Такой порядок выполнения называется естественным.
Образуется последовательностью действий, следующих одно за другим.
Таблица 14.2
Процесс | Блок-схема |
действие 1 действие 2 . . . . . . . . . действие n |
Пример. Вычислить высоты треугольника со сторонами а, b, с, используя формулы:
где .
Для решения любой нетривиальной задачи существует несколько алгоритмов, приводящих к получению результата. Из возможных алгоритмов следует выбирать наилучший по некоторому критерию. Чаще всего в качестве критерия выбирается либо оценка точности решения задачи, либо затраты времени на ее решение, либо некоторый интегральный критерий, включающий оценки точности и затраты времени.
При решении данной задачи для исключения повторений следует вычислять высоты не по приведенным выше формулам непосредственно, а используя промежуточную переменную
,
тогда ha=t/a, hb=t/b, hc=t/c.
При этом схема алгоритма решения имеет вид, представленный на рисунке 14.1.
14.3.3 Базовая структура "ветвление".
Обеспечивает в зависимости от результата проверки условия (да или нет) выбор одного из альтернативных путей работы алгоритма. Каждый из путей ведет к общему выходу, так что работа алгоритма будет продолжаться независимо от того, какой путь будет выбран. Структура ветвление существует в четырех основных вариантах:
- если – то;
- если – то – иначе;
- выбор;
- выбор – иначе.
Таблица 14.3
Выполняемые действия | Блок-схема |
1. если—то | |
если условието действиявсе | |
2. если—то—иначе | |
если условието действия 1иначе действия 2все | |
3. выбор | |
выборпри условие 1: действия 1при условие 2: действия 2. . . . . . . . . . . .при условие N: действия Nвсе | |
4. выбор—иначе | |
выборпри условие 1: действия 1при условие 2: действия 2. . . . . . . . . . . .при условие N: действия Nиначедействия N+1все |
Примеры структуры ветвление даны в таблице 14.4.
Таблица 14.4
Выполняемые действия | Блок-схема |
если x > 0 то y := sin(x) все | |
если a > b то a := 2*a; b := 1 иначе b := 2*b все | |
выборпри n = 1: y := sin(x)при n = 2: y := cos(x)при n = 3: y := 0все | |
выборпри a > 5: I := I+1при a = 0: j := j+1иначе I := 10; j:=0все |
14.3.5 Базовая структура "цикл"
Обеспечивает многократное выполнение некоторой совокупности действий, которая называется телом цикла. Основные разновидности циклов представлены в таблице 14.5.
Таблица 14.5
Выполняемые действия | Блок-схема |
Цикл типа пока. Предписывает выполнять тело цикла до тех пор, пока выполняется условие, записанное после слова пока. | |
пока условие тело цикла (последовательность действий) | |
Цикл типа для. Предписывает выполнять тело цикла для всех значений некоторой переменной (параметра цикла) в заданном диапазоне. | |
для i от i1до i2 тело цикла (последовательность действий) |
Примеры структуры цикл приведены в таблице 14.6.
Таблица 14.6
Выполняемые действия | Блок-схема |
пока i <= 5 S := S+A[i] i := i+1 | |
для i от 1 до 5 X[i] := i*i*i Y[i] := X[i]/2 |
Дата добавления: 2021-03-18; просмотров: 530;