Логическое отрицание NOT («НЕ») . Имеет наивысший приоритет, то есть, при отсутствии скобок выполняется в первую очередь. Это одноместная операция, поскольку требует лишь одного операнда. По своему действию она напоминает знак «минус» для чисел, поскольку изменяет значение операнда на противоположное. Правила для этой операции таковы.
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 и скобками образуют булево выражение. Скобки нужны для изменения естественного порядка выполнения операций.
• Булевы выражения используют в условных и циклических операторах.
А слабо?
А) Что будет напечатано в результате выполнения следующего фрагмента?
S:=’123’;
Writeln (’123’=S);
Б) Переведите на русский язык это выражение.
if (S=’’) and (A or B) then …
В) Напишите программу к бортовому компьютеру для маршрута на рис. 36.
Рис.36 – Схема проезда к задаче «В»
Г) В переменные M1, M2 и M3 вводится итог подбрасывания трех монет так, что TRUE соответствует «орел», а FALSE – «решка». Надо составить пять выражений таких, чтобы они выдавали TRUE для следующих случаев:
• у всех монет выпал «орел»;
• у всех монет выпала «решка»;
• все монеты упали одинаково;
• у первой – «решка», у прочих – «орел»;
• у первой – «орел», а две остальные упали одинаково.
Подсказка: логические данные можно сравнивать; сравнение обладает самым низким приоритетом, и потому внутри выражений заключается в скобки, например: M1 and (M2=M3).
Глава 14
Дважды два – четыре
Первые компьютеры назывались электронными вычислительными машинами (ЭВМ). Хотите – верьте, хотите – нет, но тогда на них не документы печатали и не фильмы смотрели, а вычисляли. С тех пор компьютеры научились многому и даже обыгрывают в шахматы чемпионов мира, однако, их способность к счету по-прежнему в цене.
Поможем братьям нашим меньшим
Пора и нам обратиться к вычислительным талантам компьютера. Не будем тратить попусту время, и по ходу дела соорудим полезную программу. Вы сможете испытать её на живом человеке, если найдёте первоклашку, зубрящего таблицу умножения. Уверен, что он с удовольствием подвергнет себя такому испытанию. Итак, наша очередная программа – экзаменатор. Суть её проста: компьютер предлагает ученику два числа и ждет от него ответа – произведения этих чисел. За правильный ответ ученика поощряют, а иначе его ждет «нахлобучка».
Числа и действия с ними
Скажу честно: знакомых нам типов данных – STRING и BOOLEAN – не хватит для решения поставленной задачи. Для вычислений в Паскале припасены другие типы данных, один из которых называется INTEGER, что переводится как целое. Из названия следует, что переменные такого типа могут хранить целые числа (положительные и отрицательные), например 10, 25, -14. Переменные целого типа объявляют следующим образом:
var N, M : integer;
Таким переменным можно присваивать выражения целого типа, состоящие из чисел, арифметических операций, скобок и других переменных, например:
Читать дальше