Формат оператора:
If условие THEN
оператор1
ELSE оператор2;
где условие - логическое выражение (т.е.
в него обязательно входит знак отношения, и
можно определить, истинно выражение или
ложно),
оператор1 - любой оператор Паскаля; этот
оператор исполняется, когда условие
истинно;
оператор2 - любой оператор Паскаля, в том
числе и условный; этот оператор
исполняется, когда условие ложно.
Выполнение оператора:
При выполнении этого оператора сначала
вычисляется значение условия.
Если условие истинно (true), то
выполняется оператор после слова THEN,
а оператор2 пропускается;
если условие ложно (false), то оператор1
пропускается, а выполняется оператор после
слова ELSE.
Примеры:
if x > 0 then
y:=sqrt(x)
else write ('Решений нет');
Операторы 1 и 2 могут быть любыми, в том числе и условными. В этом случае их называют вложенными.
Примеры:
if x > 0 then
y:=sqrt(x)
else
if x <= -3 then
y:=sqr(x)
else write ('Решений нет');
Части ELSE оператор2 может и не быть, тогда формат оператора:
If условие THEN оператор1;
Выполнение оператора:
Если условие истинно, то выполняется
оператор после слова THEN , а
иначе он пропускается.
Примеры:
if abs(x) >= 5 then
y:=exp(3*ln(x))
В условном операторе после слов THEN и ELSE можно помещать по несколько операторов. В этом случае их надо объединить в СОСТАВНОЙ оператор, который начинается словом BEGIN и заканчивается словом END; (на конце не точка, а точка с запятой!)
Примеры:
Составить программу, которая
перераспределит заданные значения x, y так,
что в х окажется большее значение, а в y
- меньшее.
program PRMAX;
var x, y, z: real;
begin
write ('Введите два числа: ');
read (x, y);
if x < y then
begin z:=x;
x:=y;
y:=z:
end;
writeln ('x =', x, 'y=', y);
end.
После слова IF допускается:
конъюнкция условий (условия
связываются при помощи логической операции
and),
дизъюнкция условий (условия
связываются при помощи логической операции
or);
инверсия условий (отрицание условия not)
Примеры:
Выяснить, принадлежит ли точка с
координатами (x, y) кольцу с центром в точке (0,
0), внешним радиусом r1 и внутренним
радиусом r2
program PRcir;
var x, y, r1, r2: real;
begin
write ('Введите координаты точки: ');
read (x, y);
writeln ('Введите радиусы r1, r2:: ');
read (r1, r2);
if (sqrt(sqr(x)+sqr(y))<r1) and (sqrt(sqr(x)+sqr(y))>r2)
then
writeln ('Точка принадлежит кольцу');
else writeln ('Точка не принадлежит
кольцу');
end.