Читайте также:
|
|
Иногда бывает необходимо предусмотреть в программе "развилку", т.е. в зависимости от истинности или ложности какого-то условия выполнить соответствующие действия.
В языке Pascal условный оператор имееет вид:
IF условие THEN оператор1 ELSE оператор2
Он выполняется следующим образом:
1) вычисляется выражение (его результат должен быть типа Boolean);
2) если результат - True, то выполняется оператор1;
3) если результат - False, то выполняется оператор2.
Существует также сокращенная форма условного оператора:
IF условие THEN оператор
В этом случае, если условие истинно, то выполняется оператор, если же оно ложно, то оператор не выполняется.
Примеры:
Program IfExample;
{наити максимальное из двух чисел - a и b}
Var a, b: Real;
Begin
Write ('Введите 2 числа: ');
Read (a, b);
If a > b Then Write ('Первое')
Else Write ('Второе');
Writeln (' число больше.')
End.
Обратите внимание, что внутри условного оператора, как следует из формы его записи, разделитель НЕ СТАВИТСЯ (нет точки с запятой после вызова процедуры Write перед служебным словом Else).
Для облегчения чтения программы условный оператор удобно оформлять так:
IF условие
THEN оператор1
ELSE оператор 2
или так
IF условие THEN оператор1
ELSE оператор2
Условные операторы могут быть также "вложены" друг в друга, а также содержать сложные условия, составленные с помощью логических операций (not, or, and, xor).
Например, следующий оператор присваивает переменной x максимальное из трех чисел a, b и c:
If a > b and a > c Then x:= a
Else If b > c Then x:= b
Else x:= c
После Then или Else мы можем записать лишь один оператор. Как быть, если нам необходимо выполнить несколько действий подряд в зависимости от условия? Язык Pascal предоставляет такую возможность с использованием составного оператора, который имеет вид:
BEGIN оператор1; оператор2;... END
В этом случае последовательность операторов, заключенных между служебными словами Begin и End (они называются операторными скобками) воспринимаются Pascal'ем как один оператор. Таким образом, ограничение в один оператор после Then или Else можно обойти, применив составной оператор.
Пример: решить квадратное уравнение с коэффициентами a, b и c с точностью 0.1.
Var a, b, c, d, x1, x2: Real;
Begin
Write ('Введите коэффициенты a, b и c: ');
Read (a, b, c);
d:= Sqr (b) - 4 * a * c;
If d < 0 Then Writeln ('Корней нет.')
Else Begin
x1:= (-b - Sqrt (d)) / 2 / a;
x2:= (-b + Sqrt (d)) / 2 / a;
Writeln ('Корни уравнения ', x1:1:1, ' ', x2:1:1) End
End.
Оператор варианта.
Оператора выбора имеет вид:
CASE выражение OF
константа1: оператор1;
константа2: оператор2;
...
ELSE операторN
END
Выполняется оператор так:
1) вычисляется значение выражения (оно может быть и просто переменной);
2) выполняется оператор, чья константа (ее тип дожен совпадать с типом выражения) совпадает с вычисленным значением выражения;
3) если соответствующей константы не найдено, то выполняется оператор после служебного слова ELSE.
Как и для условного оператора, существует сокращенная форма оператора варианта (без ветви ELSE).
Дата добавления: 2015-02-16; просмотров: 20 | Поможем написать вашу работу | Нарушение авторских прав |