На уроке рассматривается разбор 2 задания ЕГЭ по информатике, дается подробное объяснение того, как решать подобные задачи
Содержание:
- Объяснение задания 2 ЕГЭ по информатике
- Таблицы истинности и порядок выполнения логических операций
- Решение заданий 2 ЕГЭ по информатике
- Задания для тренировки
2-е задание: «Таблицы истинности»
Уровень сложности
— базовый,
Требуется использование специализированного программного обеспечения
— нет,
Максимальный балл
— 1,
Примерное время выполнения
— 3 минуты.
Проверяемые элементы содержания: Умение строить таблицы истинности и логические схемы
Типичные ошибки и рекомендации по их предотвращению:
«Игнорирование прямо указанного в условии задания требования, что заполненная таблица истинности не должна содержать одинаковых строк. Это приводит к внешне правдоподобному, но на самом деле неверному решению»
ФГБНУ «Федеральный институт педагогических измерений»
Таблицы истинности и порядок выполнения логических операций
Для логических операций приняты следующие обозначения:
операция | пояснение | в программировании |
---|---|---|
¬ A, A | не A (отрицание, инверсия) | not(A) |
A ∧ B, A ⋅ B | A и B (логическое умножение, конъюнкция) | A and B |
A ∨ B, A + B | A или B (логическое сложение, дизъюнкция) | A or B |
A → B | импликация (следование) | A <= B |
A ↔ B, A ≡ B, A ∼ B | эквиваленция (эквивалентность, равносильность) | A==B (python) A=B(pascal) |
A ⊕ B | строгая дизъюнкция | A != B (python) A <> B (pascal) |
Егифка ©:
Отрицание (НЕ):
Таблица истинности операции НЕ
Конъюнкция (И):
Таблица истинности операции И (конъюнкция)
Дизъюнкция (ИЛИ):
Таблица истинности операции ИЛИ (дизъюнкция)
Импликация (если…, то…):
Таблица истинности операции Импликация (если…, то…)
Эквивалентность (тогда и только тогда, …):
Таблица истинности операции Эквивалентность (тогда и только тогда, …)
Сложение по модулю 2 (XOR):
A | B | A ⊕ B |
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 0 |
Порядок выполнения операций:
- если нет скобок, сначала выполняются все операции «НЕ», затем – «И», затем – «ИЛИ», импликация, равносильность
Еще о логических операциях:
- логическое произведение X∙Y∙Z∙… равно 1, т.е. выражение является истинным, только тогда, когда все сомножители равны 1 (а в остальных случаях равно 0)
- логическая сумма X+Y+Z+… равна 0, т.е. выражение является ложным только тогда, когда все слагаемые равны 0 (а в остальных случаях равна 1)
О преобразованиях логических операций читайте здесь.
Егифка ©:
Решение заданий 2 ЕГЭ по информатике
Задание 2_11: Решение 2 задания ЕГЭ по информатике:
Логическая функция F задается выражением
(¬x ∨ y ∨ z) ∧ (x ∨ ¬z ∨ ¬w)
Ниже приведен фрагмент таблицы истинности функции F, содержащей все наборы аргументов, при которых функция F ложна.
Определите, какому столбцу таблицы истинности функции F соответствует каждая из переменных x, y, z, w.
Перем.1 | Перем.2 | Перем.3 | Перем.4 | F |
??? | ??? | ??? | ??? | F |
0 | 1 | 1 | 0 | 0 |
0 | 1 | 1 | 1 | 0 |
1 | 0 | 0 | 0 | 0 |
1 | 1 | 0 | 0 | 0 |
В ответе запишите буквы в том порядке, в котором идут соответствующие им столбцы.
✍ Решение:
✎ Способ 1. Электронные таблицы Excel + Логические размышления:
- Отобразим перебор всех значений использующихся в выражении переменных (всю таблицу истинности). Поскольку в выражении используются 4 переменных, то строк таблицы будет 24=16:
- Далее обе скобки исходного выражения необходимо записать в виде логического выражения, каждую — в отдельном столбце. Также в отдельном столбце добавьте формулу итоговой функции F:
xwzy
-
✎ Способ 2. Программирование:
- В результате будут выведены значения для
F=0
:
Язык python:
print('x y z w') for x in 0, 1: for y in 0, 1: for z in 0, 1: for w in 0, 1: F = (not(x) or y or z) and (x or not(z) or not(w)) if not(F): print(x, y, z, w)
x y z w 0 0 1 1 0 1 1 1 1 0 0 0 1 0 0 1
xwzy
Язык pascalAbc.net:
begin writeln('x':7, 'y':7, 'z':7,'w':7); for var x:=false to true do for var y:=false to true do for var z:=false to true do for var w:=false to true do if not((not x or y or z) and (x or not z or not w)) then writeln(x:7, y:7, z:7,w:7); end.
F=0
:x y z w False False True True False True True True True False False False True False False True
false
= 0, True
= 1Ответ:
xwzy
-
✎ Способ 3. Логические размышления:
- Внешняя операция выражения — конъюнкция (∧). Во всех указанных строках таблицы истинности функция принимает значение 0 (ложь). Конъюнкция ложна аж в трех случаях, поэтому проверить на ложь очень затруднительно. Тогда как конъюнкция истинна (= 1) только в одном случае: когда все операнды истинны. Т.е. в нашем случае:
(¬x ∨ y ∨ z) ∧ (x ∨ ¬z ∨ ¬w) = 1 когда: 1. (¬x ∨ y ∨ z) = 1 И 2. (x ∨ ¬z ∨ ¬w) = 1
x | y | z | результат |
0 | 0 | 0 | 1 |
0 | 0 | 1 | 1 |
0 | 1 | 0 | 1 |
0 | 1 | 1 | 1 |
1 | 0 | 0 | 0 |
1 | 0 | 1 | 1 |
1 | 1 | 0 | 1 |
1 | 1 | 1 | 1 |
x | z | w | результат |
0 | 0 | 0 | 1 |
0 | 0 | 1 | 1 |
0 | 1 | 0 | 1 |
0 | 1 | 1 | 0 |
1 | 0 | 0 | 1 |
1 | 0 | 1 | 1 |
1 | 1 | 0 | 1 |
1 | 1 | 1 | 1 |
x | y | z | w | F |
0 | 0 | 1 | 1 | 0 |
0 | 1 | 1 | 1 | 0 |
1 | 0 | 0 | 0 | 0 |
1 | 0 | 0 | 1 | 0 |
x | y | z | w | F |
0 | 0 | 1 | 1 | 0 |
0 | 1 | 1 | 1 | 0 |
1 | 0 | 0 | 0 | 0 |
1 | 0 | 0 | 1 | 0 |
x | ??? | ??? | ??? | F |
0 | 1 | 1 | 0 | 0 |
0 | 1 | 1 | 1 | 0 |
1 | 0 | 0 | 0 | 0 |
1 | 1 | 0 | 0 | 0 |
x | y | z | w | F |
0 | 0 | 1 | 1 | 0 |
0 | 1 | 1 | 1 | 0 |
1 | 0 | 0 | 0 | 0 |
1 | 0 | 0 | 1 | 0 |
x | ??? | ??? | y | F |
0 | 1 | 1 | 0 | 0 |
0 | 1 | 1 | 1 | 0 |
1 | 0 | 0 | 0 | 0 |
1 | 1 | 0 | 0 | 0 |
x | y | z | w | F |
0 | 0 | 1 | 1 | 0 |
0 | 1 | 1 | 1 | 0 |
1 | 0 | 0 | 0 | 0 |
1 | 0 | 0 | 1 | 0 |
x | w | z | y | F |
0 | 1 | 1 | 0 | 0 |
0 | 1 | 1 | 1 | 0 |
1 | 0 | 0 | 0 | 0 |
1 | 1 | 0 | 0 | 0 |
Результат: xwzy
🎦 Видеорешение (бескомпьютерный вариант):
📹 здесь
📹 Видеорешение на RuTube здесь
Задание 2_12: Разбор 2 задания ЕГЭ:
Миша заполнял таблицу истинности функции:
(¬z ∧ ¬(x ≡ y)) → ¬(y ∨ w)
но успел заполнить лишь фрагмент из трех различных ее строк, даже не указав, какому столбцу таблицы соответствует каждая из переменных w, x, y, z:
Перем.1 | Перем.2 | Перем.3 | Перем.4 | F |
??? | ??? | ??? | ??? | F |
1 | 1 | 0 | ||
1 | 0 | 0 | ||
1 | 1 | 0 | 0 |
Определите, какому столбцу таблицы соответствует каждая из переменных x, y, z, w.
В ответе напишите буквы w, x, y, z в том порядке, в котором идут соответствующие им столбцы.
Подобные задания для тренировки
✍ Решение:
✎ Способ 1. Логические размышления (бескомпьютерный вариант):
- Решим задание методом построения полной таблицы истинности.
- Посчитаем общее количество строк в таблице истинности и построим ее:
4 переменных -> 24 = 16 строк
(¬z ∧ ¬(x ≡ y)) → ¬(y ∨ w) 1. Избавимся от импликации: ¬(¬z ∧ ¬(x ≡ y)) ∨ ¬(y ∨ w) 2. Внесем знак отрицания в скобки (закон Де Моргана): (z ∨ (x ≡ y)) ∨ (¬y ∧ ¬w) = 0 1 часть = 0 2 часть = 0 * Исходное выражение должно быть = 0. Дизъюнкция = 0, когда оба операнда равны 0.
(z ∨ (x ≡ y)) = 0 когда z = 0 и x ≡ y = 0 ¬y ∧ ¬w = 0 когда: 1. ¬y = 0 ¬w = 0 2. ¬y = 1 ¬w = 0 3. ¬y = 0 ¬w = 1
x | y | w | z | F |
0 | 1 | 0 | 0 | 0 |
0 | 1 | 1 | 0 | 0 |
1 | 0 | 1 | 0 | 0 |
y | w | x | z | F |
1 | 1 | 0 | 0 | 0 |
1 | 0 | 0 | 0 | 0 |
0 | 1 | 1 | 0 | 0 |
Результат: ywxz
✎ Способ 2. Программирование:
- В результате будут выведены значения для F=0:
Язык PascalAbc.net:
begin writeln('x':7, 'y':7, 'z':7,'w':7); for var x:=false to true do for var y:=false to true do for var z:=false to true do for var w:=false to true do if not((not z and (x xor y)) <= not(y or w)) then writeln(x:7, y:7, z:7,w:7); end.
x y z w False True False False False True False True True False False True
false
= 0, True
= 1Сопоставив их с исходной таблицей, получим результат: ywxz
Язык Python:
print ('x y z w') for x in 0,1: for y in 0,1: for z in 0,1: for w in 0,1: F=(not z and not(x==y))<=(not(y or w)) if not F: print (x,y,z,w)
F=0
:x y z w 0 1 0 0 0 1 0 1 1 0 0 1
Сопоставив их с исходной таблицей, получим результат:
Результат: ywxz
🎦 Доступно видео решения этого задания (бескомпьютерный вариант):
📹 здесь
📹 Видеорешение на RuTube здесь
🎦 Видео (решение 2 ЕГЭ в Excel):
📹 здесь
📹 Видеорешение на RuTube здесь
📹 Видеорешение на RuTube здесь (Программирование)
Задание 2_10: Решение 2 задания ЕГЭ по информатике:
Логическая функция F задается выражением
¬a ∧ b ∧ (c ∨ ¬d)
Ниже приведен фрагмент таблицы истинности функции F, содержащей все наборы аргументов, при которых функция F истинна.
Определите, какому столбцу таблицы истинности функции F соответствует каждая из переменных a, b, c, d.
Перем.1 | Перем.2 | Перем.3 | Перем.4 | F |
??? | ??? | ??? | ??? | F |
0 | 1 | 0 | 0 | 1 |
1 | 1 | 0 | 0 | 1 |
1 | 1 | 0 | 1 | 1 |
В ответе запишите буквы в том порядке, в котором идут соответствующие им столбцы.
✍ Решение:
🎦 (Бескомьютерный вариант) Предлагаем подробный разбор посмотреть на видео:
📹 здесь
📹 Видеорешение на RuTube здесь
Задание 2_3: Решение задания 2. Демоверсия ЕГЭ 2018 информатика:
Логическая функция F задаётся выражением ¬x ∨ y ∨ (¬z ∧ w).
На рисунке приведён фрагмент таб. ист-ти функции F, содержащий все наборы аргументов, при которых функция F ложна.
Определите, какому столбцу таблицы истинности функции F соответствует каждая из переменных w, x, y, z.
Перем. 1 | Перем. 2 | Перем. 3 | Перем. 4 | F |
??? | ??? | ??? | ??? | F |
1 | 0 | 0 | 0 | 0 |
1 | 1 | 0 | 0 | 0 |
1 | 1 | 1 | 0 | 0 |
В ответе напишите буквы w, x, y, z в том порядке, в котором идут соответствующие им столбцы (сначала – буква, соответствующая первому столбцу; затем – буква, соответствующая второму столбцу, и т.д.) Буквы в ответе пишите подряд, никаких разделителей между буквами ставить не нужно.
Подобные задания для тренировки
✍ Решение:
-
✎ Логические размышления (бескомпьютерный вариант):
- Внешним действием (последним выполняемым) в исходном выражении является дизъюнкция:
¬x ∨ y ∨ (¬z ∧ w)
x1 | x2 | F |
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 1 |
¬x
= 1 или 0, y
= 1 или 0, ¬z ∧ w
= 1 или 0).¬x
= 0, иными словами x
= 1. Значит первый столбец соответствует переменной x
. Перем. 1 | Перем. 2 | Перем. 3 | Перем. 4 | F |
x | ??? | ??? | ??? | F |
1 | 0 | 0 | 0 | 0 |
y
= 0. Значит четвертый столбец соответствует переменной y
. Перем. 1 | Перем. 2 | Перем. 3 | Перем. 4 | F |
x | ??? | ??? | y | F |
1 | 1 | 1 | 0 | 0 |
¬z ∧ w
должно равняться 0, чтобы функция была ложной. Конъюнкция истинна только тогда, когда оба операнда истинны (=1); в нашем случае функция должна быть ложной, но пойдем от обратного. Если ¬z
= 1, т.е. z
= 0, а w
= 1, то это неверно для нашего случая. Значит всё должно быть наоборот: z
= 1, а w
= 0. Таким образом столбец второй соответствует z
, а столбец третий — w
. x | z | w | y | F |
1 | 0 | 0 | 0 | 0 |
1 | 1 | 0 | 0 | 0 |
1 | 1 | 1 | 0 | 0 |
Результат: xzwy
✎ Способ 2. Программирование:
Язык pascalABC.NET:
begin writeln('x ','y ','z ','w '); for var x:=false to true do for var y:=false to true do for var z:=false to true do for var w:=false to true do if not(not x or y or(not z and w)) then writeln(x:7,y:7,z:7,w:7); end.
🎦 (бескомпьютерный вариант) Подробное решение данного 2 задания из демоверсии ЕГЭ 2018 года смотрите на видео:
📹 здесь
📹 Видеорешение на RuTube здесь
Задание 2_13: Разбор досрочного егэ по информатике 2019
Логическая функция F задаётся выражением
(x ∧ ¬y) ∨ (y ≡ z) ∨ ¬w
Определите, какому столбцу таблицы истинности функции F соответствует каждая из переменных x, y, z, w.
В ответе напишите буквы x, y, z, w в том порядке, в котором идут соответствующие им столбцы.
Перем.1 | Перем.2 | Перем.3 | Перем.4 | F |
??? | ??? | ??? | ??? | F |
0 | 0 | 0 | ||
0 | 1 | 0 | 1 | 0 |
1 | 0 | 0 |
✍ Решение:
🎦 Видеорешение (бескомпьютерный вариант):
📹 здесь
📹 Видеорешение на RuTube здесь
Задания для тренировки
Задание 2_2: Задание 2 ЕГЭ по информатике:
Каждое из логических выражений F и G содержит 5 переменных. В табл. истинности для F и G есть ровно 5 одинаковых строк, причем ровно в 4 из них в столбце значений стоит 1.
Сколько строк таблицы истинности для F ∨ G содержит 1 в столбце значений?
Подобные задания для тренировки
✍ Решение:
- Поскольку в каждом из выражений присутствует 5 переменных, то эти 5 переменных порождают таблицу истинности из 32 строк: т.к. каждая из переменных может принимать оно из двух значений (0 или 1), то различных вариантов с пятью переменными будет 25=32, т.е. 32 строки.
- Из этих 32 строк и для F и для G мы знаем наверняка только о 5 строках: 4 из них истинны (=1), а одна ложна (=0).
- Вопрос стоит о количестве строк = 1 для таб. истинности F ∨ G. Данная операция — дизъюнкция, которая ложна только в одном случае — если F = 0 и одновременно G = 0
- В исходных таблицах для F и G мы знаем о существовании только одного 0, т.е. в остальных строках может быть 1. Т.о., и для F и для G в 31 строке могут быть единицы (32-1=31), а лишь в одной — ноль.
- Тогда для F ∨ G только в одном случае будет 0, когда и F = 0 и G = 0:
- Соответственно, истинными будут все остальные строки:
№ | F | G | F ∨ G |
---|---|---|---|
1 | 0 | 0 | 0 |
2 | 0 | 1 | 1 |
… | … | … | 1 |
32 | … | … | 1 |
32 - 1 = 31
Результат: 31
Подробное объяснение данного задания смотрите на видео:
📹 здесь
Задание 2_6: Решение 2 задания ЕГЭ по информатике:
Каждое логическое выражение A и B зависит от одного и того же набора из 7 переменных. В таблицах истинности каждого из этих выражений в столбце значений стоит ровно по 4 единицы.
Каково максимально возможное число единиц в столбце значений таблицы истинности выражения A ∨ B?
✍ Решение:
- Полная таблица истинности для каждого из выражений A и B состоит из 27 = 128 строк.
- В четырех из них результат равен единице, значит в остальных — 0.
- A ∨ B истинно в том случае, когда либо A = 1 либо B = 1, или и A и B = 1.
- Поскольку А = 1 только в 4 случаях, то чтобы получить максимальное количество единиц в результирующей таблице истинности (для A ∨ B), расположим все единицы т.и. для выражения A так, чтобы они были в строках, где B = 0, и наоборот, все строки, где B = 1, поставим в строки, где A = 0:
- Итого получаем 8 строк.
- Если бы в задании требовалось найти минимальное количество единиц, то мы бы совместили строки со значением = 1, и получили бы значение 4.
A | B |
1 | 0 |
1 | 0 |
1 | 0 |
1 | 0 |
0 | 1 |
0 | 1 |
0 | 1 |
0 | 1 |
0 | 0 |
… | … |
Результат: 8
Задание 2_7: Решение 2 задания ЕГЭ по информатике:
Каждое логическое выражение A и B зависит от одного и того же набора из 8 переменных. В таблицах истинности каждого из этих выражений в столбце значений стоит ровно по 6 единиц.
Каково максимально возможное число нулей в столбце значений таблицы истинности выражения A ∧ B?
✍ Решение:
- Полная таблица истинности для каждого из выражений A и B состоит из 28 = 256 строк.
- В шести из них результат равен единице, значит в остальных — 0.
- A ∧ B ложно в том случае, когда:
A ∧ B = 0 если: 1. A = 0, B = 1 2. B = 0, A = 1 3. A = 0 и B = 0
- Во всех случаях там где А=1 может стоять B=0, и тогда результат F = 0. Поскольку нам необходимо найти максимально возможное число нулей, то как раз для всех шести А=1 сопоставим B=0, и наоборот, для всех шести возможных B=1 сопоставим A=0
- Поскольку строк всего 256, то вполне возможно, что все 256 из них возвратят в результате 0
A | B | F |
1 | 0 | 0 |
1 | 0 | 0 |
1 | 0 | 0 |
1 | 0 | 0 |
0 | 1 | 0 |
0 | 1 | 0 |
0 | 1 | 0 |
0 | 1 | 0 |
0 | 0 | 0 |
… | … | … |
Результат: 256
Задание 2_4: 2 задание:
Дан фрагмент таблицы истинности выражения F.
x1 | x2 | x3 | x4 | x5 | x6 | x7 | F |
1 | 0 | 0 | 1 | 1 | 1 | 1 | 0 |
0 | 1 | 0 | 0 | 1 | 0 | 1 | 1 |
0 | 1 | 0 | 1 | 1 | 0 | 1 | 0 |
Каким из приведённых ниже выражений может быть F?
1) ¬x1 ∧ x2 ∧ ¬x3 ∧ ¬x4 ∧ x5 ∧ ¬x6 ∧ x7
2) x1 ∨ x2 ∨ x3 ∨ ¬x4 ∨ ¬x5 ∨ ¬x6 ∨ ¬x7
3) x1 ∧ ¬x2 ∧ x3 ∧ ¬x4 ∧ x5 ∧ x6 ∧ ¬x7
4) x1 ∨ ¬x2 ∨ x3 ∨ x4 ∨ ¬x5 ∨ ¬x6 ∨ x7
✍ Решение:
- В первом внешняя операция (выполняется последней) — конъюнкция. Начнем рассмотрение с нее. Соответственно, проверяем по второй строке таб. ист-ти, там где F = 1, так как в таком случае все аргументы должны быть истинными (см. таб. истинности для конъюнкции).
- Если мы подставим в нее все аргументы выражения, то функция действительно возвращает истину. Т.е. пункт первый подходит:
- Но проверим на всякий случай остальные.
- Второй пункт проверяем по первой и третьей строке, так как основная операция — дизъюнкция — ложна только в том случае, если все аргументы ложны (см. таб. истинности для дизъюнкции). Проверяя по первой строке, сразу видим, что x1 в ней равен 1. В таком случаем функция будет = 1. Т.е. этот пункт не подходит:
- Третий пункт проверяем по второй строке, так как основная операция — конъюнкция — возвратит истину только тогда, когда все операнды равны 1. Видим, что x1 = 0, соответственно функция будет тоже равна 0. Т.е. выражение нам не подходит:
- Четвертый пункт проверяем по первой и третьей строкам. В первой — x1 = 1, т.е. функция должна быть равна 1. Т.е. пункт тоже не подходит:
- Таким образом, ответ равен 1.
Результат: 1
Решение 2 задания ГВЭ по информатике смотрите на видео:
📹 здесь
Задание 2_8: Решение 2 задания ЕГЭ по информатике:
Дано логическое выражение, зависящее от 5 логических переменных:
(¬x1 ∨ ¬x2 ∨ ¬x3 ∨ x4 ∨ x5) ∧ (x1 ∨ x2 ∨ x3 ∨ ¬x4 ∨ ¬x5)
Сколько существует различных наборов значений переменных, при которых выражение истинно?
1) 0
2) 30
3) 31
4) 32
Подобные задания для тренировки
✍ Решение:
- Поскольку выражение включает 5 переменных, то таб. ист-ти состоит из 25 = 32 строк.
- Внешней операцией (последней) является конъюнкция (логическое умножение), а внутри скобок — дизъюнкция (логическое сложение).
- Обозначим первую скобку за А, а вторую скобку за B. Получим A ∧ B.
- Найдем сколько нулей существует для таб. истинности:
A B F 1. 0 0 0 2. 0 1 0 3. 1 0 0
Теперь рассмотрим каждый случай отдельно:
¬x1 ∨ ¬x2 ∨ ¬x3 ∨ x4 ∨ x5 = 0
и
x1 ∨ x2 ∨ x3 ∨ ¬x4 ∨ ¬x5 = 0.
32 - 2 = 30, что соответствует номеру 2
Результат: 2
Подробное решение задания смотрите в видеоуроке:
📹 здесь
Задание 2_5: Решение 2 задания ЕГЭ по информатике:
Дан фрагмент таблицы истинности для выражения F:
x1 | x2 | x3 | x4 | x5 | x6 | F |
0 | 0 | 1 | 1 | 0 | 0 | 1 |
0 | 0 | 0 | 0 | 1 | 1 | 1 |
1 | 0 | 1 | 0 | 1 | 1 | 1 |
0 | 1 | 1 | 1 | 0 | 1 | 0 |
Укажите максимально возможное число различных строк полной таблицы истинности этого выражения, в которых значение x3 не совпадает с F.
Подобные задания для тренировки
✍ Решение:
- Полная таблица истинности будет иметь 26 = 64 строк (т.к. 6 переменных).
- 4 из них нам известны: в них x3 два раза не совпадает с F.
- Неизвестных строк:
64 - 4 = 60
60 + 2 = 62
Результат: 62
Задание 2_9: Решение 2 задания ЕГЭ по информатике:
Дан фрагмент таблицы истинности для выражения F:
x1 | x2 | x3 | x4 | x5 | x6 | x7 | F |
0 | 0 | 0 | |||||
0 | 0 | 1 | |||||
1 | 1 | 1 |
Каким выражением может быть F?
1) x1 ∧ (x2 → x3) ∧ ¬x4 ∧ x5 ∧ x6 ∧ ¬x7
2) x1 ∨ (¬x2 → x3) ∨ ¬x4 ∨ ¬x5 ∨ x6 ∨ ¬x7
3) ¬x1 ∧ (x2 → ¬x3) ∧ x4 ∧ ¬x5 ∧ x6 ∧ x7
4) ¬x1 ∨ (x2 → ¬x3) ∨ x4 ∨ x5 ∨ x6 ∧ x7
✍ Решение:
- Рассмотрим отдельно каждый пункт и найдем последнюю операцию, которая должна быть выполнена (внешнюю).
1 пункт:
(((x1 ∧ (x2 → x3) ∧ ¬x4) ∧ x5) ∧ x6) ∧ ¬x7
2 пункт:
(((x1 ∨ (¬x2 → x3) ∨ ¬x4) ∨ ¬x5) ∨ x6) ∨ ¬x7
3 пункт:
(((¬x1 ∧ (x2 → ¬x3) ∧ x4) ∧ ¬x5) ∧ x6) ∧ x7
Результат: 4
В видеоуроке рассмотрено подробное решение 2 задания:
📹 здесь
Задание 2_1: Задание 2 ЕГЭ по информатике:
Логическая функция F задается выражением
(y → x) ∧ (y → z) ∧ z.
Определите, какому столбцу таблицы истинности функции F соответствует каждая из переменных x, y, z.
№ | Перем. 1 | Перем. 2 | Перем. 3 | F |
---|---|---|---|---|
??? | ??? | ??? | F | |
1 | 0 | 0 | 0 | 0 |
2 | 0 | 0 | 1 | 0 |
3 | 0 | 1 | 0 | 1 |
4 | 0 | 1 | 1 | 1 |
5 | 1 | 0 | 0 | 0 |
6 | 1 | 0 | 1 | 0 |
7 | 1 | 1 | 0 | 0 |
8 | 1 | 1 | 1 | 1 |
В ответе напишите буквы x, y, z в том порядке, в котором идут соответствующие им столбцы.
✍ Решение:
- Сначала необходимо рассмотреть логическую операцию, которую мы будем выполнять в последнюю очередь — это логическое И (конъюнкция) или ∧. То есть внешнюю операцию:
(y → x) ∧ (y → z) ∧ z
(y → x) ∧ (y → z) ∧ z = 1 если: 1. (y → x) = 1 2. (y → z) = 1 3. z = 1
№ | Перем. 1 | Перем. 2 | Перем. 3 | F |
---|---|---|---|---|
3 | 0 | 1 | 0 | 1 |
№ | Перем. 1 | Перем. 2 | Перем. 3 | F |
---|---|---|---|---|
_ | ??? | z | ??? | F |
№ | Перем. 1 | z | Перем. 3 | F |
---|---|---|---|---|
4 | 0 | 1 | 1 | 1 |
Результат: yzx
Детальный разбор данного задания 2 ЕГЭ по информатике предлагаем посмотреть в видео:
📹 здесь
Двадцать первое задание из ЕГЭ по информатике — довольно серьёзно задание, которое требует понимания основ программирования и использования функций.
Все сегодняшние задачи из ЕГЭ по информатике будем рассматривать на языке программирования Паскаль.
Что такое Функция в языке программирования Паскаль ?
Функция – это подпрограмма, результатом работы которой является определенное значение.
Рассмотрим пример функции, которая суммируем два числа!
var a, b, summa: integer; // Функция, которая суммирует два числа. function F(x:integer; y:integer):integer; begin F := x + y; end; BEGIN Readln(a); Readln(b); summa := F(a, b); WriteLn(summa); END.
Здесь функция F, которая суммирует два числа.
В главной часте программы, которая заключена между BEGIN и END, запрашиваются два числа с клавиатуры: a и b! Эти два числа передаются в функцию F. В функции эти числа кладутся в локальные переменные x и y. Переменные x и y суммируются, и результатом работы функции будет сумма переменных a и b.
Результат работы функции будет помещён в переменную summa (В строке summa := F(a, b)).
Таким образом, в переменной summa будет сумма двух переменных a и b.
Значение, которое вернёт функция, указано в строчке F := x + y;
Функции позволяют сократить программный код для однотипных расчётов.
Отличие функций от процедур в языке программирования Паскаль заключается в том, что функция возвращает значение, которое можно присвоить переменной, а процедура — нет.
Функции так же могут попасться и в 11 задании из ЕГЭ по информатике, поэтому понимание функций очень важно на экзамене по информатике.
Тренировочные задачи 21 задания из ЕГЭ по информатике
Задача (стандартная)
Определите, при каком наименьшем значении b в результате выполнения следующего алгоритма будет напечатано число 100 (Для Вашего удобства алгоритм представлен на пяти языках):
Бейсик | Паскаль |
---|---|
DIM A, B AS INTEGER INPUT B A = 0 WHILE F(A) < B A = A + 1 WEND PRINT A FUNCTION F(x) DIM I, S, AS INTEGER S = 0 I = 1 WHILE I <= x S = S + 5 I = I + 1 WEND F = S END FUNCTION |
var a, b :integer; function F(x :integer): integer; var i, s : integer; begin s := 0; i := 1; while i <= x do begin s := s + 5; i := i + 1; end; F := s end; BEGIN readln(b); a := 0; while F(a) < b do a := a + 1; write(a); END. |
C++ | Алгоритмический язык |
#include using namespace std; long F(long x) { long i, s; s = 0; i = 1; while(i <= x) { s = s + 5; i = i + 1; } return s; } int main() { int a, b; cin >> b; a = 0; while (F(a) < b) a = a + 1; cout << a << endl; return 0; } |
алг нач цел a, b ввод b a := 0 нц пока F(a) < b a := a + 1 кц вывод a кон алг цел F(цел x) нач цел i, s s := 0 i := 1 нц пока i <= x s := s + 5 i := i + 1 кц знач := s кон |
Python | |
def F(x) s = 0 i = 1 while i <= x: s = s + 5 i = i + 1 return s b = int(input()) a = 0 while F(a) < b: a = a + 1 print(a) |
Решение:
Чтобы программа напечатала число 100, в переменной a по окончанию программы должно быть число 100.
Переменная a увеличивается в цикле while, т.е. пока значение функции F(a) меньше того числа, которое пользователь ввёл с клавиатуры (переменной b), Цикл будет прибавлять к переменной a единицу.
В последний раз, когда Цикл while в основной части программы пройдёт проверку (F(a) < b), значение переменной a = 99. Ведь к переменной a прибавится 1 внутри цикла, и как раз, программа напечатает 100.
Найдём, чему будет равно значение функции при последнем проходе Цикла (при a = 99).
Переменная x внутри функции олицетворяет переменную a, которая передаётся в виде аргумента в функцию F.
Тогда и x = 99, следовательно, цикл while (внутри функции) будет повторятся 99 раз. После окончания цикла (внутри функции) в переменной s будет значение s = 0 + 99 * 5 = 495. Это число вернёт функция в виде значения, и это значение будет участвовать в условии цикла while в главной части программы.
Нужно найти наименьшее значение b, чтобы условие 495 < b выполнялось (это будет последний проход ЦИКЛА).
Понимаем, что b = 496.
Ответ: 496.
Потренируемся решать ещё примерные задачи 21 задания из ЕГЭ по информатике.
Задача (закрепление материала)
Определите при каком наименьшем значении b в результате выполнения следующего алгоритма будет напечатано число 20 (для Вашего удобства алгоритм представлен на пяти языках):
Бейсик | Паскаль |
---|---|
DIM A, B AS INTEGER INPUT B A = 0 WHILE F(A) < B A = A + 1 WEND PRINT A FUNCTION F(x) IF x = 0 F = 0 ELSE F = 7 + F(x-1) END IF END FUNCTION |
var a, b : integer; function F(x:integer):integer; begin if x = 0 then F := 0 else F := 7 + F(x-1) end; BEGIN readln(b); a := 0; while F(a) < b do a := a + 1; write(a); END. |
C++ | Алгоритмический язык |
#include using namespace std; long F(long x) { if(x == 0) return 0; else return 7 + F(x - 1); } int main() { int a, b; cin >> b; a = 0; while (F(a) < b) a = a + 1; cout << a << endl; return 0; } |
алг нач цел a, b ввод b a := 0 нц пока F(a) < b a := a + 1 кц вывод a кон алг цел F(цел x) нач если x > 0 то знач := 0 иначе знач := 7 + F(x-1) все кон |
Python | |
def F(x): if x == 0: return 0 else: return 7 + F(x-1) b = int(input()) a = 0 while F(a) < b: a = a + 1 print(a) |
Решение:
Чтобы программа напечатала число 20, нужно, чтобы при последнем проходе цикла while в главной части программы условие F(a) < b было верно при a = 19.
Число 19 передаём в функцию, посмотрим какое значение вернёт функция.
Локальная переменная x после того, как будет запущена функция F, будет равна 19. Условие отработает по ветке else, т.к. 19 неравно 0. Значит функция F запускает ещё раз функцию F но с другим параметром 18 (19 — 1). И т.д., пока параметр передаваемый в функцию не будет равен нулю.
Получается такая картина:
F(19) = F(18) + 7
F(18) = F(17) + 7
F(17) = F(16) + 7
…
F(1) = F(0) + 7
F(0) = 0
При запуске F(19) функция возвращает сумму девятнадцати семёрок. F(19) = 19 * 7 = 133.
Т.е. последний раз, когда выполняется цикл в главной части программы должно выполнится условие 133 < b. Понимаем, что наименьшее значение b должно быть 134.
Ответ: 134
Важный пример для изучения 21 задания из ЕГЭ по информатике.
Задача (Минимум функции)
Определите, какое число будет напечатано в результате выполнения следующего алгоритма (для Вашего удобства алгоритм представлен на пяти языках):
Бейсик | Паскаль |
---|---|
DIM A, B, T, M, R AS INTEGER A = -20: B = 20 M = A : R = F(A) FOR T = A TO B IF F(T) <= R THEN M = T R = F(T) END IF NEXT T PRINT M + 6 FUNCTION F(X) F = (x * x - 16) * (x * x - 16) + 3 END FUNCTION |
var a, b, t, M, R :integer; function F(x:integer):integer; begin F := (x * x - 16) * (x * x - 16) + 3 end; BEGIN a: = -20; b := 20; M := a; R := F(a); for t := a to b do if F(t) <= R then begin M := t; R := F(t); end; write(M + 6); END. |
C++ | Алгоритмический язык |
#include using namespace std; long F(long x) { return (x * x - 16) * (x * x - 16) + 3; } int main() { long a, b, t, M, R; a = -20; b = 20; M = a; R = F(a); for(t = a; t <= b; t++) { if(F(t) <= R) { M = t; R = F(t); } } cout << M + 6 << endl; return 0; } |
алг нач цел a, b, t, M, R a := -20; b := 20 M := a; R := F(a) нц для t от a до b если F(t) <= R то M := t R := F(t) все кц вывод M + 6 кон алг цел F(цел x) нач знач := (x*x - 16) * (x*x - 16) + 3 кон |
Python | |
def F(x): return (x * x - 16) * (x * x - 16) + 3 a = -20; b = 20 M = a; R = F(a) for t in range(a, b+1): if (F(t) <= R): M = t; R = F(t) print(M + 6) |
Решение:
В главной части программы находится цикл FOR. В нём переменная t проходит целые числа от -20 до 20. И эта переменная t является аргументов в функции F.
В теле цикла идёт условие. Это условие ищет наименьшее значение для функции F. Если мы нашли меньшее значение для функции F, чем то значение, которое сейчас считается наименьшим и находится в переменной R, то это значение будет считаться наименьшим.
Таким образом, после прохождения всего цикла, в переменной R будет минимум всей функции F! А в переменной M значение переменной t, при котором этот минимум настаёт.
Чтобы ответить на вопрос задачи, необходимо найти минимум функции F = (x2 — 16) * (x2 — 16) + 3.
Обозначим z = x2 — 16. Тогда функция примет вид F = z2 + 3. Минимум этой функции достигается при z = 0. Значит, x2 — 16 = 0 => (x — 4)(x + 4) = 0. Т.е. минимум функции достигается при двух значениях x = 4, x = -4.
Примечание: Минимум можно искать любым способом, вплоть до нахождения производной!
Т.к. переменная t идёт в цикле FOR от минуса к плюсу, а неравенство внутри цикла нестрогое, то в переменной M будет второе значение (4!) после прохождения всего цикла!
Тогда ответ получается равен 10!
Ответ: 10
Задачи 21 задания из реального ЕГЭ по информатике
Рассмотрим задачи, которые были на реальном экзамене по информатике в 2019 и 2020 годах.
Задача (ЕГЭ по информатике, Москва, 2019)
Напишите в ответе число, которое будет напечатано в результате выполнения следующего алгоритма. Для Вашего удобства программа приведена на четырёх языках программирования.
Бейсик | Python |
---|---|
DIM A, B, T, M, R AS LONG A = -20 : B = 20 M = A : R = F(A) FOR T = A TO B IF F(T) < R THEN M = T R = F(T) END IF NEXT T PRINT M + R FUNCTION F(x) F = 2 * (x * x - 1) * (x * x - 1) + 5 END FUNCTION |
def F(x): return 2 * (x * x - 1) * (x * x - 1) + 5 a = -20 b = 20 M = a R = F(a) for t in range(a, b + 1): if F(t) < R: M = t R = F(t) print(M + 18) |
Паскаль | C++ |
var a, b, t, M, R :integer; function F(x:integer):integer; begin F := 2 * (x * x - 1) * (x * x - 1) + 5 end; begin a := -20; b := 20; M := a ; R := F(a); for t := a to b do if (F(t) < R) then begin M := t; R := F(t) end; write(M + 18) end. |
#include using namespace std; int F(int x) { return 2 * (x * x - 1) * (x * x - 1) + 5; } int main() { int a, b, M, R; a = -20; b = 20; M = a; R = F(a); for(int t = a; t <= b; t++) if(F(t) < R) { M = t; R = F(t); } cout << M + 18; return 0; } |
Решение:
Задача похоже на предыдущую. Снова по окончании цикла FOR в переменной R будет минимум функции F, а в переменной M значение, при котором функция F достигает минимума.
Найдём минимум для функции F = 2 * (x2 — 1) * (x2 — 1) + 5. Обозначим z = x2 — 1. Тогда функция F = 2 * z2 + 5 минимум принимаем в значении z = 0. Следовательно, минимум будет достигаться x2 — 1 = 0. Т.е. при x = -1 и при x = 1 достигается минимум функции.
Переменная t в цикле FOR перебирает значение от минусовых значений к плюсовым значениям. Неравенство внутри тела цикла строгое! Значит, в переменной M будет минусовое значение.
В ответе напишем -1 + 18 = 17.
Ответ: 17
Задача (ЕГЭ по информатике, Москва, 2020)
Напишите в ответе число, которое будет напечатано в результате выполнения следующего алгоритма. Для Вашего удобства программа приведена на 4 языках программирования.
Бейсик | Python |
---|---|
DIM A, B, T, M, R AS LONG A = -20: B = 20 M = A: R = F(A) FOR T = A TO B IF F(T) < R THEN M = T R = F(T) END IF NEXT t PRINT M + R FUNCTION F(x) F = 2 * (x * x - 9) * (x * x - 9) + 5 END FUNCTION |
def F(x): return 2 * (x * x - 9) * (x * x - 9) + 5 a = -20 b = 20 M = a R = F(a) for t in range(a, b+1): if F(t) < R : M = t R = F(t) print(M + 18) |
Паскаль | C++ |
var a, b, t, M, R : integer; function F(x:integer) : integer; begin F := 2 * (x * x - 9) * (x * x - 9) + 5 end; begin a := -20; b := 20; M := a ; R := F(a); for t := a to b do if (F(t) < R) then begin M := t; R := F(t) end; write(M + 18); end. |
#include using namespace std; int F(int x) { return 2 * (x * x - 9) * (x * x - 9) + 5; } int main() { int a, b, M, R; a = -20; b = 20; M = a; R = F(a); for(int t = a; t <= b; t++) if(F(t) < R) { M = t; R = F(t); } cout << M + 18; return 0; } |
Решение:
Опять такая же ситуация, как в предыдущих двух задачах.
Найдём при каких значениях x достигается минимум функции F = 2 * (x2 — 9) * (x2 — 9) + 5.
Минимум функции F достигается при x = 3 и x = -3.
Переменная t перебирает целые числа от минусовых значений до плюсовых. Неравенство внутри цикла строгое, значит, после окончания цикла переменная M = -3.
Ответ будет -3 + 18 = 15.
Ответ: 15
На этом завершился урок по подготовке 21 задания из ЕГЭ по информатике. Удачи!
ЕГЭ информатика 16 задание разбор, теория, как решать.
Рекурсивные алгоритмы, (П) — 1 балл
Е16.28 Чему равно значение выражения F(2023) / F(2020)?
Алгоритм вычисления значения функции F(n), где n – натуральное число, задан следующими соотношениями: F(n) = 1 при n = 1; F(n) = n × F(n − 1), если n > 1. Чему равно значение выражения F(2023) / F(2020)? Ответ: Демонстрационный вариант ЕГЭ 2023 г. – задание №16
Читать далее
Е16.27 Укажите наименьшее значение a, для которого F(a, 0) = 1392781243
Обозначим частное от деления целочисленного натурального числа a на натуральное число b как a div b, а остаток как a mod b. Например, 13 div 3 = 4, 13 mod 3 = 1. Алгоритм вычисления значения функции F(a, b), где a и b – целые неотрицательные числа, задан следующими соотношениями: F(0, b) = b; F(a, …
Читать далее
Е16.26 Чему равно значение функции F(42)?
Алгоритм вычисления значения функции F(n), где n — натуральное число, задан следующими соотношениями: F(n) = 1 при n = 1; F(n) = 3 × n + F(n — 2), если n > 1 и при этом n нечётно, F(n) = 4 × F(n / 2), если n > 1 и при этом n чётно. Чему …
Читать далее
Е16.25 Укажите количество таких значений n < 1 000 000 000, для которых F(n) = 2.
Алгоритм вычисления значения функции F(n), где n – целое неотрицательное число, задан следующими соотношениями: F(0) = 0; F(n) = F(n – 1) + 1, если n нечётно; F(n) = F(n/2), если n > 0 и при этом n чётно. Укажите количество таких значений n < 1 000 000 000, для которых F(n) = 2. СтатГрад …
Читать далее
Е16.24 являющихся результатом вызова функции для значений n в диапазоне [40; 50]
Алгоритм вычисления функции F(n), где n – целое неотрицательное число, задан следующими соотношениями:
F(n) = n + 3, при n ≤ 3 F(n) = F(n – 2) + n, при n > 3 и четном значении F(n—1), F(n) = F(n – 2) + 2· n, при n > 3 и нечетном значении F(n—1) |
Определите сумму значений, являющихся результатом вызова функции для значений n в диапазоне [40; 50]. Ответ: Е. Джобс
Читать далее
Е16.23 F(n) = F(n – 1) – F(n – 2) + 3n, при n > 1 и n – четно
Алгоритм вычисления функции F(n), где n – целое неотрицательное число, задан следующими соотношениями:
F(0) = 1, F(1) = 3 F(n) = F(n – 1) – F(n – 2) + 3n, при n > 1 и n – четно F(n) = F(n – 2) – F(n – 3) + 2n, при n > 1 и n – нечетно |
Чему равно значение функции F(40)? В ответе запишите только целое число Ответ: Е. Джобс
Читать далее
Е16.22 Сколько существует таких чисел n, что 1 ≤ n ≤ 500 и F(n) = 8
Алгоритм вычисления значения функции F(n), где n – целое неотрицательное число, задан следующими соотношениями: F(0) = 0; F(n) = F(n/2), если n > 0 и при этом n чётно; F(n) = 1 + F(n – 1), если n нечётно. Сколько существует таких чисел n, что 1 ≤ n ≤ 500 и F(n) = 8? Ответ: …
Читать далее
Е16.21 F(n) = 1 при n ≤ 1; F(n) = n · F(n – 1) при чётных n > 1;
Алгоритм вычисления функции F(n) задан следующими соотношениями: F(n) = 1 при n ≤ 1; F(n) = n · F(n – 1) при чётных n > 1; F(n) = n + F(n – 2) при нечётных n > 1; Определите значение F(84). Ответ: Тренировочный вариант от 16.11.2020 «Евгений Джобс»
Читать далее
Е16.20 для которых сумма цифр значения F(n) равна 27.
Алгоритм вычисления функции F(n) задан следующими соотношениями: F(n) = n · n + 5 · n + 4, при n > 30 F(n) = F(n+1) + 3 · F(n+4), при чётных n ≤ 30 F(n) = 2 · F(n+2) + F(n+5), при нечётных n ≤ 30 Определите количество натуральных значений n из отрезка [1; 1000], …
Читать далее
Е16.19 F(0) = 0; F(n) = n + F(n – 3), если n > 0 и при этом n mod 3 = 0;
F(0) = 0; F(n) = n + F(n – 3), если n > 0 и при этом n mod 3 = 0; F(n) = n + F(n – (n mod 3)), если n mod 3 > 0. Чему равно значение функции F(25)? Обозначим через a mod b остаток от деления натурального числа a на натуральное …
Читать далее