Разветвленный алгоритм
Как мы уже говорили, любой алгоритм можно составить из нескольких базовых структур. Простейшей из них является линейная (следование). В ней команды выполняются однократно в той последовательности, как они записаны. Однако далеко не всегда для решения задачи последовательность действий одна и та же при любых исходных данных. Если на каком-то этапе исполнитель должен выбирать один вариант из нескольких, в алгоритме используют ветвление.
В алгоритме разветвленной структуры (ветвлении) в зависимости от истинности или ложности некоторого условия выбирается одна из двух серий команд.
Пример программы разветвленной структуры
Блок-схема
Программа на языке 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;
Если в программе есть ветвление, нужно
- Определить, какие существуют варианты действий и сколько их всего. Количество условных операторов будет на один меньше, чем число вариантов.
- Выяснить, при каких условиях должен выполняться каждый из вариантов.
- Если вариантов больше двух, выбрать последовательность проверки условий. При необходимости построить блок-схему.
- Записать алгоритм на языке программирования.
- Подобрать данные для тестирования программы (предусмотреть наборы данных, позволяющие проверить каждый вариант действий).