Сколько задач в егэ по информатике на программирование

Никогда не программировал, но хочешь сдать ЕГЭ по информатике? Тогда знай: к экзамену можно подготовиться за год, если грамотно организовать учебный процесс. Из этой статьи ты узнаешь все о структуре ЕГЭ по информатике в 2023 году, изменениях и типах заданий.

Структура и изменения ЕГЭ 2023

Структура и изменения ЕГЭ 2023 по информатике

Изменения в ЕГЭ по информатике 2023

Последние 2 года ЕГЭ по информатике проводился в компьютерной форме, что предоставляло сдающим большое право выбора, как решать то или иное задание, благодаря чему появлялись лазейки, упрощающие решения некоторых номеров из экзамена. 

В связи с этим, ФИПИ ежегодно вносят изменения в КИМ по информатике, чтобы внести больше разнообразия и избавиться от шаблонных решений. В 2023 году полностью претерпят структуру 2 задания, но это не все изменения, что ФИПИ представили в новой демоверсии ЕГЭ. 

Долой переборное решение!

В блоке «Программирование» даже после перехода на компьютерную форму было два задания, в которых программа уже представлена в условии, а задача сдающего — проанализировать ее — задания №6 и 22. Но многие справедливо подумали – зачем анализировать код, если я могу его переписать и запустить переборное решение. Благодаря этому, почти все, кто знал о таком варианте решения заданий, законно получали 2 балла за них. ФИПИ такой способ решения вряд ли понравился. 

Официальный список изменений выглядит следующим образом: 

ЕГЭ по информатике 2023

ФИПИ об изменениях в ЕГЭ по информатике 2023

Задание №6 теперь мы будем относить к блоку «Алгоритмизация», так как теперь оно предоставляет нам работу с исполнителем и анализом алгоритма. В демоверсии вам предлагают проанализировать «Черепашку», которая многим знакома из ОГЭ по информатике:

ЕГЭ по информатике 2023

Задание 6, демоверсия ЕГЭ по информатике 2023

Задание №22 пополняет ряды блока «Информационные модели», а также заданий, к которым прилагаются дополнительные файлы, если быть точнее — электронная таблица. В условии затрагивается новая для экзамена тема – многопоточность (довольно важная тема для многих IT-специалистов и затрагивается на определенных предметах в университете), а решение требует анализа таблицы и зависимостей процессов: 

ЕГЭ по информатике 2023

Задание 22, демоверсия ЕГЭ по информатике 2023

Кроме двух новых заданий, некоторые номера также претерпели изменения: 

Задание №14 все еще направлено на работу с системами счисления, но теперь нужно искать неизвестную цифру числа. Такого прототипа ранее на ЕГЭ мы не видели: 

ЕГЭ по информатике 2023

Задание 14, демоверсия ЕГЭ по информатике 2023

Задание №12, ​судя по демоверсии, станет сложнее — это уже знакомый для экзамена исполнитель «Редактор», но с необычным вопросом (раньше, в основном, требовалось назвать получившуюся после обработки программой строку/сумму цифр строки): 

Задание 12, демоверсия ЕГЭ по информатике 2023

Задание №16 на рекурсию из демоверсии намекает нам на то, что не стоит забывать про аналитическое решение. Это происходит из-за больших аргументов у функции, гораздо проще поразмыслить, что же считает функция:

ЕГЭ по информатике 2023

Задание 16, демоверсия ЕГЭ по информатике 2023

Как видите, ЕГЭ по информатике в 2023 году изменился заметно. Все эти обновления нужно учитывать. Если вы не знаете, чего от вас ждут составители экзамена, даже незначительное изменение в формулировке может стоить вам нескольких баллов. А в условиях, когда от ЕГЭ зависит поступление в хороший вуз и качество образования, каждый балл важен.

Поэтому на своих занятиях по подготовке к ЕГЭ по информатике я всегда разбираю с учениками самые свежие обновления ФИПИ. Мы выясняем, как именно надо понимать задание, изучаем разные алгоритмы решения и тренируем лучшие способы их оформления — в соответствии со всеми критериями. Именно поэтому мои ученики сдают экзамен на высокий балл и поступают в тот вуз, в который изначально хотели. Помочь с этим я могу и вам — записывайтесь на курс и начните подготовку к ЕГЭ на 80+ 💪

О структуре экзамена

В ЕГЭ по-прежнему осталось 27 заданий с кратким ответом. За задания 1-25 можно получить по 1 первичному баллу, а за задания 26 и 27 — по 2 балла. Максимальный возможный результат — 29 первичных баллов.

Все задания школьникам нужно решить за 3 часа 55 минут.

На экзамене встретятся задания по программированию, логике, алгоритмизации, на работу с информационными моделями, а также на кодирование информации.

В каждом блоке есть определенные темы, которые нужно знать. Давайте посмотрим, что именно надо учить.

Программирование

Программирование встречается в шести заданиях — а именно в 16, 17, 24, 25, 26 и 27. Чтобы справиться с ними достаточно хорошо знать только один язык программирования. Нужно уметь работать с массивом, строками, файлами, знать алгоритмы сортировки и другие не менее важные алгоритмы работы с числами.

ЕГЭ по информатике 2023

Задание 24, демоверсия ЕГЭ по информатике 2023

Логика

Логика встречается в заданиях 2 и 15. Чтобы успешно справиться с этими заданиями, нужно знать основные логические операции и их таблицы истинности, уметь преобразовывать и анализировать выражения.

