Программа для определения количества решений системы логических уравнений на языке Pascal

учитель информатики, ГБОУ СОШ № 139, аспирант МГТУ им. Н.Э. Баумана, Москва

Одной из самых сложных задач второй части ЕГЭ по информатике можно по праву считать задачу на определение количества решений системы логических уравнений – B15. При её решении во время подготовки к экзамену учащиеся зачастую желают проверить правильность своих ответов.

Получим программно количество решений системы уравнений (1):

Листинг программы, позволяющей получить количество решений системы (1):

В системе уравнений (1) присутствуют шесть логических переменных – x1, x2, x3, y1, y2, y3. Эти переменные имеют тип boolean. Также определена переменная kol целочисленного типа byte. Нужно отметить, что уже при восьми логических переменных в системе уравнений, когда количество строк таблицы истинности (или количество различных комбинаций логических переменных) достигает 28 = 256, во избежание переполнения и, как следствие, получения ложного результата, необходимо использовать другой тип, например, word, переменные которого могут содержать целочисленные значения от 0 до 65535. Соответственно, при шестнадцати логических переменных в системе необходимо отказаться уже от типа word.Вывод программы: «Количество решений = 13».

В теле программы происходит инициализация (обнуление) переменной kol.

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

В условном операторе каждая комбинация значений переменных проходит проверку на соответствие системе логических уравнений, записанных в качестве условия и объединённых конъюнкцией; в случае, если комбинация значений логических переменных является решением системы, то переменная kol инкрементируется. При записи условия условного оператора было учтено следующее тождество (2):

Следует обратить внимание на то, что при записи первого и второго уравнений системы (1) допустимо не сравнивать значения выражений  и логическую константу true. Более того, при записи третьего уравнения системы (1), допустимо использовать отрицание выражения  вместо сравнения с логической константой false. Таким образом, следующая запись условного оператора также будет верной:

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

Код публикации: 

3057