ЕГЭ по информатике 2023 — Задание 6 (Задачи с Черепахой)

Привет! Сегодня разберём новый тип 6 задания из ЕГЭ по информатике 2023! Добавим недостающий пазл в видеокурс по подготовке к ЕГЭ по информатике.
Так же Вы можете посмотреть разбор 6 задания из ДЕМОВЕРСИИ 2023.
На мой взгляд, на экзамене скорее всего будет задача, похожая именно на демонстрационный вариант. Т.к. это задание нового образца, то выпускникам необходимо привыкнуть к нему.
Вспомним, когда в прошлом году была введена новая формулировка для 3 задания, то на экзамене дали очень похожую задачу на ту, которая была в демоверсии.
Рассмотрим первую тренировочную задачу из 6 задания ЕГЭ по информатике 2023.
Исполнитель Черепаха действует на плоскости с декартовой системой координат. В начальный момент Черепаха находится в начале координат, её голова направлена вдоль положительного направления оси ординат, хвост опущен. При опущенном хвосте Черепаха оставляет на поле след в виде линии. В каждый конкретный момент известно положение исполнителя и направление его движения. У исполнителя существует две команды: Вперёд n (где n – целое число), вызывающая передвижение Черепахи на n единиц в том направлении, куда указывает её голова, и Направо m (где m – целое число), вызывающая изменение направления движения на m градусов по часовой стрелке. Запись
Повтори k [Команда1 Команда2 … КомандаS]
означает, что последовательность из S команд повторится k раз. Черепахе был дан для исполнения следующий алгоритм:
Повтори 15 [Вперёд 15 Направо 120]
Определите, сколько точек с целочисленными координатами будут находиться внутри области, ограниченной линией, заданной данным алгоритмом. Точки на линии учитывать не следует.
В начале нужно понять, какая фигура получится в результате действий Исполнителя Черепахи.
Черепаха идёт вверх на 15 единиц. Потом поворачивает направо на 120 градусов. Потом идёт на 15 единиц по заданному курсу и снова поворачивает на 120 градусов, идёт на 15 единиц ещё и попадает в исходную точку. В итоге получается равносторонний треугольник! Дальнейшие повторения не имеют смысла, т.к. нового больше ничего не нарисуется.

Проведём перпендикуляры от каждой точки с целыми координатами на оси Y внутри треугольника.
Для каждой точки на оси Y мы можем найти этот перпендикуляр. Это и есть искомое количество точек на каждой такой линии, если округлить это значение в меньшую сторону.
Посмотрим, как найти такой перпендикуляр, если точка на оси Y находится до середины стороны. Пусть есть точка (0, yn), а dn — это перпендикуляр для этой точки. Тогда
Для второй половины длины перпендикуляров будут такие же.
Напишем программу на Питоне, которая подсчитает все точки.
import math s=0 for y in range(0, 8): s = s + int(math.tan(math.pi / 3) * y ) s = 2*s print(s)
Нам необходимо взять первые 7 точек, дальше ситуация симметричная. Пишем в цикле for 8, потому что последнее число не проходится в Питоне.
Вычисляем по формуле длину каждого перпендикуляра. Тангенс вычисляется с помощью функции math.tan. Для неё нужна математическая библиотека math. Функция должна получить градусы в радианах, поэтому ей передаём π /3 = 60 o .
В цикле суммируем все точки для каждой линии. Результат нужно умножить на 2, чтобы учесть вторую половину треугольника.
Задача(Считаем точки вручную)
Исполнитель Черепаха действует на плоскости с декартовой системой координат. В начальный момент Черепаха находится в начале координат, её голова направлена вдоль положительного направления оси ординат, хвост опущен. При опущенном хвосте Черепаха оставляет на поле след в виде линии. В каждый конкретный момент известно положение исполнителя и направление его движения. У исполнителя существует две команды: Вперёд n (где n – целое число), вызывающая передвижение Черепахи на n единиц в том направлении, куда указывает её голова, и Налево m (где m – целое число), вызывающая изменение направления движения на m градусов против часовой стрелки. Запись
Повтори k [Команда1 Команда2 … КомандаS]
означает, что последовательность из S команд повторится k раз. Черепахе был дан для исполнения следующий алгоритм:
Повтори 16 [Налево 36 Вперёд 4 Налево 36]
Определите, сколько точек с целочисленными координатами будут находиться внутри области, ограниченной линией, заданной данным алгоритмом. Точки на линии следует учитывать.
В это задачке достаточно не просто составить уравнения прямых полученной фигуры. В таких случаях можно попробовать вручную посчитать точки с помощью известной программы Кумир от НИИСИ РАН. Скачать её можно с официального сайта НИИСИ РАН.
Вероятно, это программа окажется на компьютере на экзамене.
Запустим программу Кумир-Стандарт. В начале нужно подключить модуль Черепаха.

