
Лабораторная работа № 3 программирование алгоритмов разветвляющейся структуры
Цель работы: овладение практическими навыками разработки и программирования разветвляющихся процессов с использованием условных операторов (If...then... else... и Case).
Теоретические сведения
Операторы условного перехода (If, Case)
Операторы условного перехода позволяют выбрать для исполнения один из нескольких операторов-компонентов в зависимости от условия.
Оператор If. Его синтаксис:
If A
then ST1
else ST2;
где:
A – булевское выражение (возвращающее TRUE или FALSE);
ST1, ST2 – операторы (возможно пустые или составные).
Если значение выражения A – TRUE, то выполняется оператор ST1; если значение выражения A – FALSE, то выполняется оператор ST2. Затем, в обоих случаях управление передается следующему оператору программы. Допускается и краткая форма условного оператора:
If A then ST;
где:
A – булевское выражение;
ST – оператор (возможно составной).
Если значение A – TRUE, то выполняется оператор ST. Если значение A – FALSE, то управление передается оператору, следующему за оператором IF.
Обычно при написании программы не рекомендуется использовать многократно вложенные друг в друга условные операторы – программа становится громоздкой и трудно понимаемой. Считается, что число уровней вложения не должно превышать двух-трех. Но как быть, если необходимо проверять достаточно много условий и в зависимости от них выполнять те или иные действия? Для этих целей в языке Pascal существует специальный оператор выбора Case.
Оператор выбора Case. Его синтаксис:
Case P of
a: S1;
b: S2;
…
n: Sn
else Sn+1
end;
где:
Case («случай») – служебное слово;
P – переменная, называемая селектором или переключателем;
a, b – константы выбора;
S1, S2, Sn, Sn+1 – операторы.
При выполнении этого оператора сначала вычисляется некоторое выражение p, называемое селектором выбора, а затем в зависимости от полученного значения (если оно равно одной из констант a, b, …, n, которые называются константами выбора), выполняется один из операторов: S1, S2,…, Sn, помеченные соответствующей константой. Если значение выражения P не совпадает ни с одной из констант выбора, выполняется оператор Sn+1, содержащийся после ключевого слова else, причем ветвь else в операторе Case необязательна. Использованные здесь зарезервированные слова Case, of, else, end имеют смысл вариант, из, иначе, конец.
Каждый из операторов в операторе Case, помеченный константой выбора может быть составным.
Выражение, играющее роль селектора, должно принадлежать порядковому типу данных (т.е. типу, имеющему конечное число значений). Например: Integer, Boolean, Char.
Кроме одиночных констант, в вариантах оператора Case могут использоваться диапазоны значений и списки. Например:
Case x of
1..5: S1;
2, 3, 8: S2;
4, 6, 9..13: S3
else S4
end;
Составной оператор
Составной оператор представляет собой группу из произвольного числа операторов, отделенных друг от друга точкой с запятой, и ограниченную операторными скобками – зарезервированными словами в языке Pascal – begin и end:
Поэтому приведенный оператор можно мысленно представить в таком виде: (S1;S2;…Sn).Составной оператор используется в том случае, если необходимо выполнить последовательность операторов внутри какой-либо конструкции как единое целое.