03. Разветвленный алгоритм
Алгоритм разветвленной структуры
Как мы уже говорили, любой алгоритм можно составить из нескольких базовых структур. Простейшей из них является линейная (следование). В ней команды выполняются однократно в той последовательности, как они записаны. Однако далеко не всегда для решения задачи последовательность действий одна и та же при любых исходных данных. Если на каком-то этапе исполнитель должен выбирать один вариант из нескольких, в алгоритме используют ветвление.
В алгоритме разветвленной структуры (ветвлении) в зависимости от истинности или ложности некоторого условия выбирается одна из двух серий команд.
Пример программы разветвленной структуры
Блок-схема
Программа на языке Pascal
program choice;
var a, b, c, d: real;
begin
readln(a, b, c);
d := b * b - 4 * a * c;
if d < 0
then writeln('корней нет')
else writeln('корни есть');
end.
Обратите внимание, что перед словами then и else точка с запятой не ставится — они считаются частями одного условного оператора if...then...else.
В том случае, если при ложности условия никаких действий не выполняется, на блок-схеме на стрелке «НЕТ» не чертят никаких блоков, а в записи условного оператора пропускают «else».
Если серия состоит более чем из одной команды, ее необходимо заключить в операторные скобки begin...end.
Например:
if x > 0
then begin
y := sqrt(x);
z := z + y;
end
else z := z + x;
Если в программе есть ветвление, нужно...
- Определить, какие существуют варианты действий и сколько их всего. Количество условных операторов будет на один меньше, чем число вариантов.
- Выяснить, при каких условиях должен выполняться каждый из вариантов.
- Если вариантов больше двух, выбрать последовательность проверки условий. При необходимости построить блок-схему.
- Записать алгоритм на языке программирования.
- Подобрать данные для тестирования программы (предусмотреть наборы данных, позволяющие проверить каждый вариант действий).
Операции сравнения
При записи условий в языке Pascal можно использовать следующие операции сравнения:
Результатом операции сравнения всегда будет логическое значение — либо false (ложь), либо true (истина).
Логические операции
Нередко условие, требующее проверки, нельзя выразить с помощью единственного сравнения. Тогда используют составные условия, образующиеся с помощью логических операций. В языке программирования Pascal их три (в некоторых реализациях — четыре):