Условный оператор IF


Условный оператор включает в себя операторы, которые выполняются или не выполняются в зависимости от записанного в операторе условия. Оператор имеет вид:

 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; 
В условном операторе может отсутствовать блок Else оператор2; т. е. условный оператор может иметь вид:

IF "условие" Then "опертор1";

например: IFa<0 Then a:= abs(a);

Для разложения целого числа на цифры удобно применять операции: MOD и DIV. Например, если дано трехзначное число "N" ( "N" соответствует "X1X2X3" ), то цифры: X1X2X3, составляющие это число определяются блоком операторов:

 X3:= N mod 10;
 N:= N div 10;
 X2:= N mod 10;
 N:= N div 10;
 X1:= N;

Если требуется определить, делится ли вещественное число "A" нацело на число "B", то можно применять функции Frac(x); и Int(x); например:

 x := A/B; 
 if Frac(x) = 0 then writeln('Число "A" делится нацело на число "B"');
 if Int(x) = x then writeln('Число "A" делится нацело на число "B"');

Условный оператор может применяться для идентификации (распознавания) объекта по определенным признакам составляющих его элементов. Например, если объектом является треугольник, то элементами объекта могут быть: 1) три его угла (a, b, c); 2) три его стороны (a1, b1, c1); и т. д.

Признаками являются значения элементов по которым производится идентификация, например, для углов: 1) один угол > 90 - (один признак); 2) три угла < 90 - (три признака); и т. д.

В результате идентификации объект получает имя. Например, треугольник - остроугольный, либо тупоугольный и т. д.

Если идентификация проводится по одному признаку для нескольких элементов, то несколько условий связываются служебным словом "or", например:

 If (a > 90) or (b > 90) or (c > 90) then writeln ( 'Треугольник - тупоугольный' );

Если идентификация проводится по нескольким признакам, число которых равно числу элементов, то несколько условий связываются служебным словом "and", например:

 If (a < 90) and (b < 90) and (c < 90) then
 writeln('Треугольник - остроугольный');

Если имя объекта составное, то добавляются признаки для идентификации второй части имени и применяются вложенные условные операторы, например, для равнобедренного треугольника:

 If (a < 90)and (b < 90) and(c < 90) then
 If (a=b) or (b=c) or (a=c) then
 writeln('Треугольник - остроугольный и равнобедренный') 
 else writeln('Треугольник - остроугольный');  

Напомним, что условный оператор можно применять для контроля правильности вводимых данных, например:

  If (a+b+c)<>180 then
 begin
 writeln('Суммауглов <> 180');
 Halt 
 end;

Если для идентификации объекта достаточно меньшего числа признаков, чем число элементов, то условия, связанные "and" группируются, а группы соединяются служебным словом "or". Например, четырехугольник имеет элементами четыре стороны ( a, b, c, d ), а его имя устанавливается по двум признакам (равенство двух пар сторон), тогда можно использовать операторы:

  If ((a=b) and (c=d)) or ((a=c) and (b=d)) or ((a=d) and (b=c)) then
 writeln('Параллелограмм');
Последнее изменение: Среда 2 Декабрь 2009, 23:16