Прежде чем приступить к выполнению данного типа задач, стоит ознакомиться с логическими операциями, которые представлены на рисунке ниже.
Сложность данных задач заключается не столько в написании программы, сколько в анализе построенной таблицы истинности (результата выполнения программы).
Перед выполнением данного типа задач важно понимать, что в полученной таблице (результате программы) значения могут существенно отличаться от исходной таблицы, предоставленной в условии задачи. Наша главная цель — определить, как правильно расположить 0 и 1 в исходной таблице, а затем записать в ответе порядок букв, соответствующих каждому столбцу исходной таблицы истинности.
Пример №1
В каждом задании шаблон достаточно прост: он состоит из четырёх вложенных циклов, которые перебирают значения 0 и 1 для каждой переменной, участвующей в логическом выражении (x, y, z, w).
Ссылаясь на таблицу, представленную в начале статьи, напишем программу на Python, которая построит таблицу истинности для заданной логической функции.
Решение:
- Для удобства отображения в начале всегда добавляем print("x y z w")
- Затем создаём четыре вложенных цикла, соответствующих переменным x, y, z, w.
- Далее в переменную f заносим логическое выражение. Важно внимательно записать все логические операции, ссылаясь на исходную таблицу в начале статьи (в будущем их необходимо обязательно выучить).
- Пишем условие: если f = 0, то выводим на экран x, y, z, w.
Копируем наши исходную и полученную таблицы истинности в Paint для того, чтобы было удобно их сравнивать
Руководствуясь тем, что в исходной таблице последний столбец пустой, а в полученной таблице есть столбец, содержащий три «1», заполняем его полностью единицами. Этот столбец будет соответствовать переменной W.
Кроме того, в полученной таблице есть столбец, содержащий только «0». В исходной таблице заполняем третий столбец нулями, так как только в него можно записать три «0». Этот столбец будет соответствовать переменной Y.
Теперь рассмотрим последние два столбца (1-й и 2-й). В первом содержатся «1» и «0», во втором — «0» и «1». На данном этапе лучше обратить внимание на строки, так как половина таблицы уже заполнена, и мы оказались в неоднозначной ситуации.
Посмотрим на первую строку в исходной таблице: 1 0 0 1.
Анализируя полученную таблицу, видим, что в ней есть только одна строка с двумя «1». Одна из этих единиц принадлежит W, а вторая — Z.
Ответ: Z X Y W.
Далее я не буду подробно описывать ход мыслей, чтобы вы могли самостоятельно разобраться, как следует рассуждать. Ведь суть этого задания как раз в том, чтобы выявить закономерности между исходной и полученной таблицами.
Пример №2
Решение:
В некоторых случаях при написании логического выражения оператор not следует заключать в скобки. Например: (not (x <= z)). Привыкайте сразу писать правильно, чтобы в дальнейшем у вас не возникало трудностей при решении подобных задач. В первом примере также можно было заключить not в скобки.
Ответ: X Z Y W.
Пример №3
Решение:
Ответ: Z W Y X.
Понравилась статья? Хочешь лучше понимать информатику, программирование и разбираться в различных программах? Тогда поддержи лайком, подпишись на канал и поделись материалом с друзьями! Если у тебя остались вопросы или что-то стало неясно — смело спрашивай в комментариях!
Читайте также: