В данной статье предлагается и рассматривается метод решения логических уравнений, синтеза логических выражений с помощью встроенных стандартных функций математического пакета Mathcad. Задачи математической логики у школьников и учителей информатики вызывают немало вопросов, опасений за получение конечного положительного результата, а при сдаче ЕГЭ по информатике уровень тревожности в обеих группах значительно возрастает, что приводит к снижению процента (до 13%) правильно решенных задач [1-3].
Организуя поиск простых и верных решений логических задач для обеспечения информационной поддержки учителей школ, нами было предложено использовать возможности математических пакетов, в частности, Mathcad [5,6,7].
При первом знакомстве с его модулем Boolean, в котором представлены основные логические операции (отрицание, конъюнкция, дизъюнкция, сложение по модулю 2), убеждаемся в существовании ограниченных возможностей пакета для построения таблиц истинности. Данная проблема была решена при представлении каждого логического выражения (ЛогВ) в виде вектора возможных значений (0 или 1). Последнее позволило применять к ЛогВ все операции над векторами, составлять таблицы истинности, расширять возможности встроенных логических функций пакета при решении различных логических задач. Продемонстрируем сказанное на примере.
На рис. 1 представлена операция импликации (функция F2), значения которой определены в виде вектора-столбца. Для формирования таблицы истинности, с включением в нее F2, применяется операция присваивания каждому столбцу матрицы TI значений соответствующего вектора-столбца функции или переменной. Из рисунка 1 видно, что значения функции F2 разместились в пятом столбце, функции F1 – в третьем, а в четвертом разместились значения инверсии F1.

На рисунке 2 продемонстрированы возможные варианты задания логических функций двух переменных, в том числе, и эквиваленции. Аналогичные операции можно выполнить для функций 3-х и более переменных.
Таким образом, можно сделать первый вывод, что в пакете Mathcad имеются необходимые инструменты для формирования таблиц истинности и задания логических функций нескольких переменных.
Рассмотрим операции синтеза логических выражений. Известно, что существует несколько основных способов их синтеза. Разберем пример задачи ЕГЭ по информатике.

Пример. B 2 № 911 (Задание взято из задач сайта «Решу ЕГЭ»). Символом F обозначено одно из указанных ниже логических выражений от трех аргументов: X, Y, Z. Дан фрагмент таблицы истинности выражения F (см. табл. 1):
Таблица 1. Фрагмент таблицы истинности выражения F.
X |
Y |
Z |
F |
1 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
0 |
1 |
0 |
Какое выражение соответствует F? Даны четыре варианта ответа:
- (0 ∧ Y) ∧ (X ≡ Z)
- (1 ∧ Y) ∧ (X ≡ Z)
- (0 ∨ ¬Z) ∧ (X ≡ Y)
- (¬1 ∧ Y) ∧ (X ≡ Z)
Решение.
- Заметим, что первый вариант дает в результате 0 во всех случаях, так как конъюнкция ложна, если ложен хотя бы один из её аргументов, а это не соответствует значениям F.
- Выражение в варианте 2, как и в варианте 4, принимает ложные значения, если X не эквивалентно Z, а значит, по первой и третьей строчке и 2, и 4 вариант удовлетворяют F.
- Остается сравнить их по второй строке, в которой F – истинно. В этой строке X=0, Y=1, Z=0, значит, выражение в варианте 2 здесь истинно.
- Так как значения F и значения функции в варианте 2 сошлись по всем трем строкам, вариант 2 является ответом к данной задаче.
Для решения рассматриваемой задачи в Mathcad зададим X, Y, Z, F как векторы. Используем ранее описанную логическую операцию эквиваленции (см. рис.3). Представляя каждое ЛогВ в виде вектора, можно увидеть, что у второго выражения значения по строкам совпадают с значениями функции F. Присвоим второму ЛогВ имя FLV и проверим правильность решения логической задачи операцией «булево равенство» (обозначается в модуле «Boolen» жирным знаком «=»), связав ее с функцией F, тем самым, получим простое логическое уравнение. Если это уравнение связать обычным знаком равенства с 1, т.е. вывести все его решения, при которых это уравнение принимает истинные значения, то получим вектор решений. В данном случае их будет три (все три строки вектора-столбца решений приняли единичное значение).

Таким образом, сравнивая полученную логическую функцию FLV с исходной функцией F (производим проверку решения), получаем результирующий вектор с единичными значениями, что доказывает правильность решения задачи.
Установлено, что данный способ также весьма удобен для составления различных таблиц истинности, доказательства логических тождеств, решения логических уравнений и их систем [4].