Условный оператор. Логические выражения
1. 7. 3. Условный оператор
Условный оператор включает в себя операторы, которые выполняются или не выполняются в зависимости от записанного в операторе условия. Оператор имеет вид:
If "условие" Then "оператор1" Else "оператор2";
где "условие" - выражение логического типа;
"оператор1" выполняется, если условие верно ( True ),
"оператор2" выполняется, если условие не верно ( False ).
Например, вычисление квадратного корня из числа "a" проводится при условии a>=0, операторами: IF a >= 0 Then b:= Sqrt(a) Else begin WriteLn ( 'a<0' ); Readln; Halt end;
Оператор Halt прекращает выполнение программы.
Схема выполнения условного оператора имеет вид:
IF В условном операторе может отсутствовать
( True ) блок Else оператор2; т. е. условный оператор
может иметь вид:
( False ) IF "условие" Then "оператор1";
например: IF a<0 Then a:= abs(a);
Else Then
оператор2 оператор1
22
Пример программы: Автобус движется по заданному маршруту с объявлением названий остановок. Зная остановку, на которой надо выходить, вы принимаете определенное решение: Выхожу, либо - Еду дальше, которое выводится на экран.
PROGRAM octanovka;
CONST A1= 'Бульвар Славы'; A2= 'Горсовет'; { A1, A2, A3, A4 - названия }
A3= 'Спортивная'; A4= 'УАИ'; { остановок }
Y= 'Выхожу'; N= 'Еду дальше';
var A, A0 : String; { A0 - текущая остановка }
BEGIN
writeln('Ввести нужную остановку из списка:');
writeln(A1:15, A2:15, A3:15, A4:15);
Writeln; readln(A); Writeln; { A - нужная остановка }
IF (A<>A1) and (A<>A2) and (A<>A3) and (A<>A4)
then begin Writeln('Нет такой остановки'); readln; Halt end;
A0:= A1; { объявление остановки }
IF A = A0 then begin writeln( Y, A:15); readln; Halt end
else writeln( A0:-15, N:12);
A0:= A2; { объявление остановки }
IF A = A0 then begin writeln( Y, A:15); readln; Halt end
else writeln( A0:-15, N:12);
A0:= A3; { объявление остановки }
IF A = A0 then begin writeln( Y, A:15); readln; Halt end
else writeln( A0:-15, N:12);
A0:= A4; { объявление остановки }
writeln( Y, A:15); readln;
END.
Первый условный оператор осуществляет контроль входных данных. Напомним, что в случае нескольких условий, соединенных логическим "И" результирующее условие имеет значение True, если каждое условие верно, иначе - False.
В случае нескольких условий, соединенных логическим "ИЛИ" результирующее условие имеет значение True, если хотя бы одно условие верно, иначе - False.
Поскольку операции сравнения имеют низший приоритет, то при проверке нескольких условий эти условия заключаются в скобки.
Практическое задание N 1. 5
1. Синоптики объявляют погоду на ближайшие дни: 1-солнце,
2-дождь, 3-туман, 4-ветер. Зная нужную вам погоду, вы принимаете определенное решение: жду нужную погоду, либо - беру отгул, которое выводится на экран. Программа запрашивает ввод нужной погоды и выводит на экран ваше решение на каждый день до дня отгула.
2. Старуха послала старика с просьбой: поймать в море нужную ей рыбку. Рыба клюет в определенной последовательности: окунь, камбала, линь, треска. Поймав рыбку, старик принимает решение: ловлю еще, либо - еду домой, которое выводится на экран. Программа запрашивает ввод нужной рыбки и выводит на экран решение старика на каждый улов до нужного.
23
В случае зависимых событий, исключающих одновременное их выполнение, могут применяться вложенные условные операторы. Во вложенных условных операторах служебное слово "else" относится к ближайшей конструкции If "условие" Then "оператор1" за которым оно следует, т. к. "оператор2" выполняется в случае, если "условие" - ложно.
Приведем пример программы определения весовой категории в зависимости от веса спортсмена.
PROGRAM VES; { определение весовой категории спортсмена }
Условная схема программы
C ONST A1='легкая категория';
A2='средняя категория'; Then
A3='тяжелая категория'; IF Writeln(A1)
A4='сверхтяжелая категория'; Else