Какие задания решать программой и как
Где пригодится на экзамене
- Обработка строк электронной таблицы по условиямЕГЭ · Информатика: задание 9
- Позиционные системы счисленияЕГЭ · Информатика: задание 14
- Рекурсивные функцииЕГЭ · Информатика: задание 16
- Обработка числовой последовательности из файлаЕГЭ · Информатика: задание 17
- Обработка символьных строк из файлаЕГЭ · Информатика: задание 24
- Сортировка и жадные алгоритмы на данных из файлаЕГЭ · Информатика: задание 26
Содержание
На экзамене по информатике задания выполняются на компьютере, и в распоряжении есть среды программирования и электронные таблицы. Экзамен проверяет только ответ: успешный запуск программы сам по себе баллов не даёт, поэтому важно не только написать код, но и убедиться, что он отвечает именно на вопрос задачи.
Три способа решения
- Руками: когда перебор маленький и решение видно из рассуждения (задания 1, 2, 4, 7, 11, 13).
- Электронная таблица: когда данные уже в таблице и нужны фильтры или простые формулы (задания 3, 9, 18).
- Программа: когда вариантов тысячи или данных много (задания 5, 6, 8, 12, 14–17, 19–27).
| Задания | Как удобнее решать | Инструменты |
|---|---|---|
| 1, 2, 4, 7, 11, 13, 15 | Устно или на бумаге, программа для самопроверки | перебор permutations/product, ipaddress |
| 3, 9, 18 | Электронная таблица или программа | фильтры, СЧЁТЕСЛИ, СУММЕСЛИМН; csv в Python |
| 5, 6, 8, 12, 14, 16, 23 | Короткая программа-перебор | bin/int(s, base), itertools, lru_cache |
| 10 | Текстовый редактор (поиск целого слова) или регулярное выражение | re.findall |
| 17, 22, 24, 25, 26, 27 | Только программа | чтение файла, сортировка, динамика, два указателя |
| 19–21 | Дерево игры или программа | рекурсия с lru_cache |
Правило выбора простое: если вручную придётся перебирать больше 20–30 вариантов, пишите программу. Если задача решена руками, её стоит проверить коротким перебором, это 2–3 минуты.
Шаблон 1. Чтение файла
Python# числа по одному в строке
a = [int(s) for s in open('17.txt')]
# строки таблицы с разделителем ';'
rows = [list(map(int, line.split(';'))) for line in open('9.csv')]
# одна длинная строка символов
s = open('24.txt').read().strip()
Шаблон 2. Полный перебор
Pythonfrom itertools import product, permutations
# все пятибуквенные слова из букв АЕИРС в алфавитном порядке
for i, w in enumerate(product('АЕИРС', repeat=5), 1):
...
# все сопоставления вершин графа строкам таблицы
for p in permutations(range(7)):
...
Шаблон 3. Рекурсия с запоминанием
Pythonfrom functools import lru_cache
import sys
sys.setrecursionlimit(10000)
@lru_cache(None)
def F(n):
if n <= 2:
return 1
return F(n - 1) + F(n - 2)
lru_cache превращает экспоненциальную рекурсию в линейную, а setrecursionlimit нужен, если глубина рекурсии больше тысячи (задание 16).
Шаблон 4. Системы счисления
Pythonn = 7 * 343**25 - 150 # Python работает с длинными целыми точно
digits = []
while n:
digits.append(n % 7)
n //= 7
print(digits.count(6))
print(int('7A3', 15)) # из 15-ричной в десятичную
Как не потерять баллы
- Проверьте программу на маленьком примере, который можно посчитать руками.
- Читайте, что именно просят записать: количество, максимум, минимальное S, два числа через пробел.
- В задачах 26 и 27 ответ из двух чисел, и каждое число даёт отдельный балл. Если не получается второе число, запишите первое.
- Для вещественных чисел (задание 27) берите целую часть через int() только от положительных значений и не округляйте раньше времени.
- Остаток от деления отрицательного числа в Python неотрицателен: -7 % 10 == 3. Для последней цифры используйте abs(x) % 10.
Учебный материал Курсика для подготовки к экзамену по информатике 2027 года.