После того, как модуль Черепаха подключён, можно написать программу на языке Кумир.
использовать Черепаха алг нач опустить хвост нц 16 раз влево(36) вперед(4) влево(36) кц кон
В начале нужно подключить модуль Черепаха. Слово алг обозначает начало алгоритма. Слово нач — это начало программы.
Опускаем хвост у Черепахи. Цикл пишем с помощью команды нц — начало цикла. Команда кц — это конец цикла. Команда влево — это аналог команды Налево (видим, что эти команды пишутся по-разному). Аналогично есть команда вправо в программе Кумир. Команда вперед пишется без буквы ё.
После того, как алгоритм перенесли в программу Кумир, запускаем программу, нажав на кнопку F9 (или кнопка плей в виде треугольника).
После этого появится окно в правом нижнем углу. Это окно можно расширить до приемлемых размеров, чтобы нам было удобно анализировать рисунок.

Необходимо настроить масштабирование на 1.
После этого можно сделать скриншот и перенести рисунок в программу Paint, где и посчитать точки вручную.
Получается в ответе 31 точка. Обратите внимание, что в этой задачи просили подсчитать точки, которые находятся на линиях в том числе.
Даже если нет программы Кумир, можно подсчитать точки вручную через Python. Напишем программу.
from turtle import * left(90) for i in range(16): left(36) forward(4*40) left(36) penup() for x in range(-10, 10): for y in range(-10, 10): setpos(x*40, y*40) dot(4, 'red')
Программа выведет такую картину.
В программе подключаем модуль turtle. В начале повернём Черепаху на 90 градусов налево, с помощью команды left. Это делается из-за того, в Python Черепаха смотрит вдоль положительного направления оси абсцисс.
Далее идёт цикл, который указан в задаче. Он должен повторится 16 раз. Внутри цикла пишем программу для Черепахи. Команда left() — поворот налево (аналогично right() — поворот направо), команда forward() — это движение верёд.
4 единицы внутри команды forward() умножаются на 40. Число 40 — это коэффициент размера нашего рисунка. Попробуйте «поиграть» с этим числом, чтобы посмотреть эффект уменьшения или увеличения рисунка.
Команда penup() позволяет поднять кисть, чтобы проставить точки, которые будут символизировать точки с целыми координатами.
Далее идут вложенные циклы, с помощью них мы проставим точки с целыми координатами. Выбираем диапазон, чтобы наша фигура точно уместилась.
Команда setpos() ставим точки. Умножаем координаты x и y на тот же коэффициент, что использовали ранее.
Команда dot() устанавливает жирность и цвет точки.
Задача (Составляем уравнения)
Исполнитель Черепаха действует на плоскости с декартовой системой координат. В начальный момент Черепаха находится в начале координат, её голова направлена вдоль положительного направления оси ординат, хвост поднят. При опущенном хвосте Черепаха оставляет на поле след в виде линии. В каждый конкретный момент известно положение исполнителя и направление его движения. У исполнителя существует три команды: Вперёд n (где n — целое число), вызывающая передвижение Черепахи на n единиц в том направлении, куда указывает её голова; Направо m (где m — целое число), вызывающая изменение направления движения на m градусов по часовой стрелке; Опусти, принуждающая Черепаху опустить хвост.
Запись Повтори k [Команда 1 Команда 2 . Команда S] означает, что последовательность из S команд повторится k раз.
Черепахе был дан для исполнения следующий алгоритм:
Вперёд 100 Направо 90 Вперёд 100 Направо 30 Опусти Повтори 10 [Вперёд 25 Направо 90]
Определите, сколько точек с целочисленными координатами будут находиться внутри области, ограниченной линией, заданной данным алгоритмом. Точки на линии учитывать не следует.
Нарисуем общий рисунок.
Здесь уже не очень удобно пользоваться элегантным способом. Составим уравнения прямых, которые образуют квадрат. Общий вид уравнения прямой выглядит так:
y=k *x+b
Коэффициент k — это тангенс угла наклона α к оси X ( 0 ≤ α π , но α ≠ π /2). Число b — это смещение прямой по оси Y относительно нуля.
Для прямой AE k1=tan(60 o )=√3. Так же она проходит через точку (100, 100).
Найдём число b. Подставим в общее уравнение координаты точки (100, 100):
y = k*x+b = √3*100 + b = 100
b=100*(1 — √3)
Получается уравнение прямой AE:
y= √3*x + 100(1 — √3)
Найдём на сколько смещена FC по оси Y относительно AE.

