SmartUrok
Статья (Markdown) Доступно всем ЕГЭ

Задание №2 ЕГЭ по информатике

ЕГЭ информатика · 11 класс · Обновлено 13.05.2026 17:40 · Просмотры: 2

Задание №2 ЕГЭ по информатике

Записаться на пробный урок

Задание №2 ЕГЭ по информатике

Задание №2 ЕГЭ по информатике

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

Тема: логика Что нужно сделать: определить, какой переменной соответствует каждый столбец таблицы истинности.


📌 Условие задачи

ВСТАВЬ СЮДА УСЛОВИЕ ЗАДАЧИ

🖼️ Картинка к задаче

![Задание №2 ЕГЭ по информатике — таблица истинности](/media/materials/ege-informatika-zadanie-2-logika.png)

1. Что проверяет задание №2

Во втором задании ЕГЭ по информатике нужно работать с логическими выражениями и таблицами истинности.

Обычно в задаче дана логическая функция, например:

F = (w ≡ z) ∨ ¬(y → w) ∨ ¬x

Также дана часть таблицы истинности.

Но есть важная сложность:

столбцы таблицы не подписаны

То есть неизвестно, какой столбец соответствует переменной w, какой — x, какой — y, а какой — z.

Нужно определить порядок переменных по столбцам.


2. Что такое таблица истинности

Таблица истинности показывает, при каких значениях переменных логическая функция равна 0 или 1.

В логике:

0 — ложь
1 — истина

Если переменных 4:

w, x, y, z

то всего возможных наборов значений:

2^4 = 16

Потому что каждая переменная может быть равна либо 0, либо 1.


3. Основные логические операции

Логическое НЕ

В математике:

¬x

В Python:

not x

Если x = 0, то not x = 1.

Если x = 1, то not x = 0.


Логическое ИЛИ

В математике:

A ∨ B

В Python:

A or B

Операция ИЛИ равна 0 только тогда, когда обе части равны 0.


Логическое И

В математике:

A ∧ B

В Python:

A and B

Операция И равна 1 только тогда, когда обе части равны 1.


Импликация

В математике:

A → B

Читается:

если A, то B

В Python импликацию записываем так:

(not A) or B

Например:

y → w

В Python:

(not y) or w

Импликация ложна только в одном случае:

A = 1, B = 0

Эквивалентность

В математике:

A ≡ B

Эквивалентность равна 1, когда значения одинаковые.

В Python:

A == B

Например:

w ≡ z

В Python:

w == z

4. Функция из задачи

В задаче дана функция:

F = (w ≡ z) ∨ ¬(y → w) ∨ ¬x

Переведём её на Python.


Первая часть

w ≡ z

В Python:

w == z

Вторая часть

¬(y → w)

Сначала запишем импликацию:

y → w

В Python:

(not y) or w

Теперь добавим отрицание:

not ((not y) or w)

Третья часть

¬x

В Python:

not x

Полная функция

(w == z) or (not ((not y) or w)) or (not x)

5. Важный момент про значение F

В таблице из условия во всех трёх строках указано:

F = 0

Значит, нам нужно вывести только те наборы значений переменных, при которых функция равна 0.

То есть в Python будем писать условие:

if not ((w == z) or (not ((not y) or w)) or (not x)):
    print(w, x, y, z)

Почему именно not?

Потому что сама функция должна быть равна 0.

А если функция равна 0, то:

not F = 1

То есть условие сработает именно тогда, когда функция ложна.


6. Решение на Python обычным перебором

Решать задачу будем с помощью простого шаблона на Python.

print('w x y z')

for w in range(0, 2):
    for x in range(0, 2):
        for y in range(0, 2):
            for z in range(0, 2):
                if not ((w == z) or (not ((not y) or w)) or (not x)):
                    print(w, x, y, z)

7. Что делает этот код

Разберём подробно.


Печатаем заголовок

print('w x y z')

Эта строка нужна, чтобы мы видели, в каком порядке выводятся переменные.

На экране сначала появится:

w x y z

Перебираем переменную w

for w in range(0, 2):

Переменная w принимает значения:

0
1

Перебираем переменную x

for x in range(0, 2):

Переменная x тоже принимает значения:

0
1

Перебираем переменную y

for y in range(0, 2):

Переменная y принимает значения:

0
1

Перебираем переменную z

for z in range(0, 2):

Переменная z принимает значения:

0
1

Зачем нужны 4 вложенных цикла

В задаче 4 переменные:

w, x, y, z

Поэтому мы делаем 4 вложенных цикла.

Каждый цикл перебирает два значения:

0 и 1

В итоге Python проверяет все возможные варианты:

2^4 = 16

То есть все строки полной таблицы истинности.


8. Условие внутри циклов

Внутри циклов записана наша функция:

if not ((w == z) or (not ((not y) or w)) or (not x)):

Она означает:

если F = 0, то вывести значения переменных

То есть программа печатает только те строки, которые подходят под условие задачи.


9. Результат работы программы

Если запустить программу, получится:

w x y z
0 1 0 1
0 1 1 1
1 1 0 0

Это означает, что функция равна 0 только при таких наборах:

w x y z
0 1 0 1
0 1 1 1
1 1 0 0

10. Теперь сравниваем с таблицей из условия

В условии дана таблица, но столбцы не подписаны.

Обозначим столбцы просто так:

1-й столбец, 2-й столбец, 3-й столбец, 4-й столбец

Фрагмент таблицы из условия:

1-й столбец 2-й столбец 3-й столбец 4-й столбец F
0 1 0 0
1 1 0
0 0 0

Нужно понять, где находятся переменные:

w, x, y, z

11. Сравниваем с таблицей Python

Из Python получили строки:

