чисел от 0 до 15, знаков , Р, (, ). Проверка на то, что бы числа не
повторялись. Знаки , Р, (, ) должны входить в функцию один раз.
По полученной функции формируется таблица истинности для четырех
переменных.
Заполняется массив MAS. Каждой ячейке массива соответствует набор
переменных булевой функции в ее таблице истинности. Значение «1» должно
указываться в ячейке, соответствующей набору, на котором значение
функции равно «1».
Далее программа вычисляет все возможные минимальные функции по
алгоритму перебора (см. 2.5.2.1).
В процессе разработки программы было решено отказаться от
алгоритма перебора, так как определить минимальную функцию быстрее и
надежнее методом Квайна-Мак-Класки.
Заполнение диаграммы пользователем. Проверка правильности
заполнения диаграммы. Значение «1» должно указываться в ячейке,
соответствующей набору, на котором значение функции равно «1».
Объединение ячеек диаграммы пользователем.
Проверяется то, чтобы объединяемые ячейки были соседними (ячейки,
лежащие на границах диаграммы также являются соседними по отношению
друг к другу), также в объединения не должны входить «0», также каждая
«1» должна хотя бы один раз войти в объединение.
По данным объединениям формируются функции.
Программа получает минимальные функции по алгоритму перебора.
На вход данного алгоритма необходимо предоставить импликантную
матрицу (в виде массива). Импликантная матрица получается по такому же
алгоритму, как и в методе Квайна-Мак-Класки.
Далее проверка, являются ли полученные пользователем функции
минимальными. Если хотя бы одна из полученных пользователем функций
совпадает с одной из функций, полученной программно, то данная функция
является минимальной.
Вывод на экран результата. Вывод количества ошибок и оценки.
(1) Разработка функции «перебора»
На вход функции подается импликантная матрица. Возвращает
функция массив минимальных функций.
На первом шаге запоминаются координаты ячеек матрицы, в которых
стоят знаки «+». Записываются координаты в новый массив (строки,
столбцы).
Идем по массиву, анализируем значения стобцов. В зависимости от
результата анализа запоминаем полную координату в новый массив. Если
значение столбца еще не присутствует в новом массиве, то записываем его
туда. И так до конца исходного массива.
Далее переносим первый элемент исходного массива в конец массива.
И повторяем процедуру заново. И так, пока все элементы массива не будут
перенесены по одному разу.