Никогда не программировал, но хочешь сдать ЕГЭ по информатике? Тогда знай: к экзамену можно подготовиться за год, если грамотно организовать учебный процесс. Из этой статьи ты узнаешь все о структуре ЕГЭ по информатике в 2023 году, изменениях и типах заданий.
Изменения в ЕГЭ по информатике 2023
Последние 2 года ЕГЭ по информатике проводился в компьютерной форме, что предоставляло сдающим большое право выбора, как решать то или иное задание, благодаря чему появлялись лазейки, упрощающие решения некоторых номеров из экзамена.
В связи с этим, ФИПИ ежегодно вносят изменения в КИМ по информатике, чтобы внести больше разнообразия и избавиться от шаблонных решений. В 2023 году полностью претерпят структуру 2 задания, но это не все изменения, что ФИПИ представили в новой демоверсии ЕГЭ.
Долой переборное решение!
В блоке «Программирование» даже после перехода на компьютерную форму было два задания, в которых программа уже представлена в условии, а задача сдающего — проанализировать ее — задания №6 и 22. Но многие справедливо подумали – зачем анализировать код, если я могу его переписать и запустить переборное решение. Благодаря этому, почти все, кто знал о таком варианте решения заданий, законно получали 2 балла за них. ФИПИ такой способ решения вряд ли понравился.
Официальный список изменений выглядит следующим образом:
Задание №6 теперь мы будем относить к блоку «Алгоритмизация», так как теперь оно предоставляет нам работу с исполнителем и анализом алгоритма. В демоверсии вам предлагают проанализировать «Черепашку», которая многим знакома из ОГЭ по информатике:
Задание №22 пополняет ряды блока «Информационные модели», а также заданий, к которым прилагаются дополнительные файлы, если быть точнее — электронная таблица. В условии затрагивается новая для экзамена тема – многопоточность (довольно важная тема для многих IT-специалистов и затрагивается на определенных предметах в университете), а решение требует анализа таблицы и зависимостей процессов:
Кроме двух новых заданий, некоторые номера также претерпели изменения:
Задание №14 все еще направлено на работу с системами счисления, но теперь нужно искать неизвестную цифру числа. Такого прототипа ранее на ЕГЭ мы не видели:
Задание №12, судя по демоверсии, станет сложнее — это уже знакомый для экзамена исполнитель «Редактор», но с необычным вопросом (раньше, в основном, требовалось назвать получившуюся после обработки программой строку/сумму цифр строки):
Задание №16 на рекурсию из демоверсии намекает нам на то, что не стоит забывать про аналитическое решение. Это происходит из-за больших аргументов у функции, гораздо проще поразмыслить, что же считает функция:
Как видите, ЕГЭ по информатике в 2023 году изменился заметно. Все эти обновления нужно учитывать. Если вы не знаете, чего от вас ждут составители экзамена, даже незначительное изменение в формулировке может стоить вам нескольких баллов. А в условиях, когда от ЕГЭ зависит поступление в хороший вуз и качество образования, каждый балл важен.
Поэтому на своих занятиях по подготовке к ЕГЭ по информатике я всегда разбираю с учениками самые свежие обновления ФИПИ. Мы выясняем, как именно надо понимать задание, изучаем разные алгоритмы решения и тренируем лучшие способы их оформления — в соответствии со всеми критериями. Именно поэтому мои ученики сдают экзамен на высокий балл и поступают в тот вуз, в который изначально хотели. Помочь с этим я могу и вам — записывайтесь на курс и начните подготовку к ЕГЭ на 80+ 💪
О структуре экзамена
В ЕГЭ по-прежнему осталось 27 заданий с кратким ответом. За задания 1-25 можно получить по 1 первичному баллу, а за задания 26 и 27 — по 2 балла. Максимальный возможный результат — 29 первичных баллов.
Все задания школьникам нужно решить за 3 часа 55 минут.
На экзамене встретятся задания по программированию, логике, алгоритмизации, на работу с информационными моделями, а также на кодирование информации.
В каждом блоке есть определенные темы, которые нужно знать. Давайте посмотрим, что именно надо учить.
Программирование
Программирование встречается в шести заданиях — а именно в 16, 17, 24, 25, 26 и 27. Чтобы справиться с ними достаточно хорошо знать только один язык программирования. Нужно уметь работать с массивом, строками, файлами, знать алгоритмы сортировки и другие не менее важные алгоритмы работы с числами.
Логика
Логика встречается в заданиях 2 и 15. Чтобы успешно справиться с этими заданиями, нужно знать основные логические операции и их таблицы истинности, уметь преобразовывать и анализировать выражения.
Алгоритмизация
В данный блок входят семь заданий (5, 6, 12, 19, 20, 21 и 23). Для решения этих заданий нужно уметь работать с различными алгоритмами и исполнителями. Важно понимать теорию игр — определять выигрывающего игрока, выигрышную позицию, различать понятия заведомо проигрышной и выигрышной позиций.
Благодаря возможности использовать инструменты компьютера, многие из этих заданий также можно решать с помощью написания программы или построения электронной таблицы.
Информационные модели
С заданиями 1 и 13 ученики обычно справляются хорошо. Чтобы их решить, нужно уметь работать с графами и таблицами и знать пару простых методов. С заданием 10 проблемы возникают редко, так как от вас требуется найти количество определенных слов в текстовом документе. Задания 3, 9 и 18 требуют работы с электронными таблицами, при решении вам помогут знания про ссылки, функции и фильтры. К этому же блоку добавляется новое задание 22.
Информация и ее кодирование
Задания этого блока достаточно разнообразны. Вы встретите алгоритмы перевода чисел в различные системы счисления, условие Фано, формулы, единицы измерения информации и комбинаторику. Все это разнообразие встречается в заданиях 4, 7, 8, 11, 14, а также может пригодится в заданиях на программирование. А новый прототип задания 14 на работу с системами счисления и вовсе можно решить с помощью программы.
Шкала оценивания
На самом деле шкала перевода баллов составляется после проведения экзаменов, так как в формуле есть параметр «среднее значение». То есть то, что мы называем шкалой — это результат перевода баллов прошлого года. ФИПИ переводит баллы по формуле, а не по шкале. Поэтому шкала меняется, если меняется экзамен или массово меняются результаты его прохождения. Мы полагаем, что в 2023 году проходной балл будет 40 вторичных баллов, но это может измениться.
Какие типы заданий встретятся на ЕГЭ по информатике 2023?
На ЕГЭ 2023, как и в 2021 году, все задания будут с кратким ответом, больше не нужно писать подробные объяснения по теории игр и сдавать программный код на проверку на бумаге. Но это не значит, что все задания идентичны. Посмотрим, какие именно типы заданий встретятся на экзамене.
Задания, которые можно решить «вручную»
Хотя ЕГЭ по информатике и проходит в компьютерной форме, в КИМах по-прежнему остаются задания, которые можно решать, как на бумаге, так и на компьютере. Это задания 1, 2, 4-8, 11-15, 19-23, в них необходимо получить число или последовательность букв в ответе. Ты можешь написать программу на компьютере или использовать электронные таблицы, а затем записать в ответ получившееся значение. За каждое задание можно получить 1 балл.
Задания, которые решаются с помощью компьютера
Все такие задания бывают трех типов:
- Работа с предложенным файлом
- Создание программы
- Написание программы и получение ответа, используя предложенный файл
Разберемся с каждым типом отдельно.
Работать только с предложенным файлом нужно в заданиях 3, 9, 10, 18 и 22. Чтобы решить эти задания, нужно знать, какие функции есть у текстовых редакторов и редакторов электронных таблиц, а также теория по реляционным базам данных. За каждое задание можно получить по 1 баллу.
Создать программу понадобится в задании 25. Задача в том, чтобы написать код и получить на выходе какой-то ответ. Начальные данные, при которых нужно получить ответ, уже указаны в самом задании. За оба задания можно получить по 1 баллу.
Задания, где нужно написать программу и считать информацию из файла — это 17, 24, 26 и 27. Эффективность и способ решения, который вы использовали, не проверяется. Главное — получить верный численный ответ. За задания 17 и 24 вы можете получить по 1 баллу, а за задания 26 и 27 — по 2 первичных балла.
Обрати внимание, что в некоторых прототипах заданий 17, 24, 25, 26 и 27 программу можно не писать, если ты знаешь, как решить эти задания другим способом — это не запрещено.
Как подготовиться к ЕГЭ по информатике 2023?
Лучший способ — разобраться в каждой теме и выучить все необходимое. Как это сделать?
- Для начала оцените текущий уровень знаний. Можно пройти диагностическое тестирование или попробовать решить последнюю демоверсию экзамена. Таким образом вы поймете, что вы уже знаете, а над чем нужно еще поработать.
- Если вы не умеете программировать, советуем заняться этим с самого начала учебного года. Задания на программирование приносят минимум 8 первичных баллов из 29, это достаточно много.
- Подумайте, смогут ли вас хорошо подготовить в школе. Оцените, что из школьной программы вы уже знаете, а что предстоит изучить в течение года.
- Решите, как вам комфортнее заниматься: лично с преподавателем, в группе или онлайн.
- Регулярно занимайтесь, уделяя время и теории, и практике!
Именно по такой схеме проходят мои занятия по подготовке к ЕГЭ по информатике в MAXIMUM Education. Но вдобавок к этому я еще показываю ученикам разные ловушки экзамена: как в формулировках заданий, так и в критериях и правилах оформления решений. Я помогаю распознавать эти ловушки и обходить их стороной — только так можно гарантированно получить максимальный балл за каждое задание.
Помимо этого, я знаю много разных лайфхаков решения ЕГЭ по информатике. С их помощью найти правильный ответ можно намного быстрее — а это очень важно на экзамене, когда время ограничено. Всеми этими лайфхаками я делюсь со своими учениками и показываю, как применять на практике каждый способ.
Так что на экзамен мои ученики приходят абсолютно спокойные и уверенные в своих силах. И результаты ЕГЭ у них соответствующие: намного выше среднего балла по стране. Если и вы хотите получить 80+ на экзамене по информатике, записывайтесь на курс подготовки к ЕГЭ. Я научу вас всему, что я знаю!
Сегодня посмотрим одно из самых интересных заданий из ЕГЭ по информатике 2023. Будем решать 24 задание. В этом задании нужно работать с файлами.
Все решения задач из задания 24 ЕГЭ по информатике 2023 будут приведены на языке программирования Python (Питон).
Поехали!
Задача (Самая простая)
Текстовый файл состоит не более чем из 106 символов A, B и C. Определите максимальное количество идущих подряд символов B. Для выполнения этого задания следует написать программу. Ниже приведён файл, который необходимо обработать с помощью данного алгоритма.
Решение:
Решим данную задачу на языке Python.
f=open('24_1.txt') s=f.read() k=0 kmax=0 for i in range(0, len(s)): if s[i]=='B': k=k+1 kmax=max(k, kmax) else: k=0 print(kmax)
С помощью команды open() подвязываемся к файлу. Чтобы не прописывать полный путь, файл должен лежать в той же папке, что и программа.
С помощью команды .read() зачитываем в переменную s всё содержимое файла.
Переменная k — это текущий счётчик символов «B». Задача переменной kmax сохранить максимальное значение k.
С помощью цикла for перебираем все символы из строки s. Переменная i пробегается по номерам всех симолов. Счёт символов начинается в строке с нуля. В начале берём нулевой символ, потом первый и т.д. Конструкция for i in range(0, len(s)) позволяет пройтись по всем символам строки до конца.
Если нам встретился нужный символ «B», то мы счётчик прибавляем на 1. Это значит, что мы подсчитываем текущую цепочку. Если будет стоять 3 символа «B» подряд, значит, счёт k покажет значение 3. Как только встретится дургой символ, то это означает, что цепочка прервалась и счётчик переводится в первоначальное положение 0.
При любом увеличении счётчика происходит анализ этого счётчика на максимальность. Функция max выбирает максимальное значение из старого значения kmax и нового показания счётчика k. Если счётчику k удалось победить kmax, то его значение будет считаться максимальным на данный момент времени.
В ответ идёт значение kmax. Это и есть длина максимальной цепочки. В этой задачке ответ получается 11.
Ответ: 11
Закрепим это простое задание из ЕГЭ по информатике 2023.
Задача (Простая, закрепление)
Текстовый файл состоит не более чем из 106 символов X, Y и Z. Определите максимальное количество идущих подряд символов, среди которых нет символа Z. Для выполнения этого задания следует написать программу.
Решение:
Решение похоже на предыдущее.
f=open('24_2.txt') s=f.read() k=0 kmax=0 for i in range(0, len(s)): if s[i]!='Z': k=k+1 kmax=max(k, kmax) else: k=0 print(kmax)
Если нет символов «Z», то подсчитываем, иначе сбрасываем.
Задача (Обращаемся к соседу)
Текстовый файл состоит не более чем из 106 символов X, Y и Z. Определите максимальное количество идущих подряд символов, расположенных в алфавитном порядке (возможно с повторением симолов). Для выполнения этого задания следует написать программу.
Решение:
f=open('24_2.txt') s=f.read() k=1 kmax=0 for i in range(0, len(s)-1): if s[i]<=s[i+1]: k=k+1 kmax=max(k, kmax) else: k=1 print(kmax)
В ответе получается 15. Символы можно сравнивать между собой с помощью знаков «>» или меньше «<» ( а так же «>=» или «<=»), причём это сравнение происходит в алфавитном порядке. Например, символ «B» будет больше, чем «A» и т.п. Теперь нам нужно уже обратится к соседу, уже важна связь между соседними символами. Раз мы обращаемся к следующему символу, то должны пробегать до len(s)-1, иначе куда мы будем обращаться, когда дойдём до последнего символа?
В самом начале цепочки мы анализируем два символа, а к счётчику прибавляем всего лишь 1. Чтобы это учесть, в начале счётчику (переменной k) присваиваем 1. Затем, по мере продвижения по цепочке, мы добавляем в наш анализ 1 новый символ, и к счётчику добавляется одна 1. Дальше уже таких проблем нет.
Раз мы присвоили в переменную k единицу, то и сбрасывать в ветке else мы тоже должны на 1. Эти значения обычно взаимосвязаны.
Если мы обращаемся к соседнему символу, как правило, счётчик и сброс устанавливаются в 1. Это не стопроцентная истина, но иметь ввиду это нужно.
Ответ: 15
Задача (Обращаемся к соседу, закрепление)
Текстовый файл состоит не более чем из 106 символов арабских цифр (0, 1, …,9). Определите максимальное количество идущих подряд цифр, среди которых каждые две соседние различны. Для выполнения этого задания следует написать программу.
Решение:
f=open('24_3.txt') s=f.read() k=1 kmax=0 for i in range(0, len(s)-1): if s[i]!=s[i+1]: k=k+1 kmax=max(k, kmax) else: k=1 print(kmax)
Если соседи различны, мы подсчитываем, иначе сбрасываем.
Ответ: 120
Задача (Обращаемся к соседу, ещё сложнее)
Текстовый файл состоит не более чем из 106 символов арабских цифр (0, 1, …,9). Определите максимальное количество идущих подряд нечётных цифр, расположенных в неубывающем порядке. Для выполнения этого задания следует написать программу.
Решение:
f=open('24_3.txt') s=f.read() k=1 kmax=0 for i in range(0, len(s)-1): if s[i]<=s[i+1] and s[i] in '13579' and s[i+1] in '13579' : k=k+1 kmax=max(k, kmax) else: k=1 print(kmax)
Здесь опять можно применить знаки сравнения прям к символам. Удобно проверить принадлежность к нечётным цифрам конструкцией s[i] in ‘13579’. Нечётной цифрой должна быть как текущая, так и следующая.
Ответ: 8
Решим ещё одну тренировочную задачу из ЕГЭ по информатике 2023.
Задача (Обращаемся к соседу, ещё сложнее, закрепление)
Текстовый файл состоит не более чем из 106 символов 1, 2, 3, A, B, С. Определите максимальное количество идущих подряд символов, среди которых никакие две буквы и никакие две цифры не стоят рядом. Для выполнения этого задания следует написать программу.
Решение:
f=open('24_4.txt') s=f.read() k=1 kmax=0 for i in range(0, len(s)-1): if (s[i] in '123' and s[i+1] in 'ABC') or (s[i] in 'ABC' and s[i+1] in '123') : k=k+1 kmax=max(k, kmax) else: k=1 print(kmax)
В этой задаче цифры и буквы должны чередоваться. Если у нас цифра, то следующая должны быть буква, или наоборот, если у нас буква, то следующая должна быть цифра. В этих двух случаях прибавляем к счётчику 1.
Ответ: 20
Задача (Исключаем строку из 2-х символов, демо 2022)
Текстовый файл состоит из символов P, Q, R и S.
Определите максимальное количество идущих подряд символов
в прилагаемом файле, среди которых нет идущих подряд символов P.
Для выполнения этого задания следует написать программу.
Решение:
Напишем решение на языке Python.
f=open('24_5.txt') s=f.read() k=1 kmax=0 for i in range(0, len(s)-1): if s[i]=='P' and s[i+1]=='P': k=1 else: k=k+1 kmax = max(k, kmax) print(kmax)
Подсчитываем символы, пока не встретилась комбинация двух P подряд. Как только встретилась данная комбинация, сбрасываем счётчик на 1. Здесь мы сбрасываем счётчик на значение 1, чтобы учесть один символ, которые находится в самой комбинации PP. И в начале мы тоже устанавливаем счётчик в значение 1 по этой же причине.
Мы проходим в цикле for до длины строки минус один. Значение 1 в счётчике при сбросе и в начале программы так же компенсирует и тот момент, что мы не подсчитываем последний символ!
При изменении счётчика, сохраняем максимальное значение в переменной mx
Если бы у нас была вместо PP другая комбинация, состоящая к примеру из 5 символов, то мы бы тогда в начале и при сбросе писали в счётчик значение 5-1=4.
Здесь тоже работает негласное правило, обращаемся к соседу, значит, счётчик устанавливаем в 1.
В этой задаче получается ответ 188.
Ответ: 188
Задача (Исключаем подстроку из 3-х символов)
Текстовый файл состоит из символов арабских цифр(0, 1, …,9).
Определите максимальное количество идущих подряд символов
в прилагаемом файле, среди которых нет трёх символов 0, стоящих рядом.
Для выполнения этого задания следует написать программу.
Решение:
Напишем решение на языке Python.
f=open('24_6.txt') s=f.read() k=2 kmax=0 for i in range(0, len(s)-2): if s[i]=='0' and s[i+1]=='0' and s[i+2]=='0': k=2 else: k=k+1 kmax = max(k, kmax) print(kmax)
Чтобы понять это решение, нужно посмотреть предыдущую задачу. Мы здесь обращаемся к двум соседям, значит, счётчик устанавливаем в 2. Так же проходим в цикле до len(s)-2. Нежелательная строка может состоять не только из одинаковых символов. Может быть строка «XYYZ», к примеру.
Ответ: 7684
Задача (Не более одного символа Z)
Текстовый файл состоит не более чем из 106 символов X, Y и Z. Определите максимальное количество идущих подряд символов, среди которых символ Z встречается не более одного раза.
Решение:
В нашей цепочке один раз можно встретиь символ Z, а два раза уже нельзя. Здесь мы применим функцию .split(). Как работает эта фнкция? Напишем тестовую программу.
s='sadqttqtreq' a=s.split('q') print(a)
Результат данной программы будет следующим:
[‘sad’, ‘tt’, ‘tre’, »]
Команда split «разрезает» строку по символу «q». В результате мы получаем массив с кусочками этой строки.
Решение нашей задачи.
f=open('24_7.txt') s=f.read() a=s.split('Z') k=0 kmax=0 for i in range(0, len(a)-1): k = len(a[i]) + 1 + len(a[i+1]) kmax = max(k, kmax) print(kmax)
Разрезаем нашу строку по символу «Z». Пробегаемся уже по массиву a. Цепочка-кандидат это текущий кусочек (a[i]), символ Z (1) и следующий кусочек (a[i+1]).
Каждого кандитата проверяем сразу на максимальность.
Ответ: 43
Задача (Не более двух символов Z)
Текстовый файл состоит не более чем из 106 символов X, Y и Z. Определите максимальное количество идущих подряд символов, среди которых символ Z встречается не более двух раз.
Решение:
Решение аналогично предыдущему.
f=open('24_7.txt') s=f.read() a=s.split('Z') k=0 kmax=0 for i in range(0, len(a)-2): k = len(a[i]) + 1 + len(a[i+1]) + 1 + len(a[i+2]) kmax = max(k, kmax) print(kmax)
Ответ: 50
Задача (Звенья)
Текстовый файл состоит не более чем из 106 символов X, Y и Z. Определите максимальную длину цепочки символов, состоящей из повторяющихся фрагментов XYZ. Цепочка должна начинаться с символа X и заканчиваться символом Z. Например, для строки ZZZXYZXYZXZZZ длина цепочки равна 6: XYZ+XYZ
Решение:
Если мы подсчитаем количество идущих подряд звеньев XYZ, то, можно сказать, дело сделано.
f=open('24_8.txt') s=f.read() s=s.replace('XYZ', '1') k=0 kmax=0 for i in range(0, len(s)): if s[i]=='1': k=k+1 kmax=max(k, kmax) else: k=0 print(kmax*3)
Мы с помощью команды replace заменили звенья на «1» (на символ, которого точно нет в файле). Теперь задача свелась к самой простой, которую мы рассматривали в начале статьи. Нужно просто подсчитать количество идущих поряд единиц.
В ответе нас просили указать количество символов, а не звеньев, поэтому переменную kmax умножаем на 3.
Ответ: 66
Задача (Звенья, закрепление)
Текстовый файл состоит не более, чем из 106 символов из набора A, B, С. Найдите максимальное количество идущих пар символов AC или AB. Искомая подстрока может включать только пары AB, только пары AC или содержать одновременно как пары AC, так и пары AB.
Решение:
f=open('24_9.txt') s=f.read() s=s.replace('AB', '1') s=s.replace('AC', '1') k=0 kmax=0 for i in range(0, len(s)): if s[i]=='1': k=k+1 kmax=max(k, kmax) else: k=0 print(kmax)
Здесь нам подходит звено, как и AB, так и AC. В ответе нужно указать количество пар, поэтому не на что умножать переменную kmax не нужно.
Ответ: 19
Задача (Звенья, основная волна 20.06.22)
Текстовый файл состоит из символов A, B, C, D и O. Определите максимальное количество идущих подряд пар символов вида согласная + гласная в прилагаемом файле. Для выполенения этого задания следует написать программу.
Решение:
f=open('24_10.txt') s=f.read() s=s.replace('BA', '1') s=s.replace('CA', '1') s=s.replace('DA', '1') s=s.replace('BO', '1') s=s.replace('CO', '1') s=s.replace('DO', '1') k=0 kmax=0 for i in range(0, len(s)): if s[i]=='1': k=k+1 kmax=max(k, kmax) else: k=0 print(kmax)
Ответ: 174
Задача (Звенья, последнее звено неполное)
Текстовый файл состоит не более чем из 106 символов X, Y и Z. Определите максимальную длину цепочки вида XYZXYZXYZ… (составленной из фрагментов XYZ, последний фрагмент может быть неполным). Для выполнения этого задания следует написать программу. Ниже приведён файл, который необходимо обработать с помощью данного алгоритма.
Решение:
Т.к. последнее звено может быть неполным, здесь удобно применить другой алгоритм.
Пусть в начале показания счётчика равно нулю. Если мы находим нужный нам символ в нужной последовательности, то прибавляем к счётчику 1. Если последовательность сбивается, то ставим счётчик в ноль.
На рисунке представлен данный алгоритм. В нижней строке указано показание счётчика в момент анализа символа.
На данном рисунке максимальная длина цепочки нужных символов равна 9.
Видим, что для символа X, когда он находится на своём месте, остаток от деления значения счётчика на 3 равен 0.
Для символа Y, когда данный символ находится на своём месте, остаток от деления значения счётчика на 3 равен 1.
Для символа Z, когда данный символ находится на своём месте, остаток от деления значения счётчика на 3 равен 2.
Мы смотрим остаток от деления на 3, потому что у нас длина звена равна трём (XYZ).
Таким образом, мы и наш анализ очередного символа привяжем к показанию счётчика:
f=open('24_11.txt') s=f.read() k=0 kmax=0 for i in range(0, len(s)): if (s[i]=='X' and k%3==0) or (s[i]=='Y' and k%3==1) or (s[i]=='Z' and k%3==2): k=k+1 kmax = max(k, kmax) else: if s[i]=='X': k=1 else: k=0 print(kmax)
Важный момент: Если нужную цепочку прервал символ X, то нужно счётчик сразу выставить в 1, иначе может произойти такая ошибка:
Т.е. первые три нужных символа в цепочке алгоритм не засчитал.
Поэтому мы не просто сбрасываем счётчик в ноль, а прописываем условие:
if s[i]=='X': k=1 else: k=0
Ответ: 13
Задача (Полезный приём)
Текстовый файл 24-157.txt состоит не более чем из 106 символов и содержит только заглавные буквы латинского алфавита (ABC…Z). Определите символ, который чаще всего встречается в файле между двумя одинаковыми символами. Например, в тексте CCBAABABCBC есть комбинации ABA, BAB, BCB и CBC. Чаще всего – 2 раза – между двумя одинаковыми символами стоит B, в ответе для этого случая надо написать B2 (без пробелов и других разделителей). Если таких символов несколько, выведите тот, который стоит раньше в алфавите.
Решение:
f=open('24-157.txt') s=f.read() a=[0]*150 for i in range(0, len(s)-2): if s[i]==s[i+2]: a[ord(s[i+1])] = a[ord(s[i+1])] + 1 ch='' mx=0 for i in range(0, 150): if a[i]>mx: mx=a[i] ch=chr(i) print(ch, mx)
Здесь мы заводим массив a. Индексы этого массива — это коды ANSI всех букв латинского алфавита (ABC…Z). Ведь, как мы знаем, каждая буква кодируется определённым числом (кодом ANSI). Вот часть этой таблицы.
Например, буква A кодируется кодом 65. Коды увеличиваются в алфавитном порядке на 1. Буква Z кодируется числом 90. Таким образом, 150 ячеек точно хватит для нашего алфавита. Здесь берём с запасом, потому что на экзамене можно точно не вспомнить коды, но достаточно запомнить, что 150 ячеек вполне хватит для заглавных и строчных букв латинского алфавита.
Значит, ячейка 65 отвечает за букву A, ячейка 66 отвечает за букву B и т.д. Если мы встретили букву между двумя одинаковыми буквами, то её ячейка увеличивается на 1.
Функция ord() превращает символ в код ANSI.
После того, как мы прошли всю строку и собрали информацию о наших буквах, нужно пройти массив a и найти наибольшее число в нём.
Здесь мы уже не пользуемся функцией max, а используем условие, потому что нужно кроме максимального числа тянуть ещё один параметр — сам код (переменную i). Функция chr() превращает код ANSI обратно в символ.
Ответ: W1608
Задача (Строки различной длины)
Текстовый файл 24-164.txt состоит не более чем из 106 символов и содержит только заглавные буквы латинского алфавита (ABC…Z). Текст разбит на строки различной длины. Необходимо найти строку, содержащую самую длинную цепочку стоящих подряд одинаковых букв. Если таких строк несколько, надо взять ту, которая в файле встретилась раньше. Определите, какая буква встречается в этой строке чаще всего. Если таких букв несколько, надо взять ту, которая стоит раньше в алфавите. Запишите в ответе эту букву, а затем – сколько раз она встречается во всем файле.
Пример. Исходный файл:
ZZQABA
ZALAAC
QRAQUT
В этом примере в первой и второй строках наибольшая длина цепочек одинаковых буквы равна 2 (ZZ в первой строке, AA во второй), в третьей – 1. Берём первую строку, т.к. она находится в файле раньше. В этой строке чаще других встречаются буквы Z и A (по 2 раза), выбираем букву A, т. к. она стоит раньше в алфавите. В ответе для этого примера надо записать A6, так как во всех строках файла буква A встречается 6 раз.
Решение:
Для считывания построчно файла, будем использовать конструкцию, как в задании 17. В начале найдём строчку, содержащую самую длинную цепочку стоящих подряд одинаковых букв.
f=open('24-164.txt') kmax=0 count=0 n=-1 for s in f.readlines(): count=count+1 k=1 for i in range(0, len(s)-1): if s[i]==s[i+1]: k=k+1 if k>kmax: kmax=k n=count else: k=1 print(n)
Получается строка под номером 162. Переменная count считает строки по порядку. В переменную n сохраняем номер нужной строки. Опять пользуемся условием, а не функцией max, т.к. здесь нужно и обновлять kmax, и сохранять значение n. У нас условие строгое k>kmax, значит, сохранится первая строка с наибольшей искомой цепочкой.
f=open('24-164.txt') count=0 a=[0]*150 for s in f.readlines(): count=count+1 k=1 if count==162: for i in range(0, len(s)): a[ord(s[i])] = a[ord(s[i])] + 1 ch='' mx=0 for i in range(0, 150): if a[i] > mx: mx=a[i] ch=chr(i) print(ch)
Теперь нас интересует только строка под номером 162. Далее используем приём из прошлой задачи. Заводим массив a из 150 ячеек и используем таблицу кодов ANSI. Так определяем какая буква встретилась чаще всего в строке под номером 162. Получается буква K.
f=open('24-164.txt') s=f.read() print(s.count('K'))
Осталось найти количестов букв K во всём файле. Для этого используем функцию .count()
Ответ: K36582
В задаче 15 «Задача (Полезный приём)», созданы переменные k и kmax — напрасно, они не используются.
Убрал, по привычке написал.
Теперь ЕГЭ по информатике выпускники сдают в компьютерной форме, а это значит, что и в процессе подготовки их ждет немало изменений.
Как связаны программирование и подготовка к ЕГЭ по информатике
Некоторые задания из ЕГЭ по информатике 2022 (номера 8, 11, 19, 20, 21, 24, 25 и 27) требуют знаний одного из языков программирования и минимальных навыков работы с ним. В первых из перечисленных заданий проверяется умение выпускников понимать и анализировать текст программы, в 25 задаче нужно самостоятельно написать фрагмент программы, в 27 — законченную программу.
В формулировках заданий перечислены следующие языки программирования: Basic, Pascal, C/C++, Алгоритмический язык, Python, Естественный язык. Выбор языка программирования не влияет на оценку, несмотря на то, что на каком-то из них программа может получиться длиннее, а на другом короче. Эксперты в области подготовки к ЕГЭ по информатике говорят, что за все время их деятельности на экзамене еще ни разу не попалось задание, которое нельзя было бы выполнить, например, с использованием Basic.
Как решать задачи на программирование при подготовке
Прежде чем приступать к решению задач, нужно разобраться с теоретической частью. Для того, чтобы успешно выполнять задания и получить высокие баллы, вам необходимо разбираться в:
- синтаксисе используемого языка программирования,
- алгоритмических конструкциях,
- работе со строками и символами,
- работе с массивами,
- базовых алгоритмах программ,
- составных типах данных.
Приступая к практической части подготовки, в первую очередь решите демонстрационную версию экзамена (можно даже на специальной онлайн-платформе, где КИМ будет выглядеть ровно так, как компьютерная версия самого ЕГЭ) и посмотрите, какие задания вам даются легко, какие вызывают небольшие трудности, а с какими вы совсем не можете справиться. Такое распределение задач по категориям поможет вам лучше организовать подготовку, расставить приоритеты и повысить эффективность практики.
После этого обязательно изучите критерии и постарайтесь понять, что именно от вас хотят увидеть проверяющие, на что нужно обратить внимание при выполнении заданий и какие условия нужно соблюдать.
И только после этого начинайте практиковаться. Лучше делать это каждый день, а также привлечь к подготовке человека, который в этом хорошо разбирается — репетитора или куратора онлайн-школы. Он поможет вам прояснить непонятные моменты и научит находить ошибки.
Какой язык программирования выбрать для сдачи ЕГЭ по информатике в 2022 году
В большинстве школ языкам программирования уделяется не так много времени, а где-то о них и не упоминают, поэтому ученикам приходится брать на себя целых две сложных и важных задачи:
- выбрать язык(и) программирования для ЕГЭ по информатике,
- научиться с ними работать.
Сейчас посмотрим, какие языки программирования выпускники выбирают чаще всего и какие из них лучше для подготовки к ЕГЭ по информатике 2022.
- Pascal
Даже если в вашей школе информатика преподавалась “для галочки”, об этом языке вы уж точно слышали. Несмотря на то, что Паскаль является устаревшим языком программирования и не используется разработчиками в крупных компаниях, для ЕГЭ он вполне подойдет.
С использованием Паскаля можно решить все базовые задания на программирование, хотя выполнение более сложных задач, скорее всего, получится не совсем удобным и весьма громоздким.
- C++
Этот язык пользуется наибольшей популярностью среди выпускников, несмотря на то, что написание программ на нем — не самое быстрое. Если у вас медленный темп работы, то в целях экономии времени на ЕГЭ по информатике 2022 лучше выбрать другой язык программирования, тем более, что в большинстве заданий проверяются ответы, а не написание программ.
- Python
Питон совсем недавно вошел в список разрешенных языков программирования для ЕГЭ по информатике, поэтому для многих (в том числе проверяющих) он покажется непривычным. Однако этот язык почти идеально подходит под формат экзамена: он быстрый, на нем можно решить 18 заданий из 27, он имеет простой синтаксис.
- Другие варианты
Вы можете выбрать другой язык программирования, например, C или Basic, которые также рекомендуют многие преподаватели. Однако здесь могут возникнуть две сложности: это усложнит подготовку, так как в большинстве методических материалов по подготовке используются первые три языка из нашего списка, а также может случиться такое, что эксперт, проверяющий работу, не будет знать выбранный вами язык (это, конечно, не ваша проблема, но неприятные ситуации могут возникнуть).
Итог
При выборе языка программирования для ЕГЭ по информатике 2022 мы советуем руководствоваться именно легкостью, распространенностью языка и быстротой использования. Самое важное — чтобы он помог вам решить задания из КИМа, а все остальное уже второстепенно.
Важно знать язык программирования, но также важно понимать, как пишутся программы. То есть, понимать принцип их написания, а не зубрить одно решение и воспроизводить его с разными данными. В этой статье даём алгоритм, который поможет писать программы для ЕГЭ по информатике, и тогда нетипичные задания экзамена не загонят вас в безвыходное положение.
Разница между решением задачи и написанием кода
Код — это инструмент. Он решает вопросы, которые вы задаёте, а именно: забирает данные, их обрабатывает и выдаёт число.
Основная задача на ЕГЭ по информатике — «научить» код делать то, что нужно вам.
ЕГЭ по информатике — единственный экзамен, который сдают на компьютерах. Как проходит КЕГЭ и на что стоит обратить внимание во время подготовки, рассказали в этой статье.
Как превратить решение задачи в код?
Совет 1: напишите последовательные шаги
Необходимо подумать о задаче как о какой-то математической абстракции.
Рассмотрим 17 задачу в ЕГЭ по информатике.
Алгоритм решения этого задания:
- создаём список;
- проходимся по списку;
- сравниваем соседние элементы.
То есть сначала вы должны понять, что требуется для решения задачи, а затем перевести всё в алгоритм — последовательность действий.
Дополнить подготовку к ЕГЭ по информатике можно не только учебниками, но и онлайн-ресурсами. В нашей подборке собрали полезные мобильные приложения, сайты и Youtube-каналы.
Совет 2: схематично изобразите решение
Настоящие специалисты, которые получают за свой труд деньги, составляют программы, начиная со схем на белой доске.
Советуем этот метод для решения ЕГЭ по информатике: сначала изобразите абстракции, а потом преобразите их в последовательность шагов.
Полное решение можно не получать сразу. На ЕГЭ спрашивают только число, которое является ответом к задаче. А значит, код может не выдавать моментально правильный ответ. Вы можете попробовать разные способы, сделать выводы и, в итоге, прийти к верному решению.
В этой статье Коля Касперский поделился советами, как составить грамотный план подготовки к ЕГЭ по информатике.
Совет 3: протестируйте решение
После того как был написан скелет программы, и вы стали понимать, что делают отдельные её части, необходимо протестировать код. Предлагаем воспользоваться трассировкой.
Трассировка — процесс пошагового выполнения программы. Он позволяет быстрее находить ошибки.
Прежде чем начинать решать задачи на программирование, необходимо ознакомиться с актуальной демоверсией ЕГЭ. В этой статье Коля Касперский разобрал новые задания и рассказал о изменениях в структуре экзамена.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter. Мы обязательно поправим!
Если школьник хочет попасть в IT, то пропускать уроки информатики нельзя. Потому что после 11-го класса нужно будет сдать ЕГЭ по информатике. В статье расскажем, какие фичи придумали разработчики экзамена, чтобы проверить знания выпускников.
0
132
На большинство специальностей IT-сферы вузы принимают с успешными результатами ЕГЭ по информатике. Экзамен не самый простой, но для тех, кто интересуется информатикой и информационно-коммуникативными технологиями (ИКТ), задания могут быть увлекательными.
У экзамена есть свои особенности. Экзамен по информатике проводится в компьютерной форме. То есть все задания нужно выполнить на компьютере с использованием специального программного обеспечения (ПО): среда программирования и редакторы таблиц и текстов.
Изменения в экзамене 2023
В 2023 разработчики внесли небольшие изменения в некоторые задания. Они коснулись вопросов 6 и 22.
Задание 6 направлено на проверку знаний алгоритмов и умения их анализировать. Школьникам предлагается проанализировать алгоритм заданного исполнителя, определить результат работы простейших и вычислительных алгоритмов.
Задание 22 затрагивает сложные темы организации многопоточных и многопроцессорных вычислений и параллельного программирования. Для решения прилагается дополнительный файл.
Разработчики совершенствуют задания ЕГЭ каждый год, чтобы выпускники не читерили. Другие вопросы в работе не были изменены глобально, но некоторые из них усложнили. Так что готовиться следует внимательно, учитывая новый уровень сложности.
Структура экзамена
ЕГЭ по информатике в 2023 году пройдет 19 и 20 июня. Работа содержит 27 заданий, на которые нужно дать краткий ответ. Часть заданий предполагает использование специального ПО.
На выполнение работы у тебя будет 235 минут.
Важно: пользоваться Интернетом во время экзамена нельзя, доступа в сеть на экзаменационных компьютерах нет.
Программирование
С задачами на знание основ программирования можно справиться, если знаешь хотя бы один из современных языков программирования. Это может быть C#, C++, Pascal, Java или Python. Неважно, какой язык ты выберешь, главное, чтобы ты мог свободно пользоваться им, а также разбираться в массивах, строках и алгоритмах.
Логика
Вопросы по этой теме связаны с логическими операциями. Нужно знать таблицы истинности и уметь работать с выражениями.
Алгоритмизация
Вопросы этого блока рассчитаны на проверку знаний в области алгоритмов, их свойств. Школьник должен понимать, как работают простейшие и вычислительные алгоритмы на примере заданного исполнителя.
Для решения можно написать соответствующие программы.
Информационные модели
Задачи раздела проверяют знания выпускников о методах работы с таблицами и умение пользоваться функциями и фильтрами. Эта тема редко вызывает трудности у школьников.
Информация и ее кодирование
В этом блоке могут встретиться вопросы на знание систем счисления и переводов чисел, основных понятий и методов, которые используют для измерения количества информации.
Курс подготовки к ЕГЭ по информатике — это полное погружение в мир информационных технологий. В «СОТКЕ» мы подробно разбираем все нужные для сдачи ЕГЭ темы и объясним столько раз, сколько нужно, чтобы не осталось никаких пробелов. Записывайся на бесплатный вводный урок, и начни свой путь в мир технологичного будущего.
Критерии оценивания
За верное выполнение каждого из заданий 1 — 25 можно получить 1 балл. Ответ должен полностью совпадать с эталоном.
За верное выполнение заданий 26 и 27 можно получить по 2 балла. В случае, если цифры в ячейках перепутаны местами или присутствует только одно верное число, ответ оценивается в 1 балл.
Максимально за экзамен можно получить 29 первичных баллов, которые после переводятся в 100-балльную систему.
Типы заданий экзамена
Всю экзаменационную работу можно выполнить с помощью компьютера и специального ПО. Но в некоторых случаях можно решать задачи и без использования компьютера.
Решение задач «вручную»
Задания 1, 2, 4 — 8, 11 — 15, 19 — 23 школьник может сделать без использования компьютера и ПО. Достаточно провести все действия в черновике и записать ответ в бланк.
Если выпускнику требуется написать программу или воспользоваться электронными таблицами, он может это сделать.
Решение задач с помощью ПО
Для других вопросов экзаменационной работы нужен компьютер и программное обеспечение. В некоторых заданиях разработчики предлагают воспользоваться файлом из дополнительных материалов. Другие можно выполнить, написав соответствующую программу в среде программирования. Есть задания, в которых комбинируют использование файла и написание программы.
Как подготовиться к ЕГЭ по информатике
Начинай подготовку с изучения спецификации, кодификатора и демонстрационного варианта ЕГЭ. Все документы можно скачать на сайте ФИПИ. Ознакомившись с темами и заданиями, ты сможешь понять, что тебя ждет и наметить общий план подготовки.
Оцени свои знания. Пройди пробные тесты, чтобы понять, каким темам стоит уделить больше внимания.
Составь расписание для изучения всех тем. Комбинируй теорию с практикой. Выдели достаточно времени для практического программирования. Изучай файлы, массивы, сортировку, организацию вычислений в таблицах и методы измерения количества информации.
Важно: методы решения в информатике тесно связаны со знаниями математики, поэтому при подготовке стоит подтянуть свои знания по смежным предметам.
В «СОТКЕ» будущих айтишников ждет много практики, мы научим писать все нужные программы и будем проходить с тобой все темы по четкому плану. Если хочешь войти в IT, еще не поздно начать готовиться к ЕГЭ.
Бонус: вместе с информатикой ты можешь готовиться еще к 3 предметам по одной цене. Узнать подробности.
Как избежать ошибок
Работа в IT — это сотни строчек кода, где одна маленькая ошибка может заруинить весь проект. Будущие кодеры, разработчики должны обладать усидчивостью и внимательностью, чтобы не допускать ошибок.
Внимательно читай условия. Тебе нужно понять, что от тебя требуется, прежде чем приступить к выполнению.
Составь план действий и следуй ему, чтобы не пропустить никаких важных шагов.
Следи за арифметическими вычислениями. Лучше выполнять их на бумаге, а не в уме, чтобы можно было перепроверить свой ответ.
Об изменениях в ЕГЭ по информатике в 2022 году
ЕГЭ по информатике состоит из следующих тем: «Системы счисления», «Базы данных», «Поиск информации в текстовых документах», «Электронные таблицы», «Алгебра логики», «Графы», «Комбинаторика», «Алгоритмизация и программирование», «Теория игр», «Кодирование и декодирование».
По сравнению с прошлым годом контрольные измерительные материалы изменились. Например, задание №3 теперь нужно выполнять на компьютере, так как оно предполагает работу с файлами импровизированной базы данных. В задании №9 учащимся придется вспомнить логические функции при работе с формулами в электронных таблицах, а задание №17 потребует от выпускников выполнить анализ числовой информации из файла.
Напомним, что на протяжении всего экзамена у участников все так же будет доступ к компьютеру с установленным прикладным программным обеспечением и средами программирования.
Основное отличие нынешнего ЕГЭ по информатике от экзаменов прошлых лет состоит в том, что практически все задания в нем можно выполнить на компьютере.
И это, к сожалению, иногда может сбивать выпускников с правильного пути.
Приведем примеры ошибок, которые допускали участники экзамена в прошлом году, для того чтобы помочь избежать их нынешним старшеклассникам.
Ошибка № 1. Попытка выполнить все задания с использованием компьютера
Хотя большинство задач в ЕГЭ по информатике построено таким образом, что их можно решить как в черновике, так и при помощи офисных приложений или сред программирования, нужно понимать, что решение с использованием компьютера не всегда приводит к быстрому результату.
Учительница перед началом сдачи ЕГЭ по информатике в средней общеобразовательной школе №13 Владивостока, 3 июля 2020 года
Виталий Аньков/РИА «Новости»
Например, выпускник может потратить значительное количество времени на написание программного кода для решения задачи, которая аналитическим методом при помощи ручки и листа бумаги решилась бы намного быстрее, и возможно, проще.
В качестве примера приведем задание №8.
Все 5-буквенные слова, составленные из 4 букв ВЕРТ, записаны в алфавитном порядке.
Вот начало списка:
1. ВВВВВ
2. ВВВВЕ
3. ВВВВР
4. ВВВВТ
5. ВВВЕВ
…
На каком месте от начала списка стоит слово «ВЕТЕР»?
Решение
Представим все буквы как цифры системы счисления с основанием 4. Тогда В – 0, Е – 1, Р – 2, Т – 3.
Слово «ВЕТЕР» будет выглядеть как число 01312. Переведем его в десятичную систему счисления — это число 118 (это можно сделать, например, функцией print(int(‘01312’,4)) всего в одну строку на языке Python. Таким образом, слово «ВЕТЕР» должно находиться на 118 месте. Однако мы видим, что слово ВВВВВ — это 00000 (ноль) в четверичной системе счисления и оно находится на месте 1. Значит, есть сдвиг на одну позицию. Таким образом, слово «ВЕТЕР» находится не на 118, а на 119 месте.
Теперь решим это задание вторым способом — напишем программу на языке Python.
Личный архив Николая Никулина
Оба представленных способа решения данной задачи приведут к верному результату, но первый займет у подготовленного ученика меньше времени.
И таких заданий на экзамене достаточно. А ведь на ЕГЭ каждая минута времени может принести дополнительный балл.
Ошибка № 2. Неверная последовательность выполнения заданий
Эта ошибка характерна не только для ЕГЭ по информатике, но и для других предметов. Прежде всего необходимо выполнять те задачи, которые хорошо знакомы и не требуют значительных временных затрат. Часто участники выполняют задания подряд и, увидев новое для себя задание, пытаются его решить, тратя большую часть времени и усилий. На все остальные задачи у них остается уже меньше ресурсов.
Поэтому, если задание показалось сложным, следует его пропустить и постараться выполнить более простые.
Таким образом можно набрать основное количество баллов и оставить большую часть времени для спокойного размышления над сложными заданиями.
Ошибка № 3. Ложная надежда на компьютерные технологии
Некоторые выпускники думают, что наличие компьютера на экзамене со всевозможными офисными программами и средами программирования сразу избавит их практически от всех проблем, связанных с решением задач. Но всеми этими технологиями еще нужно научиться грамотно пользоваться. При этом необходимо знать теорию по конкретным темам курса информатики.
Например, одна из задач, которая, на наш взгляд, стала решаться гораздо быстрее с использованием компьютера — это задание 14. Приведем пример и решение с использованием алгоритма, записанного на языке программирования Python.
Личный архив Николая Никулина
Для написания подобного программного кода необходимо помнить стандартный алгоритм перевода числа в систему счисления с произвольным основанием. Также нужно знать такие темы из курса информатики, как циклы, работа со строками, операции деления. Еще можно запомнить некоторые стандартные функции языков программирования (например, count для языка Python).
Рекомендации по подготовке к экзамену
Очень важно научиться правильно выбирать методику решения каждого конкретного задания. Некоторые задачи проще и быстрее выполнять без использования компьютерных программ, прибегая к аналитическому подходу.
С другой стороны, на экзамене есть и такие задания, которые невозможно решить вручную за отведенное время, и без написания программного кода или использования прикладного программного обеспечения уже не обойтись. Поэтому попробуйте проверить свои знания, провести самодиагностику. Для этого можно выполнить демонстрационный вариант с последующей проверкой ответов, отметить задания и темы, которые вызывают затруднения. Например, воспользоваться виртуальной лабораторией по информатике в Библиотеке МЭШ, открытыми вариантами контрольных измерительных материалов ЕГЭ на сайте ФИПИ или пройти диагностику в формате ЕГЭ. Проверить свои знания и потренироваться в заполнении экзаменационных бланков вы можете в Центре независимой диагностики Московского центра качества образования. Запись открыта в разделе Центра на сайте МЦКО.
Большое значение имеет повторение тем, относящихся к практическому программированию. Знание одного или нескольких языков программирования на базовом или углубленном уровнях поможет решить не только задачи, относящиеся непосредственно к теме «Алгоритмизация и программирование», но и многие другие задания быстро и оптимально. Изучить необходимые языки программирования помогут в школе на уроках информатики. Также можно воспользоваться учебными материалами в Библиотеке «Московской электронной школы».
Каждую неделю, в разные дни, уделяйте внимание изучению новых материалов и повторению того, что вы уже знаете. Старайтесь еженедельно решать разные варианты из ЕГЭ.