Статья: Условный оператор. Блок. Оператор выбора
Условный оператор в Паскале записывается в виде:
IF логическое выражение THEN оператор/блок [ELSE оператор/блок] логическое выражение - это любое выражение, значение которого имеет тип Boolean, блок - это последовательность операторов, заключенная в логические скобки : BEGIN операторы END; . Перед ELSE никогда не ставится ";" ! Перед END в большинстве случаев можно не ставить ";". Если значение логического выражения TRUE, то выполняется оператор или блок, стоящий после THEN, в противном случае - оператор или блок, стоящий после ELSE. Конструкция ELSE необязательна, условный оператор можно использовать и в усеченном виде, тогда при значении логического выражения FALSE не выполняется никаких действий. Операторы, входящие в условный оператор, сами могут быть условными, т.е. допускается любая вложенность условных операторов. Запишем теперь предыдущую задачу о четырех числах, используя оператор IF :
VAR a,b,c,d : Integer;
BEGIN WRITELN('Введите 4 целых числа, a,b,c и d, среди ',
'которых должно быть 2 и только 2 одинаковых!');
WRITE('a='); READ(a); WRITELN; WRITE('b='); READ(a); WRITELN;
WRITE('c='); READ(a); WRITELN; WRITE('d='); READ(a); WRITELN;
IF(a=b)AND(a<>c)AND(a<>d)AND(c<>d) OR(a=c)AND(a<>b)AND(a<>d)AND(b<>d)OR
(a=d)AND(a<>b)AND(a<>c)AND(b<>c)OR(b=c)AND(b<>a)AND(b<>d)AND(a<>d)OR
(b=d)AND(b<>a)AND(b<>c)AND(a<>c)OR(c=d)AND(c<>a)AND(c<>b)AND(a<>b)
THEN WRITELN('Вы довольно понятливы')
ELSE WRITELN('Вы ошиблись !!!');
READLN;
END.
Можно решить эту задачу и другим способом :
VAR a,b,c,d : Integer;
CONST num : Byte = 0;
BEGIN WRITELN('Введите 4 целых числа, a,b,c и d, среди ',
'которых должно быть 2 и только 2 одинаковых!');
WRITE('a='); READ(a); WRITELN; WRITE('b='); READ(a); WRITELN;
WRITE('c='); READ(a); WRITELN; WRITE('d='); READ(a); WRITELN;
IF a=b THEN Inc(num); IF a=c THEN Inc(num); IF a=d THEN Inc(num);
IF b=c THEN Inc(num); IF b=d THEN Inc(num); IF c=d THEN Inc(num);
IF num=1 THEN WRITELN('Вы довольно понятливы')
ELSE WRITELN('Вы ошиблись !!!');
READLN;
END.
Теперь попробуем записать условный оператор, реализующий более сложную логическую структуру. Пусть даны три числа d, m и y, содержащие число, месяц и год для некоторой даты; необходимо выяснить, правильна ли эта дата.
VAR d,m : Byte; y : Word; Valid : Boolean;
--> ЧИТАТЬ ПОЛНОСТЬЮ <--