Алгоритмизация

В данный блок входят семь заданий (5, 6, 12, 19, 20, 21 и 23). Для решения этих заданий нужно уметь работать с различными алгоритмами и исполнителями. Важно понимать теорию игр — определять выигрывающего игрока, выигрышную позицию, различать понятия заведомо проигрышной и выигрышной позиций.

Благодаря возможности использовать инструменты компьютера, многие из этих заданий также можно решать с помощью написания программы или построения электронной таблицы.

Информационные модели

С заданиями 1 и 13 ученики обычно справляются хорошо. Чтобы их решить, нужно уметь работать с графами и таблицами и знать пару простых методов. С заданием 10 проблемы возникают редко, так как от вас требуется найти количество определенных слов в текстовом документе. Задания 3, 9 и 18 требуют работы с электронными таблицами, при решении вам помогут знания про ссылки, функции и фильтры. К этому же блоку добавляется новое задание 22. 

ЕГЭ по информатике 2023

Задание 9, демоверсия ЕГЭ по информатике 2023

Информация и ее кодирование

Задания этого блока достаточно разнообразны. Вы встретите алгоритмы перевода чисел в различные системы счисления, условие Фано, формулы, единицы измерения информации и комбинаторику. Все это разнообразие встречается в заданиях 4, 7, 8, 11, 14, а также может пригодится в заданиях на программирование.  А новый прототип задания 14 на работу с системами счисления и вовсе можно решить с помощью программы.

Шкала оценивания

На самом деле шкала перевода баллов составляется после проведения экзаменов, так как в формуле есть параметр «среднее значение». То есть то, что мы называем шкалой — это результат перевода баллов прошлого года. ФИПИ переводит баллы по формуле, а не по шкале. Поэтому шкала меняется, если меняется экзамен или массово меняются результаты его прохождения. Мы полагаем, что в 2023 году проходной балл будет 40 вторичных баллов, но это может измениться.

Какие типы заданий встретятся на ЕГЭ по информатике 2023?

На ЕГЭ 2023, как и в 2021 году, все задания будут с кратким ответом, больше не нужно писать подробные объяснения по теории игр и сдавать программный код на проверку на бумаге. Но это не значит, что все задания идентичны. Посмотрим, какие именно типы заданий встретятся на экзамене.

Задания, которые можно решить «вручную»

Хотя ЕГЭ по информатике и проходит в компьютерной форме, в КИМах по-прежнему остаются задания, которые можно решать, как на бумаге, так и на компьютере. Это задания 1, 2, 4-8, 11-15, 19-23, в них необходимо получить число или последовательность букв в ответе. Ты можешь написать программу на компьютере или использовать электронные таблицы, а затем записать в ответ получившееся значение. За каждое задание можно получить 1 балл.

Задания, которые решаются с помощью компьютера

Все такие задания бывают трех типов:

  1. Работа с предложенным файлом
  2. Создание программы
  3. Написание программы и получение ответа, используя предложенный файл

Разберемся с каждым типом отдельно.

Работать только с предложенным файлом нужно в заданиях 3, 9, 10, 18 и 22. Чтобы решить эти задания, нужно знать, какие функции есть у текстовых редакторов и редакторов электронных таблиц, а также теория по реляционным базам данных. За каждое задание можно получить по 1 баллу.

Создать программу понадобится в задании 25. Задача в том, чтобы написать код и получить на выходе какой-то ответ. Начальные данные, при которых нужно получить ответ, уже указаны в самом задании. За оба задания можно получить по 1 баллу.

Задания, где нужно написать программу и считать информацию из файла — это 17, 24, 26 и 27. Эффективность и способ решения, который вы использовали, не проверяется. Главное — получить верный численный ответ. За задания 17 и 24 вы можете получить по 1 баллу, а за задания 26 и 27 — по 2 первичных балла.

Обрати внимание, что в некоторых прототипах заданий 17, 24, 25, 26 и 27 программу можно не писать, если ты знаешь, как решить эти задания другим способом — это не запрещено.

Как подготовиться к ЕГЭ по информатике 2023?

Лучший способ — разобраться в каждой теме и выучить все необходимое. Как это сделать?

  1. Для начала оцените текущий уровень знаний. Можно пройти диагностическое тестирование или попробовать решить последнюю демоверсию экзамена. Таким образом вы поймете, что вы уже знаете, а над чем нужно еще поработать.
  2. Если вы не умеете программировать, советуем заняться этим с самого начала учебного года. Задания на программирование приносят минимум 8 первичных баллов из 29, это достаточно много.
  3. Подумайте, смогут ли вас хорошо подготовить в школе. Оцените, что из школьной программы вы уже знаете, а что предстоит изучить в течение года.
  4. Решите, как вам комфортнее заниматься: лично с преподавателем, в группе или онлайн.
  5. Регулярно занимайтесь, уделяя время и теории, и практике!

Именно по такой схеме проходят мои занятия по подготовке к ЕГЭ по информатике в MAXIMUM Education. Но вдобавок к этому я еще показываю ученикам разные ловушки экзамена: как в формулировках заданий, так и в критериях и правилах оформления решений. Я помогаю распознавать эти ловушки и обходить их стороной — только так можно гарантированно получить максимальный балл за каждое задание.

Помимо этого, я знаю много разных лайфхаков решения ЕГЭ по информатике. С их помощью найти правильный ответ можно намного быстрее — а это очень важно на экзамене, когда время ограничено. Всеми этими лайфхаками я делюсь со своими учениками и показываю, как применять на практике каждый способ.

Так что на экзамен мои ученики приходят абсолютно спокойные и уверенные в своих силах. И результаты ЕГЭ у них соответствующие: намного выше среднего балла по стране. Если и вы хотите получить 80+ на экзамене по информатике, записывайтесь на курс подготовки к ЕГЭ. Я научу вас всему, что я знаю!

Доброго времени суток каждому жителю Хабрвилля! Давненько я не писал статей! Пора это исправить!

В сегодняшней статье поговорим о насущной для многих выпускников школ теме — ЕГЭ. Да-да-да! Я знаю, что Хабр — это сообщество разработчиков, а не начинающих айтишников, но сейчас ребятам как никогда нужна поддержка именно сообщества. Ребят опять посадили на дистант. Пока не ясно на какой период, но уже сейчас можно сказать, что ЕГЭ по информатике будет на компьютерах и его можно зарешать при помощи языка Python.

Вот я и подумал, чтобы не получилось как в песне, стоит этим заняться. Я расскажу про все задачи первой части и их решения на примере демо варианта ЕГЭ за октябрь.

Всех желающих — приглашаю ниже!

Быстрый перевод из системы в систему

В Python есть интересные функции bin(), oct() и hex(). Работают данные функции очень просто:

bin(156) #Выводит '0b10011100'
oct(156) #Выводит '0o234'
hex(156) #Выводит '0x9c'

Вывод в интерпретационном режиме

Вывод в интерпретационном режиме

Как вы видите, выводится строка, где 0b — означает, что число далее в двоичной системе счисления, 0o — в восьмеричной, а 0x — в шестнадцатеричной. Но это стандартные системы, а есть и необычные…

Давайте посмотрим и на них:

n = int(input()) #Вводим целое число
 
b = '' #Формируем пустую строку
 
while n > 0: #Пока число не ноль
    b = str(n % 2) + b #Остатот от деления нужной системы (в нашем сл записываем слева
    n = n // 2 #Целочисленное деление
 
print(b) #Вывод

Данная программа будет работать при переводе из десятичной системы счисления в любую до 9, так как у нас нет букв. Давайте добавим буквы:

n = int(input()) #Вводим целое число

b = '' #Формируем пустую строку

while n > 0: #Пока число не ноль
	if (n % 21) > 9: #Если остаток от деления больше 9...
		if n % 21 == 10: #... и равен 10...
			b = 'A' + b #... запишем слева A
		elif n % 21 == 11:#... и равен 11...
			b = 'B' + b#... запишем слева B

'''

И так далее, пока не дойдём до системы счисления -1 (я переводил в 21-ную систему и шёл до 20)

'''

		elif n % 21 == 11:
			b = 'B' + b
		elif n % 21 == 12:
			b = 'C' + b
		elif n % 21 == 13:
			b = 'D' + b
		elif n % 21 == 14:
			b = 'E' + b
		elif n % 21 == 15:
			b = 'F' + b
		elif n % 21 == 16:
			b = 'G' + b
		elif n % 21 == 17:
			b = 'H' + b
		elif n % 21 == 18:
			b = 'I' + b
		elif n % 21 == 19:
			b = 'J' + b
		elif n % 21 == 20:
			b = 'K' + b
	else: #Иначе (остаток меньше 10)
		b = str(n % 21) + b #Остатот от деления записываем слева
	n = n // 21 #Целочисленное деление

print(b) #Вывод

Способ объёмен, но понятен. Теперь давайте используем тот же функцию перевода из любой системы счисления в любую:

def convert_base(num, to_base=10, from_base=10):
    # Перевод в десятичную систему
    if isinstance(num, str): # Если число - строка, то ...
        n = int(num, from_base) # ... переводим его в нужную систему счисления
    else: # Если же ввели число, то ...
        n = int(num) # ... просто воспринять его как число
    # Перевод десятичной в 'to_base' систему
    alphabet = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ" # Берём алфавит
    if n < to_base: # Если число меньше системы счисления в которую переводить...
        return alphabet[n] # ... вернуть значения номера в алфавите (остаток от деления)
    else: # Иначе...
        return convert_base(n // to_base, to_base) + alphabet[n % to_base] # ... рекурсивно обратиться к функии нахождения остатка

Вызвав функцию вывода print(convert_base(156, 16, 10)) мы переведём 156 из 10 в 16 систему счисления, а введя print(convert_base('23', 21, 4)) переведёт 23 из 4-ичной в 21-ичную систему (ответ: B).

Задача 2

Все задания беру из первого октябрьского варианта (он же вариант № 9325894) с сайта Решу.ЕГЭ.

Решение данной задачи совсем простое: банальный перебор.

print('y', 'x', 'z', 'F') #Напечатаем заголовки таблицы
for y in range(2): #Берём все переменные и меняем их в циклах '0' и '1'
	for x in range(2):
		for z in range(2):
			for w in range(2):
				F = ((not x or y) == (not z or w)) or (x and w) #Записываем функцию
				print(x, y, z, F) #Выводим результат

Результат:

Нам вывелась вся таблица истинности (1 = True, 0 = False). Но это не очень удобно. Обратите внимание, что в задании, функция равно 0, так и давайте подправим код:

print('y', 'x', 'z', 'F') #Напечатаем заголовки таблицы
for y in range(2): #Берём все переменные и меняем их в циклах '0' и '1'
	for x in range(2):
		for z in range(2):
			for w in range(2):
				F = ((not x or y) == (not z or w)) or (x and w) #Записываем функцию
				if not F:
					print(x, y, z, F) #Выводим результат

Результат:

Далее — простой анализ.

Задача 5

Данная задача легко решается простой последовательностью действий в интерпретационном режиме:

Задача 6

Перепечатали и получили ответ:

s = 0
k = 1
while s < 66:
    k += 3
    s += k
print(k)

Задача 12

В очередной раз, просто заменим слова на код:

a = '9' * 1000

while '999' in a or '888' in a:
	if '888' in a:
		a = a.replace('888', '9', 1)
	else:
		a = a.replace('999', '8', 1)
print(a)

Задача 14

Компьютер железный, он всё посчитает:

a = 4 ** 2020 + 2 ** 2017 - 15
k = 0

while a > 0:
    if a % 2 == 1:
    	k += 1
    a = a // 2

print(k)

Задача 16

Опять же, просто дублируем программу в python:

def F(n):
    if n > 0:
        F(n // 4)
        print(n)
        F (n - 1)
print(F(5))

Результат:

Задача 17

Задача с файлом. Самое сложное — достать данные из файла. Но где наша не пропадала?!

with open("17.txt", "r") as f: #Открыли файл 17.txt для чтения
    text = f.read() #В переменную text запихнули строку целиком
a = text.split("n") #Разбили строку энтерами (n - знак перехода на новую строку)

k = 0 #Стандартно обнуляем количество
m = -20001 #Так как у нас сумма 2-ух чисел и минимальное равно -10000, то минимум по условию равен -20000, поэтому...

for i in range(len(a)): #Обходим все элементы массива
	if (int(a[i - 1]) % 3 == 0) or (int(a[i]) % 3 == 0): #Условное условие
		k += 1 #Счётчик
		if int(a[i - 1]) + int(a[i]) > m: #Нахождение минимума
			m = int(a[i - 1]) + int(a[i])

print(k, m) #Вывод

Немного пояснений. Функция with() открывает файл считывает данные при помощи функции read() и закрывает файл. В остальном — задача стандартна.

Задача 19, 20 и 21

Все три задачи — задачи на рекурсию. Задачи идентичны, а вопросы разные. Итак, первая задача:

Пишем рекурсивную функцию и цикл перебора S:

def f(x, y, p): #Рекурсивная функция
	if x + y >= 69 or p > 3: #Условия завершения игры
		return p == 3
	return f(x + 1, y, p + 1) or f(x, y + 1, p + 1) or
		   f(x * 2, y, p + 1) or f(x, y * 3, p + 1) #Варианты действий

for s in range (1, 58 + 1): #Перебор S
	if f(10, s, 1): #Начали с 10 камней
		print(s)
		break

Немного пояснений. В рекурсивной функции существует 3 переменные x — число камней в первой куче, y — число камней во второй куче, p — позиция. Позиция рассчитывается по таблице:

Игра

Петя

Ваня

Петя

Ваня

Петя

p

1

2

3

4

5

6

Далее — всё по условию задачи.

Вторая задача на теорию игр:

Все отличия в рамке. Ну и код, соответственно, не сильно отличается:

def f(x, y, p): #Рекурсивная функция
	if x + y >= 69 or p > 4: #Условия завершения игры
		return p == 4
	if p % 2 != 0:
		return f(x + 1, y, p + 1) or f(x, y + 1, p + 1) or
			   f(x * 2, y, p + 1) or f(x, y * 3, p + 1) #Варианты действий
	else:
		return f(x + 1, y, p + 1) and f(x, y + 1, p + 1) and
			   f(x * 2, y, p + 1) and f(x, y * 3, p + 1) #Варианты действий


for s in range (1, 58 + 1): #Перебор S
	if f(10, s, 1): #Начали с 10 камней
		print(s)

Отличия:

  1. Выиграл Петя, соответственно, позиция 4

  2. Так как Петя не может выиграть за один ход — он выигрывает за 2 хода (and, а не or на нечётных позициях (играх Пети))

  3. Убрали break, так как нам нужны все S, а не единственный

Последняя вариация задачи:

Сразу код:

def f(x, y, p): #Рекурсивная функция
	if x + y >= 69 or p > 5: #Условия завершения игры
		return p == 3 or p == 5
	if p % 2 == 0:
		return f(x + 1, y, p + 1) or f(x, y + 1, p + 1) or
			   f(x * 2, y, p + 1) or f(x, y * 3, p + 1) #Варианты действий
	else:
		return f(x + 1, y, p + 1) and f(x, y + 1, p + 1) and
			   f(x * 2, y, p + 1) and f(x, y * 3, p + 1) #Варианты действий


for s in range (1, 58 + 1): #Перебор S
	if f(10, s, 1): #Начали с 10 камней
		print(s)

Ну и всего лишь 2 отличия:

  1. Позиции 3 или 5, а не 4, так как выиграл Ваня

  2. На второй ход выигрывает Ваня и нам нужно or и and поменять. Я заменил только кратность 2.

Задача 22

Ctrl+C, Ctrl+V — наше всё! :)

for i in range(1, 100000):
	x = i
	L = 0
	M = 0
	while x > 0 :
		L = L+1
		if (x % 2) != 0:
			M = M + x % 8
		x = x // 8
	if L == 3 and M == 6:
		print(i)

Задача 23

Итак, код:

def f(x, y):
	if x > y: #Перегнали цель
		return 0
	if x == y:  #Догнали цель
		return 1
	if x < y: #Догоняем цель тремя методами
		return f(x + 1, y) + f(x + 2, y) + f(x * 2, y)

print(f(3, 10) * f(10, 12)) #Прошло через 10, значит догнали 10 и от де догоняем 12

Так как в условии задачи мы увеличиваем число, но будем числа «догонять». Три метода описаны, ну а пройти через 10 — значит дойти до него и идти от него.

Собственно, это и есть вся первая часть ЕГЭ по информатике решённая на Python.

Ссылка на репозиторий со всеми программами:

Надеюсь, что смог помочь в своей статье выпускникам и готовящимся ;)

Остался один вопрос — нужен ли разбор второй части ЕГЭ по информатике на Python? Оставлю этот вопрос на ваше голосование.

Всем удачи!

Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.

Делаю разбор второй части?

Проголосовали 106 пользователей.

Воздержались 15 пользователей.

Популярность ЕГЭ по информатике и ИКТ в 2022 году значительно выросла. В этом году его планируют сдавать почти 129 тысяч человек. Готовиться к экзамену следует заранее, поэтому давайте разберем, как проходит ЕГЭ по информатике в текущем году, какие изменения внесены в структуру и порядок проведения экзамена, сколько заданий в ЕГЭ по информатике, с чего начинать подготовку.

Изменения в ЕГЭ по информатике 2022

Какие типы заданий встретятся на ЕГЭ по информатике 2022?

Как подготовиться к ЕГЭ по информатике 2022?

Изменения в ЕГЭ по информатике 2022

Начиная с 2021 года ЕГЭ по информатике в корне изменился. Новшества коснулись как формата проведения экзамена, так и его структуры.

Какие внесены изменения:

  • Все задания будут адаптированы к новому компьютерному формату.
  • Убрали задания, подразумевающие развернутый ответ.
  • Экзамен теперь проводится только на компьютерах.
  • В него добавлены практические задачи по программированию.
  • Задания могут быть выполнены как на учебном алгоритмическом языке программирования, так и на других языках, например, C++, Pascal, Python, Java.

Дополнительно внесены следующие изменения в ЕГЭ 2022 по информатике:

  • Снижен максимальный первичный балл с 30 до 29.
  • Изменилось задание № 3. Теперь оно должно выполняться с использованием файла, содержащего простую реляционную базу данных, состоящую из нескольких таблиц с установленными логическими связями.
  • Внесены изменение в задание № 17. Оно выполняется с использованием файла, содержащего целочисленную последовательность, предназначенную для обработки с использованием массива.
  • Изменилась система оценки задания № 25, которое предусматривает написание программы.
  • Стало больше заданий, где требуется использовать дополнительные файлы.

Виды заданий по информатике:

  • задачи по программированию;
  • задачи по логике;
  • кодирование информации;
  • поиск данных;
  • работа с информационными моделями;
  • обработка числовой информации;
  • хранение информации.

О структуре экзамена

На выполнение экзаменационных тестов дается 235 минут. Он состоит из 27 заданий с кратким ответом.

Структура ЕГЭ по информатике в 2022 году следующая:

  • базовый уровень сложности – 11 заданий;
  • повышенный уровень сложности – 11 заданий;
  • высокий уровень сложности – 5 заданий.

Предлагается 10 заданий с использованием специализированного ПО с максимальным первичным баллом 12, а также 17 заданий без использования специализированного ПО с максимальным первичным баллом 17.

Оценивание работы производится автоматизированным способом.

Шкала оценивания

В КИМ задания базового и повышенного уровней сложности предназначены для проверки знания программы на базовом уровне:

  • Как ученик понимает программы, написанные на универсальном алгоритмическом языке высокого уровня.
  • Умение пользоваться готовыми прикладными компьютерными программами.
  • Умение написания и отладки программ с использованием основных конструкций программирования.
  • Знание основных конструкций программирования.
  • Владение компьютерными средствами представления и анализа данных.
  • Умение анализировать алгоритмы с использованием таблиц.

Задания повышенного и высокого уровня сложности проверяют знание программы на профильном уровне:

  • Знание универсальных языков программирования высокого уровня: Школьный алгоритмический язык, С#, C++, Pascal, Java, Python.
  • Что такое сложность алгоритма, основных алгоритмов обработки числовой и текстовой информации, алгоритмов поиска и сортировки.
  • Понимание важнейших видов дискретных объектов.
  • Что такое базовые типы и структурах данных.
  • Использование основных управляющих конструкций.
  • Разработка, тестирование, отладка программ.
  • Построение математических объектов информатики и т. д.

Решения заданий с 1 по 25 дают по 1 баллу, за решение заданий 26 и 27 — 2 балла. Максимальный первичный балл за выполнение работы 29.

На основе результатов выполнения всех заданий работы определяются первичные баллы, которые затем переводятся в тестовые по 100-балльной шкале.

После проведения экзаменов составляется шкала перевода баллов по среднему значению результата прошлого года. Для этого существует специальная формула. Соответственно шкала будет меняться в зависимости от результатов прохождения экзамена.

Специалисты прогнозируют, что в 2022 году величина проходного балла составит 40 вторичных баллов.

Какие типы заданий встретятся на ЕГЭ по информатике 2022?

Задания разделены на 2 типа: без использования стороннего ПО и решаемые с помощью компьютера.

Задачи, которые решаются «вручную». Сюда относятся задания 1, 2, 4, 5, 6, 7,8, 11, 12, 13, 14,15, 19, 20, 21, 22,23. Ответом в них будет число или последовательность букв. Сюда входят следующие задания:

  • По информационным моделям (1, 13). Нужно ориентироваться в таблицах и выучить хотя бы два метода.
  • По логике (2, 15). Для их решения нужно знать таблицы истинности основных логических операций, преобразование и анализ выражений.
  • По алгоритмизации (5, 12, 19, 20, 21, 23). Задания с исполнителями и различными алгоритмами.
  • По кодированию информации (4, 7, 8, 11, 14). Задания с применением формул, алгоритмов перевода чисел в различные системы счисления. Сюда же включены комбинаторка, единицы измерения информации и условие Фано.

Задачи, которые решаются с помощью ПК, предлагаются нескольких типов:

  • Работа с предложенным файлом. Задания 3, 9, 10, 18. Для решения потребуется знать функции текстовых редакторов и редакторов электронных таблиц, а также теорию по реляционным базам данных.
  • Создание программы. Задания 16, 25. Потребуется написать код и получить ответ.
  • Написание программы и получение ответа, с использованием предложенного файла. Задачи 17, 24, 26, 27. Здесь не проверяется способ решения. Только ответ.

Как подготовиться к ЕГЭ по информатике 2022?

Подготовка к ЕГЭ должна быть продуманной и тщательной. Следуйте следующему плану:

  • Пройдите диагностическое тестирование или решите последнюю демоверсию экзамена. Так вы сможете оценить свой уровень знаний.
  • Обратите внимание на свое умение программировать, т. к. этой теме посвящено почти треть заданий. Научитесь работать с файлами и строками, заучите алгоритмы сортировки и т.д.
  • Произведите оценку уровня подготовки в школе и определитесь, будет вам его достаточно или потребуется дополнительно заниматься с репетитором.
  • Заниматься можно онлайн, индивидуально с тренером или в группе.
  • Можно проходить курс обучения самостоятельно, воспользовавшись демоверсиями ЕГЭ или обновленными демоверсиями КИМ.


Фотографии: АГН «Москва» / Unsplash. Иллюстрация: Юлия Замжицкая

ЕГЭ по информатике — это единственный экзамен, который проходит на компьютерах. О том, что нового появилось в КИМах, рассказал руководитель Комиссии по разработке контрольных измерительных материалов ЕГЭ по информатике, кандидат физико-математических наук Сергей Крылов.

Основные изменения

Изменился сюжет задания 6

Раньше в этом задании были алгоритмы на числовой анализ какой-то вычислительной процедуры — что будет на входе при таком-то результате, какой результат получится при таком-то входе. В этом году предлагается задание на анализ действий исполнителя задания «Черепашковая графика».


Скриншот задания 6 из демоверсии ЕГЭ-2023 по информатике

Исполнитель — черепашка, которая должна рисовать некоторую достаточно простую фигуру. Требуется определить — сколько точек с координатами будет находиться внутри нарисованной области.

Могут быть разные фигуры, объединение или пересечение фигур. Но все фигуры будут достаточно простые, и длительного времени на поиск точек с координатами не требуется. 

Здесь программа уже дана, и для решения этой задачи можно обойтись без дополнительного программирования, и обычно можно определить, какая там будет фигура,  лишь с помощью анализа. Если есть время, можно проверить гипотезу о том, как фигура будет выглядеть, построив алгоритм для исполнителя роли черепахи, который будет доступен на рабочих станциях участника экзамена. 

Еще больше полезных материалов — в Телеграм-канале Педсовета. Подписывайтесь, чтобы не пропускать свежие статьи и новости.

Подписаться

Изменился сюжет задания 22

В задании 22  будет предложен некоторый набор процессов, которые зависят друг от друга. 


Скриншот задания 22 из демоверсии ЕГЭ-2023 по информатике

В таблице в прилагаемом файле представлены процессы (их может быть от 10 до 20) — некоторые из них не могут начаться, пока не завершатся предыдущие. Задача — узнать минимальное время, через которое завершится выполнение всей совокупности процессов. 

Поскольку эта табличка достаточно большая для полиграфии, ее вынесли в отдельный файл, который будет прилагаться к этому заданию. 

В этом задании  тоже не требуется ни написания программы, ни анализа в электронной таблице. Оно рассчитано на выполнение без сложных операций программирования. Можно построить решение в виде диаграммы.

На это задание можно посмотреть шире: оно относится не только к компьютерным процессам, но и к любым бизнес-процессам, как полезное средство планирования. Диаграммы можно применить в семье, организации, на предприятии, на производстве — везде, где есть возможность параллельной работы и последовательной.

Что нужно, чтобы получить высокий балл

Уметь программировать

Нам важно практическое программирование, если вы хотите сдать на хорошую оценку. 

Также выпускник должен хорошо работать с вычислением электронных таблиц, обладать навыками написания формул, базовых элементов программирования. По теоретической части — нужно знать методы измерения количества информации, межпредметные связи с математикой.

Внимательно читать задания

Основные ошибки, которые существенно влияют на результаты экзамена, связан не со знанием информатики, а с невнимательным прочтением задания.

Совет эксперта:

Не спешите выполнять задания —  сначала разберитесь, какой образ ответа требуется, как он должен быть записан. Если задание более-менее сложное, сначала составьте план решений, а потом уже его выполняйте. После того, как получен ответ, нужно его проверить. Возможно, решить другим способом. 

Не допускать математических ошибок

Многие участники не добирают баллы из-за недостаточности владения основами математики и даже из-за арифметических ошибок.

В компьютерном варианте предусмотрено исходные данные подбираются так, что ответов может быть очень много, и вероятность угадать верный ответ —  одна миллионная. Поэтому если ответ верен, то считается, что задание выполнено.

Нарабатывать практические навыки

Так как все задание ЕГЭ по информатике практические, то нужно программировать, решать как можно больше задач, не только в редакторе электронных таблиц, но и в среде программирования.

Нужно  добиваться автоматизма, чтобы базовые техники делались с такой же скоростью, как пальцы печатают на клавиатуре, чтобы это не вызывало затруднений и чтобы на экзамене не тратить время на экзамене на устранение своих технических ошибок. Тогда будет возможность сосредоточиться на содержательной части задачи. 

Полностью посмотреть вебинар Сергея Крылова в эфире Рособрнадзора можно по ссылке.


Материалы по теме:

  • Как готовиться к ЕГЭ по математике в 2023 году: советы от разработчика КИМов
  • Что изменится в ЕГЭ по русскому языку в 2023 году
  • Как готовиться к ЕГЭ по географии в 2023 году: советы от разработчика КИМов

Если вам нравятся материалы на Педсовете, подпишитесь на наш канал в Телеграме, чтобы быть в курсе событий раньше всех.

Подписаться

Если школьник хочет попасть в IT, то пропускать уроки информатики нельзя. Потому что после 11-го класса нужно будет сдать ЕГЭ по информатике. В статье расскажем, какие фичи придумали разработчики экзамена, чтобы проверить знания выпускников.

0

194

На большинство специальностей 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 — это сотни строчек кода, где одна маленькая ошибка может заруинить весь проект. Будущие кодеры, разработчики должны обладать усидчивостью и внимательностью, чтобы не допускать ошибок.

Внимательно читай условия. Тебе нужно понять, что от тебя требуется, прежде чем приступить к выполнению.

Составь план действий и следуй ему, чтобы не пропустить никаких важных шагов.

Следи за арифметическими вычислениями. Лучше выполнять их на бумаге, а не в уме, чтобы можно было перепроверить свой ответ.

группа vk вконтакте

группа fb facebook

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)
  • Получим 19.
  • ✎ Решение с использованием программирования:

    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 (программный):
    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.

    Пояснение:

  • Поскольку условие цикла s < 51, а по условию задания следует найти наименьшее значение s, то можно начать с s=509, так как далее идет оператор s := s div 10;, который присваивает s значение 50 (<51). Во внешнем цикле необходимо постоянно уменьшать значение s на единицу.
  • Важно для внешнего цикла использовать другую переменную, т.к. во внутреннем цикле переменная s меняется, а нам следует каждый шаг внешнего цикла сохранить предыдущее значение s, уменьшив его всего на 1. Используем переменную S1 для этих целей.
  • Бейсик:

    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:

1
2
3
4
5
6
###
var d:='лемур'.Order // сортируем по алфавиту
.Cartesian(4)
.Numerate // нумерация
.where((i,w)->w.first='л') // рассматриваем и номер и слово
.first[0].print // выводим именно номер

Cartesian(3) — метод расширения последовательности, возвращающий декартову степень множества символов, т.е. в нашем случае перебор 3-знаковых слов из заданных символов

* LINQ (Language Integrated Query) — язык интегрированных запросов

PascalABC.net (приближенный к традиционному, долгое решение):
Способ 2:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
begin
  var n:=1;
  var str:='елмру';
  foreach var s1 in str do
    foreach var s2 in str do
      foreach var s3 in str do
        foreach var s4 in str do
          begin
            var words:=s1+s2+s3+s4;
            if (words[1]='л') then
            begin
              print(n);exit;
              end;
              n:=n+1;
            end;
      end.
PascalABC.net (приближенный к традиционному, долгое решение):
Способ 3:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
begin
  var str := 'ЕЛМРУ';
  var n := 1;
  for var s1 := 1 to length(str) do
    for var s2 := 1 to length(str) do 
      for var s3 := 1 to length(str) do
        for var s4 := 1 to length(str) do 
        begin
          var slovo := str[s1] + str[s2] + str[s3] + str[s4];
          if slovo[1] = 'Л' then
          begin
            print(n);
            exit;
          end;
          n += 1;
        end;
end.
Python:

1
2
3
4
5
6
7
8
9
10
11
str = 'ЕЛМРУ'
n = 1
for s1 in str:
    for s2 in str: 
        for s3 in str:
            for s4 in str:
                slovo = s1 + s2 + s3 + s4
                if slovo[0] == 'Л':
                    print(n)
                    quit()
                n += 1
С++:

🎦 (программный способ)

Видео на 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, ФИПИ:

