Логические выражения в Паскале АВС
Составила Иванова Ирина Витальевна
Логическими являются такие данные и выражения, которые могут принимать только два значения – True и False.
Переменные логического типа описываются с использованием стандартного типа Boolean.
Например: Var tr, fal : Boolean;
Логическая переменная может принимать одно из двух значений: True (истина), False (ложь).
Причем True и False – заранее определенные именованные константы (их можно использовать без предварительного описания). Размер выделяемой памяти под логическое данное – 1 байт. Диапазон логических значений упорядочен так, что False
Логические выражения – это выражения, значения которых принадлежат к типу Boolean. Состоят из условий и логических переменных, соединенных между собой логическими операциями. В них может использоваться унарная логическая операция отрицания NOT expression-1 с бинарными логическими операциями expression-1 operator expression-2, где expression-1, expression-2 – простые условия или логические переменные; operator – одна из логических операций (AND, OR, XOR).
3) является истинным, а (39) - ложным - ложным, присвойте им значения двух переменных. Ответьте, каков будет результата выполнения программы: Var tr,fal: Boolean; Begin tr:=(93) ; fal:=(39); Writeln ('истина tr=',tr); Writeln (' ложь fal=',fal); End . Результат выполнения программы: истина tr= True ложь fal= False " width="640"
Пример. Зная, что условие (93) является истинным, а (39) - ложным - ложным, присвойте им значения двух переменных. Ответьте, каков будет результата выполнения программы:
Var tr,fal: Boolean;
Begin
tr:=(93) ; fal:=(39);
Writeln ('истина tr=',tr);
Writeln (' ложь fal=',fal);
End .
Результат выполнения программы:
истина tr= True
ложь fal= False
= B – правильно; A = B = C – неправильно. Операции отношения по старшинству одинаковы. Приоритет операций отношения считается меньшим, чем у операций арифметических действий. То есть значения выражений A B + 2 и A (B + 2) совпадают, ведь операция сложения выполняется первой и без скобок. В качестве условий в Паскале можно использовать выражения " width="640"
Операции отношения
Операции отношения действуют между парами выражений и не могут указываться последовательно:
A = B – правильно;
A = B = C – неправильно.
Операции отношения по старшинству одинаковы. Приоритет операций отношения считается меньшим, чем у операций арифметических действий. То есть значения выражений A B + 2 и A (B + 2) совпадают, ведь операция сложения выполняется первой и без скобок.
В качестве условий в Паскале можно использовать выражения
0 Это логическое выражение означает то же самое, что и A Бинарные логические операции Логическое умножение (конъюнкция) AND Смысл этой операции по-русски можно выразить словом И, то есть она дает значение True только в том случае, если оба условных выражения имеют значение True. Пример : (A 0) AND (A Это логическое выражение реализует условие, математическая запись которого такова: 0 " width="640"
Логические операции
Унарная логическая операция – отрицание.
Смысл этой операции по-русски можно выразить «Неверно, что», то есть она меняет значение True на False и наоборот.
Пример : NOT A 0
Это логическое выражение означает то же самое, что и A
Бинарные логические операции
Логическое умножение (конъюнкция) AND
Смысл этой операции по-русски можно выразить словом И, то есть она дает значение True только в том случае, если оба условных выражения имеют значение True.
Пример : (A 0) AND (A
Это логическое выражение реализует условие, математическая запись которого такова: 0
Логическое сложение (дизъюнкция) OR
Смысл этой операции по-русски можно выразить словом ИЛИ, то есть она дает значение True во всех случаях, кроме ситуации, когда оба условных выражения имеют значение False.
Пример : (A 5)
Это логическое выражение реализует составное условие A 5.
Используется также логическая неравнозначность (исключающее ИЛИ) – XOR.
Смысл этой операции по-русски можно выразить словом ЛИБО, то есть ее применение к условиям, имеющим одинаковое значение, приводит к результату False, а к условиям, имеющим различное значение, – к результату True.
Пример : (Х
Это логическое выражение имеет значение True, если точка с координатами (Х, Y) лежит во II или IV четверти.
В языке Паскаль нет возможности ввода логических данных с помощью процедуры Read. Однако предусмотрен вывод значений переменных логического типа с помощью процедуры Write.
Program Log;
Uses Crt;
Var a,b: Boolean;
Begin
ClrScr;
a:= True; b:= True; Writeln (a:6,b:6, a and b:6);
a:= True; b:= False; Writeln (a:6,b:6, a and b:6);
a:= False; b:= True; Writeln (a:6,b:6, a and b:6);
a:= False; b:= False; Writeln (a:6,b:6, a and b:6);
Readln;
End.
Составные условия
В логических выражениях логические операции могут связывать несколько логических переменных или условий, например:
(Х
(Х
, =, , =; последняя операция (‘=’) называется проверкой на эквивалентность. Условие X 100 можно записать так: (X 100) Это же условие можно сформулировать словами: «X не принадлежит отрезку [0, 100]» и записать следующим образом: NOT ((0 Условие «X, Y, Z одновременно обращаются в 0» можно записать так: (X = 0) AND (Y = 0) AND (Z = 0) " width="640"
Порядок выполнения логических операций следующий:
унарная операция NOT имеет первый (высший) приоритет;
операция логического умножения AND имеет второй приоритет, как и другие мультипликативные операции *, /, div, mod;
операция логического сложения OR и исключающее или XOR имеют третий приоритет, как другие аддитивные операции +, –;
четвертый (низший) приоритет имеют операции отношения , =, , =;
последняя операция (‘=’) называется проверкой на эквивалентность.
Условие X 100 можно записать так: (X 100)
Это же условие можно сформулировать словами: «X не принадлежит отрезку [0, 100]» и записать следующим образом:
NOT ((0
Условие «X, Y, Z одновременно обращаются в 0» можно записать так:
(X = 0) AND (Y = 0) AND (Z = 0)
Пример . Запишите логические выражения для следующих условий:
1) Х удовлетворяет неравенству Y
2) Х не принадлежит интервалу (C,D);
3) число Х отрицательно и отлично от -1;
4) хотя бы одно из чисел Y,X,Z равно 0;
5) все числа Y,X,Z отличны от 0.
РЕШЕНИЕ:
1) (Y
2) (X
3) (X-1);
4) (X=0) OR (Y=0) OR (Z=0);
5) (X0) AND (Y0) AND (Z0)
Вывод:
Логическое выражение – это выражение, которое может принимать одно из двух значений False или True. В него могут входить выражения, логические переменные, отношения, соединенные логическими операциями.
Очередность логических операций:
NOT;
AND;
OR, XOR.
Операции отношения имеют низший (4-й) приоритет и выполняются в последнюю очередь.
Вопросы для повторения:
• Что такое простое условие? Какие операции отношения используются в нем?
• Что является результатом выполнения операции отношения?
• Что такое составное условие? Какие логические операции используются в нем? Каков приоритет их выполнения? Как изменить этот приоритет?
• В логическом выражении (составном условии) используются две величины логического типа (два простых услчовия) — А и В. Сколько возможно различных вариантов сочетаний значений А и В?
• В логическом выражении (составном условии) используются три величины логического типа (три простых условия) — А, В и С. Сколько возможно различных вариантов сочетаний значений А, В и С?
Решение задач
Пример 1. Вычислить значение логического выражения, если А = Истина, В — Ложь, С = Ложь:
а) А или С; б) (А и С) или В
Этапы выполнения задания.
I. Определение исходных данных: переменные А, В, С типа Boolean .
II. Определение результатов: переменные rezA, rezB.
III. Алгоритм решения задачи.
1. Ввод исходных данных
2. Вычисление значений rezA, rezB. .
3. Вывод результата.
IV. Описание переменных:
Все переменные, определенные для решения задачи, имеют тип Boolean .
V. Программа:
var A,B,C,rezA,rezB:Boolean;
Begin
A:=true;
B:=false;
C:=false;
rezA:= A OR C;
rezB:= (A AND C) or B;
writeln ('rezA=',rezA);
writeln ('rezB=',rezB);
End .
Пример 2. Вычислить значение логического выражения , если Х=Ложь, Y=Ложь, Z=Истина:
a) Х или У и не Z; б) не(Х и Z)или У.
Этапы выполнения задания.
I. Определение исходных данных: переменные Х , Y , Z типа Boolean .
II. Определение результатов: переменные r1, r2.
III. Алгоритм решения задачи.
1. Ввод исходных данных
2. Вычисление значений r1, r2.
3. Вывод результата.
IV. Описание переменных:
Все переменные, определенные для решения задачи, имеют тип Boolean .
V. Программа:
var X,Y,Z,r1,r2:Boolean;
Begin
X:=false;
Y:=false;
Z:=true;
r1:= X OR Y AND (NOT Z);
r2:= NOT(X AND Z) or Y;
writeln ('r1=',r1);
writeln ('r2=',r2);
End .
Пример 3. Вычислить значение логического выражения: х 2 +у 2 ≤4
Этапы выполнения задания.
I. Определение исходных данных: переменные х,у.
II. Определение результата: переменная z.
III. Алгоритм решения задачи.
1. Ввод исходных данных.
2. Вычисление значения z.
3. Вывод результата.
IV. Описание переменных:
Переменные х, у типа integer , z - Boolean .
V. Программа:
var x,y:integer;z:Boolean;
Begin
write ('x='); readln (x);
write('y='); readln (y);
z:= sqr(x)+sqr(y)
writeln ('z=',z);
End.
Задачи для самостоятельного решения
1. Вычислить значение логического выражения, если X = Ложь, У = Истина, Z = Ложь:
а) X или Z;
б) X и У;
в) X и Z.
2. Вычислить значение логического выражения, если А = Истина, В = Ложь, С = Ложь:
а) не А и В;
б) А или не В;
в) А и В или С.
3. Вычислить значение логического выражения, если X = Истина, У = Истина, Z = Ложь:
а) не X и У;
б) X или не У;
в) X или У и Z.
4. Вычислить значение логического выражения, если А = Истина, В = Ложь, С = Ложь:
а) А или Б и не С;
г) А и не В или С;
б) не А и не В;
д) А и (не В или С);
в) не (А и С) или В;
е) А и (не (В или С)).
5. Вычислить значение логического выражения, если X = Ложь, У = Ложь, Z = Истина:
а) X или У и не Z;
г) X и не У или Z;
б) не X и не У;
д) X и (не У или Z);
в) не (X и Z) или У;
е) X и (не (У или Z)).
6. Вычислить значение логического выражения, если А — Истина, В = Ложь, С = Ложь:
а) А или не (А и В) или С;
б) не А или А и (В или С);
в) (А или В и не С) и С.
7. Вычислить значение логического выражения, если X = Ложь, У = Истина, Z = Ложь:
а) X и не (Z или У) или не Z;
б) не X или X и (У или Z);
в) (X или У и не Z) и Z.
8. Вычислить значение логического выражения, если X = Истина, У = Ложь, Z = Ложь:
а) не X или не У или не Z;
б) (не X или не У) и (X или У);
в) X" и У или X и Z или не Z.
х) при х = 2, у = 1; д) (х • y ≠ 0) или (y е) (не (х•у х) при х = 2, г/ = 1; ж) (не (х • у х) при х = 1, у = 2. 11. Вычислить значение логического выражения: а) х2 - у2 б) (х ≥ 2) или (у2 ≠ 4) при х = 2, y = -2; в) (х ≥ 0) и (у2 4) при х = 2, у = 2; г) (х • у ≠ 4) и (y х) при х = 1, у = 2; д) (х • у ≠ 0) или (у е) (не (х • у х) при х = 1, у = 2; ж) (не (х • y х) при х = 2, y = 1. " width="640"
9. Вычислить значение логического выражения, если А = Ложь, В = Ложь, С = Истина:
а) (не А или не В) и не С;
б) (не А или не В) и (А или В);
в) А и В или А и С или не С.
10. Вычислить значение логического выражения:
а) х2 + у2 ≥ 14 при х = 3, у = -3;
б) (х ≥ 0) или (у2 ≠ 4) при х = 1, у = 2;
в) (х ≥ 0) и (у2 ≠ 4 ) при х = 1, у = 2;
г) (х • y ≠ 0) и (у х) при х = 2, у = 1;
д) (х • y ≠ 0) или (y
е) (не (х•у х) при х = 2, г/ = 1;
ж) (не (х • у х) при х = 1, у = 2.
11. Вычислить значение логического выражения:
а) х2 - у2
б) (х ≥ 2) или (у2 ≠ 4) при х = 2, y = -2;
в) (х ≥ 0) и (у2 4) при х = 2, у = 2;
г) (х • у ≠ 4) и (y х) при х = 1, у = 2;
д) (х • у ≠ 0) или (у
е) (не (х • у х) при х = 1, у = 2;
ж) (не (х • y х) при х = 2, y = 1.
12. Вычислить значение логического выражения при всех возможных значениях логических величин А и В:
а) не (А и В);
б) не А или В;
в) А или не В.
13. Вычислить значение логического выражения при всех возможных значениях логических величин X и У:
а) не (X или У);
б) не X и У;
в) X и не У.
14. Вычислить значение логического выражения при всех возможных значениях логических величин А и В:
а) не А или не В;
б) А и (А или не В);
в) (не А или В) и В.
15. Вычислить значение логического выражения при всех возможных значениях логических величин X и У:
а) не X и не У;
б) X или (не X и У);
в) (не X или У) и У.
16. Вычислить значение логического выражения при всех возможных значениях логических величин А и В:
а) не А и не В или А;
б) В или не А и не В;
в) В или не (А и не В).
Проверка знаний Тест: Вычисление логических выражений
Источник: http://svgimnazia1.grodno.by/sinica/Book_ABC/Book_ABC_pascal/lin6.htm