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

Тренировка ЕГЭ · задание 9 · отбор строк таблицы по условиям

Задание 9 ЕГЭ: отбор строк таблицы по условиям

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

Пример

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

Откройте файл электронной таблицы, содержащей в каждой строке пять натуральных чисел. Определите количество строк таблицы, для которых выполнены оба условия:

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

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

Ответ133

Решение

Для каждого числа строки считаем, сколько раз оно встречается в строке. Условие «в строке есть только одно число, которое повторяется трижды, остальные числа различны» означает, что упорядоченный набор этих счётчиков равен [1, 1, 3, 3, 3]. Считаем подходящие строки.

В электронной таблице: в G1 пишем =СЧЁТЕСЛИ($A1:$E1;A1) и копируем вправо до K1 — это счётчики повторов. В M1 проверяем оба условия: =ЕСЛИ(И(СЧЁТЕСЛИ(G1:K1;3)=3;СЧЁТЕСЛИ(G1:K1;1)=2;СУММЕСЛИ(G1:K1;3;A1:E1)/3=МИН(A1:E1));1;0), затем копируем формулы на все строки. Ответ — =СУММ(M:M).

Ответ: 133.

То же на Python (файл читается библиотекой openpyxl):

import openpyxl

ws = openpyxl.load_workbook("9.xlsx").active
rows = [list(r) for r in ws.iter_rows(values_only=True)]


def good(r):
    s = sorted(r)
    cnt = [r.count(x) for x in r]                # сколько раз встречается каждое число
    rep = [x for x in r if r.count(x) > 1]       # повторяющиеся числа
    uniq = [x for x in r if r.count(x) == 1]     # неповторяющиеся числа
    return sorted(cnt) == [1, 1, 3, 3, 3] and rep[0] == s[0]


print(sum(1 for r in rows if good(r)))

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

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

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