cos(60 o ) = 25 (сторона квадрата) / AB
AB = 25 / cos(60 o ) = 25 / 0,5 = 50
Получается, что уравнение для прямой FC:
y=√3*x + 100(1 — √3) — 50
Для прямой EC k2=-tan(30 o ) = — √3/3. Эта прямая тоже проходит через точку (100, 100). Подставим эти координаты в уравнение и найдём b.
y = (-√3/3) * x + b = (-√3/3) * 100 + b = 100
b = 100(1 + √3/3)
Тогда уравнение для прямой EC получается:
y = (-√3/3) * x + 100(1 + √3/3)
Найдём на сколько смещена прямая AF относительно EC по оси Y.
cos(30 o ) = 25 (длина стороны) / CD
CD = 25 / cos(30 o ) = 25 / (√3/2) = 50/√3
Тогда для прямой AF:
y = (- √3/3) * x + 100(1 + √3/3) — 50/√3
Пробежимся с помощью Питона для переменной x от 0 до 150. Для переменной y от 0 до 100. Чтобы получить точку, используем вложенные циклы!
s=0 for x in range(1, 200): for y in range(1, 200): if (y < (3**0.5)*x + 100*(1-3**0.5)) and (y > (3**0.5)*x + 100*(1-3**0.5) - 50) and (y < (- 3**0.5 / 3)*x + 100*(1+ 3**0.5 / 3)) and (y > (-3**0.5/3)*x + 100*(1 + 3**0.5 /3) - 50 / 3**0.5 ): s=s+1 print(s)
Точки, которые лежат в квадрате должны удовлетворять следующим условиям:
Точки должны быть ниже прямых AE и EC, но выше AF и FC
Проверить выше или ниже некоторая точка M(xm, ym), чем прямая y=k*x+b, можно следующим образом:

Если ym > k*xm + b, то точка лежит выше прямой.
Если ym
Получается правильный шестиугольник. Угол ∠СВА = 120 o . Как раз угол правильного n-угольника равен (n-2)*180 o /n. Для шестиугольника получается (6-2)*180 o /6 = 120 o .
Будем решать методом составления уравнений.

Рассмотрим прямую BC. Если провести от точки B прямую параллельную оси X, то мы увидим, что угол наклона прямой BC равен 30 o .
y = tan(30 o )*x + 31
y = (√3/3) * x + 31
Прямая DC имеет угол наклона -30 o к оси X. Она расположена выше, чем BC на МВ. Треугольник BCM равносторонний. Значит, МВ=31. Тогда уравнение для DC будет:
y = -(√3/3) * x + 62
Уравнение для AF будет:
Прямая EF имеет угол наклона 30 o относительно оси X. Смещена она вниз на AP. Треугольник AFP так же является равносторонним. Следовательно, AP = 31. Тогда для EF получается:
y=tan(30 o )*x — 31
y=(√3/3)*x — 31
Прямая AB это x=0. Найдём так же ED.

