Информатика: ОГЭ и ЕГЭ

Тренировка ЕГЭ · задание 3 · база данных: продажа билетов

Задание 3 ЕГЭ: база данных: продажа билетов

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

Пример

Задание выполняется с использованием прилагаемого файла.

В файле 3.xlsx приведён фрагмент базы данных «Театральная касса». База данных состоит из трёх таблиц. Таблица «Продажи» содержит записи о продаже билетов: дату, спектакль, категорию зрителя и количество билетов. Таблица «Спектакль» содержит название, автора пьесы, жанр и полную цену билета. Таблица «Категория» — категории зрителей и их скидку в процентах от полной цены.

Используя информацию из приведённой базы данных, определите выручку (в рублях) театра от продажи билетов на показы спектаклей по пьесам автора Грибоедов зрителям категории «студент» с 12.10.2026 по 21.10.2026 включительно.

В ответе запишите только число.

Скачать файл к примеру

Ответ31080

Решение

Связываем таблицы по ID: у каждой продажи берём спектакль (автор, жанр, цена) и категорию (скидка). Отбираем продажи по трём условиям и складываем «цена со скидкой × количество». В электронной таблице — ВПР по ID и СУММЕСЛИМН или фильтр со столбцом «выручка».

Ответ: 31080.

from openpyxl import load_workbook

wb = load_workbook('3.xlsx')
shows = {r[0]: r for r in wb['Спектакль'].iter_rows(min_row=2, values_only=True)}
cats = {r[0]: r for r in wb['Категория'].iter_rows(min_row=2, values_only=True)}
total = 0
for sid, date, show, cat, cnt in wb['Продажи'].iter_rows(min_row=2, values_only=True):
    s, c = shows[show], cats[cat]
    day = int(date[:2])
    if s[2] == 'Грибоедов' and c[1] == 'студент' and 12 <= day <= 21:
        total += s[4] * (100 - c[2]) // 100 * cnt
print(total)

Решить такую задачу — новый вариант с проверкой

Задание 3 ЕГЭ: другие виды

Все задачи задания 3 вперемешку · разбор: как решать задание 3 · пробные варианты ЕГЭ