Разборы · ЕГЭ, задание 9
Задание 9 ЕГЭ по информатике: обработка данных в электронной таблице
Что проверяет задание
К заданию приложена электронная таблица: в каждой строке несколько чисел. Нужно посчитать строки, для которых выполнены условия — например, «все числа различны» или «есть ровно одна пара повторяющихся» плюс условие на суммы, максимум, минимум, среднее. 1 балл.
Что нужно знать
- Функции: СУММ, МАКС, МИН, СРЗНАЧ, СЧЁТЕСЛИ, ЕСЛИ, И, ИЛИ; СУММПРОИЗВ для «формул массива» в одной ячейке.
- Все числа строки A1:E1 различны, если
СУММПРОИЗВ(СЧЁТЕСЛИ(A1:E1;A1:E1))=5: каждое число встречается один раз. - В Python удобно отсортировать строку: минимум — первый элемент, максимум — последний; число различных значений —
len(set(row)). - Частые условия на повторы для строки из пяти чисел: «все различны» — пять различных значений; «ровно одно число повторяется дважды, остальные различны» — ровно четыре различных значения (тогда одно из них обязательно встречается дважды).
Задание можно решать и в электронной таблице, и программой: на экзамене проверяется только число в поле ответа. Выберите тот способ, в котором меньше шансов ошибиться, а если есть время — проверьте ответ вторым способом.
Как решать
- В свободном столбце запишите формулу, которая даёт 1, если строка подходит, и 0, если нет.
- Протяните формулу на все строки.
- Просуммируйте столбец.
- Выборочно проверьте пару строк вручную — особенно ту, где формула дала 1.
Пример из демоверсии 2027
В каждой строке пять натуральных чисел. Посчитайте строки, в которых все числа различны и удвоенная сумма максимального и минимального чисел больше суммы трёх оставшихся.
Формула в ячейке F1 (одной строкой):
=ЕСЛИ(И(СУММПРОИЗВ(СЧЁТЕСЛИ(A1:E1;A1:E1))=5;
2*(МАКС(A1:E1)+МИН(A1:E1))>СУММ(A1:E1)-МАКС(A1:E1)-МИН(A1:E1));1;0)
Протягиваем её вниз и считаем СУММ(F:F). То же на Python:
import pandas as pd
rows = pd.read_excel("9.ods", header=None).values.tolist() # для .ods нужен odfpy
count = 0
for row in rows:
s = sorted(row)
if len(set(s)) == 5 and 2 * (s[0] + s[4]) > s[1] + s[2] + s[3]:
count += 1
print(count)
Для файла демоверсии ответ — 4874.
Типичные ошибки
- Читают файл без
header=None, и первая строка данных теряется как заголовок. - Сравнивают с суммой всех пяти чисел, а не трёх оставшихся.
- Путают строгое и нестрогое неравенство: «больше» — это >.
- Не протягивают формулу до конца таблицы — проверьте номер последней строки.
Потренироваться: задание 9 новые варианты с проверкой ответа