Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
delphi / песни о паскале.pdf
Скачиваний:
62
Добавлен:
26.03.2016
Размер:
5.16 Mб
Скачать

Глава 13

Правда и кривда

if (A or B) and (C or D)

then S:=’Поезжай на машине!’

else S:=’Топай пешком!’;

Наконец, рассмотрим маршрут на рис. 35, где путь преграждает шлагбаум. Договоримся, что закрытому шлагбауму соответствует значение TRUE (то есть, в сравнении с улицами тут всё наоборот).

Шлагбаум A=TRUE если закрыт

Дом

Школа

Рис. 35 – Схема проезда, пятый вариант

Рассуждая как обычно, скажем так: «проезд возможен, если НЕ закрыт шлагбаум». Здесь применено логическое отрицание НЕ, что по английски значит «NOT». Решение на Паскале будет таким.

if not A

then S:=’Поезжай на машине!’

else S:=’Топай пешком!’;

В отличие от двух предыдущих операций, логическое отрицание — одноместная операция, ей нужен лишь один операнд. Логическое отрицание имеет наивысший приоритет, и выполняется раньше логического умножения и сложения.

Парад логических операций

Итак, посредством логических операций мы переводим рассуждения с человеческого языка на формальный язык программирования, получая при этом логические (булевы) выражения. Логические данные в Паскале можно сравнивать и выполнять с ними четыре логические операции, три из которых вам уже знакомы. Рассмотрим свойства этих операций.

Логическое отрицание NOT («НЕ»). Имеет наивысший приоритет, то есть, при отсутствии скобок выполняется в первую очередь. Это одноместная операция, поскольку требует лишь одного операнда. По своему действию она напоминает знак «минус» для чисел, поскольку изменяет значение операнда на противоположное. Правила для этой операции таковы.

93

Глава 13

Правда и кривда

NOT

FALSE =

TRUE

NOT

TRUE =

FALSE

 

 

 

Логическое умножение AND («И»). Приоритет ниже, чем у NOT, но выше, чем у логического сложения OR. Требует двух операндов, и в результате дает TRUE,

если оба операнда равны TRUE.

FALSE

AND

FALSE

=

FALSE

FALSE

AND

TRUE

=

FALSE

TRUE

AND

FALSE

=

FALSE

TRUE

AND

TRUE

=

TRUE

 

 

 

 

 

Логическое сложение OR («ИЛИ»). Приоритет самый низкий, — выполняется в последнюю очередь. Требует двух операндов и в результате дает TRUE, если хотя бы один из операндов равен TRUE.

FALSE OR

FALSE = FALSE

FALSE OR TRUE = TRUE

TRUE OR FALSE = TRUE

TRUE OR TRUE = TRUE

Итоги

Информация – это то, что устраняет неопределенность.

Получая ответ на вопрос, мы получаем информацию. Количество информации можно измерить.

Наименьшая порция информации – бит – содержится в ответе на простой вопрос («да» или «нет»). Это количество принято за единицу измерения информации.

Память компьютера состоит из элементарных ячеек – триггеров, каждый из которых хранит один бит информации. Восемь битов составляют один байт.

Подобие триггеров в Паскале – булевы (логические) переменные. Они принимают только одно из двух значений: TRUE (истина) или FALSE (ложь).

Булевы переменные в сочетании с логическими операциями OR, AND, NOT и скобками образуют булево выражение. Скобки нужны для изменения естественного порядка выполнения операций.

Булевы выражения используют в условных и циклических операторах.

94

Глава 13

Правда и кривда

А слабо?

А) Что будет напечатано в результате выполнения следующего фрагмента?

S:=’123’;

Writeln (’123’=S);

Б) Переведите на русский язык это выражение.

if (S=’’) and (A or B) then ...

В) Напишите программу к бортовому компьютеру для маршрута на рис. 36.

 

 

 

Шлагбаум F

Дом

Улица A

Улица B

Школа

 

Улица C

Улица D

 

Улица E

Шлагбаум G

Рис. 36 – Схема проезда к задаче «В»

Г) В переменные M1, M2 и M3 вводится итог подбрасывания трех монет так, что TRUE соответствует «орел», а FALSE — «решка». Надо составить пять выражений таких, чтобы они выдавали TRUE для следующих случаев:

у всех монет выпал «орел»;

у всех монет выпала «решка»;

все монеты упали одинаково;

у первой – «решка», у прочих – «орел»;

у первой – «орел», а две остальные упали одинаково.

Подсказка: логические данные можно сравнивать; сравнение обладает самым низким приоритетом, и потому внутри выражений заключается в скобки,

например: M1 and (M2=M3).

95

Соседние файлы в папке delphi