Тема 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.