double arrow

Программы разветвленной структуры.


Как мы уже говорили, любой алгоритм можно составить из нескольких базовых структур. Простейшей из них является линейная (следование). В ней команды выполняются однократно в той последовательности, как они записаны. Однако далеко не всегда для решения задачи последовательность действий одна и та же при любых исходных данных. Если на каком-то этапе исполнитель должен выбирать один вариант из нескольких, в алгоритме используют ветвление.

В алгоритме разветвленной структуры (ветвлении) в зависимости от истинности или ложности некоторого условия выбирается одна из двух серий команд.

Пример программы разветвленной структуры

Блок-схема Программа на языке 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;

Если в программе есть ветвление, нужно...

1. Определить, какие существуют варианты действий и сколько их всего. Количество условных операторов будет на один меньше, чем число вариантов.

2. Выяснить, при каких условиях должен выполняться каждый из вариантов.

3. Если вариантов больше двух, выбрать последовательность проверки условий. При необходимости построить блок-схему.

4. Записать алгоритм на языке программирования.

5. Подобрать данные для тестирования программы (предусмотреть наборы данных, позволяющие проверить каждый вариант действий).

Операции сравнения

При записи условий в языке Pascal можно использовать следующие операции сравнения:

Операция Обозначение Пример записи
Равно? = d = 0
Больше? > x + y > 100
Меньше? < z < 5 * x
Больше либо равно? >= sin(a) >= 0.5
Меньше либо равно? <= v <= 60
Не равно? <> y <> 0

Результатом операции сравнения всегда будет логическое значение — либо false (ложь), либо true (истина).

Логические операции

Нередко условие, требующее проверки, нельзя выразить с помощью единственного сравнения. Тогда используют составные условия, образующиеся с помощью логических операций. В языке программирования Pascal их три (в некоторых реализациях — четыре):

Операция Обозначение Результат Пример записи
«И» (конъюнкция) and «истина», если истинны оба операнда (и первый, и второй) (x > -2) and (x < 2)
«Или» (дизъюнкция) or «истина», если истинен хотя бы один операнд (или первый, или второй) (x < -2) or (x > 2)
«Не» (инверсия) not «истина», если операнд ложен not (a > b)






Сейчас читают про: