Оператор условия if.
Оператор условия if является одним из самых популярных средств, изменяющих естественных порядок выполнения программы.
Условный оператор имеет две формы записи: полную и краткую.
if <Условие> then <оператор1> else <оператор2>;
if <Условие> then <оператор>;
Оператор условия выполняется следующим образом: сначала вычисляется выражение записанное в условии, если оно верно, то выполняется оператор1, в противном случае оператор2 (полная форма), ничего не происходит (краткая форма). Условный оператор является единым предложением, поэтому ни перед then, ни перед else символ ‘;’ не ставится.
Операторы if могут быть вложенными.
Пример фрагмента программы с оператором условия:
1) if x<0 then y:=x+1 else y:=2*x;
2) if b<>0 then c:=a/b;
3) if (n>15) and (n<25) then a:=n+40 else b:=n+1;
4) if a=b then if c<d then x:=1 else x:=2 else x:=3;
5) if a>b then begin y1:=2/a; y2:=a+b; end
else begin y1:=2*a; y2:=a-b; end;
З: при использовании вложенных условных операторов может возникнуть синтаксическая неоднозначность, иллюстрируемая следующей схемой:
if условие1 then if условие2 then <оператор1>
else <оператор2>
Возникает двусмысленность, к какому оператору if принадлежит часть else. Служебное слово else всегда ассоциируется с ближайшим по тексту служебным словом if, которое еще не связано со служебным словом else.
Задача 1. Вывести на экран номер четверти, которой принадлежит точка с координатами (х,у), при условии, что х и у отличны от нуля.
program koordinati;
var x,y:real;
BEGIN
Write(‘Введите координаты точки:’);
Readln(x,y);
if x>0 then if y>0 then writeln(‘точка находится в 1-ой четверти’) else writeln(‘точка находится в 4-ой четверти’)
else if y>0 then writeln(‘точка находится в 2-ой четверти’) else writeln(‘точка находится в 3-ой четверти’);
END.
Задание 2. В небоскребе N этажей и всего один подъезд; на каждом этаже по 3 квартиры. Человек садится в лифт и набирает номер нужной ему квартиры М. На какой этаж должен доставить лифт пассажира.
program Lift;
var M,x:integer;
BEGIN
Write(‘Введите номер квартиры:’);
Readln(M);
x:=M div 3; {Определяем целую часть от деления номера квартиры на 3}
{Проверяем условие целочисленного деления на 3. Если “истина”, то х будет нужным результатом, если “ложь” – к х добавляем единцу}
If M mod 3 = 0 then writeln(‘Номер этажа =’,x)
else writeln(‘Номер этажа =’,x+1);
END.
Задача 3. Найти наибольшее значение среди трех величин.
program Max;
var a,b,c,max:integer;
BEGIN
Write(‘Введите три числа a,b,c:’);
Readln(a,b,c);
if a>b then max:=a
else max:=b;
if c>max then max:=c;
writeln(‘Наибольшее число =’,max);
END.
Дата добавления: 2016-02-02; просмотров: 1007;