Логические величины и выражения

Довольно часто на поставленный вопрос Вы получаете ответ «да» или «нет». Величины, которые могут принимать одно из двух значений «истина» (TRUE) или «ложь» (FALSE), называют логическими. Им соответствует логический тип данных, который в Паскале описывается как Boolean. Значение логического типа занимает в памяти 1 байт: FALSE – 0, TRUE – 1.

Найдите ответ на вопрос, с чем связано название логического типа – Boolean.

Допустимые операции для логического типа данных: операции сравнения (отношения) и логические операции.

Арифметические выражения можно сравнивать между собой с помощью операций сравнения. Эти операции известны Вам из курса математики. В Паскале им соответствуют операции сравнения: = (равно), <> (не равно), > (больше), >= (больше или равно, то есть, не меньше), < (меньше), <= (не больше).

С помощью операций сравнения можно построить выражения сравнения, например, х=5; a>b; a*x+3<=0; 7-x<>5*c; a>=b*c; omega < pi/2; 4=3.

Эти выражения можно присваивать логическим переменным или использовать в условных операторах.

Пример 1. Пусть имеется описание Var Q, W, E : Boolean ; R : Real ; Тогда возможны присваивания: R:=3; Q:=R<7; W:=True; E:=False; В результате выполнения операторов переменные Q, W, E получат соответственно значения True (так как выражение 3<7 истинно), True, False.

Пример 2 (использование операций сравнения). Программа проверки утверждения: верно ли, что A>B (числовые значения величин A и B вводятся с клавиатуры):

           
 
Program TRU_FA1; Var A, B: Real ; Z : Boolean ; Begin Write ('A=') ; Readln (A) ; Write ('В=') ; Readln (В) ; Z :=A>B ; Writeln (Z) ; End.
 
Протокол работы программы:   A=5 В=3 True A=0 В=4.8 False A=10 В=10 False
   
 
 

 


После запуска программы введем числа 5 (оно будет передано переменной A) и 3 (передается переменной B). Результат работы программы: True (действительно, 5>3 – истинное неравенство).

Пример 3. Программа проверки: правильно ли пользователь даст ответ на вопрос: «Когда был основан город Минск?».

Program TRU_FA2 ;

Var G : Integer ;

Z : Boolean ;

Begin

Writeln ('Когда был основан город Минск? ') ;

Readln (G) ;

Z :=G=1065 ;

Writeln (Z) ;

End.

Выражение называется логическим, если результатом его вычисления является логическое значение: TRUE или FALSE.

Логические выражения строятся с помощью допустимых операндов и логических операций AND (И), OR (ИЛИ), NOT (НЕ). Примеры логических выражений: (a>b) and (a>c); (Х<=1) or (Y>5) and (a>2); (4*Х-1>0) and (Х+2<3); not (a=b). Операции сравнения имеют низший приоритет по сравнению с другими операциями, поэтому отношения в логических выражениях заключают в скобки.

Ниже записаны логические операции от высшего приоритета к низшему (операции высшего приоритета выполняются в первую очередь):

Операция Действие
NOT Отрицание или логическое НЕ
AND Логическое умножение или логическое И
OR Логическое сложение или логическое ИЛИ

Результаты выполнения логических операций (T – истина, F – ложь):

X Y Логическая операция
NOT X X AND Y X OR Y
T T F T T
T F F F T
F T T F T
F F T F F

Приведем порядок вычисления значения логического выражения

(4*Х-1>0) and (Х+2<3): вычисляется значение выражения 4*Х-1, затем оно сравнивается с числом 0 и определяется истинность условия 4*Х-1>0; аналогично для логического выражения Х+2<3; затем вычисляется значение всего выражения в зависимости от значений каждого выражения:

Х 4*Х-1>0 X+2<3 (4*X-1>0) and (x+2<3)
19>0 à True 7<3 à False True and False à False
0.5 1>0 à True 2.5<3 à True True and True à True

Пример 4 (использование логических выражений). Проверим справедливость утверждения: верно ли, что человек, возраст которого x задан, является школьником. Задача сводится к проверке условия: 6 ≤ х ≤19.

Program LOGIST ;

Var x : Byte ;

L, P, Z : Boolean ;

Begin

Write ('Возраст=') ;

Readln (x) ;

L := x>=6 ;

P := x<=19 ;

Z := L and P ;

Протокол работы программы:   х=34 False x=15 True
Writeln (Z) ;

End.

 

1. Определите порядок вычисления значений выражений и найдите их результаты:

1) 3 + sqr (2) <10 2) abs (a-b) <= abs (a) + abs (b)

3) sqr (sin (x)) + sqr (cos (x)) > 1.5 4) sqrt (x*x+y*y)=2

2. Определите, справедливы ли следующие условия (если да, то при каких значениях х):

1) round (x) = trunc (x) 2) trunc (x) ≥ x 3) х div 5 = x mod 5

4) 15 div x = 15 mod x * 5) х div 5 = 7 * 6) 55 div x = 7

3. Определите порядок вычисления значений логических выражений:

1) (a*X+5>X1) and (-2*X-1<X2) 2) ((a+3)*x<=2.5) or (x<>y)

* 4. Определите, что будет выведено на экран компьютера, если a=true, b=false, c=true:

1) c:=a and b and c ; Writeln (c) ; 2) c:=a or b or c; Writeln (c) ;

3) c:=a and b or c ; Writeln (c) ; 4) c:=a and (b or c) ; Writeln (c);

5) c:=(a and b) or c; Writeln (c) ; 6) c:=a and b or not c ; Writeln (c) ;

5. Определите тип выражения:

1) 4+(x+y)*z+sqrt(x*x+y) 2) 6 < C+B*A 3) 89Е-3*Н/5 = 12

4) X=2 5) sqr (sin (pi/3)) 6) frac(cos(x) + sin(x))

6. Запишите следующие выражения средствами языка программирования Паскаль:

1) a < 1 2) 3) 4) 0 < a < 1

5) 0,1 ≤ X-a ≤ 0,9 6) X [-5; 0) (2; 10) * 7)

7. Запишите следующие высказывания в виде логических выражений:

1) температура воздуха находится в диапазоне [22; 30] градусов Цельсия;

2) среднемесячный доход Вашей семьи составляет …;

3) суммарная стоимость покупки (карандаша и пенала) не превышает 7000 р.;

* 4) значения длин сторон прямоугольника не превышают соответственно 10 и 17.

8. Напишите программы решения задач: проверить утверждение:

1) запрошенный с клавиатуры год относится к XXI веку;

* 2) введенное число является решением неравенства x2 -4>0;

3) Федор может купить на заданную денежную сумму нужное количество тетрадей (стоимость тетради, их количество и имеющаяся сумма вводятся с клавиатуры);

4) текстовый файл поместится на дискету 3,5 дюйма (такая дискета вмещает 1,44 Мбайт), если известно, что в файл записывают рукопись, объем которой (в страницах) вводится с клавиатуры; каждая страница рукописи содержит 56 строк по 80 символов в каждой;

5) сумма цифр заданного двузначного натурального числа является четным числом;

* 6) каждая цифра заданного двузначного натурального числа четная;

* 7) поля шахматной доски (a1, b1) и (a2, b2) одинакового цвета, где поле (a, b) задается номером строки и столбца.

* 9. Напишите программу для определения:

1) можно ли образовать треугольник с длинами сторон, равными заданным трем действительным числам;

2) корректности входных данных к задаче 1 (п. 9.1).

3) принадлежности точки (x, y) заданной области: