Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
StudentBank.ru_10492.rtf
Скачиваний:
13
Добавлен:
05.08.2019
Размер:
930.04 Кб
Скачать

2. Логические переменные и функции, их преобразование. Таблицы истинности

Базовые понятия

Логическая константа, логическая переменная, логи­ческая операция, логическая функция, эквивалентные преобразования логических выражений, таблицы истин­ности логических операций и логических выражений.

Обязательно изложить

Основные логические операции и законы логики рассматривались в билетах № 7 и 8 (вопросы № 2).

Логическая, константа имеет одно из значений — ИСТИНА (TRUE, 1) или ЛОЖЬ (FALSE, 0). Соот­ветственно, логическая переменная может принимать одно из вышеуказанных значений.

Логическое выражение — это выражение, состоящее из логических операндов, соединенных с помощью ло­гических операций. В качестве логических операндов могут выступать логические константы, переменные, а также отношения (сравнения) между двумя не обяза­тельно логическими величинами. Логические выраже­ния могут принимать одно из двух значений: ИСТИНА (TRUE или 1) или ЛОЖЬ (FALSE или 0). Отноше­ние — это два выражения некоторого одного и того же типа, соединенных операцией отношения (">", "<", "=", V, "<", ">"). Обычно в языках программирова­ния операции отношения определены для величин чис­ловых, символьных, логических, строковых типов.

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

При такого рода преобразованиях применяются законы алгебры логики (билет № 8, вопрос № 2). Примеры см. в "Информатике" № 17, с. 3 — 7.

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

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

В языках программирования есть некоторое коли­чество логических функций, которые позволяют ана­лизировать определенные ситуации. Например, eof (f) в языке Паскаль возвращает true, если достигнут конец файла f, и false в противном случае.

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

Например, следующая функция возвращает true, если ее натуральный аргумент — простое число, и false — в противном случае:

Function Simple (Pr : Integer) : Boolean; Var I : Integer; LogPer : Boolean; Begin

Case Pr of

1: Simple := false;

2: Simple := true;

else

begin

I := 2; {счетчик}

Repeat

{логическая переменная, принимающая

значение TRUE, если число Pr

составное}

LogPer := (Pr Mod I = 0); I := I + 1

Until (I > Pr Div 2 + 1) Or (LogPer);

(цикл завершаем в том случае, когда

счетчик становится больше половины

данного числа или обнаруживаем, что

число составное}

Simple := Not LogPer

end end

{значение функции равно TRUE, если число простое, и FALSE — в противном случае} End;

Желательно изложить

Несмотря на то что операции отношения — , Ф , ">", "<" определены для вещественных типов, реаль­но они в большинстве случаев корректно не работают в силу того, что множество вещественных величин, представимых в памяти ЭВМ, дискретно. Поэтому их следует, если это возможно, избегать. В том случае, когда все-таки для вещественных величин возникает необходимость вычисления указанных отношений, разумно проверять вещественные величины не на ра­венство, а на близость расположения друг к другу, т.е. заменять отношения вида А = В отношениями вида |А — В | < Е, где Е — достаточно малое по абсо­лютной величине число (в общем случае — так назы­ваемое "машинное эпсилон").

Примечание для учителей

Вопрос билета целесообразно сформулировать так, как он формулировался ранее: "Логические выраже­ния и их преобразования. Таблицы истинности". В нынешней формулировке он является некорректным.

Примечание для учеников

Понимание сущности алгебры логики, умение пра­вильно составлять и преобразовывать логические вы­ражения способно существенно помочь при изучении программирования и составлении программ.

Ссылка на материалы вопроса

"Информатика" № 17, с. 3 — 7.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]