Разработка программы для построения таблиц истинности заданного закона алгебры логики

Понятие алгебры логики. Основные логические операции. Логические выражения и таблицы истинности. Алгебра логики в компьютерах. Логические законы и их использование при построении схем компьютера. Программа для проверки любого закона алгебры логики.

Рубрика Программирование, компьютеры и кибернетика
Вид статья
Язык русский
Дата добавления 22.03.2019
Размер файла 2,7 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на Allbest.ru

Введение

Алгебра логики устанавливает истинность логических выражений, записывающиеся с помощью логических операций над переменными, которые подчиняются законам алгебры логики. Применяя логические законы, можно производить эквивалентные преобразования составных логических выражений, когда истинные значения исходного выражения совпадают с истинными значениями полученной после преобразования функции. Логическое выражение может принимать только значение «истина», если выражение верно, и «ложь», если выражение неверно. Истинность логических выражений помогает определить таблица истинности логических функций. С помощью таблиц истинности можно устанавливать эквивалентность выражений и справедливость равенств законов алгебры логики. Логические выражения описывают работу компьютера, а из логических элементов, соответствующих выполнению определенных логических функций, складываются микросхемы компьютера. Главная задача логических законов - минимизировать формулы, а соответственно и микросхемы, получить более компактную сборку компьютера.

Также тема диплома актуальна в связи с объективной сложностью для изучения, и дипломная работа имеет практическое значение, т. к. может быть использована при изучении раздела «Алгебра логики» в профильных группах 11 класса.

Цель работы: разработать программу для построения таблиц истинности заданного закона алгебры логики

Задачи:

изучить литературу по логическим функциям, законам алгебры логики и таблицам истинности;

разработать программу на языке программирования;

подготовить отчет;

Для написания дипломной работы использовались учебник Н. Д. Угриновича «Информатика и ИКТ» 10 класс профильный уровень, справочник В. Ю. Лысковой, Е. А. Ракитиной «логика в информатике» и том «Информатика» энциклопедии для детей Аванта+, которые излагают информацию по теме «алгебра логики» и предлагают развернутый материал. Также использовался справочник по программированию на языке Delphi - «Delphi. Быстрый старт»

Диплом состоит из введения и двух частей: теоретической и экспериментальной; заключения и списка литературы. В теоретической части я подробно опишу логические законы и их использование при построении схем компьютера. В практической части будет предоставлена программа для проверки любого закона алгебры логики.

Глава 1. Алгебра логики

§1.1 Понятие алгебры логики. Основные логические операции алгебра логика

Логика - это наука о формах и способах мышления. Прежде всего, логика помогает построить модели окружающего нас мира, определить его свойства и провести связи между его объектами, связанными определенными отношениями. Мышление имеет свои типы, которые называются формами мышления. Понятие, высказывание и умозаключение - это основные формы мышления. Высказывания являются объектами изучения алгебры логики.

Алгебра логики - это раздел математической логики, изучающий строение сложных логических высказываний и способы установления их истинности с помощью алгебраических методов. Логика в информатике / В.Ю. Лыскова, Е.А. Ракитина; М.: Лаборатория Базовых Знаний, 2004. - 160с.:ил, с.22 Высказывание (суждение) - это утверждение относительно какого-либо предмета, явления или события, которое может быть выражено повествовательным предложением или записано в виде формулы с помощью знаков равенства или неравенства, т. е. записано на языке математики. В алгебре логики простые высказывания обозначаются латинскими буквами и называются логическими переменными. Относительно простого высказывания можно сказать, истинно оно или ложно. В компьютере высказывания кодируется битами, где истинное высказывание представляется значением 1, а ложное - значением 0. На естественном языке составные высказывания образуются с помощью связок «и», «или» и «не», которые заменяются в алгебре логики на логические операции. Логические операции - это действия, совершаемые над логическими переменными, в результате которых получаются определенные логические функции.

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

Логическое отрицание (инверсия) - это высказывание с присоединенной частицей «не», в языках программирования, обозначающаяся not, в алгебре логики - ?А. Операция логического отрицания выражения с аргументом А записывается формулой: ?А. Значение логической операции определяется с помощью таблицы истинности (1). Так как эта логическая операция отрицания, то значение логического выражения является противоположным значению аргумента А.

А

0

1

1

0

Таблица 1. Таблица истинности логического отрицания

В языках программирования эта логическая операция обозначается and, а в алгебре логики обозначается значком & («амперсенд»). Операция конъюнкции записывается формулой А & В, где А и В - это логические переменные, обозначающие какое-либо утверждение. Значение, т. е. истинность, этого выражения определяется с помощью таблицы истинности (2). Логическое умножение - строгая функция, поэтому результатом выполнения операции является «истина» только тогда, когда все аргументы принимают значения «истина». То есть высказывание будет верно, когда одновременно выполняются события А и В.

А

В

А & B

0

0

0

0

1

0

1

0

0

1

1

1

Таблица 2. Таблица истинности логического умножения

Логическое сложение (дизъюнкция) - это объединение нескольких высказываний в одно логическое выражение с помощью союза «или» в естественных языках. В языках программирования эта логическая операция обозначается or, а в алгебре логики обозначается значком ?. Операция логического сложения с логическими переменными А и В записывается формулой: А ? В. Значение этой логической операции определяется таблицей истинности (3). Логическое сложение - нестрогая функция, поэтому результатом выполнения операции является «истина», когда хотя бы один аргумент принимает значение «истина». То есть высказывание будет верно, когда выполняется хотя бы одно событие, обозначенное логическими переменными А и В.

А

В

А ? B

0

0

0

0

1

1

1

0

1

1

1

1

Таблица 3. Таблица истинности логического сложения.

Операция строгой дизъюнкции подразумевает, что выполняется либо только событие А, либо только событие В. Обозначается эта операция А xor В. Значение этой логической операции определяется таблицей истинности (4), из которой видно, что высказывание будет истинно только тогда, когда только одно значение аргумента будет принимать значение «истина»:

А

В

А xor B

0

0

0

0

1

1

1

0

1

1

1

0

Таблица 4. Таблица истинности строгой дизъюнкции.

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

