Задание 19 ЕГЭ по информатике
Сборник необходимой теории и практики к заданию №19 ЕГЭ 2024 по информатике «Теория игр. Поиск выигрышной стратегии».
- Вся теория по информатике для ЕГЭ
- Тренировочные варианты ЕГЭ по информатике
Формулировка задания №19 ЕГЭ 2024 из демоверсии ФИПИ
Два игрока, Петя и Ваня, играют в следующую игру. Перед игроками лежит куча камней. Игроки ходят по очереди, первый ход делает Петя. За один ход игрок может добавить в кучу один камень или увеличить количество камней в куче в два раза. Для того чтобы делать ходы, у каждого игрока есть неограниченное количество камней.
Игра завершается в тот момент, когда количество камней в куче становится не менее 129. Победителем считается игрок, сделавший последний ход, т.е. первым получивший кучу из 129 или больше камней.
В начальный момент в куче было S камней, 1 ≤ S ≤ 128.
Будем говорить, что игрок имеет выигрышную стратегию, если он может выиграть при любых ходах противника.
Укажите такое значение S, при котором Петя не может выиграть за один ход, но при любом ходе Пети Ваня может выиграть своим первым ходом.
Самое необходимое по заданию №19 в формате видеоурока
Ниже представлены замечательные материалы, подготовленные Поляковым Константином Юрьевичем, доктором технических наук. В них вы найдёте всё самое полезное для себя — теория, решения заданий и практика.
Смотреть в PDF:
Для просмотра установите Adobe Reader и обязательно вернитесь для просмотра файла :).
ЕГЭ по информатике 2023 — Задания 19-21 (Теория игр на Python)
Продолжаем наш видеокурс по подготовке к ЕГЭ по информатике 2023!
Сегодня разберём задачи из 19, 20 и 21 задания ЕГЭ по информатике. Для этих задач существует спасительный шаблон на Python, который позволяет получить на них правильные ответы и затратить минимум сил и времени.
Приступим к первой серии задач из демоверсии ЕГЭ по информатике 2021 года.
Два игрока, Петя и Ваня, играют в следующую игру. Перед игроками лежат две кучи камней. Игроки ходят по очереди, первый ход делает Петя. За один ход игрок может добавить в одну из куч (по своему выбору) один камень или увеличить количество камней в куче в два раза. Например, пусть в одной куче 10 камней, а в другой 5 камней; такую позицию в игре будем обозначать (10, 5). Тогда за один ход можно получить любую из четырёх позиций: (11, 5), (20, 5), (10, 6), (10, 10). Для того чтобы делать ходы, у каждого игрока есть неограниченное количество камней.
Игра завершается в тот момент, когда суммарное количество камней в кучах становится не менее 77. Победителем считается игрок, сделавший последний ход, т.е. первым получивший такую позицию, при которой в кучах будет 77 или больше камней.
В начальный момент в первой куче было семь камней, во второй куче – S камней; 1 ≤ S ≤ 69.
Будем говорить, что игрок имеет выигрышную стратегию, если он может выиграть при любых ходах противника. Описать стратегию игрока – значит описать, какой ход он должен сделать в любой ситуации, которая ему может встретиться при различной игре противника. В описание выигрышной стратегии не следует включать ходы играющего по этой стратегии игрока, не являющиеся для него безусловно выигрышными, т.е. не являющиеся выигрышными независимо от игры противника.
Известно, что Ваня выиграл своим первым ходом после неудачного первого хода Пети. Укажите минимальное значение S, когда такая ситуация возможна.
Решим задачу с помощью шаблона на языке программирования Python. Если хотите ознакомится с аналитическим решением задач на теорию игр, можете посмотреть мои статьи по 19 Заданию, 20 Заданию, 21 Заданию. Но с помощью шаблонов на экзамене решать быстрее и легче.
Введём параметр p, который будет олицетворять позицию игры (ход).
Начальная позиция | Ход Пети | Ход Вани | Ход Пети | Ход Вани | Ход Пети | |
p | 1 | 2 | 3 | 4 | 5 | 6 |
def F(x, y, p): if x + y >= 77 and p==3: return True if x + y < 77 and p==3: return False return F(x+1, y, p+1) or F(x*2, y, p+1) or F(x, y+1, p+1) or F(x, y*2, p+1) for s in range(1, 70): if F(s, 7, 1): print(s)
Заводим функцию F. Она принимает параметры: x — количество камней в одной куче, y — в другой, p-позиция игры.
Дальше описываем победу. Если x+y>=77 и позиция равна 3 (1 Ход Вани), то возвращаем True, что означает победу.
Если, позиция уже равна 3, но сумарное количество камней меньше, чем должно быть для победы, то возвращаем False (проигрыш).
Если мы не вышли на первых двух условиях, то, значит, продолжаем прокручивать ходы, рекурсивно запускаем функцию F.
Т.к. здесь формулировка: «Известно, что Ваня выиграл своим первым ходом после неудачного первого хода Пети.», то между функциями ставим союз ИЛИ (or).
В конце перебираем все возможные значения для s через цикл for, ищём те значения, которые подходят по условию задачи. Значение p всегда увеличиваем на 1.
Для игры, описанной в предыдущем задании, найдите два таких значения S, при которых у Пети есть выигрышная стратегия, причём одновременно выполняются два условия:
− Петя не может выиграть за один ход;
− Петя может выиграть своим вторым ходом независимо от того, как будет ходить Ваня.
Найденные значения запишите в ответе в порядке возрастания.
Легко переделать из прошлой задачи.
def F(x, y, p): if x + y >= 77 and p==4: return True if x + y < 77 and p==4: return False if x + y >= 77: return False if p%2==0: return F(x+1, y, p+1) and F(x*2, y, p+1) and F(x, y+1, p+1) and F(x, y*2, p+1) else: return F(x+1, y, p+1) or F(x*2, y, p+1) or F(x, y+1, p+1) or F(x, y*2, p+1) for s in range(1, 70): if F(s, 7, 1): print(s)
Теперь должен выигрывать Петя на своём втором ходе. Поэтому в условиях ставим позицию p=4.
Добавляется третье условие. Если кто-то выиграл, но на первых двух условиях мы не вышли из функции, то, значит, выиграл не тот, кто нам нужен, следовательно, возвращаем Fasle.
Здесь вопрос отличается от 19 задания. Здесь Петя должен побеждать при любом ходе соперника, а не при одном неудачном ходе Вани, поэтому добавляется ещё условие.
Для чётных p (это ходы Пети), возвращаем разные ходы через and, т.к. он должен побеждать в любом случае.
Для нечётных p (это ходы Вани), возвращаем ходы через or.
Для игры, описанной в задании 19, найдите минимальное значение S, при котором одновременно выполняются два условия:
– у Вани есть выигрышная стратегия, позволяющая ему выиграть первым или вторым ходом при любой игре Пети;
– у Вани нет стратегии, которая позволит ему гарантированно выиграть первым ходом.
Опять используем прошлый шаблон, но немного модернизируем.
def F(x, y, p): if x + y >= 77 and (p==3 or p==5): return True if x + y < 77 and p==5: return False if x + y >= 77: return False if p%2==1: return F(x+1, y, p+1) and F(x*2, y, p+1) and F(x, y+1, p+1) and F(x, y*2, p+1) else: return F(x+1, y, p+1) or F(x*2, y, p+1) or F(x, y+1, p+1) or F(x, y*2, p+1) def F1(x, y, p): if x + y >= 77 and p==3: return True if x + y < 77 and p==3: return False if x + y >= 77: return False if p%2==1: return F1(x+1, y, p+1) and F1(x*2, y, p+1) and F1(x, y+1, p+1) and F1(x, y*2, p+1) else: return F1(x+1, y, p+1) or F1(x*2, y, p+1) or F1(x, y+1, p+1) or F1(x, y*2, p+1) for s in range(1, 70): if F(s, 7, 1): print(s) print() for s in range(1, 70): if F1(s, 7, 1): print(s)
Здесь Ваня должен выигрывать либо на первом своём ходе (p=3), либо на втором своём ходе (p=5).
Т.к. Ваня не должен гарантированно выиграть своим первым ходом, то мы создаём ещё одну функцию F1, похожую на основную функцию F, которая вычисляет, когда Ваня именно гарантированно выигрывает на своём первом ходе (p=3). И, затем, мы из тех чисел, которые получились в первой функции F, исключаем числа, которые получились во второй функции F1.
В первой функции получилось 30,33, а во второй результатов нет. Получается ответ 30.
Следущая вариация задач отличается от первой лишь задачей в 19-ом задании. Рассмотрим демоверсию ЕГЭ по информатике 2022. Так же в этой серии задач будет одна куча, но из-за этого шаблон практически никак не меняется.
Два игрока, Петя и Ваня, играют в следующую игру. Перед игроками лежит куча камней. Игроки ходят по очереди, первый ход делает Петя. За один ход игрок может добавить в кучу один камень или увеличить количество камней в куче в два раза. Для того чтобы делать ходы, у каждого игрока есть неограниченное количество камней.
Игра завершается в тот момент, когда количество камней в куче становится не менее 29. Победителем считается игрок, сделавший последний ход, т.е. первым получивший кучу, в которой будет 29 или больше камней.
В начальный момент в куче было S камней, 1 ≤ S ≤ 28.
Будем говорить, что игрок имеет выигрышную стратегию, если он может выиграть при любых ходах противника. Описать стратегию игрока – значит описать, какой ход он должен сделать в любой ситуации, которая ему может встретиться при различной игре противника. В описание выигрышной стратегии не следует включать ходы играющего по этой стратегии игрока, не являющиеся для него безусловно выигрышными, т.е. не являющиеся выигрышными независимо от игры противника.
Укажите такое значение S, при котором Петя не может выиграть за один ход, но при любом ходе Пети Ваня может выиграть своим первым ходом.
Здесь вопрос отличается от прошлой 19-ой задачи. Здесь Петя должен выиграть в любом случае. Мы эту задачу можем воспринимать, как 20-ую из демоверсии 2021. Ведь там тоже игроку нужно обязательно было побеждать. Осталось написать шаблон с соответствующими параметрами.
def F(x, p): if x>=29 and p==3: return True if xand p==3: return False if x>=29: return False if p%2==1: return F(x+1, p+1) and F(x*2, p+1) else: return F(x+1, p+1) or F(x*2, p+1) for s in range(1, 29): if F(s, 1): print(s)
Заводим функцию F. Т.к. у нас одна куча, то она принимает параметры: x — количество камней в куче, p-позиция игры.
Дальше описываем победу. Если x>=29 и позиция равна 3 (1 Ход Вани), то возвращаем True, что означает победу.
Если, позиция уже равна 3, но камней меньше, чем должно быть для победы, то возвращаем False (проигрыш).
Третье условие. Если кто-то выиграл, но на первых двух условиях мы не вышли из функции, то, значит, выиграл не тот, кто нам нужен, следовательно, возвращаем Fasle.
Если мы не вышли на первых трёх условиях, то, значит, продолжаем прокручивать ходы, рекурсивно запускаем функцию F.
Для нечётных p (это ходы Вани), возвращаем разные ходы через and, т.к. он должен побеждать в любом случае. При этом увеличиваем на 1 значение p.
Для чётных p (это ходы Пети), возвращаем ходы через or.
В конце перебираем все возможные значения для s через цикл for, ищём те значения, которые подходят по условию задачи.
Для игры, описанной в задании 19, найдите два таких значения S, при которых у Пети есть выигрышная стратегия, причём одновременно выполняются два условия:
− Петя не может выиграть за один ход;
− Петя может выиграть своим вторым ходом независимо от того, как будет ходить Ваня.
Найденные значения запишите в ответе в порядке возрастания.
Задача точно такая же, как и в 19 задании, только теперь обязательно должен побежать Петя на своём втором ходу (p=4), при любой игре Вани.
Пишем тот же шаблон, немного отредактировав его.
def F(x, p): if x>=29 and p==4: return True if xand p==4: return False if x>=29: return False if p%2==0: return F(x+1, p+1) and F(x*2, p+1) else: return F(x+1, p+1) or F(x*2, p+1) for s in range(1, 29): if F(s, 1): print(s)
Получается 7 и 13.
Для игры, описанной в задании 19, найдите значение S, при котором одновременно выполняются два условия:
− у Вани есть выигрышная стратегия, позволяющая ему выиграть первым или вторым ходом при любой игре Пети;
− у Вани нет стратегии, которая позволит ему гарантированно выиграть первым ходом.
Если найдено несколько значений S, в ответе запишите минимальное из них.
Опять используем прошлый шаблон, но немного модернизируем.
def F(x, p): if x>=29 and (p==3 or p==5): return True if xand p==5: return False if x>=29: return False if p%2==1: return F(x+1, p+1) and F(x*2, p+1) else: return F(x+1, p+1) or F(x*2, p+1) def F1(x, p): if x>=29 and p==3: return True if xand p==3: return False if x>=29: return False if p%2==1: return F1(x+1, p+1) and F1(x*2, p+1) else: return F1(x+1, p+1) or F1(x*2, p+1) for s in range(1, 29): if F(s, 1): print(s) print() for s in range(1, 29): if F1(s, 1): print(s)
Здесь Ваня должен выигрывать либо на первом своём ходе (p=3), либо на втором своём ходе (p=5).
Т.к. Ваня не должен гарантированно выиграть своим первым ходом, то мы создаём ещё одну функцию F1, похожую на основную функцию F, которая вычисляет, когда Ваня именно гарантированно выигрывает на своём первом ходе (p=3). И, затем, мы из тех чисел, которые получились в первой функции F, исключаем числа, которые получились во второй функции F1.
В первой функции получилось 12,14, а во второй 14. Получается ответ 12.
На сегодня всё. Мы рассмотрели самые распространённые вариации задач из 19-21 задания и подобрали к ним «противоядие». До новых встреч!
ЕГЭ по информатике — Задание 19 (Массивы)
Новое 19 задание 2023-ого года можете посмотреть в этой статье.
Сегодня будем тренироваться решать 19 задание из ЕГЭ по информатике.
В девятнадцатом задании ЕГЭ по информатике обычно даются задачи, в которых есть программный код на пяти языках программирования, и нужно показать умение работать с массивами.
Но зачем вообще нужны массивы в программировании ? Давайте об этом немного поговорим!
Зачем нужны массивы ?
Все примеры буду рассматривать на языке программирования Паскаль, который популярен на уроках информатики.
Пусть у нас есть пять переменных, и их первоначальные значения нужно увеличить в два раза. Тогда без массива код будет выглядеть следующим образом:
var x, y, z, m, n: integer; begin // Первоначальные значения x := 2; y := 3; z := 1; m := 6; n := 8; //Удваиваем значения x := 2 * x; y := 2 * y; z := 2 * z; m := 2 * m; n := 2 * n;
Видим, что приходится каждую переменную умножать отдельно.
Теперь тоже самое сделаем с помощью массива.
const n = 5; var i :integer; A:array[1..n] of integer; begin // Первоначальные значения A[1] := 2; A[2] := 3; A[3] := 1; A[4] := 6; A[5] := 8; //Удваиваем значения for i:=1 to n do A[i] := 2 * A[i];
Обратите внимание, что удвоение во втором случае идёт с помощью двух строчек, когда в первом случае, удвоение получается с помощью пяти строчек. Если бы переменных было 1000, то выигрыш в объёме кода, был бы ещё большим.
Схематично наш массив можно представить так:
Это те же 5 переменных, но они объединены общем именем A. К каждому элементу массива можно обратится по индексу A[1], A[2] и т.д.
Здесь мы задали нумерацию элементов массива от 1 до 5. В паскале можно задать нумерацию элементов массива и от нуля. Например A:array[0..24] of integer;
Удобство использования массива заключается в том, что его элементы можно перебирать и обрабатывать с помощью ЦИКЛОВ! Значит, обычно массив и цикл работают в связке.
Не терпится уже разобрать первый пример из предположительных задач ЕГЭ по информатике.
Примеры решения задач 19 задания из ЕГЭ по информатике
В программе используются целочисленный массив A с индексами от 0 до 9. Значения элементов массива равны 4; 5; 4; 7; 6; 3; 9; 11; 7; 8 соответственно, т.е. A[0] = 4; A[1] = 5 и т.д.
Определите значение переменной k после выполнения следующего фрагмента программы, записанной ниже на разных языках программирования.
k=0 FOR i=0 TO 8 IF A(i) > A(i+1) THEN k = k + 1 t = A(i) A(i) = A(i+1) A(i+1) = t END IF NEXT i
k = 0 for i in range(9): if A[i] > A[i+1]: k = k + 1 t = A[i] A[i] = A[i+1] A[i+1] = t
k := 0; for i := 0 to 8 do if A[i] > A[i+1] then begin k := k + 1; t := A[i]; A[i] := A[i + 1]; A[i + 1] := t end;
k := 0 нц для i от 0 до 8 если A[i] > A[i + 1] то k := k + 1 t := A[i] A[i] := A[i + 1] A[i+1] := t все кц
k = 0; for (i = 0; i 8; i++) if (A[i] > A[i + 1]) < k = k + 1 t = A[i]; A[i] = A[i + 1]; A[i + 1] = t; >
Рассмотрим программу на языке Паскаль.
В начале переменная k = 0.
Затем начинается ЦИКЛ. Цикл будет выполнятся, пока переменная i «бежит» от 0 до 8.
При первом проходе ЦИКЛА i = 0, при втором i = 1 и т.д.
Внутри цикла проверяется условие (A[i] > A[i+1]). Если условие ВЕРНО, то программа прибавляет к переменной k единицу, и плюс, меняет значения ячеек массива A[i] и A[i+1] с помощью дополнительной переменной t.
Про замену значений двух переменных у меня на сайте написана целая статья!
Чтобы понять, чему равна переменная k после окончания программы, нужно понять, сколько раз будет верно условие внутри цикла.
Сам массив нам дан! (4; 5; 4; 7; 6; 3; 9; 11; 7; 8).
На рисунке показана каждая итерация ЦИКЛА при всех значениях переменной i. Зелёной галочкой отмечены те итерации, где сработает условие, и, значит, переменная k будет увеличена на 1.
Важно: После первого срабатывания условия, программа меняет значения элементов A[1] и A[2]. И наш массив принимает следующий вид: 4; 4; 5; 7; 6; 3; 9; 11; 7; 8. И при следующем проходе A[2] снова принимает значение «5», а не «4»! И так во всех случаях, когда условие срабатывает!
Таким образом, значение k после выполнения программы равна 5.
Продолжаем подготовку к 19 заданию из ЕГЭ по информатике.
Задача (ЕГЭ по информатике, 2019, Москва)
Представленный ниже фрагмент программы обрабатывает элементы одномерного массива A с индексами от 0 до 9. Перед началом выполнения данного фрагмента эти элементы массива имели значения 2, 3, 5, 6, 10, 4, 8, 6, 12, 9 (т.е. A[0] = 2, A[1] = 3, . , A[9] = 9).
Определите значение переменной s после выполнения фрагмента этой программы (записанной ниже на разных языках программирования)
n = 6 s = 0 FOR i = 0 TO 9 IF A(i) > A(n) THEN s = s + (A(i) MOD A(n)) t = A(i) A(i) = A(n) A(n) = t END IF NEXT i
n = 6 s = 0 for i in range(0, 10): if A[i] > A[n]: s += A[i] % A[n] t = A[i] A[i] = A[n] A[n] = t
n := 6 s := 0 for i:=0 to 9 do begin if A[i] > A[n] then begin s := s + (A[i] mod A[n]); t := A[i]; A[i] := A[n]; A[n] := t; end end;
n = 6; s = 0; for(i = 1; i 9; ++i) < if (A[i] > A[n]) < s += A[i] % A[n]; t = A[i]; A[i] = A[n]; A[n] = t; >>
В начале задаются начальные значения для переменных s и n. Если посмотреть дальше глазами, то видим, что переменная n участвует для указания индекса элемента массива, переменная s — это результат суммы некоторых вычислений.
В ЦИКЛЕ i проходит каждое значение от 0 до 9. В теле Цикла только условие! А в условии проверяется: будет ли элемент массива A с индексом i больше, чем A[n].
В первый раз n=6 (A[6] = 8). Напоминаю, что в этой задаче номера индексов массива начинаются с нуля! Но если условие «сработает», то A[n] поменяется.
Если условие выполнится, то значение A[n] станет равно A[i]. Опять присутствует блок, где элементы массива A[n] и A[i] меняются значениями (Найдите этот кусок кода сами!). И, соответственно, сравнивать в условии будем тоже с новым значением.
Так же, если условие выполнится, то мы к тому, что было к переменной s прибавим значение A[i] mod A[n] (mod — это операция, которая показывает остаток от деления).
Причем, сначала происходит суммирование для переменной s, а потом уже замена значения для A[n].
i | A[i] | A[n] | A[i] > A[n] | A[i] mod A[n] | s |
0 | 2 | 8 | 2 > 8 | — | 0 |
1 | 3 | 8 | 3 > 8 | — | 0 |
2 | 5 | 8 | 5 > 8 | — | 0 |
3 | 6 | 8 | 6 > 8 | — | 0 |
4 | 10 | 8 | 10 > 8 | 2 | 2 |
5 | 4 | 10 | 4 > 10 | — | 2 |
6 | 10 | 10 | 10 > 10 | — | 2 |
7 | 6 | 10 | 6 > 10 | — | 2 |
8 | 12 | 10 | 12 > 10 | 2 | 4 |
9 | 9 | 12 | 9 > 12 | — | 4 |
Таким образом, по окончании данного фрагмента программы, получится в переменной s значение 4.
Ещё один пример 19 задания из реального экзамена, который был в 2020 году в Москве!
Задача (ЕГЭ по информатике, 2020, Москва)
Представленный ниже фрагмент программы обрабатывает элементы одномерного целочисленного массива A c индексами от 0 до 11. Перед началом выполнения данного фрагмента эти элементы массива имели значения согласно таблице:
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
5 | 43 | 20 | 7 | 13 | 7 | 20 | 13 | 2 | 33 | 15 | 5 |
Определите значение переменной s после выполнения фрагмента этой программы (записанного ниже на разных языках программирования).
s = 0 FOR i = 1 TO 11 IF A(i-1) DIV A(i) < 2 THEN s = s + A(i) ELSE A(i) = A(i) * i END IF NEXT i
s = 0 for i in range(1, 12): if A[i-1] // A[i] < 2: s += A[i] else: a[i] = a[i] * i
s := 0; for i:=1 to 11 do begin if A[i-1] div A[i] < 2 then begin s := s + A[i] else A[i] := A[i] * i; end end;
s = 0; for (i = 1; i < 12; ++i ) < if (A[i-1] // A[i] < 2) < s += A[i] >else < A[i] = A[i] * i >>
Цикл «пробегает» весь массив. Здесь переменная i начинает идти с 1, потому что мы внутри тела цикла обращаемся к элементу с индексом i-1. Если бы i пошла с нуля, то получилось бы, что программа обратилась к элементу с индексом -1, и была бы ошибка.
Внутри ЦИКЛА находится одно условие. В условии сразу проверяется меньше ли двух результат от целочисленного деления A[i-1] на A[i] (div — это целочисленное деление, т.е. обычное деление, но дробная часть отбрасывается). Если условие выполнится, то программа к переменной s прибавит элемент A[i]. Если условие не будет выполнено, то элемент A[i] будет умножен на i, и это повлияет на следующую итерацию, ведь массив то изменится.
i | A[i-1] | A[i] | A[i-1] div A[i] 0 | 43 | 43 (в конце итерации) |
2 | 43 | 20 | 2 | 43 | 40 (в конце итерации) |
3 | 40 | 7 | 5 | 43 | 21 (в конце итерации) |
4 | 21 | 13 | 1 | 56 | 13 (в конце итерации) |
5 | 13 | 7 | 1 | 63 | 7 (в конце итерации) |
6 | 7 | 29 | 0 | 92 | 29 (в конце итерации) |
7 | 29 | 13 | 2 | 92 | 91 (в конце итерации) |
8 | 91 | 2 | 45 | 92 | 16 (в конце итерации) |
9 | 16 | 33 | 0 | 125 | 33 (в конце итерации) |
10 | 33 | 15 | 2 | 125 | 150 (в конце итерации) |
11 | 150 | 5 | 30 | 125 | 55 (в конце итерации) |
На этом всё! Счастливого ЕГЭ по информатике!
ЕГЭ по информатике (2024)
Здесь представлены материалы для подготовки к ЕГЭ по информатике. В отличие от известной литературы, для большинства задач из демо-вариантов ЕГЭ сравниваются несколько способов решения, анализируются их достоинства и недостатки, возможные проблемы и «ловушки». Приведены рекомендации, позволяющие выбрать эффективные методы решения каждой конкретной задачи.
Автор признателен О.А. Тузовой (г. Санкт-Петербург) за обсуждение этих материалов и конструктивную критику. Спасибо всем, кто присылал и присылает мне замечания, предложения, сообщения об опечатках и неточностях.
Особая благодарность Н.Н. Паньгиной (г. Сосновый Бор) за взаимовыгодное сотрудничество и разностороннюю поддержку проекта.
Автор будет благодарен за новые отзывы по поводу представленных здесь материалов для подготовки к ЕГЭ по информатике. Если вы заметили ошибку или у вас просто есть что сказать по существу вопроса, пишите.
Тренажёр компьютерного ЕГЭ
ЕГЭ по информатике в 2024 году будет проводиться в компьютерной форме. На этом сайте вы можете попробовать, как это будет выглядеть в тренажёре. Он является копией официального тренажёра официального тренажёра , но позволяет загружать любой вариант из генератора. Кроме того, после завершения пробного экзамена вы узнаете, сколько баллов вы набрали бы на ЕГЭ, если бы отправили такие ответы. Попробуйте:
Авторские семинары
Если вы хотите пригласить авторов учебника в свой город для проведения выездного семинара, пишите.
Робот-Blockly
Робот-Blockly — это версия исполнителей Робот и Водолей, программы для которых составляются из готовых блоков, как в Scratch. Это избавляет учеников от синтаксических ошибок, которые неминуемо возникают при ручном наборе текстовой программы. Программа подходит для вводного курса алгоритмизации в 5-6 (и даже более старших) классах. У программы есть оффлайн-версия, которую можно использовать без доступа к Интернету. Вы можете создавать свои наборы задач, а не только использовать готовые. |
Коллеги тащат то, что не приколочено.
-
Артём Имаев, который ведёт группу «FLASH: ЕГЭ информатика 2021» и предлагает всем стать супергероем вместе со ним.
- Мартынов Антон Иванович, председатель предметной комиссии по информатике Ульяновской области, опубликовал представленные здесь рекомендации по решению задач части C под своим именем в официальном аналитическом отчете (Ульяновск, 2009).
Актуальные публикации
- А.Г. Гильдин, С.Г. Зайдуллина, Н.Т. Ахтямов. Методика выполнения заданий ЕГЭ по информатике на основе знаний об обработке строк на языке Python. // Педагогический журнал Башкортостана. 2023. № 2. c. 120-138.
- А.Н. Калинин. Программные методы решения задач ЕГЭ по обработке целочисленной информации (задача 25).
- В.С. Попов. Новая задача ЕГЭ по информатике № 22: решение с помощью графа // Потенциал: Математика, Физика, Информатика, № 8, 2022.
- К.Ю. Поляков. Особенности решения задач 25 и 26 в компьютерном ЕГЭ по информатике. Материалы вебинара для учителей г. Сочи, 24.03.2021.
- К.Ю. Поляков. Динамическое программирование в задачах обработки последовательностей ЕГЭ по информатике.
- К.Ю. Поляков. Задачи на анализ логических выражений в ЕГЭ по информатике. // Информатика в школе, № 9, 2019, с. 29–35.
- А.Н. Сидоров Задача 18 ЕГЭ по информатике: логическое выражение с делимостью.
- Н.Л. Конина Задачи 18 с делимостью.
- Н.И. Герасименко Задачи 18 с делителями в КИМ ЕГЭ по информатике.
- К.Ю. Поляков Линейное (и нелинейное) программирование в задаче 18 ЕГЭ по информатике (презентация).
- К.Ю. Поляков, Битовые операции в задаче 18 КИМ ЕГЭ по информатике. Часть 2.
- К.Ю. Поляков, Множества и логика в задачах ЕГЭ // Информатика, № 10, 2015, с. 38-42.
- Е.А. Мирончик. Алгебра предикатов и построение геометрических моделей на ЕГЭ по информатике // Информатика, № 3, 2019, с. 40-47.
Что еще посмотреть?
- Тренажёр для подготовки к компьютерному ЕГЭ
- Тесты для подготовки к ЕГЭ (для системы NetTest)
- Онлайн-тесты для подготовки к ЕГЭ
- Генератор тренировочных вариантов ЕГЭ
- Программное обеспечение
- Статьи, презентации
- Видеоматериалы
- Дополнительные материалы
- Материалы прошлых лет (демо-варианты, анализ, разбор задач)
- Вопросы и ответы
- Отзывы
Новости теперь и в Telegram-канале
26 апреля 2024 г.
Новая задача для тренировки 23 (П. Тюрин).
25 апреля 2024 г.
Новые задачи для тренировки 11 (Электико).
19 апреля 2024 г.
Исправлен ответ к задаче 1921.135.
15 апреля 2024 г.
Исправлен ответ к задаче 1.173.
12 апреля 2024 г.
Новая задача для тренировки 8 (Е. Пеньков).
11 апреля 2024 г.
Новая задача для тренировки 8 (Д. Шамсутдинов).
Исправлен ответ к задаче 6.167.
8 апреля 2024 г.
Заменена задача 1921.134.
7 апреля 2024 г.
Новые задачи для тренировки 4, 5, 8, 16, 17, 19-21 (А. Минак).
Новые задачи для тренировки 1, 26 (И. Карпачев).
Новая задача для тренировки 23 (М. Шагитов).
1 апреля 2024 г.
Новая задача для тренировки 26 (И. Карпачев).
31 марта 2024 г.
Исправлен ответ к задаче 6.164.
Новая задача для тренировки 7 (А. Минак).
25 марта 2024 г.
Новые задачи для тренировки 22 (Л. Евич).
22 марта 2024 г.
Новая задача для тренировки 23 (А. Игнатюк).
Исправлены ответ и решение к задаче 15.556.
17 марта 2024 г.
Исправлено условие задачи 23.311.
Исправлены ответ и решение к задаче 23.312.
Приложение для ОС Android
Багрепорты, замечания, предложения можно присылать на форум.
Официальные материалы
Инструкция для участников КЕГЭ 26.04.2021 | |
Материалы ФИПИ по ЕГЭ-2024 24.11.2023 | |
Методические рекомендации ФИПИ для самостоятельной подготовки к ЕГЭ по информатике 17.04.2024 | |
Материалы для самостоятельной подготовки к ЕГЭ по информатике на сайте fipi.ru 17.04.2024 | |
Шкала для перевода первичных баллов в 100-балльную систему (2022 г., obrnadzor.gov.ru) 19.04.2022 | |
Аналитический отчёт о результатах участников ЕГЭ 2023 года по информатика, включая методические рекомендации для учителей, подготовленные на основе анализа типичных ошибок участников ЕГЭ 2023 г. 01.10.2023 |