Тема 2. ИСПОЛЬЗОВАНИЕ УСЛОВНОГО ОПЕРАТОРА
Логические выражения
Логические выражения состоят из логических переменных и констант, логических операций и операций отношений. Результатом логического выражения является значение true (истина) или false (ложь).
Отношения могут состоять из двух арифметических выражений, соединенных знаком операции отношения.
Операциями отношений являются
< меньше < = меньше или равно
> больше > = больше или равно
= равно < > не равно
Отношение имеет значение true, если заданное в нем с помощью операции отношения сравнение между значениями выражений имеет место, и значение false - в противном случае, например, отношения
5 > 3, abs(sin(x)) <= 1
В Паскале определены три логические операции:
not - отрицание;
and - логическое умножение;
or - логическое сложение.
Эти операции применимы только к логическим операндам и дают результат того же типа.
Логическое умножение (A and В) дает значение true только в том случае, если и А, и В имеют значение true. Если хотя бы один операнд (или оба) имеет значение false, то результат также имеет значение false. Логическое сложение (A or В) дает значение false в том и только в том случае, если А и В одновременно имеют значение false. Если хотя бы один операнд (или оба) имеет значение true, то результат также имеет значение true.
Операция отрицания (not А) дает значение false, если А имеет значение true и, наоборот, дает true, если А - false.
В логическом выражении принят следующий приоритет операций:
1. not (выполняется в первую очередь).
2. * , /, div, mod, and.
3. + ,-, or.
4. <, <=, =, <>, >, >=.
Операции, указанные в строке с одним порядковым номером, имеют одинаковый приоритет и в логическом выражении выполняются слева направо.
В логическом выражении допускается использование только круглых скобок. При наличии скобок сначала выполняются действия в них (в первую очередь, в самых внутренних), а затем вне скобок. В круглые скобки обязательно заключаются отношения, стоящие слева и справа от логических операций and и or, например (а > 2) and (a < 5).
Условный оператор
В Паскале имеется две формы условного оператора: полная и сокращенная. Полный условный оператор имеет вид:
if А then S1 else S2;
где if (если), then (то), else (иначе) - служебные слова,
А - логическое выражение;
S1, S2 - операторы.
Перед else нельзя ставить точку с запятой.
Если выполняется условие (логическое выражение А принимает значение true), то выполняется оператор S1, в противном агучае выполняется оператор S2. В том случае, когда необходимо выполнить несколько операторов, а не один, как в определении, используется составной оператор.
Составной оператор - это последовательность операторов, взятая в операторные скобки begin... end, т. е. это конструкция вида
begin S1; S2; ... ; Sk end;
где S1, S2,..., Sk - операторы.
Примеры полных условных операторов:
if x > 0 then у := ln(x) else у:=1;
if abs(x) <=abs(y) then
begin z:=x+y; write(z)
end
else
begin z := sqr(x) - sqr(y); write(z)
end;
Краткий условный оператор имеет вид:
if A then S;
где А - логическое выражение, S - оператор.
Если выполняется условие (логическое выражение принимает значение true), то выполняется оператор S, иначе управление передается оператору, следующему за данным условным оператором.
Примеры краткого условного оператора:
if у < 1 then z := ехр(у);
if(a>6) and (x>0)then
begin с := а –b ; у := х + 2
end;
Часто в программах требуется найти максимум или минимум.
В Турбо Паскале нет стандартных функций для их нахождения. Определяют максимум или минимум, используя, условный оператор.
Пример 1. Найти максимальное из значений двух переменных, т. е. x = мах (а, b).
if a > b then х := a else х:=b;
Пример 2. Найти максимальное из значений трех переменных, т. е. х = мах(а, b,с).
if a > b then x := a else x:= b;
if c>x then x:=c;
Примечание. При нахождении минимального значения знак неравенства меняется на противоположный.
Пример выполнения задания 2
Даны три целых числа А, В и С.
Если A + В>С, то X =
, Y = , Z = ln(B + C),
иначе Х = А-С, Y = A2-С2, Z = ln(AC).
Вычислить значение функции u по правилу:
где D1 и D2 - заштрихованные части плоскости (рис. 1).
Вывести на экран значения переменных X, Y, Z и функции U. Записи
(x, y) Dl, (x,y) D2 означают, что точка с координатами (х, у) принадлежит области D1 или D2.

programm lab2;
uses cn;
var u, x,у, z: real; a, b, c: integer;
begin clrser; writeln(‘Введите а, b,c’);
reading (a, b,c);
if a+b > с then begin x := a +b;
у := sqrt(a*fa +b*b);
z:= ln(6b+ c)
end I
else
begin x := a - c;
y:= a*a - c*c;
z := ln(a*c);
end;
writeln (‘y-‘,x : 5 : 2,' y-',у: 5 :2, 'z-‘, z:5:2)
if (y <= 2*x/3 + 2) and (y > x*x) then и := x*x
else
if (sqrt(sqr(x) + sqr(y) >= 2) and (sqrt(sqr(x) + sqr(y) <= 3) and
y<0)
then u:=x+y else и:= 0;
writeln(‘u=’, u : 7 : 2)
end.