Логическое следование (импликация) - это высказывание, которое образуется соединением двух высказываний в одно, с помощью оборота речи «если …, то … « в естественных языках. Операция импликации в алгебре логики обозначается А > В. Про эту логическую операцию говорят: если А, то В; А имплицирует В; А влечет В; В следует из А. Логика в информатике / В.Ю. Лыскова, Е.А. Ракитина; М.: Лаборатория Базовых Знаний, 2004. - 160с.:ил, с.31-32. Значение логической операции определяется с помощью таблицы истинности (5).

А

В

А > В

0

0

1

0

1

1

1

0

0

1

1

1

Таблица 5. Таблица истинности логического следования

Высказывание будет ложно тогда и только тогда, когда из истинного значения аргумента А следует ложный вывод В. Первое высказывание А называется посылкой. Если посылка ложна, то высказывание будет истинно и не зависит от истинности или ложности вывода.

В компьютере и в языках программирования операция импликации может быть заменена формулой:

?

А ? В.

Убедиться, что данные формулы тождественно равны, поможет таблица истинности. Построим таблицу истинности для этой формулы:

А

В

?А ? В

0

0

1

1

0

1

1

1

1

0

0

0

1

1

0

1

Таблица 6.

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

Логическое равенство (эквивалентность) - это высказывание, которое образуется соединением двух высказываний в одно при помощи оборота речи «… тогда и только тогда, когда …» Логика в информатике / В.Ю. Лыскова, Е.А. Ракитина; М.: Лаборатория Базовых Знаний, 2004. - 160с.:ил, с.33-34 в естественных языках, а в алгебре логики обозначается А‹=› В и говорят, что А эквивалентно В. Истинность данной логической функции определяется с помощью таблицы истинности (7) :

А

В

А ‹=›В

0

0

1

0

1

0

1

0

0

1

1

1

Таблица 7. Таблица истинности логического равенства.

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

В компьютере и в языках программирования операция эквивалентности может быть заменена двумя формулами:

(А&В) ? (?А&?B) ;

(А??B) &(?А?В).

Убедиться, что данные формулы тождественно равны, помогут соответствующие таблицы истинности. Построим таблицу истинности для первой формулы:

А

В

??А

(?А&?B)

(А&В)

(А&В) ? (?А&?B)

0

0

1

1

1

0

1

0

1

1

0

0

0

0

1

0

0

1

0

0

0

1

1

0

0

0

1

1

Таблица 8.

Теперь построим таблицу истинности для второй формулы:

А

В

??А

(А??B)

(?А?В).

(А??B) &(?А?В)

0

0

1

1

1

1

1

0

1

1

0

0

1

0

1

0

0

1

1

0

0

1

1

0

0

1

1

1

Таблица 9.

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

(А&В) ? (?А&?B) ;

(А??B) &(?А?В).

1.2 Логические выражения. Таблицы истинности

Из логических переменных формируются сложные (составные) высказывания, состоящие из некоторого числа одновременно проверяющихся простых высказываний и логических операций. Такое составное высказывание можно записать в виде формулы, т. е. логического выражения. Для правильного написания высказывания в виде логического выражения необходимо записать его, учитывая приоритет выполнения логических операций: инверсия, конъюнкция, дизъюнкция/исключающая «или», эквивалентность/импликация. С помощью скобок группируются простые высказывания для изменения указанного порядка выполнения. Истинность логических выражений определяет построенная таблица истинности. Для построения таблицы истинности существуют определенные правила:

1) Количество наборов значений аргументов логического выражения вычисляется по формуле 2n, где n - это количество логических переменных в данном логическом выражении, а 2 - это количество значений («истина», «ложь») ;

2) Количество столбцов в таблице считается посредством сложения количества переменных, то есть простых высказываний, и количества логических операций;

3) В первых столбцах обычно пишутся простые переменные, а далее по одной операции в каждый столбец, следуя приоритету выполнения логических операций.

4) Так как в языках программирования такие таблицы истинности «строятся» с помощью циклов и вложенных циклов, которые перебирают значения переменных от 0 до 1, то в столбцах, которые отведены под начальный набор значений переменных, будут перебираться значения от 0 до 1.

Например, определим истинность высказывания А & ? В ? С по таблице истинности. По формуле 2n, количество строк в таблице, отведенных под набор значений, равно 8, а количество столбцов равно 6.

Первый столбец значений А составляет восемь строк, значений переменных только два: 0 и 1, поэтому делим 8 на 2, получаем 4. Сначала четыре строки заполняем нулями, а потом четыре - единицами. Для каждого значения переменной А, под которую отведено четыре строки, соответствует два значения переменной В, следовательно, делим 4 на 2, получаем 2. Записываем сперва два нуля, а потом две единицы. Далее для каждого значения аргумента В существует два значения аргумента С. Делим 2 на 2, получаем 1 и записываем 0 и 1 в эти две строки. Итак, первой выполняется операция отрицания, затем конъюнкция и уже потом дизъюнкция. Поэтому и столбцы тоже располагаются в такой последовательности.

Определяем истинность частей высказывания, постепенно подходя к определению истинности всего выражения. В результате всех преобразований и вычислений высказывание будет истинно при следующих наборов значений аргументов: 001, 011, 100, 101, 111.

А

В

С

? В

А & ? В

А & ? В ? С

0

0

0

1

0

0

0

0

1

1

0

1

0

1

0

0

0

0

0

1

1

0

0

1

1

0

0

1

1

1

1

0

1

1

1

1

1

1

0

0

0

0

1

1

1

0

0

1

Таблица 10.

§1.3 Алгебра логики в компьютерах

Чтобы компьютер смог реализовать выполнение логических выражений, существуют специальные дискретные преобразователи, которые получают входные сигналы, кодирующиеся 0 и 1 - исходные значения аргументов логических функций - и на выходе выдает новое значение цифрового сигнала - значение функции при заданном наборе аргументов. Цифровой сигнал - это сигнал, который может принимать только одно из двух установленных значений. Логика в информатике / В.Ю. Лыскова, Е.А. Ракитина; М.: Лаборатория Базовых Знаний, 2004. - 160с.:ил, с.98 Такие преобразователи называются логическими элементами компьютера. Существует всего три логических элемента, которые выполняют три базовые логические операции: конъюнкция, дизъюнкция, инверсия. В соответствие с логической операцией, логические элементы называются: конъюнктор, дизъюнктор и инвертор. Логические элементы компьютера получают на входе значения аргументов в виде цифрового сигнала, который равен 1, если напряжение электрической цепи находится в пределах от 2, 4В до 5В (высокий уровень цифрового сигнала), и равен 0, если напряжение цепи находится в пределах от 0В до 0, 5В (низкий уровень цифрового сигнала).

