Часть полного текста документа:Условный оператор. Блок. Оператор выбора С.А. Григорьев Условный оператор в Паскале записывается в виде: 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(ac)AND(ad)AND(cd) OR(a=c)AND(ab)AND(ad)AND(bd)OR (a=d)AND(ab)AND(ac)AND(bc)OR(b=c)AND(ba)AND(bd)AND(ad)OR (b=d)AND(ba)AND(bc)AND(ac)OR(c=d)AND(ca)AND(cb)AND(ab) 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; BEGIN WRITE('Введите дату '); READ(d,m,y); IF (m=1)OR(m=3)OR(m=5)OR(m=7) OR(m=8)OR(m=10)OR(m=12) THEN IF (d>=1)AND(d=1)AND(d=1)AND(d0) OR(y MOD 400=0) THEN Valid:=TRUE ELSE Valid:=FALSE ELSE Valid:=FALSE ELSE Valid:=FALSE; IF Valid THEN WRITELN('Дата верна') ELSE WRITELN('Дата не верна'); END. Оператор выбора во многих случаях удобнее, чем условный оператор, он записывается в виде : CASE выражение OF список значений : оператор/блок .................................. список значений : оператор/блок [ELSE оператор/блок] END; Здесь выражение - это любое выражение порядкового типа, список значений - это список разделенных запятыми константных выражений или диапазонов, диапазон - это конструкция вида константное выражение .. константное выражение. Константным будем называть любое выражение, в которое входят только неименованные и нетипизированные константы (т.е. ............ |