Условный оператор IF.
Условные операторы предназначены для выбора к исполнению одного из возможных операторов, в зависимости от некоторого условия.
Оператор If осуществляет выбор из двух альтернатив (одна из которых может быть пустым оператором) и имеет в общем случае следующий формат записи:
If < условие> then <оператор 1>
else <оператор 2>;
Записанный таким образом оператор If называется полным.
На месте условия может стоять:
1. Любая переменная булевского типа
2. Любое выражение отношения
3. Любое логическое выражение
Зам! Результат условия всегда принадлежит булевскому типу.
На месте операторов может стоять любой оператор Turbo Pascal.
Оператор If выполняется следующим образом:
1. Вычисляется выражение, стоящее на месте условия.
2. Если полученное значение истина(True) выполняется оператор1, идущий за словом then, если значение ложно (False) то выполняется оператор2, следующий за служебным словом else.
Пример,
Найти ошибку в записи оператора:
1. If x-5 tnen write(‘*’) else write(‘!’);
2. If x>y then x else write(‘!!!’);
3. If x=y then write(‘!’);
Оператор If может быть записан в неполной форме:
If <условие> then <оператор>;
Оператор выполняется в том случае, если условие истинно (True).
Задачи:
1. Определить, является ли введенное число четным.
Program _;
Uses CRT;
Var x:integer;
Begin
ClrScr;
Writeln(‘введите число’);
Readln(x);
If x mod 2=0 then writeln(x,‘-четное число’)
Else writeln(x,‘-не четное число’);
Readkey;
End.
2. Найти наибольшее из двух чисел.
Program _;
Uses CRT;
Var x, y:integer;
Begin
ClrScr;
Writeln(‘введите два числа’);
Readln(x, y);
If x =y then writeln(‘числа равны’)
Else if x>y then writeln(x,‘больше’)
Else writeln(y,‘больше’);
Readkey;
End.
3. Найти наибольшее из трех чисел.
Program _;
Uses CRT;
Var x, y, z, max:integer;
Begin
ClrScr;
Writeln(‘введите три числа’);
Readln(x, y, z);
If (x=y) and (y=z) then writeln(‘все числа равны’)
Else
begin
Max:=x;
If y>max then max:=y;
If z>max then max:=z;
writeln(‘наибольшее=’, max);
end;
Readkey;
End.
4. Вычислить:
Program _;
Uses CRT;
Var x, y:real;
Begin
ClrScr;
Writeln(‘введите аргумент’);
Readln(x);
If x>10 then y:=23
Else y:=sqr(x);
writeln(‘значение функции=’, y:10:2);
Readkey;
End.
Program _;
Uses CRT;
Var x, y:real;
Begin
ClrScr;
Writeln(‘введите аргумент’);
Readln(x);
If x<0 then y:=x-12
Else if x>5 then y:=1/x
Else y:=1+3*x;
writeln(‘значение функции=’, y:10:2);
Readkey;
End.
Зам! На месте любого оператора может стоять еще один условный оператор, в том числе и не полный. Например,
If <усл1> then <оп.1> if <усл2> then <оп2> else <оп3>
Возникает синтаксическая неоднозначность: к какому оператору относится служебное слово else.
Правило: служебное слово else всегда относится к ближайшему по тексту служебному слову If, не связанному со служебным словом else.
Лекция 16.
Дата добавления: 2016-05-25; просмотров: 746;