Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ТЕМА 4 Джордж Буль и его логика.doc
Скачиваний:
2
Добавлен:
02.09.2019
Размер:
77.31 Кб
Скачать

Тема 4. Джордж Буль и его логика

В этой теме мы обсудим вопросы, связанные с Решениями. Именно так, с большой буквы. Мы разберем, как же компьютер принимает решения. Конечно, компьютеру не приходится принимать такие сложные решения, как человеку. Однако логики и определенности в поведении компьютера куда больше. Собственно, никаких коле­баний у него и не бывает. Каждый раз, когда компьютер принимает решение, оно четко и окончательно — или да, или нет! Согласитесь, людям подобной решимости зачастую не хватает.

Необходим еще один тип — логический!

Поговорим о философии, а именно — о логике.

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

  • если условие выполняется, то результатом будет «истина»;

  • если условие не выполняется, то результатом будет «ложь».

Например, утверждение «4 > 3» является истинным, а утверждение «2 > 3» — ложным.

Такие выражения называются булевы (по имени английского математика Джорджа Буля). Область математики, которая изучает действия с булевыми выражениями, называется булевой алгеброй или алгеброй логики.

Логический тип данных (Boolean)

Для хранения результата проверки условия введен логический тип — Boolean. Переменные такого типа называются булевыми переменными.

Пример 4.1. Булевы переменные в программе

Program Booll;

Var

X: integer;

Bol:Boolean;

begin X:=4;

Bol:=X > 3; { Это утверждение истинно }

writeln(Bol);

Bol:=X < 3; { Это утверждение ложно }

writeln(Bol);

readln

end.

При выполнении программы на экране мы получим следующее:

TRUE

FALSE

Что такое TRUE и FALSE? Это значения логического выражения: TRUE означает «истина», a FALSE — «ложь».

Операции отношения

В логических условиях используются операции отношения. Вот как они записываются на языке Паскаль (табл. 4.1).

Таблица 4.1. Запись операций отношения на языке Паскаль

Операция отношения

Запись на языке Turbo Pascal

Меньше

<

Меньше или равно

<=

Больше

>

Больше или равно

>=

Равно

=

Не равно

<>

Ввод-вывод булевских переменных

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

Пример 4.2. Как ввести с клавиатуры переменную булевского типа

program Booleanlnput;

var

eat:boolean;

ch:char;

begin

write (‘Ты хочешь есть [y/n]?:');

readln(ch);

eat:= ch = 'y':

writeln ('Твой ответ:', eat);

readln

end.

Логические (булевы) операции

Часто принимаемое решение зависит от результата не одного, а нескольких утверждений. Например, «Вася получит сегодня пятерку, если придет на урок И правильно выполнит задание». Значит, нужно научиться объединять результаты нескольких утверждений и принимать общее решение. В приведенном примере этим объединением служит союз «И».

Логическое умножение (конъюнкция)

В алгебре логики операции сравнения в логических выражениях можно комбинировать с помощью логических операций. Обсудим их по порядку.

Рассмотрим утверждение: x < 7 и х > 3

Два отношения связаны союзом «и» (and).

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

Эта операция называется логическим умножением, или конъюнкцией. На Паскале она обозначается как and.

Таблица 4.2. Таблица истинности для операции логического умножения

Операнд 1

Операция

Операнд 2

Результат

True

and

True

True

True

and

False

False

False

and

True

False

False

and

False

False