cos(30 o ) = BQ / BC
BQ = BC * cos(30 o )
BQ = 31 * (√3/2)
BD = 2 * BQ = 2 * 31 * (√3/2) = 31 * √3
Значит, уравнение для ED: x = 31 * √3.
Когда уравнения готовы, можно написать программу.
k=0 for x in range(-100, 100): for y in range(-100, 100): if (y < 3**0.5 / 3 * x + 31) and (y < -(3**0.5) / 3 * x + 62) and (y > -(3**0.5) / 3 * x) and (y > 3**0.5 / 3 * x - 31) and (x > 0) and (x < 31 * 3**0.5): k=k+1 print(k)
Точки должны быть ниже прямых BC и CD, но выше прямых AF и EF. Так же координаты x должны быть 0
1. Как решать задание ЕГЭ
7. Задание проверяет умение составить алгоритм обработки числовой последовательности и записать его в виде простой программы на языке программирования.
Пример задания (демоверсия \(2022\))

Рис. \(1\). Пример задания
Что нужно знать?
1. Как считать данные из файла в список.
Для работы с файлом удобно использовать конструкцию with :
with open (file) as f:
инструкции
Эта конструкция определяет для открытого файла переменную \(f\) и выполняет набор инструкций. После их выполнения файл автоматически закрывается. Метод readlines() прочитает и вернёт все строки в файле в виде списка.
Для работы с данными файла мы будем использовать следующий программный код:
with open (\(’17.txt’\)) as f:
\(a=\) [int(\(x\)) for \(x\) in f.readlines()]
2. Основные операторы для работы со списками (массивами).
В Python для того, чтобы работать с большим количеством данных, используется структура данных под названием список . Список представляет собой последовательность (набор) элементов, пронумерованных от \(0\).
Чтобы объявить список, нужно в квадратных скобках перечислить его элементы через запятую:
Элементы списка могут быть разных типов в отличие от элементов массива, но, как правило, используются списки из элементов одного типа.
Методы списков
| \(a.append (x)\) | добавляет элемент \(x\) в конец списка \(a\) |
| \(a.count (x)\) | возвращает количество элементов списка \(a\) со значением \(x\) |
| \(а.sort ()\) | сортирует список \(a\) в порядке возрастания |
| \(а.reverse ()\) | разворачивает список \(a\) в обратном порядке |
| \(a.clear ()\) | очищает список \(a\) |
Функции для работы со списками
| \(len(a)\) | возвращает длину списка \(a\) (количество элементов списка \(a\)) |
| \(min(a)\) | возвращает наименьший элемент списка \(a\) |
| \(max(a)\) | возвращает наибольший элемент списка \(a\) |
| \(sum(a)\) | возвращает сумму элементов списка \(a\) |
Решение задачи можно разбить на этапы.
1. Считать данные из текстового файла в массив (список). Важно, чтобы программа решения и текстовый файл лежали в одной папке (или необходимо указать полный путь для считывания файла).
with open (\(’17.txt’\)) as\(f\):
\(a=\) [int(\(x\)) for \(x\) in f.readlines()]
2. Необходимо в массиве найти максимальное число, кратное \(3\). Для этого инициализируем пустой массив \(b\). Затем с помощью цикла \(for\) переберём все элементы массива \(a\). Если элемент кратен \(3\), то запишем его в массив \(b\). После выполнения цикла в переменную \(m\) запишем максимальное значение массива \(b\).
\(b=[]\)
for \(i\) in range (\(0,len(a)\)):
if \(a[i]\) % \(3= =0\):
b.append\((a[i])\)
\(m=max(b)\)
3. Определим количество подходящих пар. Для этого очистим массив \(b\). Затем с помощью цикла \(for\) переберём все элементы массива \(a\). Если хотя бы один элемент пары делится на \(3\) и сумма элементов пары не больше \(m\), то запишем эту сумму в массив \(b\).
\(b=[]\)
for \(i\) in range (\(0\),\(len(a)-1\)):
if (\(a[i]\) % \(3= =0\) or \(a[i+1]\) % \(3= =0\)) and (\(a[i]+a[i+1] <=m\)):
b.append (\(a[i]+a[i+1]\))
4. Выведем на экран количество элементов массива \(b\) — оно равно количеству подходящих пар — и максимальную сумму:
print (\(len(b), max(b)\))
Получилась программа:
with open (\(’17.txt’\)) as\(f\):
\(a=\) [int(\(x\)) for \(x\) in f.readlines()]
\(b=[]\)
for \(i\) in range (\(0,len(a)\)):
if \(a[i]\) % \(3= =0\):
b.append (\(a[i]\))
\(m=max(b)\)
\(b=[]\)
for \(i\) in range (\(0,len(a)-1\)):
if (\(a[i]\) % \(3= =0\) or \(a[i+1]\) % \(3= =0\)) and (\(a[i]+a[i+1] <=m\)):
b.append (\(a[i]+a[i+1]\))
Разбор 2 задания из ЕГЭ по информатике 2023
![]()
Логические выражения несколько отличаются от обычных математических. Например, Выражение 1 + 1 = 1 не имеет никакого смысла с точки зрения математики, но абсолютно верно с точки зрения логики. Логика оперирует понятиями Истина и Ложь, или True и False, или 1 и 0. Поэтому логическая сумма двух истинных высказываний также является истинной.
Приглашаем преподавателей на направления: разработка игр, программирование
Бесплатно обучаем, освобождаем от рутины и отчетов, гарантируем стабильный доход, сами ищем учеников!

Цель урока: научиться строить таблицы истинности и логические схемы сложных логических выражений и решать задание №2 из ЕГЭ по информатике 2023.
Задачи урока:
- повторить определение логических операций;
- повторить таблицы истинности простых логических выражений,
- вспомнить порядок выполнения логических операций,
- записать законы алгебры логики,
- научиться упрощать сложные логические выражения,
- изучить понятия нормальной дизъюнктивной и нормальной конъюнктивной формы.
Детям преподаем основы программирования и создания игр, а подростков учим разработке на Python и написанию сайтов.
Хотели бы стать нашим преподавателем? Подробно знакомим вас со всеми направлениями!

Повторяем определение логических операций
В алгебре логики изучаются логические операции, производимые над высказываниями. Такие высказывания могут быть истинными или ложными. Применяя к простым высказываниям логические операции, можно строить составные высказывания.
Повторим основные логические операции (буквами A, B или C будем обозначать элементарные логические высказывания):
Отрицание (инверсия, логическое НЕ) — это логическая операция, которая делает ложное высказывание истинным, а истинное — ложным.
Обозначение: ¬A, или not(A), или НЕ(A), или
Таблица истинности:
| A | |
| 0 | 1 |
| 1 | 0 |
Логическое сложение (дизъюнкция, логическое ИЛИ) — это сложное логическое выражение, которое истинно, если хотя бы одно из простых логических выражений истинно, и ложно тогда и только тогда, когда оба простых логических выражения ложны.
Обозначение: A ∨ B, или A or B, или A ИЛИ B, или A + B
Таблица истинности:
| A | B | A+B |
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 1 |
Логическое умножение (конъюнкция, логическое И) — это сложное логическое выражение, которое считается истинным в том и только том случае, когда оба простых выражения являются истинными, во всех остальных случаях данное сложное выражение ложно.
Обозначение: A ∧ B, или A and B, или A И B, или A * B
Преподаватели компьютерных курсов проходят бесплатное обучение во время отбора. У нас преподают Roblox, Unity, Unreal, Scratch, Construct 3, App Inventor, Minecraft, Thunkable, Web, Python.
Подробно рассказываем, как проходит обучение!