Логический элемент «не» (инвертор) соответствует логическому отрицанию - инверсии, поэтому на выходе выдает значение сигнала, противоположное значению входного сигнала.

Обозначение инвертора:

Логический элемент «и» (конъюнктор) соответствует логическому умножению - конъюнкции и выдает на выходе значение сигнала, равному произведению входных значений сигналов. На выходе значение сигнала будет равно 1 только тогда, когда оба значения входных сигналов равны 1.

Обозначение конъюнктора:

Логический элемент «или» (дизъюнктор) соответствует логическому сложению - дизъюнкции. На выходе выдает значение сигнала, равному сумме значений входных сигналов. На выходе значение сигнала будет равно 1, когда хотя бы одно значение входных сигналов равно 1.

Обозначение дизъюнктора:

Входы одних логических элементов поступают на входы других логических элементов. Таким образом, получаются схемы-цепочки, которые соответствуют определенному логическому выражению. Из цепочки логических элементов формируются логические устройства. Схемы-цепочки по-другому называются функциональными схемами. Функциональная схема логического устройства описывает логическое выражение, которое это устройство реализует. Это логическое выражение называется структурной формулой.

Рассмотрим пример функциональной схемы для логического выражения:

А & ? В ? С. Первой выполняется операция логического отрицания, второй - операция логического умножения, а третьей - операция логического сложения. В соответствии с приоритетом выполнения схема будет выглядеть так:

Построим таблицу значений выходов:

А

В

С

Выход (1)

Выход (2)

Выход (3)

0

0

0

1

0

0

0

0

1

1

0

1

0

1

0

0

0

0

0

1

1

0

0

1

1

0

0

1

1

1

1

0

1

1

1

1

1

1

0

0

0

0

1

1

1

0

0

1

Таблица 11.

Выход (1) соответствует операции ? В, выход (2) соответствует операции А & ? В, а выход (3) - операции А & ? В ? С. Заменив выходы в таблице результатом выполнения логических операций соответствующих элементов, получим таблицу истинности (10) для данного логического выражения. Таким образом, таблицы совпадают, поэтому данному логическому выражению соответствует именно эта функциональная схема.

Алгебра логики реализует работу компьютера: логические выражения описывают условия, от которых зависит его работа. При сборке микросхем строятся огромные логические выражения с несколькими переменными. Микросхемы занимают место, а логические выражения - память компьютера. Чтобы минимизировать эти логические выражения, т. е. упростить и заменить на равносильные, но менее объемные логические выражения, существуют специальные логические законы, которые позволяют производить упрощение сложных логических высказываний.

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

Глава 2. Законы алгебры логики и их доказательство

Как уже говорилось ранее в главе 1, в алгебре логики существуют специальные законы, которые позволяют минимизировать логические выражения и заменяют их на меньшие равносильные логические выражения. Теперь рассмотрим эти законы.

Закон тождества - всякое понятие и суждение тождественно самому себе:

А = А

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

Закон непротиворечия состоит в том, что, если А истинно, то высказывание ?А должно быть ложным, или наоборот. Тогда произведение этих высказываний всегда будет ложно: А & ??А = 0.

Также этот закон можно записать: ? (А & ?А) = 1.

А

??А

А & ??А

0

1

0

1

0

0

Таблица 1.

Закон исключенного третьего - в одно и то же время высказывание может быть либо истинным, либо ложным, третьего не дано. Истинно либо А, либо ?А. Тогда сложение таких высказываний будет истинно: А ? ??А = 1.

А

??А

А ? ??А

0

1

1

1

0

1

Таблица 2.

Закон двойного отрицания - если высказывание отрицается дважды, то в итоге получается исходное высказывание: А = ?? (?А)

А

??А

?? (??А)

0

1

0

1

0

1

Таблица 3.

Свойства констант:

?0 = 1 - отрицание лжи есть истина;

?1 = 0 - отрицание истины есть ложь;

А ? 0 = А;

А ? 1 = 1;

А & 0 = 0;

А & 1 = А;

Итак, теперь докажем свойства 3, 4, 5, 6 констант. Справедливость свойств можно установить с помощью таблицы истинности для соответствующей логической функции.

Таблица истинности свойств 3, 4 констант соответствует таблице истинности логического сложения (дизъюнкции) :

А

0

А ? 0

0

0

0

1

0

1

Таблица 4.

Из таблицы истинности видно, что значения выполнения функции соответствует значениям переменной А.

А

1

А ? 1

0

1

1

1

1

1

Таблица 5.

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

Таблица истинности свойств 5, 6 констант соответствует таблице истинности логического умножения (конъюнкции) :

А

0

А & 0

0

0

0

1

0

0

Таблица 6.

А

1

А & 1

0

1

0

1

1

1

Таблица 7.

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

Законы идемпотентности - сколько бы раз мы не повторяли одно и то же высказывание, его смысл все равно не измениться.

А ? А = А;

А & А = А;

Этот закон также подтверждается таблицами истинности:

А

А

А & А

0

0

0

1

1

1

Таблица 8.

А

А

А ? А

0

0

0

1

1

1

Таблица 9.

В соответствии с выполнениями определенных логических функций, истинное значение функции соответствует истинным значениям переменной А.

Законы коммутативности основаны на переместительном законе алгебры:

А & B = B & A

A ? B = B ? A

А

В

А & B

B & A

0

0

0

0

0

1

0

0

1

0

0

0

1

1

1

1

Таблица 10.

А

В

A ? B

B ? A

0

0

0

0

0

1

1

1

1

0

1

1

1

1

1

1

Таблица 11.

Законы ассоциативности соответствуют сочетательному закону алгебры. Если в выражениях присутствует только операция логического сложения или только операция логического умножения, то можно расставлять скобки произвольно:

(А & B) & C = A & (B & C) = (A & C) & B

(А ? B) ? C = A ? (B ? C) = (A ? C) ? B

А

В

С

А&B

(А&B) &C

B&C

A& (B&C)

A&C

(A&C) &B

0

0

0

0

0

0

0

0

0

0

0

1

0

0

0

0

0

0

0

1

0

0

0

0

0

0

0

0

1

1

0

0

1

0

0

0

1

0

0

0

0

0

0

0

0

1

0

1

0

0

0

0

1

0

1

1

0

1

0

0

0

0

0

1

1

1

