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

Если условие выполняется, то говорят, что соответствующее выражение истинно, если не выполняется - выражение ложно. Для построения сложных условий в Паскале имеются четыре логических операции:
NOT - отрицание (НЕТ),
AND - логическое умножение (И),
OR - логическое сложение (ИЛИ),
XOR - исключающее "или".

Результаты логических операций для различных значений операндов приведены в таблице, где использованы обозначения: Т- true (истина), F - false (ложь).

A B Not A A and B A or B A xor B
T T F T T F
T F F F T T
F F T F F F
F T T F T T

где А и В результат операции отношения.

Приоритеты логических операций: 1) not; 2) and; 3) or; 4) xor.

Примеры логических выражений:
a) (0<x) AND (x<=1)
b) (a=0) OR (abs(x)<5)
c) NOT (x=y)

Операции отношений имеют более низкий приоритет, чем логические операции, поэтому их следует заключать в скобки при использовании с логическими операциями.

Из переменных, констант, сравнений, логических операций и скобок можно строить логические выражения.

Рассмотрим следующую задачу:
Имеется прямоугольное отверстие со сторонами а и b и кирпич с ребрами х, у, z. Требуется определить пройдет ли кирпич в отверстие.

Решение.
Кирпич имеет три грани, каждую из которых мы можем повернуть на 90 градусов, т.е. для каждой грани надо проверит два случая. Итого шесть. Получаем условие:

(a>x)and(b>y) or (b>x) and (a>y) or
(a>x) and(z>y) or (z>x) and(a>y) or
(b>x) and(z>y) or (z>x) and(b>y)

Код программы:
Program prim_8;
Var a,b,x,y,z:integer;
F:boolean;
Begin
Write('введите размеры отверстия');
Readln(a,b);
Write('введите размеры кирпича');
Readln(x,y,z);
If (a>x)and(b>y) or (b>x)and(a>y) or (a>x)and(z>y) or
(z>x)and(a>y) or (b>x)and(z>y) or (z>x)and(b>y)
then Writeln ('Кирпич пролезет в отверстие')
Else Writeln ('Кирпич не пролезет в отверстие');
Readln
End

Тренировочные задания к 8 уроку.
1. Установить, истинны или ложны следующие условия:
(A=0) and not (B=0) or not (a=0) and (B=0) при
a) А=0, В=0
b) А=0, В=1

2. Ввести три числа. Выбрать и напечатать наибольшее из них.

3. Написать программу, которая требует ввода времени дня и, в зависимости от введенного значения, желает доброго утра, доброго дня, доброго вечера или спокойной ночи.

4. Даны три числа. Найдите наибольшее значение их суммы и произведения.

5. Даны три числа а, b, с. удвойте эти числа, если они являются упорядоченными по возрастанию.

6. Проверьте, есть ли среди трех заданных чисел равные.

7. Дано двузначное число. Определить:
a) какая из его цифр больше, первая или вторая;
b) одинаковы ли его цифры.

8. Известны площади круга и квадрата. Определить:
a) Уместится ли круг в квадрате;
b) Уместится ли квадрат в круге.

9. Дано трехзначное число. Выяснить, является ли оно палиндромом ("перевертышем"), т.е. таким числом, десятичная запись которого читается одинаково слева направо и справа налево.

Урок 9


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: