Старый каталог
Каталог заданий по типам по темам
?
1. Анализ информационных моделей
49
2. Построение таблиц истинности логических выражений
60
3. Поиск информации в реляционных базах данных
23
4. Кодирование и декодирование информации
70
5. Анализ и построение алгоритмов для исполнителей
81
6. Определение результатов работы простейших алгоритмов
31
7. Кодирование и декодирование информации. Передача информации
64
8. Перебор слов и системы счисления
144
10. Поиск символов в текстовом редакторе
36
11. Вычисление количества информации
121
12. Выполнение алгоритмов для исполнителей
76
13. Поиск путей в графе
177
14. Кодирование чисел. Системы счисления
96
15. Преобразование логических выражений
100
16. Рекурсивные алгоритмы
87
17. Обработки числовой последовательности
36
19. Выигрышная стратегия. Задание 1
110
20. Выигрышная стратегия. Задание 2
110
21. Выигрышная стратегия. Задание 3
110
22. Многопроцессорные системы
36
23. Оператор присваивания и ветвления. Перебор вариантов, построение дерева
84
24. Обработка символьных строк
37
25. Обработка целочисленной информации
36
26. Обработка целочисленной информации
35
Дополнительные задания для подготовки
Задания Д1. Анализ информационных моделей
106
Задания Д1. Кодирование и операции над числами в разных системах счисления
90
Задания Д2. Кодирование цвета
4
Задания Д2. Построение таблиц истинности логических выражений
26
Задания Д3. Анализ информационных моделей
30
Задания Д3. Базы данных. Файловая система
159
Задания Д4. Базы данных. Файловая система
2
Задания Д4. Кодирование и декодирование информации
54
Задания Д5. Анализ и построение алгоритмов для исполнителей
106
Задания Д5. Разные задачи
1
Задания Д6. Анализ программ
184
Задания Д6. Символьные строки
9
Задания Д7. Анализ диаграмм и электронных таблиц
171
Задания Д7. Базы данных. Файловая система
91
Задания Д7. Кодирование и декодирование информации. Передача информации
127
Задания Д8. Кодирование и декодирование информации
54
Задания Д8. Перебор слов и системы счисления
54
Задания Д9. Анализ и построение алгоритмов для исполнителей
85
Задания Д10. Анализ диаграмм и электронных таблиц
76
Задания Д11. Вычисление количества информации
69
Задания Д11. Кодирование и декодирование информации. Передача информации
77
Задания Д12. Выполнение алгоритмов для исполнителей
103
Задания Д12. Организация компьютерных сетей. Адресация
155
Задания Д12. Построение таблиц истинности логических выражений
91
Задания Д13. Выполнение алгоритмов для исполнителей
30
Задания Д14. Запросы для поисковых систем с использованием логических выражений
49
Задания Д14. Кодирование чисел. Системы счисления
51
Задания Д15. Преобразование логических выражений
44
Задания Д16. Обработка массивов и матриц
44
Задания Д16. Рекурсивные алгоритмы
81
Задания Д17. Анализ программы с циклами и условными операторами
1
Задания Д17. Запросы для поисковых систем с использованием логических выражений
118
Задания Д18. Оператор присваивания и ветвления
32
Задания Д19 C4. Обработка символьных строк
60
Задания Д19. Обработка массивов и матриц
93
Задания Д21. Анализ программ с циклами и подпрограммами
72
Задания Д22. Анализ программы с циклами и условными операторами
109
Задания Д23. Логические уравнения
116
Задания Д23. Оператор присваивания и ветвления. Перебор вариантов, построение дерева
9
Задания Д24 C1. Исправление ошибок в программе
153
Задания Д25 C2. Алгоритмы обработки массивов
185
Задания Д26 C3. Выигрышная стратегия
152
Задания Д27 C4. Программирование
122
Варианты ЕГЭ по информатике
Об экзамене
С современным миром технологий и реалий программирования, разработки ЕГЭ по информатике имеет мало общего. Какие-то базовые моменты есть, но даже если разбираешься немного в задачах, то это еще не значит, что в конечном итоге станешь хорошим разработчиком. Зато областей, где нужны IT-специалисты, великое множество. Вы нисколько не прогадаете, если хотите иметь стабильный заработок выше среднего. В IT вы это получите. При условии, разумеется, наличия соответствующих способностей. А развиваться и расти здесь можно сколько угодно, ведь рынок настолько огромен, что даже представить себе не можете! Причем он не ограничивается только нашим государством. Работайте на какую угодно компанию из любой точки мира! Это все очень вдохновляет, поэтому пусть подготовка к ЕГЭ по информатике будет первым незначительным шагом, после которого последуют годы саморазвития и совершенствования в данной области.
Структура
Часть 1 содержит 23 задания с кратким ответом. В этой части собраны задания с кратким ответом, подразумевающие самостоятельное формулирование последовательности символов. Задания проверяют материал всех тематических блоков. 12 заданий относятся к базовому уровню, 10 заданий к повышенному уровню сложности, 1 задание – к высокому уровню сложности.
Часть 2 содержит 4 задания, первое из которых повышенного уровня сложности, остальные 3 задания высокого уровня сложности. Задания этой части подразумевают запись развернутого ответа в произвольной форме.
На выполнение экзаменационной работы отводится 3 часа 55 минут (235 минут). На выполнение заданий части 1 рекомендуется отводить 1,5 часа (90 минут). Остальное время рекомендуется отводить на выполнение заданий части 2.
Пояснения к оцениванию заданий
Выполнение каждого задания части 1 оценивается в 1 балл. Задание части 1 считается выполненным, если экзаменуемый дал ответ, соответствующий коду верного ответа. Выполнение заданий части 2 оценивается от 0 до 4 баллов. Ответы на задания части 2 проверяются и оцениваются экспертами. Максимальное количество баллов, которое можно получить за выполнение заданий части 2, – 12.
Тема | Результат | Задания | |||
---|---|---|---|---|---|
1. | Системы счисления | Не изучена | Отработать | ||
2. | Анализ информационных моделей | Не изучена | Отработать | ||
3. | Построение таблиц истинности логических выражений | Не изучена | Отработать | ||
4. | Базы данных. Файловая система | Не изучена | Отработать | ||
5. | Кодирование и операции над числами в разных системах счисления | Не изучена | Отработать | ||
6. | Анализ диаграмм и электронных таблиц | Не изучена | Отработать | ||
7. | Анализ и построение алгоритмов для исполнителей | Не изучена | Отработать | ||
8. | Анализ программ | Не изучена | Отработать | ||
9. | Кодирование и декодирование информации. Передача информации | Не изучена | Отработать | ||
10. | Перебор слов и системы счисления | Не изучена | Отработать | ||
11. | Рекурсивные алгоритмы | Не изучена | Отработать | ||
12. | Организация компьютерных сетей. Адресация | Не изучена | Отработать | ||
13. | Вычисление количества информации | Не изучена | Отработать | ||
14. | Выполнение алгоритмов для исполнителя Робот | Не изучена | Отработать | ||
15. | Поиск путей в графе | Не изучена | Отработать | ||
16. | Кодирование чисел. Системы счисления | Не изучена | Отработать | ||
17. | Запросы для поисковых систем с использованием логических выражений | Не изучена | Отработать | ||
18. | Преобразование логических выражений | Не изучена | Отработать | ||
19. | Обработка массивов и матриц | Не изучена | Отработать | ||
20. | Анализ программы с циклами и условными операторами | Не изучена | Отработать | ||
21. | Анализ программ с циклами и подпрограммами | Не изучена | Отработать | ||
22. | Оператор присваивания и ветвления. Перебор вариантов, построение дерева | Не изучена | Отработать | ||
23. | Логические уравнения | Не изучена | Отработать | ||
Часть 2 | |||||
24. | Поиск и исправление ошибок в программе | Отработать | |||
25. | Алгоритмы обработки массивов | Отработать | |||
26. | Выигрышная стратегия | Отработать | |||
27. | Обработка символьных строк | Отработать |
Любой учитель или репетитор может отслеживать результаты своих учеников по всей группе или классу.
Для этого нажмите ниже на кнопку «Создать класс», а затем отправьте приглашение всем заинтересованным.
Ознакомьтесь с подробной видеоинструкцией по использованию модуля.
1.
1 задание. Демо ЕГЭ 2022 информатика, ФИПИ:
На рисунке схема дорог Н-ского района изображена в виде графа, в таблице содержатся сведения о протяжённости каждой из этих дорог (в километрах).
1 | 2 | 3 | 4 | 5 | 6 | 7 | |
---|---|---|---|---|---|---|---|
1 | — | 3 | 4 | ||||
2 | 3 | — | 12 | 13 | |||
3 | — | 10 | 11 | ||||
4 | 10 | — | 9 | 7 | |||
5 | 4 | 12 | 11 | 9 | — | 8 | 6 |
6 | 13 | 8 | — | 5 | |||
7 | 7 | 6 | 5 | — |
Так как таблицу и схему рисовали независимо друг от друга, то нумерация населённых пунктов в таблице никак не связана с буквенными обозначениями на графе.
Определите, какова сумма протяжённостей дорог из пункта Б в пункт В и из пункта Г в пункт Д.
В ответе запишите целое число.
Ответ: 20
🎦
Видео на RuTube здесь
2.
2 задание. Демоверсия варианта ЕГЭ по информатике 2022, ФИПИ:
Миша заполнял таблицу истинности логической функции F
¬(y → (x ≡ w)) / (z → x)
но успел заполнить лишь фрагмент из трёх различных её строк, даже не указав, какому столбцу таблицы соответствует каждая из переменных w, x, y, z.
Определите, какому столбцу таблицы истинности функции F соответствует каждая из переменных w, x, y, z.
Перем.1 | Перем.2 | Перем.3 | Перем.4 | Функция |
??? | ??? | ??? | ??? | F |
1 | 1 | 1 | ||
0 | 0 | 1 | ||
0 | 1 | 0 | 1 |
В ответе запишите буквы в том порядке, в котором идут соответствующие им столбцы (сначала буква, соответствующая первому столбцу; затем буква, соответствующая второму столбцу, и т.д.).
Ответ: wxyz
🎦
Решение подобного задания (программирование):
3.
3 задание. Демоверсия варианта ЕГЭ по информатике 2022, ФИПИ:
Задание выполняется с использованием прилагаемых файлов
В файле приведён фрагмент базы данных «Продукты» о поставках товаров в магазины районов города. База данных состоит из трёх таблиц.
Таблица «Движение товаров» содержит записи о поставках товаров в магазины в течение первой декады июня 2021 г., а также информацию о проданных товарах. Поле Тип операции содержит значение Поступление или Продажа, а в соответствующее поле Количество упаковок, шт. занесена информация о том, сколько упаковок товара поступило в магазин или было продано в течение дня. Заголовок таблицы имеет следующий вид.
ID операции | Дата | ID магазина | Артикул | Тип операции | Количество упаковок, шт. | Цена, руб./шт. |
Таблица «Товар» содержит информацию об основных характеристиках каждого товара. Заголовок таблицы имеет следующий вид.
Артикул | Отдел | Наименование | Ед. изм. | Количество в упаковке | Поставщик |
Таблица «Магазин» содержит информацию о местонахождении магазинов. Заголовок таблицы имеет следующий вид.
На рисунке приведена схема указанной базы данных.
Используя информацию из приведённой базы данных, определите на сколько увеличилось количество упаковок яиц диетических, имеющихся в наличии в магазинах Заречного района, за период с 1 по 10 июня включительно.
В ответе запишите только число.
Ответ: 966
🎦
Видео на RuTube здесь
4.
4 задание. Демоверсия варианта ЕГЭ по информатике 2022, ФИПИ:
Для кодирования некоторой последовательности, состоящей из букв Л, М, Н, П, Р, решили использовать неравномерный двоичный код, удовлетворяющий условию, что никакое кодовое слово не является началом другого кодового слова. Это условие обеспечивает возможность однозначной расшифровки закодированных сообщений. Для букв Л, М, Н использовали соответственно кодовые слова 00, 01, 11. Для двух оставшихся букв – П и Р – кодовые слова неизвестны.
Укажите кратчайшее возможное кодовое слово для буквы П, при котором код будет удовлетворять указанному условию. Если таких кодов несколько, укажите код с наименьшим числовым значением.
Ответ: 100
🎦
Видео на RuTube здесь
5.
5 задание. Демоверсия варианта ЕГЭ по информатике 2022, ФИПИ:
На вход алгоритма подаётся натуральное число N
. Алгоритм строит по нему новое число R
следующим образом.
1. Строится двоичная запись числа N
.
2. К этой записи дописываются справа ещё два разряда по следующему правилу:
а) складываются все цифры двоичной записи числа N
, и остаток от деления суммы на 2 дописывается в конец числа (справа).
Например, запись 11100 преобразуется в запись 111001;
б) над этой записью производятся те же действия – справа дописывается остаток от деления суммы её цифр на 2.
Полученная таким образом запись (в ней на два разряда больше, чем в записи исходного числа N) является двоичной записью искомого числа R.
Укажите такое наименьшее число N
, для которого результат работы данного алгоритма больше числа 77. В ответе это число запишите в десятичной системе счисления.
-
✎ Решение аналитическим способом:
- Заметим, что после второго пункта условия задачи получаются только четные числа (т.к. если число в двоичной системе заканчивается на 0, то оно четное). Таким образом, нас будут интересовать только четные числа.
- Наименьшим возможным числом, превышающим 77, является число 78. С ним и будем работать.
- Переведем 78 в двоичную систему счисления. Используя компьютер это можно сделать с помощью программистского режима калькулятора. Либо в консоли интерпретатора Python набрать bin(78). Получим:
1001110
N
. Значит, необходимое нам двоичное число — это 10011. После первого пункта задачи к данному числу должна была добавиться справа единица, так и есть: 100111. А затем добавляется 0: 1001110. Соответственно, оно подходит.int('10011',2)
✎ Решение с использованием программирования:
PascalAbc.NET:
uses school; begin var n_ := 1; while True do begin var n := n_; var ost := bin(n).CountOf('1') mod 2; //в двоичной с.с. добавляем разряд (*2) и остаток к этому разряду (+ost) n := 2 * n + ost; // получаем остаток при делении на 2 : ost := bin(n).CountOf('1') mod 2; n := 2 * n + ost; if n > 77 then begin println(n_); break end; n_ += 1; end; end. |
Python:
n_ = 1 while True: n = n_ r = str(bin(n)) r = r[2:] for i in range(2): if r.count('1') % 2 == 0: r+='0' else: r+='1' n = int(r, base=2) if n > 77: print(n_,n) break n_+=1 |
Ответ: 19
🎦 -> аналитическое решение
Видео на RuTube здесь
🎦 -> решение с программированием (на Паскале) подобного задания
Видео на RuTube здесь
6.
6 задание. Демоверсия варианта ЕГЭ по информатике 2022, ФИПИ:
Определите, при каком наименьшем введённом значении переменной s
программа выведет число 64. Для Вашего удобства программа представлена на четырёх языках программирования.
Паскаль:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
var s, n: integer; begin readln(s); s := s div 10; n := 1; while s < 51 do begin s := s + 5; n := n * 2 end; writeln(n) end. |
Алгоритмический язык:
алг нач цел n, s ввод s s := div(s, 10) n := 1 нц пока s < 51 s := s + 5 n := n * 2 кц вывод n кон |
Python:
s = int(input()) s = s // 10 n = 1 while s < 51: s = s + 5 n = n * 2 print(n) |
С++:
#include <iostream> using namespace std; int main() { int s, n; cin >> s; s = s / 10; n = 1 ; while (s < 51) { s = s + 5; n = n * 2; } cout << n << endl; return 0; } |
Ответ: 259
✍ Решение:
-
✎ Способ 1 (программный):
- Поскольку условие цикла
s < 51
, а по условию задания следует найти наименьшее значениеs
, то можно начать сs=509
, так как далее идет операторs := s div 10;
, который присваиваетs
значение 50 (<51). Во внешнем цикле необходимо постоянно уменьшать значениеs
на единицу. - Важно для внешнего цикла использовать другую переменную, т.к. во внутреннем цикле переменная
s
меняется, а нам следует каждый шаг внешнего цикла сохранить предыдущее значениеs
, уменьшив его всего на 1. Используем переменнуюS1
для этих целей.
Pascalabc.net:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
begin var s1 := 509; while true do // внешний цикл, бесконечный begin var s := s1; s := s div 10; // --- код из условия задания --- // var n := 1; while s < 51 do begin s := s + 5; n := n * 2; if n = 64 then // если найдено, то выводим соответствующее s begin print(s1); exit; // выход из бесконечного цикла end; end; s1 := s1 - 1; end; end. |
Пояснение:
Бейсик: |
Python:
s1 = 509 while True: # внешний цикл, бесконечный s = s1 # --- код из условия задания --- s = s//10 n = 1 while s < 51: s = s + 5 n = n * 2 # --- конец кода из условия задания --- if n == 64: print(s1) quit() s1 -= 1 |
С++: |
Ответ: 259
🎦
Видео на RuTube здесь
7.
7 задание. Демоверсия варианта ЕГЭ по информатике 2022, ФИПИ:
Для хранения произвольного растрового изображения размером 128×320 пикселей отведено 20 Кбайт памяти без учёта размера заголовка файла. Для кодирования цвета каждого пикселя используется одинаковое количество бит, коды пикселей записываются в файл один за другим без промежутков.
Какое максимальное количество цветов можно использовать в изображении?
Ответ: 16
🎦
Видео на RuTube здесь
8.
8 задание. Демоверсия варианта ЕГЭ по информатике 2022, ФИПИ:
Все четырёхбуквенные слова, в составе которых могут быть только буквы Л, Е, М, У, Р, записаны в алфавитном порядке и пронумерованы, начиная с 1.
Ниже приведено начало списка.
1. ЕЕЕЕ 2. ЕЕЕЛ 3. ЕЕЕМ 4. ЕЕЕР 5. ЕЕЕУ 6. ЕЕЛЕ …
Под каким номером в списке идёт первое слово, которое начинается с буквы Л?
Ответ: 126
✍ Решение:
✎ Решение с использованием программирования:
PascalABC.net (использование LINQ, быстрое решение): Способ 1:
Cartesian(3) — метод расширения последовательности, возвращающий декартову степень множества символов, т.е. в нашем случае перебор 3-знаковых слов из заданных символов * LINQ (Language Integrated Query) — язык интегрированных запросов |
||
PascalABC.net (приближенный к традиционному, долгое решение): Способ 2:
|
||
PascalABC.net (приближенный к традиционному, долгое решение): Способ 3:
|
||
Python:
|
||
С++: |
🎦 (программный способ)
Видео на RuTube здесь
🎦 (теоретический способ)
Видео на RuTube здесь
9.
9 задание. Демоверсия варианта ЕГЭ по информатике 2022, ФИПИ:
Задание выполняется с использованием прилагаемых файлов
Откройте файл электронной таблицы, содержащей в каждой строке три натуральных числа. Выясните, какое количество троек чисел может являться сторонами треугольника, то есть удовлетворяет неравенству треугольника.
В ответе запишите только число.
Ответ: 2453
🎦
Видео на RuTube здесь
10.
10 задание. Демоверсия варианта ЕГЭ по информатике 2022, ФИПИ:
Задание выполняется с использованием прилагаемых файлов
С помощью текстового редактора определите, сколько раз, не считая сносок, встречается слово «долг» или «Долг» в тексте романа в стихах А.С. Пушкина «Евгений Онегин». Другие формы слова «долг», такие как «долги», «долгами» и т.д., учитывать не следует. В ответе укажите только число.
Ответ: 1
🎦
Видео на RuTube здесь
11.
11 задание. Демоверсия варианта ЕГЭ по информатике 2022, ФИПИ:
При регистрации в компьютерной системе каждому объекту сопоставляется идентификатор, состоящий из 15 символов и содержащий только символы из 8-символьного набора: А, В, C, D, Е, F, G, H. В базе данных для хранения сведений о каждом объекте отведено одинаковое и минимально возможное целое число байт. При этом используют посимвольное кодирование идентификаторов, все символы кодируют одинаковым и минимально возможным количеством бит. Кроме собственно идентификатора, для каждого объекта в системе хранятся дополнительные сведения, для чего отведено 24 байта на один объект.
Определите объём памяти (в байтах), необходимый для хранения сведений о 20 объектах. В ответе запишите только целое число – количество байт.
Ответ: 600
🎦 (теоретическое решение)
Видео на RuTube здесь
12.
12 задание. Демоверсия варианта ЕГЭ по информатике 2022, ФИПИ:
Исполнитель Редактор получает на вход строку цифр и преобразовывает её. Редактор может выполнять две команды, в обеих командах v и w обозначают цепочки цифр.
А) заменить (v, w).
Эта команда заменяет в строке первое слева вхождение цепочки v на цепочку w. Например, выполнение команды заменить (111, 27) преобразует строку 05111150 в строку 0527150.Если в строке нет вхождений цепочки v, то выполнение команды заменить (v, w) не меняет эту строку.
Б) нашлось (v).
Эта команда проверяет, встречается ли цепочка v в строке исполнителя Редактор. Если она встречается, то команда возвращает логическое значение «истина», в противном случае возвращает значение «ложь». Строка исполнителя при этом не изменяется.
…
Какая строка получится в результате применения приведённой ниже программы к строке, состоящей из 70 идущих подряд цифр 8? В ответе запишите полученную строку.
НАЧАЛО ПОКА нашлось (2222) ИЛИ нашлось (8888) ЕСЛИ нашлось (2222) ТО заменить (2222, 88) ИНАЧЕ заменить (8888, 22) КОНЕЦ ЕСЛИ КОНЕЦ ПОКА КОНЕЦ
✎ Решение с использованием программирования:
PascalABC.NET:
Вариант 1:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
begin var s := '8'*70; var p2 := Pos('2222',s); var p8 := Pos('8888',s); while (p2 > 0) or (p8 > 0) do begin if p2 > 0 then begin Delete( s, p2, 4 ); Insert( '88', s, p2 ); end else begin Delete( s, p8, 4 ); Insert( '22', s, p8 ); end; p2 := Pos('2222',s); p8 := Pos('8888',s); end; write(s); end. |
Вариант 2:
1 2 3 4 5 6 7 8 9 10 11 |
begin var s: string := '8' * 70; while ('2222' in s) or ('8888' in s) do // ИЛИ: while (s.contains('2222')) or (s.contains('8888')) do begin if ('2222' in s) then // ИЛИ: if (s.contains('2222')) then s := s.replace('2222', '88') else s := s.replace('8888', '22'); end; writeln(s); end. |
Питон:
1 2 3 4 5 6 7 |
s = 70 * '8' while "2222" in s or "8888" in s: if "2222" in s: s = s.replace( "2222", "88", 1 ) else: s = s.replace( "8888", "22", 1 ) print(s) |
🎦
Видео на RuTube здесь
13.
13 задание. Демоверсия варианта ЕГЭ по информатике 2022, ФИПИ:
На рисунке представлена схема дорог, связывающих города А, Б, В, Г, Д, Е, Ж, З, И, К, Л, М. По каждой дороге можно двигаться только в одном направлении, указанном стрелкой.
Сколько существует различных путей из города А в город М, проходящих через город В?
Ответ: 24
Разбор
подобного
задания смотрите в видео:
🎦 Видео
Видео на RuTube здесь
14.
14 задание. Демоверсия варианта ЕГЭ по информатике 2022, ФИПИ:
Значение арифметического выражения:
3*438 + 2*423 + 420 + 3*45 + 2*44 + 1
записали в системе счисления с основанием 16. Сколько значащих нулей содержится в этой записи?
Ответ: 15
✍ Решение:
✎ Решение с использованием программирования:
PascalABC.NET:
begin var numb: Biginteger; numb := 3*Biginteger.Pow(4,38) + 2*Biginteger.Pow(4,23)+Biginteger.Pow(4,20) + 3*Biginteger.Pow(4,5) +2*Biginteger.Pow(4,4) +1; var digit: biginteger; var n := 0; while numb > 0 do begin digit := numb mod 16; if digit = 0 then n += 1; numb := numb div 16 end; print(n) end. |
Python:
x = 3*4**38 + 2*4**23 + 4**20+3*4**5 +2*4**4 +1 k = 0 while x: if x % 16 == 0: k += 1 x //= 16 print( k ) |
С++: |
✎ Решение аналитическим способом:
- По возможности приведем каждое слагаемое к степеням 16. Учтем, что:
4n=16n/2
3*1619 + 2*(41*1611) + 3*(41*162) + 2*162 + 1
3*1619
:Формула: 16n=10..0[n штук]16 (в 16 с.с.) 3*1619 = 3*10..016 -> 19 нулей + 1 другая цифра(3), т.е. всего 20 цифр
2*(41*1611) = 2*(4*10..0[11 штук]16=80..0[11 штук]16 -> одна другая цифра 41*162 = 4*10016 = 400 -> одна другая цифра 3*(41*162) = 3*4*10016 = С0016 -> одна другая цифра 2*162 =2*10016 = 20016 -> одна другая цифра 1 -> одна другая цифра
20-5=15
Ответ: 15
🎦 (программное решение)
Видео на RuTube здесь
15.
15 задание. Демоверсия варианта ЕГЭ по информатике 2022, ФИПИ:
На числовой прямой даны два отрезка: D = [17; 58]
и C = [29; 80]
.
Укажите наименьшую возможную длину такого отрезка A
, для которого логическое выражение
(x ∈ D) → ((¬(x ∈ C) / ¬(x ∈ A)) → ¬(x ∈ D))
истинно (т.е. принимает значение 1) при любом значении переменной х
.
Ответ: 12
✍ Решение:
🎦 (теоретическое решение)
Видео на RuTube здесь
16.
16 задание. Демоверсия варианта ЕГЭ по информатике 2021, ФИПИ:
Алгоритм вычисления значения функции F(n), где n – натуральное число, задан следующими соотношениями:
F(n) = 1 при n = 1; F(n) = n + F(n − 1), если n – чётно, F(n) = 2 × F(n − 2), если n > 1 и при этом n – нечётно
Чему равно значение функции F(26)?
✎ Решение с использованием программирования:
PascalABC.NET:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
function F(n: integer): integer; begin if n <= 1 then F := 1; if n mod 2 = 0 then F := n + F(n - 1); if (n > 1) and (n mod 2 <> 0) then F := 2 * F(n - 2) end; begin print(F(26)) end. |
Питон:
1 2 3 4 5 6 7 8 |
def F( n ): if n <= 1: return 1 if (n % 2 == 0): return n + F(n-1) if (n>1 and n % 2 != 0): return 2 * F(n-2) print (F(26)) |
C++:
Ответ: 4122
🎦 (программное решение)
Видео на RuTube здесь
17.
17 задание. Демоверсия варианта ЕГЭ по информатике 2022, ФИПИ:
Задание выполняется с использованием прилагаемых файлов
В файле содержится последовательность целых чисел. Элементы последовательности могут принимать целые значения от –10 000 до 10 000 включительно. Определите и запишите в ответе сначала количество пар элементов последовательности, в которых хотя бы одно число делится на 3, затем максимальную из сумм элементов таких пар.
В данной задаче под парой подразумевается два идущих подряд элемента последовательности.
Например, для последовательности из пяти элементов:
6; 2; 9; –3; 6 – ответ: 4 11
Ответ: 2802 1990
✍ Решение:
✎ Решение с использованием программирования:
PascalABC.NET: LINQ-метод
1 2 3 4 5 6 7 8 |
## var data := ReadLines('17.txt').Select(t -> t.ToInteger).ToArray; var twins := data.NWise(2).Select(ar->ar.Order.ToArray) .Where(ar->(ar[0].Divs(3)) or (ar[1].Divs(3))); twins.Take(4).Print; // [786,835] [-457,786] [-457,495] [-699,495] twins.Count.Print; var sums:=twins.Select(t->t[0]+t[1]); // массив сумм sums.max.print; |
PascalABC.NET: быстрое решение
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
## нужно открыть файл и посмотреть кол-во строк в нем, 5000 Assign(input, '17.txt'); var a := ReadArrInteger(5000); var k := 0; var max := integer.MinValue; for var i := 0 to a.Length - 2 do begin if (a[i] mod 3 = 0) or (a[i + 1] mod 3 = 0) then begin if a[i] + a[i + 1] > max then max := a[i] + a[i + 1]; k += 1; end; end; print(k, max); |
PascalABC.NET: Классическое решение
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
begin var f: text; var i, k, max, len: integer; assign(f, '17.txt'); reset(f); var data: array of integer; data := new integer[100000]; i := 0; while not EOF(f) do begin readln(f, data[i]); inc(i); end; len := i - 1; k := 0; max := -100; for i := 1 to len do begin if (data[i] mod 3 = 0) or (data[i - 1] mod 3 = 0) then begin inc(k); if data[i] + data[i - 1] > max then max := data[i] + data[i - 1]; end; end; print(k, max) end. |
Питон:
1 2 3 4 5 6 7 8 9 |
f = open('17.txt') data =[int(x) for x in f] k = 0 m = -100 for i in range(len(data)-1): if data[i]%3==0 or data[i+1]%3==0: k+=1 m = max(m, data[i]+data[i+1]) print (k,m) |
C++:
✎ Решение в Excel:
- Запустите программу Excel.
- В меню Файл выберите пункт Открыть и щелкните Обзор.
- Рядом с полем Имя файла выберите в списке Все файлы
(*|*)
. Откройте файл задания (17.txt
— Далее, Далее, Готово). - В столбце
B
будем искать подходящие пары: если одно число из пары кратно трём, то будем выводить сумму рассматриваемой пары, а иначе – выводить пустое значение («»
)
B1
=ЕСЛИ(ИЛИ(ОСТАТ(A1;3)=0;ОСТАТ(A2;3)=0);A1+A2;"")
B
до конца и сотрите значение в самой последней ячейке (B5000
), если оно там есть (сравнение идет со следующей пустой ячейкой)!!!С1
введем формулу для поиска количества подходящих пар:С1
=СЧЁТ(B:B)
2802
D1
найдем максимальное значение из найденного ряда (максимальную сумму пары):D1
=МАКС(B:B)
1990
🎦
Видео на RuTube здесь
18.
18 задание. Демоверсия варианта ЕГЭ по информатике 2022, ФИПИ:
Задание выполняется с использованием прилагаемых файлов
Квадрат разлинован на N×N клеток (1 < N < 17
). Исполнитель Робот может перемещаться по клеткам, выполняя за одно перемещение одну из двух команд: вправо или вниз. По команде вправо Робот перемещается в соседнюю правую клетку, по команде вниз – в соседнюю нижнюю. Квадрат ограничен внешними стенами. Между соседними клетками квадрата также могут быть внутренние стены. Сквозь стену Робот пройти не может.
Перед каждым запуском Робота в каждой клетке квадрата лежит монета достоинством от 1 до 100. Посетив клетку, Робот забирает монету с собой; это также относится к начальной и конечной клетке маршрута Робота.
Определите максимальную и минимальную денежную сумму, которую может собрать Робот, пройдя из левой верхней клетки в правую нижнюю.
В ответе укажите два числа – сначала максимальную сумму, затем минимальную.
Исходные данные представляют собой электронную таблицу размером N×N, каждая ячейка которой соответствует клетке квадрата.
Пример входных данных:
Для указанных входных данных ответом должна быть пара чисел:
38 22
Ответ: 721 640
🎦 (решение Excel)
Видео на RuTube здесь
19.
19 задание. Демоверсия варианта ЕГЭ по информатике 2022, ФИПИ:
Два игрока, Петя и Ваня, играют в следующую игру. Перед игроками лежит куча камней. Игроки ходят по очереди, первый ход делает Петя. За один ход игрок может добавить в кучу один камень или увеличить количество камней в куче в два раза. Для того чтобы делать ходы, у каждого игрока есть неограниченное количество камней.
Игра завершается в тот момент, когда количество камней в куче становится не менее 29. Победителем считается игрок, сделавший последний ход, т.е. первым получивший кучу, в которой будет 29 или больше камней.
В начальный момент в куче было S
камней, 1 ≤ S ≤ 28
.
Будем говорить, что игрок имеет выигрышную стратегию, если он может выиграть при любых ходах противника. Описать стратегию игрока – значит описать, какой ход он должен сделать в любой ситуации, которая ему может встретиться при различной игре противника. В описание выигрышной стратегии не следует включать ходы играющего по этой стратегии игрока, не являющиеся для него безусловно выигрышными, т.е. не являющиеся выигрышными независимо от игры противника.
Укажите такое значение S, при котором Петя не может выиграть за один ход, но при любом ходе Пети Ваня может выиграть своим первым ходом.
Ответ: 14
✍ Решение 1:
- Ваня может выиграть первым ходом (как бы ни играл Петя), если в куче будет
S = 14
камней. Тогда после первого хода Пети в куче будет 15 или 28 камней. В обоих случаях Ваня удваивает кучу и выигрывает в один ход.
S = 14 Петя: 14 + 1 = 15 выигрышная позиция (см. п. а). Выигрывает Ваня Петя: 14 * 2 = 28 выигрышная позиция (см. п. а). Выигрывает Ваня
14 — проигрышная позиция
Ответ: 14
✍ Решение 2 (Excel):
🎦 (решение Excel)
Видео на RuTube здесь
20.
20 задание. Демоверсия варианта ЕГЭ по информатике 2022, ФИПИ:
Для игры, описанной в задании 19, найдите два таких значения S
, при которых у Пети есть выигрышная стратегия, причём одновременно выполняются два условия:
Найденные значения запишите в ответе в порядке возрастания.
Ответ: 7 13
✍ Решение 1:
- Возможные значения
S
: 7, 13. В этих случаях Петя, очевидно, не может выиграть первым ходом. Однако он может получить кучу из 14 камней (из задания № 19 мы знаем, что это проигрышная позиция): в первом случае удвоением, во втором — добавлением одного камня. Эта позиция разобрана в задании 19. В ней игрок, который будет ходить (теперь это Ваня), выиграть не может, а его противник (то есть Петя) следующим ходом выиграет.
S = 7 Петя: 7 * 2 = 14 проигрышная позиция (см. п. 1 б). Выигрывает Петя S = 13 Петя: 13 + 1 = 14 проигрышная позиция (см. п. 1 б). Выигрывает Петя
7, 13 — выигрышные позиции со второго хода
Ответ: 7 13
✎ Решение 2 (Excel)
21.
21 задание. Демоверсия варианта ЕГЭ по информатике 2022, ФИПИ:
Для игры, описанной в задании 19, найдите значение S
, при котором одновременно выполняются два условия:
Если найдено несколько значений S
, в ответе запишите минимальное из них.
✍ Решение:
- Возможные значения
S
: 12. После первого хода Пети в куче будет 13 или 24 камня. Если в куче их станет 24, Ваня удвоит количество камней и выиграет первым ходом. Ситуация, когда в куче 13 камней, разобрана в задании 20. В этой ситуации игрок, который будет ходить (теперь это Ваня), выигрывает своим вторым ходом.
S = 12 Петя: 12 + 1 = 13 Ваня: 13 + 1 = 14 проигрышная позиция (см. задание 19). Выигрывает Ваня вторым ходом!
Ответ: 12
22.
22 задание. Демоверсия варианта ЕГЭ по информатике 2022, ФИПИ:
Ниже на четырёх языках программирования записан алгоритм. Получив на вход число x, этот алгоритм печатает два числа: L и M. Укажите наибольшее число x, при вводе которого алгоритм печатает сначала 4, а потом 5.
Паскаль:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
var x, L, M, Q: integer; begin readln(x); Q := 9; L := 0; while x >= Q do begin L := L + 1; x := x - Q; end; M := x; if M < L then begin M := L; L := x; end; writeln(L); writeln(M); end. |
Алгоритмический язык:
алг нач цел x, L, M, Q ввод x Q := 9 L := 0 нц пока x >= Q L := L + 1 x := x - Q кц M := x если M < L то M := L L := x все вывод L, нс, M кон |
Python:
x = int(input()) Q = 9 L = 0 while x >= Q: L = L + 1 x = x - Q M = x if M < L: M = L L = x print(L) print(M) |
С++:
#include <iostream> using namespace std; int main() { int x, L, M, Q; cin >> x; Q = 9; L = 0; while (x >= Q){ L = L + 1; x = x - Q; } M = x; if (M < L){ M = L; L = x; } cout <<L <<endl <<M <<endl; return 0; } |
Ответ: 49
✍ Решение:
✎ Решение с использованием программирования:
PascalABC.NET:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
var x, l, M, q: longint; begin for var x_ := 1 to 5000 do begin x := x_; q := 9; l := 0; while x >= q do begin l := l + 1; x := x - q; end; M := x; if M < l then begin M := l; l := x; end; if (l = 4) and (M = 5) then print(x_) end; end. |
23.
23 задание. Демоверсия варианта ЕГЭ по информатике 2022, ФИПИ:
Исполнитель преобразует число на экране.
У исполнителя есть две команды, которым присвоены номера:
1. Прибавить 1
2. Умножить на 2
Программа для исполнителя – это последовательность команд.
Сколько существует программ, для которых при исходном числе 1 результатом является число 20, и при этом траектория вычислений содержит число 10?
Траектория вычислений программы – это последовательность результатов выполнения всех команд программы.
Например, для программы 121 при исходном числе 7 траектория будет состоять из чисел 8, 16, 17.
- Сначала найдём количество программ для перехода от числа 1 к числу 10, а затем от числа 10 к 20.
- Будем использовать разные рекуррентные формулы для чётных и нечётных
N
. - Напишем программу, реализующую алгоритм поиска результата, вычисления по рекуррентным формулам организуем с помощью рекурсии.
- Рекурсивная функция, которая возвращает количество программ для преобразования числа
start
в числоx
:
Паскаль. Решение 1:
function f(start, x: integer): integer; begin var k: integer; if start > x then result := 0 else if start = x then result := 1 else begin // обязательные операторные скобки k := k + f(start + 1, x) + f(start *2, x); result := k; end; end; begin writeln(f(1, 10)*f(10, 20)); end.
Паскаль. Решение 2:
function func( start, x: integer ): integer; var k: integer; begin if x < start then func := 0 // если число x меньше нач. значения, кол-во программ равно 0 else if x = start then func := 1 // если число x = нач. значению, кол-во программ равно 1 else begin k := func( start, x-1 ); //учитываем кол-во программ предыдущего числа // если число чётное, нужно добавить ещё кол-во программ для числа x//2: if x mod 2 = 0 then k := k + func( start, x div 2 ); func := k; end; end; begin writeln( func(1,10) * func(10,20) ); end.
Ответ: 28
24.
24 задание. Демоверсия варианта ЕГЭ по информатике 2022, ФИПИ:
Задание выполняется с использованием прилагаемых файлов
Текстовый файл состоит из символов P, Q, R и S.
Определите максимальное количество идущих подряд символов, среди которых нет идущих подряд символов P.
Для выполнения этого задания следует написать программу.
Ответ: 188
✍ Решение:
-
Паскаль:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
var f: text; i, k, max: integer; s: string; begin assign(f, '24.txt'); reset(f); readln(f, s); max := 1; k := 1; // кол-во подряд идущих без PP for i := 2 to length(s) do begin if (not ((s[i] = 'P') and (s[i - 1] = 'P'))) then begin inc(k); if k > max then max := k; end else k := 1; end; write(max) end. |
Python:
1 2 3 4 5 6 7 8 9 10 11 12 |
f=open('24.txt') s=f.readline() m=1 k=1 for i in range(2,len(s)): if not(s[i]=='P' and s[i-1]=='P'): k+=1 if k > m: m = k else: k=1 print(m) |
25.
25 задание. Демоверсия варианта ЕГЭ по информатике 2022, ФИПИ:
Пусть M
– сумма минимального и максимального натуральных делителей целого числа, не считая единицы и самого числа. Если таких делителей у числа нет, то значение M
считается равным нулю.
Напишите программу, которая перебирает целые числа, бо́льшие 700 000, в порядке возрастания и ищет среди них такие, для которых значение M
оканчивается на 8. Выведите первые пять найденных чисел и соответствующие им значения M
.
Формат вывода: для каждого из пяти таких найденных чисел в отдельной строке сначала выводится само число, затем – значение М
.
Строки выводятся в порядке возрастания найденных чисел.
Количество строк в таблице для ответа избыточно.
Ответ:
700005 233338 700007 100008 700012 350008 700015 140008 700031 24168
✍ Решение:
✎ Метод полного перебора, неоптимизированный:
PascalABC.net:
|
||
Python: | ||
С++: |
26.
26 задание. Демоверсия варианта ЕГЭ по информатике 2022, ФИПИ:
Задание выполняется с использованием прилагаемых файлов
Системный администратор раз в неделю создаёт архив пользовательских файлов. Однако объём диска, куда он помещает архив, может быть меньше, чем суммарный объём архивируемых файлов.
Известно, какой объём занимает файл каждого пользователя.
По заданной информации об объёме файлов пользователей и свободном объёме на архивном диске определите максимальное число пользователей, чьи файлы можно сохранить в архиве, а также максимальный размер имеющегося файла, который может быть сохранён в архиве, при условии, что сохранены файлы максимально возможного числа пользователей.
Входные данные.
В первой строке входного файла находятся два числа: S – размер свободного места на диске (натуральное число, не превышающее 10 000) и N – количество пользователей (натуральное число, не превышающее 1000). В следующих N строках находятся значения объёмов файлов каждого пользователя (все числа натуральные, не превышающие 100), каждое в отдельной строке.
Запишите в ответе два числа: сначала наибольшее число пользователей, чьи файлы могут быть помещены в архив, затем максимальный размер имеющегося файла, который может быть сохранён в архиве, при условии, что сохранены файлы максимально возможного числа пользователей.
Пример входного файла:
100 4 80 30 50 40
При таких исходных данных можно сохранить файлы максимум двух пользователей. Возможные объёмы этих двух файлов 30 и 40, 30 и 50 или 40 и 50. Наибольший объём файла из перечисленных пар – 50, поэтому ответ для приведённого примера:
2 | 50
Ответ: 568 50
✍ Решение:
-
Проанализируем возможное решение:
- Чтобы вычислить максимальное число пользователей, чьи файлы можно сохранить в архиве, необходимо брать файлы с наименьшим объемом, пока суммарный объем этих файлов меньше свободного объема диска. Т.е. для нижеуказанного примера, будем брать
30 + 40
. Файл объемом 50 мы взять уже не сможем, так как70 + 50 = 120
, а это уже больше указанного объема диска (100):
100 4 80 30 50 40
100 - 70 = 30
30 - 40 <= запаса (30) 40 - 40 <= запаса (30) 50 - 40 <= запаса (30) 80 - 40 > запаса (30), не подходит
✎ Решение с использованием программирования:
Теперь построим алгоритм на языках программирования:
PascalABC.net:
|
||
Python:
|
||
С++: |
✎ Решение в Excel:
- Запустите программу Excel.
- В меню Файл выберите пункт Открыть и щелкните Обзор.
- Рядом с полем Имя файла выберите в списке Все файлы(*|*).
- Щёлкните Далее, а затем установите флажок рядом с пунктом Пробел:
- Затем Готово.
- В открытом файле перенесите первую строку с двумя заполненными ячейками в ячейки
I2
иJ2
(или любое свободное место). - Удалите первую строку.
- Отсортируйте столбец
А
по возрастанию: Данные — Сортировка - В ячейку
B1
занесите число, стоящее вА1
. - В ячейку
B2
вставим формулу для подсчета суммы размеров файлов, прибавляя каждое последующее значение до тех пор, пока эта сумма меньше или равна свободному объему диска (I1
). Не забываем зафиксировать значение ячейки, чтобы при копировании формулы адрес ячейки не менялся:
=ЕСЛИ(И(A2+B1<=I$1;B1<>0);A2+B1;0)
B
, до тех пор, пока не появится значение 0
. Последнее заполненное значение — 8176
— это сумма объемов файлов, которые вместились с учетом свободного объема диска. А номер строки — 568
— это максимальное число пользователей, чьи файлы можно сохранить в архиве (первое значение для ответа).С1
): =I1-B568
D1
внесем формулу для поиска максимального размера файла в архиве (с учетом рассчитанного запаса). Будем выводить значение подходящего размера файла, а как только размер уже будет не подходить — выведем 0
. Поскольку формулу будем копировать, не забудьте зафиксировать ячейку с запасом (C$1
) и с максимальным объемом файла из ряда подходиящих файлов (A$568
)=ЕСЛИ(A1-A$568<=C$1;A1;0)
D
не равны 0
. Находим последнее значение — 50
— это и есть максимальный размер файла, который можно поместить в архив.
Ответ: 568 | 50
Видео на RuTube здесь
27.
27 задание. Демоверсия варианта ЕГЭ по информатике 2022, ФИПИ:
A
B
Задание выполняется с использованием прилагаемых файлов
Дана последовательность из N
натуральных чисел. Рассматриваются все её непрерывные подпоследовательности, такие что сумма элементов каждой из них кратна k = 43
. Найдите среди них подпоследовательность с максимальной суммой, определите её длину. Если таких подпоследовательностей найдено несколько, в ответе укажите количество элементов самой короткой из них.
Входные данные
Даны два входных файла (файл A и файл B), каждый из которых содержит в первой строке количество чисел N
(1 ≤ N ≤ 10 000 000). Каждая из следующих N
строк содержит одно натуральное число, не превышающее 10 000.
7 21 13 9 19 17 26 95
В этом наборе можно выбрать последовательности 21+13+9 (сумма 43) и 17+26 (сумма 43). Самая короткая из них, 17 + 26, имеет длину 2. Для указанных программа должна вывести число 2.
В ответе укажите два числа: сначала значение искомой суммы для файла А, затем – для файла B.
Предупреждение: для обработки файла B не следует использовать переборный алгоритм, вычисляющий сумму для всех возможных вариантов, поскольку написанная по такому алгоритму программа будет выполняться слишком долго.
Ответ: 185 329329
✍ Решение:
Решение для файла А (27-75a.txt
), полный перебор:
PascalABC.net:
|
||
Python: | ||
С++: |
ЕГЭ по информатике -> демоверсия ЕГЭ 2022
Подборка вариантов ЕГЭ 2022 по информатике для 11 класса с ответами.
vk.com/info_ege_academiaa | ||
вариант 1 | ответы | доп. файлы |
вариант 2 | ответы | доп. файлы |
вариант 3 | ответы | доп. файлы |
вариант 4 | ответы | доп. файлы |
вариант 5 | ответы | доп. файлы |
вариант 6 | ответы | доп. файлы |
вариант 7 | ответы | доп. файлы |
вариант 8 | ответы | доп. файлы |
вариант 9 | ответы | доп. файлы |
вариант 10 | ответы | доп. файлы |
вариант 11 | ответы | доп. файлы |
вариант 12 от 11.03.22 | ответы | доп. файлы |
vk.com/inform_web | ||
вариант 1 | разбор | файлы |
вариант 2 | разбор | |
vk.com/ege100ballov | ||
Вариант 1 | доп. файлы |
Инструкция по выполнению работы
Экзаменационная работа состоит из 27 заданий с кратким ответом, выполняемых с помощью компьютера.
На выполнение экзаменационной работы по информатике отводится 3 часа 55 минут (235 минут).
Экзаменационная работа выполняется с помощью специализированного программного обеспечения, предназначенного для проведения экзамена в компьютерной форме.
При выполнении заданий Вам будут доступны на протяжении всего экзамена текстовый редактор, редактор электронных таблиц, системы программирования.
Расположение указанного программного обеспечения на компьютере и каталог для создания электронных файлов при выполнении заданий Вам укажет организатор в аудитории.
На протяжении сдачи экзамена доступ к сети Интернет запрещён.
При выполнении заданий можно пользоваться черновиком. Записи в черновике не учитываются при оценивании работы.
Баллы, полученные Вами за выполненные задания, суммируются. Постарайтесь выполнить как можно больше заданий и набрать наибольшее количество баллов.
Связанные страницы:
Задание 11 ЕГЭ по информатике
Задание №5 ЕГЭ по информатике — практика
Открытый вариант ЕГЭ по информатике 2021 от ФИПИ
Задание №2 ЕГЭ по информатике — практика
Разбор задания № 17 ЕГЭ по информатике — проверка делимости чисел
ГВЭ 2023 г. Информатика 11 класс демоверсия с ответами. Информатика ГВЭ-11 2023 г. ГВЭ 2023 по информатике 11 класс ФИПИ Официальные демоверсии государственного выпускного экзамена.
Примеры некоторых заданий из варианта
Информатика (письменная форма) ГВЭ-11 2023 г.
spec_INF_pism_gve-11_2023
скачать
Информатика (устная форма) ГВЭ-11 2023 г.
spec_INF_ustn_gve-11_2023
скачать
Смотрите также:
ГВЭ 2022 г. Информатика 11 класс демоверсия с ответами
Продолжаем наш видеокурс по подготовке к ЕГЭ по информатике 2022. Сегодня разоблачим второе задание!
Кто незнаком с основными логическими операциями, можете посмотреть прошлогоднюю статью по заданию 2 из ЕГЭ по информатике.
В этой статье будут раскрыты методики решения 2 задания через язык программирования Питон.
Будем перебирать для каждой логической переменной все возможные варианты в программе. А логическая переменная всего два значения может принимать: 1 или 0 (истину или ложь). Таким образом, если к примеру у нас 4 переменные, мы получим 24=16 различных комбинаций.
Кто знаком с мощнейшим методом для 2 задания из ЕГЭ по информатике, о котором я рассказывал в прошлогодней статье, тот поймёт, что мы будем применять тот же самый мощнейший метод, но автоматизированный с помощью питона.
Нам нужно будет запрограммировать логическую функцию на языке Питон. Вот таблица, которая поможет это сделать.
Логическая операция | Представление в Питоне |
Отрицание ¬ | not() |
Логическое умножение ∧ | and |
Логическое сложение ∨ | or |
Следование A ⟶ B | not(A) or B |
Равносильность ≡ | == |
Перейдём к практике решения задач задания 2 с помощью языка программирования Python.
Задача (Классическая)
Миша заполнял таблицу истинности логической функции F
(w → z) ∧ ((y → x) ≡ (z → y)),
но успел заполнить лишь фрагмент из трёх различных её строк, даже
не указав, какому столбцу таблицы соответствует каждая из переменных
w, x, y, z.
Определите, какому столбцу таблицы соответствует каждая из переменных
w, x, y, z.
В ответе напишите буквы w, x, y, z в том порядке, в котором идут
соответствующие им столбцы (сначала буква, соответствующая первому
столбцу; затем буква, соответствующая второму столбцу, и т.д.). Буквы
в ответе пишите подряд, никаких разделителей между буквами ставить
не нужно.
Пример. Функция F задана выражением ¬x / y, зависящим от двух
переменных, а фрагмент таблицы имеет следующий вид.
В этом случае первому столбцу соответствует переменная y, а второму
столбцу – переменная x. В ответе следует написать: yx.
Решение:
Решать задачу будем с помощью шаблона на языке Python (Питон).
print('x y z w') for x in range(0, 2): for y in range(0, 2): for w in range(0, 2): for z in range(0, 2): if (not(w) or z) and ((not(y) or x) == (not(z) or y)): print(x, y, z, w)
В задаче у нас 4 переменные, значит, формируем 4 вложенных цикла. В каждом цикле перебираем все возможные значения для конкретной переменной. Мы перебираем значения 0 и 1.
Функция должна выдавать всегда 1 (единицу, истину). Внутри всех циклов прописываем условие, которое срабатывает как раз на истину. В этом условии прописываем нашу функцию. Если наша функция будет выдавать истину, то мы распечатаем значения переменных, при которых это произошло. Если функция будет выдавать ложь, значит, ничего распечатано не будет.
Четыре вложенных цикла проверяют все возможные варианты (24 = 16 вариантов), и мы получим таблицу истинности, почти такую же, как нам и дали в условии задачи.
Так же вверху печатаем названия переменных, чтобы знать, какие значения каким переменным принадлежат.
Запустим программу, и на экране распечатается табличка:
В получившийся табличке может быть больше строчек, чем в условии. Так же при поиске переменных нельзя опираться на порядок, в котором идут нули и единицы в нашей табличке. А можно опираться лишь на количество нулей и единиц в строчках или столбцах.
Можно вычеркнуть первую строчку и последнюю, потому что в таблице, которую дали в условии, в каждой строчке есть хотя бы один ноль и хотя бы одна единица.
Сразу видно, что первый столбец принадлежит переменной x, только там могут быть все единицы.
Второй столбец принадлежит переменной w, только там могут быть все нули.
У нас остались две пустые клеточки в самой таблице. Нам нужно где-то поставить единицу, а где-то ноль, потому что у нас остались столбцы с двумя единицами и одним нулём, а так же с двумя нулями и одной единицей. Если мы в третий столбец поставим единицу, а в четвёртый ноль, то первая строчка и вторая будут совпадать.
А в условии сказано, что строки не должны повторяться. Поэтому нужно ноль и единицу расставить наоборот.
Получается, что в третий столбец идёт z, а в четвёртый y
Ответ: xwzy
Посмотрим, как решать задачи второго задания из ЕГЭ по информатике, когда функция выдаёт нули в таблице истинности.
Задача (Классическая, закрепление)
Миша заполнял таблицу истинности функции (x ≡ ¬y) → ((x ∧ w) ≡ z), но успел заполнить лишь фрагмент из трёх различных её строк, даже не указав, какому столбцу таблицы соответствует каждая из переменных w, x, y, z.
Определите, какому столбцу таблицы соответствует каждая из переменных
w, x, y, z.
В ответе напишите буквы w, x, y, z в том порядке, в котором идут
соответствующие им столбцы (сначала буква, соответствующая первому
столбцу; затем буква, соответствующая второму столбцу, и т.д.). Буквы
в ответе пишите подряд, никаких разделителей между буквами ставить
не нужно.
Пример. Функция F задана выражением ¬x / y, зависящим от двух
переменных, а фрагмент таблицы имеет следующий вид.
В этом случае первому столбцу соответствует переменная y, а второму
столбцу – переменная x. В ответе следует написать: yx.
Решение:
Воспользуемся программой на языке Python.
print('x y z w') for x in range(0, 2): for y in range(0, 2): for w in range(0, 2): for z in range(0, 2): if not( not(( x == (not(y)) )) or ((x and w) == z) ): print(x, y, z, w)
От прошлой программы эта программа отличается только функцией!
В таблице видим, что функция должна выдавать ноль. Поэтому в условии мы функцию «оборачиваем» в not().
После == операцию not() мы заключили в скобки, чтобы не было синтаксической ошибки.
Получаем следующую таблицу истинности:
Разгадаем, где какая переменная находится.
Последнюю строку из нашей таблицы можно вычеркнуть, потому что, если мы вычеркнем другую строку, то не получится столбца, где все три единицы, а он должен быть.
Получается, что второй столбец достаётся переменной z.
В первом столбце должно быть две единицы. На эту роль подходит переменная y.
В нашей таблице нет строчки, где все единицы, значит, во второй строчке в пустом окошке выставляем ноль. И в этой строчке нулём обладает переменная x. Следовательно, в третьем столбце будет находится x.
А в последний столбец идёт переменная w по остаточному принципу.
Ответ: yzxw
А как Питон справится с более сложной функцией из примерного варианта ЕГЭ по информатике?
Задача (Сложная функция)
Логическая функция F задаётся выражением ((x → y ) ∧ (y → w)) ∨ (z ≡ ( x ∨ y)).
Дан частично заполненный фрагмент, содержащий неповторяющиеся строки таблицы истинности функции F.
Определите, какому столбцу таблицы истинности соответствует каждая из переменных x, y, z, w.
В ответе напишите буквы x, y, z, w в том порядке, в котором идут соответствующие им столбцы (сначала — буква, соответствующая первому столбцу; затем — буква, соответствующая второму столбцу, и т. д.). Буквы в ответе пишите подряд, никаких разделителей между буквами ставить не нужно.
Пример. Пусть задано выражение x → y, зависящее от двух переменных x и y, и фрагмент таблицы истинности:
Тогда первому столбцу соответствует переменная y, а второму столбцу соответствует переменная x. В ответе нужно написать: yx.
Источник задачи сайт решу ЕГЭ: https://inf-ege.sdamgia.ru/
Решение:
Запрограммируем функцию на языке Python.
print('x y z w') for x in range(0, 2): for y in range(0, 2): for w in range(0, 2): for z in range(0, 2): if not( ((not(x) or y) and (not(y) or w)) or (z == (x or y)) ): print(x, y, z, w)
Запустим программу и расставим переменные по своим местам.
Переменная z может быть только в третьем столбце.
Во второй столбец идёт переменная w, только этот столбец может иметь одну единицу.
Посмотрим на строчку, где у w стоит единица. В этой же строчке и у x единица. Значит, x идёт в последний столбец, а y в первый столбец.
Ответ: ywzx
Тот же шаблон работает, когда у нас во втором задании три переменные.
Задача (Три переменные)
(№ 1608) Логическая функция F задаётся выражением (¬x ∧ z) ∨ (¬x ∧ ¬y ∧ ¬z)
На рисунке приведён фрагмент таблицы истинности функции F, содержащий все наборы аргументов, при которых функция F истинна. Определите, какому столбцу таблицы истинности функции F соответствует каждая из переменных x, y, z.
Источник задачи сайт К. Ю. Полякова: https://kpolyakov.spb.ru/
Решение:
Для трёх переменных шаблон на Питоне отлично работает.
print('x y z') for x in range(0, 2): for y in range(0, 2): for z in range(0, 2): if (not(x) and z) or (not(x) and not(y) and not(z)): print(x, y, z)
Здесь и так понятно, куда какая переменная идёт.
Ответ: yxz
Посмотрим, как решать задачи из второго задания ЕГЭ по информатике, когда в таблице истинности разные значения у функции F.
Задача (Разные значения функции)
Логическая функция F задаётся выражением (¬a ∨ b ∨ ¬c) ∧ (b ∨ ¬c). Определите, какому столбцу таблицы истинности функции F соответствует каждая из переменных a, b, c.
В ответе напишите буквы a, b, c в том порядке, в котором идут соответствующие им столбцы (без разделителей).
Источник задачи сайт К. Ю. Полякова: https://kpolyakov.spb.ru/
Решение:
Когда такая ситуация, что функция имеет различные значения в таблице, мы можем проверить, какие значения переменных дают единицу у всей функции. А потом проверить, какие значения выдают ноль у всей функции, если это потребуется.
print('a b c') for a in range(0, 2): for b in range(0, 2): for c in range(0, 2): if (not(a) or b or not(c)) and (b or not(c)): print(a, b, c)
В таблице 6 строчек, в которых главная функция превращается в единицу. Далее эти строчки и будем рассматривать. У нас тоже получилось 6 строчек.
Переменная a имеет три единицы. Это второй столбец, потому что там три единицы.
Переменная b имеет четыре единицы, значит, она расположена в первом столбце.
Переменной c достаётся последний столбец.
Ответ: bac
Ещё одна интересная задача для подготовки к ЕГЭ по информатике 2022.
Задача(С подвохом)
Логическая функция F задаётся выражением a ≡ b ∨ b → c.
На рисунке приведён частично заполненный фрагмент таблицы истинности функции F, содержащий неповторяющиеся строки. Определите, какому столбцу таблицы истинности функции F соответствует каждая из переменных a, b, c.
Источник задачи группа Евгения Джобса: https://vk.com/inform_web
Решение:
Подвох заключается в том, что если мы переведём бездумно функцию на язык Питон, то получится a==b or not(b) or c. Но у нас существуют приоритеты для логических операций, которые описаны в прошлогодней статье по подготовке к ЕГЭ по информатике.
В начале должно обрабатываться или, которое было изначально. Затем должно обработаться следование, а потом равносильность. А если мы переведём формулу бездумно, порядок будет не правильный.
Операцию b ∨ b можно представить, как просто b. Ведь, если b принимает значение 0, тогда будет 0 ∨ 0 = 0. Если значение будет 1, то 1 ∨ 1 = 1. Поэтому формулу можно переписать следующим образом:
a ≡ b → c
a == (not(b) or c)
В предыдущих задачах нам не приходилось думать над приоритетами, потому что везде были расставлены скобки. И в основном они уже расставлены в задачах второго задания из ЕГЭ по информатике.
Дальше решаем как обычно.
print('a b c') for a in range(0, 2): for b in range(0, 2): for c in range(0, 2): if a == (not(b) or c): print(a, b, c)
Последнюю строчку можно вычеркнуть из нашей таблицы, т.к. у нас в каждой строчке есть хотя бы один ноль.
Последний столбец занимает переменная a, т.к. только в последний столбец может влезть две единицы.
В строчке, где у a ноль, так же ноль и у переменной c. Значит, во второй столбец идёт переменная c. Если мы ноль поставим в первой строчке в первом столбце, то получится первый столбец из всех нулей. А такого у нас в таблице истинности нет.
Тогда переменная b в первом столбце.
Ответ: bca
слишком много лишних скобок ни к чему. Код очень грязный
А есть какой-нибудь простой код, который смог бы помочь с таким заданием: «Сколькими способами можно поставить в соответствие переменные w, x, y, z столбцам таблицы истинности функции F, опираясь на информацию из данного фрагмента?», или же в данном случае нужно самому подбирать комбинации?
Доброго времени суток, есть вопрос про операции в последней задаче. Вот там написано что b ∨ b можно представить как b. А если будет b ∧ b, то это можно будет представить как b? И можете объяснить почему?
Как в циклах идут переменные, это не важно. Это просто перебор всех возможных вариантов.
Володя, b ∧ b = b, эти формулы приведены в материале, на который я даю ссылку в начале статьи.