1

1

1

1

1

1

Таблица 12.

А

В

С

А?B

(А?B) ?C

B?C

A? (B?C)

A?C

(A?C) ?B

0

0

0

0

0

0

0

0

0

0

0

1

0

1

1

1

1

1

0

1

0

1

1

1

1

0

1

0

1

1

1

1

1

1

1

1

1

0

0

1

1

1

1

1

1

1

0

1

1

1

1

1

1

1

1

1

0

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

Таблица 13.

Законы дистрибутивности, в свою очередь, соответствуют распределительному закону алгебры. Отличием является то, что за скобки можно выносить не только общие множители, но и общие слагаемые:

(А ? B) & (A ? C) = A ? (B & C)

(А & B) ? (A & C) = A & (B ? C)

Докажем справедливость законов с помощью таблицы истинности.

Построим таблицы истинности для функций (А ? B) & (A ? C) и A ? (B & C) :

А

В

С

(А ? B)

(A ? C)

(А ? B) & (A ? C)

0

0

0

0

0

0

0

0

1

0

1

0

0

1

0

1

0

0

0

1

1

1

1

1

1

0

0

1

1

1

1

0

1

1

1

1

1

1

0

1

1

1

1

1

1

1

1

1

А

В

С

(В & C)

A ? (B & C)

0

0

0

0

0

0

0

1

0

0

0

1

0

0

0

0

1

1

1

1

1

0

0

0

1

1

0

1

0

1

1

1

0

0

1

1

1

1

1

1

Таблица 14.

Результатом выполнения логических функций (А ? B) & (A ? C) и A ? (B & C) являются одинаково истинные значения, что доказывает равносильность логических функций.

Аналогично построим таблицу истинности для функций (А & B) ? (A & C) и A & (B ? C) :

А

В

С

(А & B)

(A & C)

(А & B) ? (A & C)

0

0

0

0

0

0

0

0

1

0

0

0

0

1

0

0

0

0

0

1

1

0

0

0

1

0

0

0

0

0

1

0

1

0

1

1

1

1

0

1

0

1

1

1

1

1

1

1

А

В

С

(В ? C)

A & (B ? C)

0

0

0

0

0

0

0

1

1

0

0

1

0

1

0

0

1

1

1

0

1

0

0

0

0

1

0

1

1

1

1

1

0

1

1

1

1

1

1

1

Таблица 15.

Результатом выполнения логических функций (А & B) ? (A & C) и A & (B ? C) являются одинаково истинные значения, что также доказывает равносильность логических функций.

Законы поглощения состоит в следующих равносильных выражениях: A & (А ? В) = A

A ? (А & В) = A

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

А

В

(А ? В)

A & (А ? В)

0

0

0

0

0

1

1

0

1

0

1

1

1

1

1

1

Таблица 16.

А

В

(А & В)

A ? (А & В)

0

0

0

0

0

1

0

0

1

0

0

1

1

1

1

1

Таблица 17.

Законы де Моргана формулируются двумя следующими способами:

Отрицание конъюнкции есть дизъюнкция отрицаний

?? (А & В) = ??А ? ?В

Отрицание дизъюнкции есть конъюнкция отрицаний

? (А ? В) = ??А & ?В

Справедливость этого закона также показывают таблицы истинности:

А

В

А & В

? (А & В)

0

0

0

1

0

1

0

1

1

0

0

1

1

1

1

0

А

В

??А

??А ? ?В

0

0

1

1

1

0

1

1

0

1

1

0

0

1

1

1

1

0

0

0

Таблица 18.

А

В

А ? В

? (А ? В)

0

0

0

1

0

1

1

0

1

0

1

0

1

1

1

0

А

В

??А

??А & ?В

0

0

1

1

1

0

1

1

0

0

1

0

0

1

0

1

1

0

0

0

Таблица 19.

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

Глава 3. Разработка программы. Описание программы

Основной проблемой при проверке законов алгебры логики является построение таблиц истинности. Проблема заключается в правильности построения таблицы истинности и времени, которое уходит на этот процесс. Целью моей работы является построение программы для проверки законов алгебры логики, а также нескольких свойств констант. Для реализации данного проекта необходимо выбрать среду программирования. Я выбрала язык программирования Delphi, так как он является языком высокого уровня объектно-ориентированного программирования, прост в изучении и отлично подходит для представления и наглядности результатов. Проект, разрабатываемый в среде Delphi, состоит из двух частей: разработка формы и написание программного кода.

На форме проекта размещено 2 списка с выбором законов алгебры логики и свойствами констант; кнопки «проверить» и «выход»; таблица, куда заносятся результаты, метка с определением логической функции и специальная метка, где будет выводиться формулировка закона.

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

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

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

Результаты

Выполнение программы для закона непротиворечия:

Таблица истинности совпадает с таблицей 1 (стр. 15).

Выполнение программы для закона исключенного третьего:

Таблица истинности совпадает с таблицей 2 (стр. 16).

Выполнение программы для закона двойного отрицания:

Таблица истинности совпадает с таблицей 3 (стр. 16).

Выполнение программы для законов индепотентности:

Таблицы истинности совпадают с таблицами 8 и 9 (стр. 17 и 18).

Выполнение программы для законов коммуникативности:

Таблицы истинности совпадают с таблицами 10 и 11 (стр. 18).

Выполнение программы для законов ассоциативности:

Таблицы истинности совпадают с таблицами 12 и 13 (стр. 19).

Выполнение программы для законов дистрибутивности:

Таблицы истинности совпадают с таблицами 14 и 15 (стр. 20 и 21).

Выполнение программы для законов поглощения:

Таблицы истинности совпадают с таблицами 16 и 17 (стр. 22).

Выполнение программы для законов де Моргана:

Таблицы истинности совпадают с таблицами 18 и 19 (стр. 22 и 23).

Выполнение программы для свойств констант:

Таблицы истинности соответствуют таблицам 4, 5, 6, 7 (стр. 16 и 17)

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

Заключение

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

изучила литературу по разделу «алгебра логики»;

построила модель программы в среде объектно-ориентированного программирования Delphi;

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

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

Также, следует отметить, что тема диплома актуальна в связи с объективной сложностью для изучения, и может быть использована при изучении раздела «Алгебра логики» в профильных группах 11 класса.

СПИСОК ЛИТЕРАТУРЫ

Delphi. Быстрый старт. - СПб. : БХВ-Петербург, 2003

Лыскова В. Ю., Ракитина Е. А. Логика в информатике - М. : Лаборатория Базовых Знаний, 2004

Угринович Н. Д. Информатика и ИКТ. Профильный уровень. - М. : БИНОМ. Лаборатория знаний, 2011

Энциклопедия для детей. Том 22. Информатика. Глав. ред. Е. А. Хлебалина, вед. науч. ред. А. Г. Леонов. - М. : Аванта+, 2003

Приложения

Программный код

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, Grids, StdCtrls;

type

TForm1 = class (TForm)

ComboBox1: TComboBox;

Button1: TButton;

Label1: TLabel;

Label2: TLabel;

StringGrid1: TStringGrid;

ComboBox2: TComboBox;

Button2: TButton;

procedure Button1Click (Sender: TObject) ;

procedure FormCreate (Sender: TObject) ;

procedure Button2Click (Sender: TObject) ;

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

{$R *. dfm}

procedure TForm1. FormCreate (Sender: TObject) ;

begin

stringgrid1. Visible: =false;

end;

procedure TForm1. Button1Click (Sender: TObject) ;

var a, b, c, d, e, f: boolean;

i: integer;

astr, bstr, cstr, dstr, estr, fstr: string;

begin

case combobox1. itemindex of

0: begin

stringgrid1. colcount: =3;

stringgrid1. rowcount: =3;

stringgrid1. Height: =stringgrid1. rowcount*25+10;

stringgrid1. width: =stringgrid1. colcount*110+10;

stringgrid1. Visible: =true;

label2. Caption: ='Произведение противоположных высказываний всегда будет ложно. ';

stringgrid1. Cells[0, 0]: ='A';

stringgrid1. Cells[1, 0]: ='not A';

stringgrid1. Cells[2, 0]: ='A and (not A) ';

i: =0;

for a: =false to true do begin

if a=false then astr: ='0' else astr: ='1';

b: =not a;

if b=false then bstr: ='0' else bstr: ='1';

c: =a and not a;

if c=false then cstr: ='0' else cstr: ='1';

stringgrid1. cells[0, i+1]: =astr;

stringgrid1. cells[1, i+1]: =bstr;

stringgrid1. cells[2, i+1]: =cstr;

i: =i+1;

end;

end;

1: begin

stringgrid1. colcount: =3;

stringgrid1. rowcount: =3;

stringgrid1. Height: =stringgrid1. rowcount*25+10;

stringgrid1. width: =stringgrid1. colcount*110+10;

stringgrid1. Visible: =true;

label2. Caption: ='В одно и то же время высказывание может быть либо истинным, либо ложным. Третьего не дано. Тогда сложение таких высказываний будет истинно. ';

stringgrid1. Cells[0, 0]: ='A';

stringgrid1. Cells[1, 0]: ='not A';

stringgrid1. Cells[2, 0]: ='A or (not A) ';

i: =0;

for a: =false to true do begin

if a=false then astr: ='0' else astr: ='1';

b: =not a;

if b=false then bstr: ='0' else bstr: ='1';

c: =a or not a;

if c=false then cstr: ='0' else cstr: ='1';

stringgrid1. cells[0, i+1]: =astr;

stringgrid1. cells[1, i+1]: =bstr;

stringgrid1. cells[2, i+1]: =cstr;

i: =i+1;

end;

end;

2: begin

stringgrid1. colcount: =3;

stringgrid1. rowcount: =3;

stringgrid1. Height: =stringgrid1. rowcount*25+10;

stringgrid1. width: =stringgrid1. colcount*110+10;

stringgrid1. Visible: =true;

label2. Caption: ='Если высказывание отрицается дважды, то в итоге получается исходное высказывание. ';

stringgrid1. Cells[0, 0]: ='A';

stringgrid1. Cells[1, 0]: ='not A';

stringgrid1. Cells[2, 0]: ='not (not A) ';

i: =0;

for a: =false to true do begin

if a=false then astr: ='0' else astr: ='1';

b: =not a;

if b=false then bstr: ='0' else bstr: ='1';

c: =not not a;

if c=false then cstr: ='0' else cstr: ='1';

stringgrid1. cells[0, i+1]: =astr;

stringgrid1. cells[1, i+1]: =bstr;

stringgrid1. cells[2, i+1]: =cstr;

i: =i+1;

end;

end;

3: begin

stringgrid1. colcount: =2;

stringgrid1. rowcount: =3;

stringgrid1. Height: =stringgrid1. rowcount*25+10;

stringgrid1. width: =stringgrid1. colcount*110+10;

stringgrid1. Visible: =true;

label2. Caption: ='Сколько бы раз мы не повторяли одно и то же высказывание, его смысл все равно не изменится. ';

stringgrid1. Cells[0, 0]: ='A';

stringgrid1. Cells[1, 0]: ='A and A';

i: =0;

for a: =false to true do begin

if a=false then astr: ='0' else astr: ='1';

b: =a and a;

if b=false then bstr: ='0' else bstr: ='1';

stringgrid1. cells[0, i+1]: =astr;

stringgrid1. cells[1, i+1]: =bstr;

i: =i+1;

end;

end;

4: begin

stringgrid1. colcount: =2;

stringgrid1. rowcount: =3;

stringgrid1. Height: =stringgrid1. rowcount*25+10;

stringgrid1. width: =stringgrid1. colcount*110+10;

stringgrid1. Visible: =true;

label2. Caption: = 'Сколько бы раз мы не повторяли одно и то же высказывание, его смысл все равно не изменится. ';

stringgrid1. Cells[0, 0]: ='A';

stringgrid1. Cells[1, 0]: ='A or A';

i: =0;

for a: =false to true do begin

if a=false then astr: ='0' else astr: ='1';

b: =a or a;

if b=false then bstr: ='0' else bstr: ='1';

stringgrid1. cells[0, i+1]: =astr;

stringgrid1. cells[1, i+1]: =bstr;

i: =i+1;

end;

end;

5: begin

stringgrid1. colcount: =4;

stringgrid1. rowcount: =5;

stringgrid1. Height: =stringgrid1. rowcount*25+10;

stringgrid1. width: =stringgrid1. colcount*110+10;

stringgrid1. Visible: =true;

label2. Caption: ='От перемены мест логических переменных результат выполнения функции не меняется. ';

stringgrid1. Cells[0, 0]: ='A';

stringgrid1. Cells[1, 0]: ='B';

stringgrid1. Cells[2, 0]: ='A and B';

stringgrid1. Cells[3, 0]: ='B and A';

i: =0;

for a: =false to true do begin

for b: =false to true do begin

if a=false then astr: ='0' else astr: ='1';

if b=false then bstr: ='0' else bstr: ='1';

c: =a and b;

if c=false then cstr: ='0' else cstr: ='1';

d: =b and a;

if d=false then dstr: ='0' else dstr: ='1';

stringgrid1. cells[0, i+1]: =astr;

stringgrid1. cells[1, i+1]: =bstr;

stringgrid1. cells[2, i+1]: =cstr;

stringgrid1. cells[3, i+1]: =dstr;

i: =i+1;

end;

end;

end;

6: begin

stringgrid1. colcount: =4;

stringgrid1. rowcount: =5;

stringgrid1. Height: =stringgrid1. rowcount*25+10;

stringgrid1. width: =stringgrid1. colcount*110+10;

stringgrid1. Visible: =true;

label2. Caption: = 'От перемены мест логических переменных результат выполнения функции не меняется. ';

stringgrid1. Cells[0, 0]: ='A';

stringgrid1. Cells[1, 0]: ='B';

stringgrid1. Cells[2, 0]: ='A or B';

stringgrid1. Cells[3, 0]: ='B or A';

i: =0;

for a: =false to true do begin

for b: =false to true do begin

if a=false then astr: ='0' else astr: ='1';

if b=false then bstr: ='0' else bstr: ='1';

c: =a or b;

if c=false then cstr: ='0' else cstr: ='1';

d: =b or a;

if d=false then dstr: ='0' else dstr: ='1';

stringgrid1. cells[0, i+1]: =astr;

stringgrid1. cells[1, i+1]: =bstr;

stringgrid1. cells[2, i+1]: =cstr;

stringgrid1. cells[3, i+1]: =dstr;

i: =i+1;

end;

end;

end;

7: begin

stringgrid1. colcount: =6;

stringgrid1. rowcount: =9;

stringgrid1. Height: =stringgrid1. rowcount*25+15;

stringgrid1. width: =stringgrid1. colcount*110+15;

stringgrid1. Visible: =true;

label2. Caption: ='Если в выражениях присутствует только операция логического сложения или только операция логического сложения, то можно расставлять скобки произвольно. ';

stringgrid1. Cells[0, 0]: ='A';

stringgrid1. Cells[1, 0]: ='B';

stringgrid1. Cells[2, 0]: ='C';

stringgrid1. Cells[3, 0]: ='C and (A and B) ';

stringgrid1. Cells[4, 0]: ='A and (B and C) ';

stringgrid1. Cells[5, 0]: ='B and (A and C) ';

i: =0;

for a: =false to true do begin

for b: =false to true do begin

for c: =false to true do begin

if a=false then astr: ='0' else astr: ='1';

if b=false then bstr: ='0' else bstr: ='1';

if c=false then cstr: ='0' else cstr: ='1';

d: =c and (a and b) ;

if d=false then dstr: ='0' else dstr: ='1';

e: =A and (B and C) ;

if e=false then estr: ='0' else estr: ='1';

f: =B and (A and C) ;

if f=false then fstr: ='0' else fstr: ='1';

stringgrid1. cells[0, i+1]: =astr;

stringgrid1. cells[1, i+1]: =bstr;

stringgrid1. cells[2, i+1]: =cstr;

stringgrid1. cells[3, i+1]: =dstr;

stringgrid1. cells[4, i+1]: =estr;

stringgrid1. cells[5, i+1]: =fstr;

i: =i+1;

end;

end;

end;

end;

8: begin

stringgrid1. colcount: =6;

stringgrid1. rowcount: =9;

stringgrid1. Height: =stringgrid1. rowcount*25+15;

stringgrid1. width: =stringgrid1. colcount*110+15;

stringgrid1. Visible: =true;

label2. Caption: = 'Если в выражениях присутствует только операция логического сложения или только операция логического сложения, то можно расставлять скобки произвольно. ';

stringgrid1. Cells[0, 0]: ='A';

stringgrid1. Cells[1, 0]: ='B';

stringgrid1. Cells[2, 0]: ='C';

stringgrid1. Cells[3, 0]: ='C or (A or B) ';

stringgrid1. Cells[4, 0]: ='A or (B or C) ';

stringgrid1. Cells[5, 0]: ='B or (A or C) ';

i: =0;

for a: =false to true do begin

for b: =false to true do begin

for c: =false to true do begin

if a=false then astr: ='0' else astr: ='1';

if b=false then bstr: ='0' else bstr: ='1';

if c=false then cstr: ='0' else cstr: ='1';

d: =c or (a or b) ;

if d=false then dstr: ='0' else dstr: ='1';

e: =A or (B or C) ;

if e=false then estr: ='0' else estr: ='1';

f: =B or (A or C) ;

if f=false then fstr: ='0' else fstr: ='1';

stringgrid1. cells[0, i+1]: =astr;

stringgrid1. cells[1, i+1]: =bstr;

stringgrid1. cells[2, i+1]: =cstr;

stringgrid1. cells[3, i+1]: =dstr;

stringgrid1. cells[4, i+1]: =estr;

stringgrid1. cells[5, i+1]: =fstr;

i: =i+1;

end;

end;

end;

end;

9: begin

stringgrid1. colcount: =5;

stringgrid1. rowcount: =9;

stringgrid1. Height: =stringgrid1. rowcount*25+15;

stringgrid1. width: =stringgrid1. colcount*110+15;

stringgrid1. Visible: =true;

label2. Caption: ='За скобки можно выносить общие множители: (А or B) and (A or C) = A or (B and C) ';

stringgrid1. Cells[0, 0]: ='A';

stringgrid1. Cells[1, 0]: ='B';

stringgrid1. Cells[2, 0]: ='C';

stringgrid1. Cells[3, 0]: =' (А or B) and (A or C) ';

stringgrid1. Cells[4, 0]: ='A or (B and C) ';

i: =0;

for a: =false to true do begin

for b: =false to true do begin

for c: =false to true do begin

if a=false then astr: ='0' else astr: ='1';

if b=false then bstr: ='0' else bstr: ='1';

if c=false then cstr: ='0' else cstr: ='1';

d: = (a or b) and (a or c) ;

if d=false then dstr: ='0' else dstr: ='1';

