
2.37 2. Программы разветвляющейся структуры
2. Программы разветвляющейся структуры Средства разработки программ разветвляющейся структуры
Программой разветвляющейся структуры называют такую программу, в которой, в зависимости от исходных данных, возможны различные последовательности выполнения операторов, причем на любой из них каждый оператор выполняется только один раз.
Для реализации программ или фрагментов программ с разветвляющейся структурой используются сложные операторы1: условные операторы if и операторы выбора case. В этом разделе ограничимся рассмотрением полной формы условного оператора - оператора if then else и его сокращенной формы – оператора if then.
При использовании условных операторов ветвление алгоритма обусловлено проверками логических выражений (в языке Object Pascal их называют булевскими выражениями), результатом вычисления которых могут быть лишь два значения: «истина» и «ложь». В условных операторах могут использоваться как простейшие булевские выражения, основанные на сравнении выражений других типов, так и сложные, использующие логические операции.
Условные операторы
Оператор if then else имеет следующую синтаксическую диаграмму
где БВ – булевское выражение (см. ниже в разделе Булевский тип), значением которого может быть либо «истина», либо «ложь». Оп1 и Оп2 – операторы, каждый из которых может быть пустым оператором. При выполнении оператора if then else вначале вычисляется выражение БВ и если результат – «истина», то выполняется оператор Оп1, иначе, то есть если результат имеет значение «ложь», – оператор Оп2. В схемах алгоритмов оператору if then else соответствует конструкция
Оператор if then имеет синтаксическую диаграмму
г
де
БВ – булевское выражение, Оп1 – оператор.
При выполнении оператора if
then вначале вычисляется
выражение БВ и если результат – «истина»,
то выполняется оператор Оп1, иначе, то
есть если результат – «ложь», управление
передается следующему по порядку
оператору программы. В схемах алгоритмов
оператору if then
соответствует конструкция
Простейшими булевскими выражениями
являются отношения. Знаки отношений
записываются следующим образом: >,
<, = – так же, как в математике,
знаки
записываются парами символов <=,
>=, <>
соответственно. Более сложные булевские
выражения рассмотрены в следующем
разделе.
Пример. Требуется записать условный оператор, вычисляющий новое значение Y по заданным значениям A, B, X, Y по формуле
то
есть в соответствии с алгоритмом
Вот этот оператор:
if A > B then if B >= 3 then Y:=2 else else Y:=X;
Этому оператору if then else подчинен оператор присваивания Y:=X и еще один оператор if then else, который, в свою очередь, содержит пустой оператор (после первого else) и оператор присваивания Y:=2. Необходимость использования else во вложенном условном операторе вытекает из следующего правила: else относится к ближайшему предшествующему if, у которого нет части else. Можно было бы не использовать else во вложенном условном операторе, но тогда пришлось бы заключить его в операторные скобки, то есть заменить его оператором
begin if B >= 3 then Y:=2 end.
Пример. Для функции предыдущего примера можно составить другой алгоритм:
Тогда соответствующим ему оператором if then else будет
if A<=B then Y:=X else if B>=3 then Y:=2
и вложенный в него условный оператор естественно использовать в сокращенной форме.