На рисунке представлена схема дорог, связывающих города А, Б, В, Г, Д, Е, Ж, З, И, К, Л, М. По каждой дороге можно двигаться только в одном направлении, указанном стрелкой.
Сколько существует различных путей из города А в город М, проходящих через город В?
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 -> одна другая цифра
  • Итого получаем 5 других цифр, отличных от 0. Отнимем из общего количества цифр и получим количество нулей:
  • 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
  • !!! В ответе запишем в том порядке, в котором просится в задании!!! – сначала 2802, затем 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:

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      
      begin
        var k := 0;
        for var n := 700000 to 1000000 do
        begin
          var divs := new List<integer>; 
          for var d := 2 to n-1 do
            if n mod d = 0 then begin // пример: n = 16, d = 2 - добавляем оба сомножителя 2*8
              divs.Add(d);    // add 2  
            end;
          // первое условие обязательно, чтобы не было ошибок!
          if (divs.Count>1) and ((divs.Max + divs.Min) mod 10 = 8) then 
          begin
             Println(n,divs.Max+divs.Min);
             k+=1;
             if k=5 then break
            end;
        end;
      end.
      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
      
    • Таким образом, мы получили первый ответ — максимальное число пользователей, чьи файлы можно сохранить в архиве — ответ 2.
    • Далее необходимо вычислить максимальный размер имеющегося файла, который может быть сохранён в архиве. Для начала вспомним, что у нас оставался «запас» пространства диска при предыдущем расчете. Давайте вычислим этот запас:
    • 100 - 70 = 30
    • Т.е. мы можем добавить 30 наибольшему возможному числу, из выбранных чисел, чтобы полученная сумма не превысила этот запас. Самое большое число из выбранных — это 40 (30, 40):
    • 30 - 40 <= запаса (30)
      40 - 40 <= запаса (30) 
      50 - 40 <= запаса (30) 
      80 - 40 > запаса (30), не подходит
      
    • Таким образом, наибольшее подходящее число — максимальный размер файла — это 50.
    • ✎ Решение с использованием программирования:
      Теперь построим алгоритм на языках программирования:

      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
      26
      27
      28
      29
      30
      31
      
      begin
        var f: text;
        assign(f, 'proba.txt');
        reset(f);
        var s, n: integer;
        read(f, s); // 100
        read(f, n);  //4  var (s, n) := ReadInteger2;
        var i := 0;
        var data: array of integer;
        data := new integer[n];
        while not EOF(f) do // 
        begin
          readln(f, data[i]); // var data:= ReadArrInteger(n); 
          i += 1;
        end;
        data.Sort;
        var summa := 0;
        var count := 0;
        for count := 0 to data.Length do
        begin
          if summa + data[count] > s then break;
          summa += data[count];
        end;
        print(count);
        var itog := 0;
        var zapas := s - summa;
        for i := 0 to data.Length do
          if data[i] - data[count - 1] <= zapas then
            itog := data[i] else break;
        print(itog)
      end.
      Python:

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      24
      
      f = open('26.txt')
      data = f.readlines() # массив строк , readlines
       
      s = data[0].split() # ['8200', '970']
      s = int(s[0]) # 8200 - объем св места на диске
      del(data[0]) # первая строка больше не нужна, удаляем ее
      for i in range(0, len(data)): # цикл для преобразование в int
          data[i]=int(data[i])
      data=sorted(data) # сортируем полученный массив для удобства работы
      summa = 0
      for count in range (0,len(data)):
          if summa + data[count] > s: break # если сумма больше - прерываем цикл
          summa += data[count] # формируем сумму, добавляя отсортированные элементы 
      # как только сумма превысила s, произойдёт выход из цикла по оператору break, 
      # а в переменной count останется количество добавленных значений
      print (count) # макс число файлов в архиве
      # вычисляем запас, который мы можем уменьшить с помощью замены одного выбранного значения на другое:
      zapas = s - summa
      # теперь выбираем из массива данных те значения, которые могут быть выбраны: 
      # разность между таким значением и наибольшим выбранным элементом data[count-1] должна быть не больше, чем  zapas:
      for i in range (0,len(data)):
          if data[i] - data[count-1] <= zapas:
              itog = data[i]
      print(itog)  # максимальный размер файла
      С++:

    ✎ Решение в 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:

      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
      26
      27
      28
      29
      30
      31
      32
      
      ##
      Assign(input, '27-75a.txt');
      var N := ReadInteger;
      var K := 43;
      var a: integer;
      var maxSum := 0; 
      var sum := 0;
      var maxLen := 0;
      var l := new List<integer>;
      for var i := 1 to N do // запись всех чисел в список
      begin
        a := ReadInteger;
        l.add(a)
      end;
      var i := 0;
      while i <= n do
      begin
        for var j := i to n-1 do
        begin
          sum += l[j];
          if sum mod 43 = 0 then
          begin
            if sum > maxSum then begin
              maxSum := sum;
              maxlen := j - i +1; // длина
            end
          end;
        end;
        i += 1;
        sum := 0;
      end;
      print(maxlen);
      Python:

      С++:



     
    ЕГЭ по информатике -> демоверсия ЕГЭ 2022

    Понравилась статья? Поделить с друзьями:
  • Сколько заданий содержит устная часть егэ по английскому языку
  • Сколько заданий в егэ по литературе 2023
  • Сколько заданий надо решить по математике егэ профильный на 80 баллов
  • Сколько заданий по тригонометрии в егэ
  • Сколько заданий в егэ по литературе 2022