e: =a or (b and c) ;

if e=false then estr: ='0' else estr: ='1';

stringgrid1. cells[0, i+1]: =astr;

stringgrid1. cells[1, i+1]: =bstr;

stringgrid1. cells[2, i+1]: =cstr;

stringgrid1. cells[3, i+1]: =dstr;

stringgrid1. cells[4, i+1]: =estr;

i: =i+1;

end;

end;

end;

end;

10: begin

stringgrid1. colcount: =5;

stringgrid1. rowcount: =9;

stringgrid1. Height: =stringgrid1. rowcount*25+15;

stringgrid1. width: =stringgrid1. colcount*110+15;

stringgrid1. Visible: =true;

label2. Caption: = 'За скобки можно выносить общие слагаемые: (А or B) and (A or C) = A or (B and C) ';

stringgrid1. Cells[0, 0]: ='A';

stringgrid1. Cells[1, 0]: ='B';

stringgrid1. Cells[2, 0]: ='C';

stringgrid1. Cells[3, 0]: =' (А and B) or (A and C) ';

stringgrid1. Cells[4, 0]: ='A or (B and C) ';

i: =0;

for a: =false to true do begin

for b: =false to true do begin

for c: =false to true do begin

if a=false then astr: ='0' else astr: ='1';

if b=false then bstr: ='0' else bstr: ='1';

if c=false then cstr: ='0' else cstr: ='1';

d: = (c and b) or (a and c) ;

if d=false then dstr: ='0' else dstr: ='1';

e: =a and (b or c) ;

if e=false then estr: ='0' else estr: ='1';

stringgrid1. cells[0, i+1]: =astr;

stringgrid1. cells[1, i+1]: =bstr;

stringgrid1. cells[2, i+1]: =cstr;

stringgrid1. cells[3, i+1]: =dstr;

stringgrid1. cells[4, i+1]: =estr;

i: =i+1;

end;

end;

end;

end;

11: begin

stringgrid1. colcount: =3;

stringgrid1. rowcount: =5;

stringgrid1. Height: =stringgrid1. rowcount*25+10;

stringgrid1. width: =stringgrid1. colcount*110+10;

stringgrid1. Visible: =true;

label2. Caption: ='A and (А or В) = A ';

stringgrid1. Cells[0, 0]: ='A';

stringgrid1. Cells[1, 0]: ='B';

stringgrid1. Cells[2, 0]: ='A and (А or В) ';

i: =0;

for a: =false to true do begin

for b: =false to true do begin

if a=false then astr: ='0' else astr: ='1';

if b=false then bstr: ='0' else bstr: ='1';

c: =a and (a or b) ;

if c=false then cstr: ='0' else cstr: ='1';

stringgrid1. cells[0, i+1]: =astr;

stringgrid1. cells[1, i+1]: =bstr;

stringgrid1. cells[2, i+1]: =cstr;

i: =i+1;

end;

end;

end;

12: begin

stringgrid1. colcount: =3;

stringgrid1. rowcount: =5;

stringgrid1. Height: =stringgrid1. rowcount*25+10;

stringgrid1. width: =stringgrid1. colcount*110+10;

stringgrid1. Visible: =true;

label2. Caption: ='A or (А and В) = A ';

stringgrid1. Cells[0, 0]: ='A';

stringgrid1. Cells[1, 0]: ='B';

stringgrid1. Cells[2, 0]: ='A or (А and В) ';

i: =0;

for a: =false to true do begin

for b: =false to true do begin

if a=false then astr: ='0' else astr: ='1';

if b=false then bstr: ='0' else bstr: ='1';

c: =a or (a and b) ;

if c=false then cstr: ='0' else cstr: ='1';

stringgrid1. cells[0, i+1]: =astr;

stringgrid1. cells[1, i+1]: =bstr;

stringgrid1. cells[2, i+1]: =cstr;

i: =i+1;

end;

end;

end;

13: begin

stringgrid1. colcount: =4;

stringgrid1. rowcount: =5;

stringgrid1. Height: =stringgrid1. rowcount*25+10;

stringgrid1. width: =stringgrid1. colcount*110+10;

stringgrid1. Visible: =true;

label2. Caption: ='Отрицание конъюнкции есть дизъюнкция отрицаний: not (А and В) = not А or not В';

stringgrid1. Cells[0, 0]: ='A';

stringgrid1. Cells[1, 0]: ='B';

stringgrid1. Cells[2, 0]: ='not (А and В) ';

stringgrid1. Cells[3, 0]: =' (not А) or (not В) ';

i: =0;

for a: =false to true do begin

for b: =false to true do begin

if a=false then astr: ='0' else astr: ='1';

if b=false then bstr: ='0' else bstr: ='1';

c: =not (a and b) ;

if c=false then cstr: ='0' else cstr: ='1';

d: =not a or not b;

if d=false then dstr: ='0' else dstr: ='1';

stringgrid1. cells[0, i+1]: =astr;

stringgrid1. cells[1, i+1]: =bstr;

stringgrid1. cells[2, i+1]: =cstr;

stringgrid1. cells[3, i+1]: =dstr;

i: =i+1;

end;

end;

end;

14: begin

stringgrid1. colcount: =4;

stringgrid1. rowcount: =5;

stringgrid1. Height: =stringgrid1. rowcount*25+10;

stringgrid1. width: =stringgrid1. colcount*110+10;

stringgrid1. Visible: =true;

label2. Caption: ='Отрицание дизъюнкции есть конъюнкция отрицаний: not (А or В) = not А and not В';

stringgrid1. Cells[0, 0]: ='A';

stringgrid1. Cells[1, 0]: ='B';

stringgrid1. Cells[2, 0]: ='not (А or В) ';

stringgrid1. Cells[3, 0]: =' (not А) and (not В) ';

i: =0;

for a: =false to true do begin

for b: =false to true do begin

if a=false then astr: ='0' else astr: ='1';

if b=false then bstr: ='0' else bstr: ='1';

c: =not (a or b) ;

if c=false then cstr: ='0' else cstr: ='1';

d: =not a and not b;

if d=false then dstr: ='0' else dstr: ='1';

stringgrid1. cells[0, i+1]: =astr;

stringgrid1. cells[1, i+1]: =bstr;

stringgrid1. cells[2, i+1]: =cstr;

stringgrid1. cells[3, i+1]: =dstr;

i: =i+1;

end;

end;

end;