Таблица истинности:
| A | B | A * B |
| 0 | 0 | 0 |
| 0 | 1 | 0 |
| 1 | 0 | 0 |
| 1 | 1 | 1 |
Логическое следование (импликация) — это сложное логическое выражение, которое истинно во всех случаях, кроме того случая, когда из истины следует ложь. То есть данная логическая операция связывает два простых логических выражения, из которых первое (А) является условием, а второе (В) является следствием.
Обозначение: A → B
Таблица истинности:
| A | B | A → B |
| 0 | 0 | 1 |
| 0 | 1 | 1 |
| 1 | 0 | 0 |
| 1 | 1 | 1 |
Логическая эквивалентность (равносильность) — это сложное логическое выражение, которое является истинным тогда и только тогда, когда оба простых логических выражения имеют одинаковую истинность.
Обозначение: A ≡ B
Таблица истинности:
| A | B | A ≡ B |
| 0 | 0 | 1 |
| 0 | 1 | 0 |
| 1 | 0 | 0 |
| 1 | 1 | 1 |
Логическая операция XOR (сложение по модулю 2 или исключающее ИЛИ) — это логическая операция, по своему применению максимально приближенная к грамматической конструкции «либо … либо …».
Обозначение: A ⊕ B
Таблица истинности:
| A | B | A ⊕ B |
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 0 |
Вспоминаем порядок выполнения логических операций
Порядок выполнения логических операций в сложном логическом выражении:
- Инверсия
- Конъюнкция
- Дизъюнкция
- Импликация
- Эквивалентность
Для изменения указанного порядка выполнения логических операций используются скобки.

Законы алгебры логики — это некоторые стандартные преобразования логических выражений, при которых сохраняется равносильность.
1. Законы поглощения констант
2. Законы поглощения переменных
3. Законы идемпотентности
4. Закон двойного отрицания
= А
5. Закон противоречия
A * = 0
6. Закон исключенного третьего
A + = 1
7. Законы коммутативности
8. Законы ассоциативности
(A * B) * C = A * (B * C)
(A + B) + C = A + (B + C)
9. Законы дистрибутивности
A * (B + C) = (A * B) + (A * C)
A + (B * C) = (A + B) * (A + C) — обратите особое внимание!
10. Законы де Моргана
Правило для запоминания: «Крыша упала, знак поменяла (+ на *, * на +)».
11. Законы поглощения
12. Закон преобразования импликации
A → B = + B — импликация из A в B равна «не A плюс B»
Учимся упрощать сложные логические выражения
После этого можно тренироваться в упрощении логических выражений.
Логическое выражение будем обозначать буквой F. В качестве упрощения логического выражения удобно заменить логические символы конъюнкции и дизъюнкции на * и +, а затем можно избавиться и от импликации (при использовании программного метода импликацию в логическом выражении заменяют на выражение <=).