w x y z
0 1 0 1
0 1 1 1
1 1 0 0

Теперь будем сопоставлять.


12. Ищем переменную x

Посмотрим на столбец x в таблице Python:

x
1
1
1

Во всех строках, где F = 0, переменная x равна 1.

Теперь посмотрим на таблицу из условия.

В ней третий столбец имеет две заполненные единицы:

3-й столбец
1
1

Значит, третий столбец очень хорошо подходит для переменной x.

Получаем:

3-й столбец = x

13. Ищем оставшиеся переменные

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

1-й столбец 2-й столбец x 4-й столбец F
0 1 0 0
1 1 0
0 0 0

Остались переменные:

w, y, z

14. Смотрим на нули

В таблице из условия:

  • во 2-м столбце есть значения 0 и 1;
  • в 4-м столбце стоят два нуля;
  • в 1-м столбце есть один ноль.

Теперь сравним со строками Python.

Таблица Python:

w x y z
0 1 0 1
0 1 1 1
1 1 0 0

Если убрать столбец x, останется:

w y z
0 0 1
0 1 1
1 0 0

15. Подбираем строки под фрагмент

Фрагмент из условия:

1-й 2-й x 4-й
0 1 0
1 1
0 0

Мы уже знаем:

3-й столбец = x

Теперь нужно расставить w, y, z по столбцам 1, 2 и 4.

Попробуем соответствие:

1-й столбец = z
2-й столбец = w
4-й столбец = y

То есть порядок столбцов:

z w x y

Проверим.


16. Проверка соответствия zwxy

Таблица Python:

w x y z
0 1 0 1
0 1 1 1
1 1 0 0

Если записать в порядке:

z w x y

получим:

z w x y
1 0 1 0
1 0 1 1
0 1 1 0

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

1-й 2-й 3-й 4-й F
0 1 0 0
1 1 0
0 0 0

Смотрим:

Первая строка условия

_ 0 1 0

В нашей таблице есть строка:

1 0 1 0

Подходит.


Вторая строка условия

_ 1 1 _

В нашей таблице есть строка:

0 1 1 0

Подходит.


Третья строка условия

0 _ _ 0

В нашей таблице есть строка:

0 1 1 0

Подходит.

Значит, порядок найден верно:

z w x y

17. Ответ

В ответ нужно записать буквы в том порядке, в котором идут столбцы таблицы.

Мы получили:

Столбец Переменная
1-й z
2-й w
3-й x
4-й y

Ответ:

zwxy

18. Важное замечание

В получившейся таблице Python может быть больше строк, чем в условии.

Это нормально.

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

Также нельзя опираться на порядок строк.

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

Нужно сравнивать:

количество нулей и единиц
расположение значений по столбцам
совпадение строк с учётом пустых клеток

19. Универсальный шаблон для задания №2

Для похожих задач можно использовать такой шаблон:

print('x y z w')

for x in range(0, 2):
    for y in range(0, 2):
        for z in range(0, 2):
            for w in range(0, 2):
                if ЛОГИЧЕСКОЕ_ВЫРАЖЕНИЕ:
                    print(x, y, z, w)

Если в условии нужно, чтобы функция была равна 1, то пишем:

if F:
    print(...)

Если в условии нужно, чтобы функция была равна 0, то пишем:

if not F:
    print(...)

20. Шаблон именно для нашей задачи

print('w x y z')

for w in range(0, 2):
    for x in range(0, 2):
        for y in range(0, 2):
            for z in range(0, 2):
                if not ((w == z) or (not ((not y) or w)) or (not x)):
                    print(w, x, y, z)

Результат:

w x y z
0 1 0 1
0 1 1 1
1 1 0 0

21. Частые ошибки

Ошибка 1. Забыть, что нужна функция F = 0

В нашей задаче во всех строках таблицы:

F = 0

Поэтому в Python нужно выводить строки, где функция ложна.

Правильно:

if not ((w == z) or (not ((not y) or w)) or (not x)):

Если написать без not, программа выведет строки, где F = 1.


Ошибка 2. Неправильно записать импликацию

Импликация:

y → w

В Python:

(not y) or w

Нельзя писать просто:

y or w

Ошибка 3. Перепутать порядок переменных в print

Если написали:

print('w x y z')

то выводить нужно именно:

print(w, x, y, z)

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


Ошибка 4. Считать пустую клетку нулём

Пустая клетка в таблице не означает 0.

Она означает:

значение не указано

То есть там может быть и 0, и 1.


Ошибка 5. Сравнивать строки только по порядку

Порядок строк в таблице из условия может отличаться от порядка строк, который вывел Python.

Поэтому нельзя говорить:

первая строка Python должна совпадать с первой строкой условия

Нужно искать подходящие строки в любом порядке.


22. Мини-шпаргалка

Операция В математике В Python
НЕ ¬x not x
И x ∧ y x and y
ИЛИ x ∨ y x or y
Импликация x → y (not x) or y
Эквивалентность x ≡ y x == y

23. Главное правило

1. Переводим логическое выражение в Python.
2. Выводим строки, где F равно нужному значению.
3. Сравниваем полученную таблицу с фрагментом из условия.
4. Помним, что столбцы в условии не подписаны.
5. Пишем переменные в порядке столбцов.

24. Итог

Для функции:

F = (w ≡ z) ∨ ¬(y → w) ∨ ¬x

Python выводит строки, где F = 0:

w x y z
0 1 0 1
0 1 1 1
1 1 0 0

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

z w x y

Ответ:

zwxy

Хотите, чтобы обучение дало реальный рост в оценках?

Запишитесь на пробный урок: оценим уровень, покажем план и подберем преподавателя под задачу.

Записаться на пробный