end;

end;

procedure TForm1. Button2Click (Sender: TObject) ;

var a, b, c, d, e, f: boolean;

i: integer;

astr, bstr, cstr, dstr, estr, fstr: string;

begin

label2. Caption: ='';

case combobox2. itemindex of

0: begin

stringgrid1. colcount: =3;

stringgrid1. rowcount: =3;

stringgrid1. Height: =stringgrid1. rowcount*25+10;

stringgrid1. width: =stringgrid1. colcount*110+10;

stringgrid1. Visible: =true;

stringgrid1. Cells[0, 0]: ='A';

stringgrid1. Cells[1, 0]: ='0';

stringgrid1. Cells[2, 0]: ='A or 0';

i: =0;

for a: =false to true do begin

if a=false then astr: ='0' else astr: ='1';

b: =false;

if b=false then bstr: ='0';

c: =a or b;

if c=false then cstr: ='0' else cstr: ='1';

stringgrid1. cells[0, i+1]: =astr;

stringgrid1. cells[1, i+1]: =bstr;

stringgrid1. cells[2, i+1]: =cstr;

i: =i+1;

end;

end;

1: begin

stringgrid1. colcount: =3;

stringgrid1. rowcount: =3;

stringgrid1. Height: =stringgrid1. rowcount*25+10;

stringgrid1. width: =stringgrid1. colcount*110+10;

stringgrid1. Visible: =true;

stringgrid1. Cells[0, 0]: ='A';

stringgrid1. Cells[1, 0]: ='1';

stringgrid1. Cells[2, 0]: ='A or 1';

i: =0;

for a: =false to true do begin

if a=false then astr: ='0' else astr: ='1';

b: =true;

if b=true then bstr: ='1';

c: =a or b;

if c=false then cstr: ='0' else cstr: ='1';

stringgrid1. cells[0, i+1]: =astr;

stringgrid1. cells[1, i+1]: =bstr;

stringgrid1. cells[2, i+1]: =cstr;

i: =i+1;

end;

end;

2: begin

stringgrid1. colcount: =3;

stringgrid1. rowcount: =3;

stringgrid1. Height: =stringgrid1. rowcount*25+10;

stringgrid1. width: =stringgrid1. colcount*110+10;

stringgrid1. Visible: =true;

stringgrid1. Cells[0, 0]: ='A';

stringgrid1. Cells[1, 0]: ='0';

stringgrid1. Cells[2, 0]: ='A and 0';

i: =0;

for a: =false to true do begin

if a=false then astr: ='0' else astr: ='1';

b: =false;

if b=false then bstr: ='0';

c: =a and b;

if c=false then cstr: ='0' else cstr: ='1';

stringgrid1. cells[0, i+1]: =astr;

stringgrid1. cells[1, i+1]: =bstr;

stringgrid1. cells[2, i+1]: =cstr;

i: =i+1;

end;

end;

3: begin

stringgrid1. colcount: =3;

stringgrid1. rowcount: =3;

stringgrid1. Height: =stringgrid1. rowcount*25+10;

stringgrid1. width: =stringgrid1. colcount*110+10;

stringgrid1. Visible: =true;

stringgrid1. Cells[0, 0]: ='A';

stringgrid1. Cells[1, 0]: ='1';

stringgrid1. Cells[2, 0]: ='A and 1';

i: =0;

for a: =false to true do begin

if a=false then astr: ='0' else astr: ='1';

b: =true;

if b=true then bstr: ='1';

c: =a and b;

if c=false then cstr: ='0' else cstr: ='1';

stringgrid1. cells[0, i+1]: =astr;

stringgrid1. cells[1, i+1]: =bstr;

stringgrid1. cells[2, i+1]: =cstr;

i: =i+1;

end;

end;

end;

end;

procedure TForm1. Button3Click (Sender: TObject) ; begin close; end;

end.

Размещено на Allbest.ru


Подобные документы

  • Значение алгебры логики. Таблицы истинности. Логические операции: дизъюнкция, конъюнкция и отрицание. Выходной сигнал вентиля. Переключательные схемы. Логические основы компьютера. Значение устройства триггер как элемента памяти. Сумматор и полусумматор.

    реферат [923,8 K], добавлен 14.10.2014

  • Основные понятия алгебры логики. Логические основы работы ЭВМ. Вычислительные устройства как устройства обработки информации. Основные формы мышления. Обзор базовых логических операций. Теоремы Булевой алгебры. Пути минимизации логических функций.

    контрольная работа [62,8 K], добавлен 17.05.2016

  • Алгоритм как четкая последовательность действий, направленная на решение задачи. Свойства алгоритмов и их характеристика. Способы описания алгоритма. Понятия алгебры логики. Логические переменные, их замена конкретными по содержанию высказываниями.

    презентация [337,7 K], добавлен 18.11.2012

  • Анализ и решение логических задач с помощью ЭВМ. Умение рассуждать как сущность логики. Освоение алгебры высказываний в информатике. Получение на компьютере таблицы истинности некоторого сложного выражения. Решение задач на языке программирования Паскаль.

    реферат [36,8 K], добавлен 29.01.2010

  • Логические узлы как основа устройства компьютера. Логические операции, позволяющие производить анализ получаемой информации и таблицы истинности. Условное высказывание, импликация, эквивалентность. Структура полного одноразрядного двоичного сумматора.

    реферат [211,7 K], добавлен 14.12.2010

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

    шпаргалка [1,6 M], добавлен 16.12.2010

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

    курсовая работа [821,6 K], добавлен 19.03.2012

  • Булева алгебра (основные понятия). Таблица главных логических операций. Закон коммутастивности, ассоциативности, дистрибцтивности, дуальности и поглощения. Простейшие логические элементы. Операция двоичного сложения. Шифраторы и дешифраторы, триггеры.

    лекция [177,2 K], добавлен 13.08.2013

  • Понятие высказывания, операции над простыми высказываниями, таблицы истинности. Примеры построения таблиц истинности сложных высказываний. Таблица истинности импликации. Закон тождества, противоречия, двойного отрицания. Решение логических задач.

    курсовая работа [507,3 K], добавлен 23.04.2013

  • Условная функция. Логические выражения. Вложенные логические функции ЕСЛИ. Особенности записи логических операций в табличных процессорах: сначала записывается имя логической операции (И, ИЛИ, НЕ).

    реферат [7,9 K], добавлен 17.11.2002

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.