Практикуемся выполнять задание №2 ЕГЭ
Теперь можно переходить к изучению тонкостей и особенностей решения задания №2 по информатике.
На это задание по рекомендации ФИПИ требуется 3 минуты. Чтобы успешно справиться с ним, необходимо уметь строить таблицы истинности и логические схемы.
Строим таблицы истинности и логические схемы
Таблица истинности выражения определяет его значения при всех возможных комбинациях исходных данных. Если известна только часть таблицы истинности, соответствующее логическое выражение однозначно определить нельзя, поскольку частичной таблице могут соответствовать несколько разных логических выражений (не совпадающих для других вариантов входных данных).
Количество разных логических функций, удовлетворяющих неполной таблице истинности, равно , где k — число отсутствующих строк.
Например, полная таблица истинности выражения с тремя переменными содержит 2 3 = 8 строчек; если заданы только 6 из них, то можно найти 2 8−6 = 2 2 = 4 разные логические функции, удовлетворяющие этим 6 строчкам (но отличающиеся в двух оставшихся).
Очень хорошей помощью в решении этого задания будет полная таблица истинности данного в условии логического выражения.
Полную таблицу истинности легче всего составить в табличном редакторе (Excel) или с использованием языка программирования (Python).
После получения полной таблицы истинности остается провести анализ на соответствие строк данной в условии части таблицы строкам составленной. При анализе строк особое внимание следует обратить на значение выражения в таблице истинности.
Если выражение равно 0, то нужно постараться привести данное в условие выражение к виду A + B + C + … . Логическая сумма A + B + C + … равна 0 (выражение ложно) тогда и только тогда, когда все слагаемые одновременно равны нулю, а в остальных случаях равна 1 (выражение истинно).
Если выражение равно 1, то приводите выражение к виду A · B · C · … . Логическое произведение A · B · C · … равно 1 (выражение истинно) тогда и только тогда, когда все сомножители одновременно равны единице, а в остальных случаях равно 0 (выражение ложно).
И еще два факта, которые пригодятся при анализе: логическое следование (импликация) А → В равно 0 тогда и только тогда, когда A (посылка) истинна, а B (следствие) ложно; эквивалентность А º B равна 1 тогда и только тогда, когда оба значения одновременно равны 0 или одновременно равны 1.
Используем 3 способа решения задания
Способы решения задания:
- ручной;
- с помощью электронных таблиц;
- с помощью языка программирования (Python).
Ручной способ решения
При ручном способе решения особенно важно сначала упростить выражение, данное в условии задачи, то есть привести логическое выражение к такому виду, который будет удобнее анализировать.
Например, если в условии представлена часть таблицы истинности, в которой значение выражения равно 1 — то можно постараться привести логическое выражение к нормальной дизъюнктивной форме (ДНФ — произведение нескольких литералов). Тогда выражение будет истинным, только если каждый литерал (сомножитель) будет истинен.
Если же в таблице истинности логическое выражение равно 0 — приводим выражение к нормальной конъюнктивной форме (КНФ — сумма нескольких литералов). В этом случае выражение будет ложным, только если каждый литерал (слагаемое) ложен.
После преобразования логического выражения производится анализ данной в условии таблицы истинности (или ее фрагмента) и для каждого столбца находится его значение (x, y и т. д.)
Решение с помощью электронных таблиц
При использовании электронных таблиц самым сложным является ввод в ячейку таблицы выражения, данного в условии в нотации, соответствующей программе. Чаще всего в качестве программ электронных таблиц используются электронные таблицы пакетов Libre Office, Open Office или Microsoft Office (Excel). Последняя — наиболее распространенная, поэтому здесь будем говорить про нее.
Шаг 1. Сначала количество столбцов в электронной таблице равно количеству переменных логического выражения. Каждый столбец обозначается по именам переменных логического выражения.
Шаг 2. Затем добавляется количество строк электронной таблицы, равное , где k — количество переменных логического уравнения.
Шаг 3. После этого создается еще один столбец электронной таблицы, в первой строке которого (не заголовка) записывается формула, соответствующая логическому выражению. Растянув эту формулу при помощи маркера автозаполнения на все строки таблицы, получаем полную таблицу истинности выражения.
Таблица функций электронной таблицы Excel и их соответствия логическим операциям:
| Логическая операция | Строка Excel |
| Инверсия | =ЕСЛИ(A2=1;0;1) |
| Дизъюнкция | =ЕСЛИ(ИЛИ(A2=1;B2=1);1;0) |
| Конъюнкция | =ЕСЛИ(И(A2=1;B2=1);1;0) |
| Импликация | =ЕСЛИ(И(A2=1;B2=0);0;1) |
| Эквивалентность | =ЕСЛИ(A2=B2;1;0) |
Решение с помощью языка программирования (Python)
При использовании программы на языке Python можно описать функцию, например так:
def f(arg):
x, y, z, w = arg
return (здесь записывается логическое выражение),
а затем, используя полный переборный алгоритм, перебрать значения 0 и 1 для каждой переменной во вложенных циклах и провести проверку истинности выражения:
print (‘x y w z’) # заголовок таблицы (в алфавитном порядке)
k = 0, 1 # k — кортеж констант (0 — False, 1 — True)
for x in k:
for y in k:
for w in k:
for z in k:
if f(x, y, w, z) == 1:
print(x, y, w, z) # если F = 1
Или просто вывести таблицу истинности print(x, y, w, z), не используя условный оператор во внутреннем цикле.
Полученную таблицу истинности остается проанализировать вручную и записать единственно верный ответ.
Для того чтобы записать логическое выражение на Python, воспользуйтесь следующей таблицей:
| Обозначение | Название | Оператор в Python |
| ∧ | конъюнкция | and |
В Python логическое значение True воспринимается как 1, а False — как 0, благодаря этому можно использовать обычное умножение *
| ∨ | дизъюнкция | or |
В Python логическое значение True воспринимается как 1, а False — как 0, благодаря этому можно использовать обычное сложение +
| ¬ | отрицание | not() |
| ≡ | тождество | == |
| ⊕ | строгая дизъюнкция | != |
| → | импликация | not(a) or b или not a or b или a |
Желаем вашим ученикам высоких баллов по ЕГЭ!
Как решать задание 6 ЕГЭ по информатике
Единый государственный экзамен по информатике состоит из 27 заданий. В задании 6 проверяются навыки анализа и построения алгоритмов для различных исполнителей. Школьник должен уметь составлять алгоритмы из заданных команд, а также проверять последовательности на соответствие алгоритмам. Здесь вы можете узнать, как решать задание 6 ЕГЭ по информатике, а также изучить примеры и способы решения на основе подробно разобранных заданий.
У исполнителя Квадратор две команды: прибавь 3 и возведи в квадрат
У исполнителя Квадратор две команды, которым присвоены номера: 1 — прибавь 3; 2 — возведи в квадрат. Первая из них увеличивает число на экране на 3, вторая возводит его во вторую степень. Исполнитель работает только с натуральными числами. Составьте алгоритм получения из числа A числа B, содержащий не более K команд. В ответе запишите только номера команд. Если таких алгоритмов более одного, то запишите любой из них.
Задание входит в ЕГЭ по информатике для 11 класса под номером 6.
Дешифровщику необходимо восстановить поврежденный фрагмент сообщения
Дешифровщику необходимо восстановить поврежденный фрагмент сообщения, состоящий из 4-х символов. Имеется достоверная информация, что использовано не более пяти букв (A, B, C, D, E), причем на третьем месте стоит один из символов . На четвертом месте – одна из букв . На первом месте – одна из букв . На втором – . Появилась дополнительная информация, что возможен один из четырех вариантов. Какой?
Задание входит в ЕГЭ по информатике для 11 класса под номером 6.
На экране есть два окна, в каждом из которых написано по числу
На экране есть два окна, в каждом из которых написано по числу. У исполнителя Сумматор две команды, которым присвоены номера: 1 – запиши сумму чисел в первое окно; 2 – запиши сумму чисел во второе окно. Выполняя первую из них, Сумматор складывает числа в окнах и заменяет этой суммой число в первом окне, а выполняя вторую, складывает числа и заменяет этой суммой число во втором окне. Запишите порядок команд в программе получения из пары чисел A и B пары чисел C и D, содержащей не более K команд, указывая лишь номера команд.
Задание входит в ЕГЭ по информатике для 11 класса под номером 6.
У исполнителя Калькулятор две команды, которым присвоены номера
У исполнителя Калькулятор две команды, которым присвоены номера: 1 – прибавь 2, 2 – умножь на 3. Выполняя первую из них, Калькулятор прибавляет к числу на экране 2, а выполняя вторую, утраивает его. Запишите порядок команд в программе получения из A числа B, содержащей не более K команд, указывая лишь номера команд.
Задание входит в ЕГЭ по информатике для 11 класса под номером 6.
Цепочки символов (строки) создаются по следующему правилу
Цепочки символов (строки) создаются по следующему правилу. Первая строка состоит из . Каждая из последующих цепочек создается такими действиями . Вот первые 4 строки, созданные по этому правилу. Какой символ стоит в K строке на N-м месте (считая слева направо)?
Задание входит в ЕГЭ по информатике для 11 класса под номером 6.
Цепочка из трех бусин формируется по следующему правилу
Цепочка из трех бусин формируется по следующему правилу. На третьем месте в цепочке стоит одна из бусин . На втором – одна из бусин . На первом месте – одна из бусин, не стоящая в цепочке на втором или третьем месте. Какая из следующих цепочек создана по этому правилу?
Задание входит в ЕГЭ по информатике для 11 класса под номером 6.
У исполнителя Квадратор две команды, которым присвоены номера
У исполнителя Квадратор две команды, которым присвоены номера: 1 — возведи в квадрат, 2 — прибавь 1. Первая из них возводит число на экране в квадрат, вторая – увеличивает его на 1. Запишите порядок команд в программе получения из числа A числа B, содержащей не более K команд, указывая лишь номера команд.
Задание входит в ЕГЭ по информатике для 11 класса под номером 6.