8 мин чтения

ЕГЭ по информатике 2026 · задание 3 из 27

ЕГЭ по информатике 2026, задание 3: база данных

Задание 3 — базовое, 1 балл. Проверяют поиск в реляционной базе: несколько связанных таблиц, отбор строк и сумма или количество. Специализированное ПО нужно.

Изменение 2026: файл приходит в формате .ods, а не Excel. Открывайте его в LibreOffice Calc. Горячие клавиши похожи на Excel, но не те же. Разделитель аргументов функций в русской локали — точка с запятой.

Как устроена база

Обычно три таблицы:

  • справочник товаров: артикул, название, цена или категория;
  • справочник магазинов или районов;
  • таблица движений: дата, магазин, артикул, количество.

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

Конспект

1. Откройте все листы. Выпишите, какой код на что ссылается.

2. Переведите вопрос на фильтры: район, даты «с … по …», категория, цена выше порога. Границы дат включают или нет — смотрите формулировку «с … по …» и примеры.

3. Не суммируйте количество, если спрашивают стоимость. Сначала количество умножают на цену из справочника.

4. В Calc удобны СУММЕСЛИМН и СЧЁТЕСЛИМН. Если фильтров много, сначала соберите вспомогательный столбец «подходит» функцией ЕСЛИ, затем суммируйте его.

5. Проверьте на двух-трёх строках вручную, потом смотрите итог.

Связать таблицы можно ВПР / ПРОСМОТРX. Если ВПР не находит код, часто он записан как текст в одной таблице и как число в другой.

Шаблон на Python

На экзамене быстрее формула в Calc. Шаблон пригодится, если вы выгрузили листы в CSV или вставили строки. Деньги и количества храните числами, не строками.

# данные уже сведены в список движений
# price — цена из справочника, qty — количество, district и kind — фильтры
rows = [
    {"district": "Заречный", "kind": "молоко", "price": 80, "qty": 12, "date": "2026-03-01"},
    {"district": "Центр", "kind": "молоко", "price": 90, "qty": 4, "date": "2026-03-02"},
]

total = 0
for r in rows:
    if r["district"] != "Заречный":
        continue
    if r["kind"] != "молоко":
        continue
    if not ("2026-03-01" <= r["date"] <= "2026-03-31"):
        continue
    total += r["price"] * r["qty"]
print(total)

Типичные ошибки

  • В сумму попали лишние районы или забыт один артикул из нужной категории.
  • Сложили количество, а в ответ нужна стоимость.
  • Двойная строка после связи «один ко многим» посчитана дважды.
  • Фильтр по дате обрезал первый или последний день.

Итог из Calc и из короткой проверки на выборке должны совпасть. Если нет — ошибка в условии отбора, а не в арифметике.

Попробуйте объяснить с Мишкой

Бесплатный ИИ-репетитор объяснит любую тему так, как вам понятно — шаг за шагом.

Начать бесплатно