Задание 9 ЕГЭ по информатике — Электронные таблицы: строки с условиями
Разбор номера «Электронные таблицы: строки с условиями»: как устроено задание, настоящие формулировки из тренажёра с подсказками и официальным решением. Окно практики открывается сразу — без регистрации и онбординга.
Задание 9 (№9 — Электронные таблицы: строки с условиями) — вопрос первой части экзамена по информатике: короткий ответ, который проверяется автоматически. Ниже — реальные формулировки из тренажёра с подсказками и разбором; проверка работает прямо на этой странице.
Окно примера ниже — то же, что на сайте: подсказки по одной, автопроверка ответа и разбор.
Примеры задания 9
№ 9Пример 1краткий ответ★★★★★1 первичный балл
Откройте файл электронной таблицы, содержащей в каждой строке семь целых чисел. Задание 9 Определите наименьшее повторяющееся число строки таблицы c наименьшим номером, для которой выполнены оба условия: — в строке одно число повторяется трижды, одно число дважды, остальные числа различны; — сумма неповторяющихся чисел не больше минимального из повторяющихся чисел строки. В ответе запишите абсолютное значение полученного результата.
Подсказка 1. Разбей условия отбора на простые проверки: сколько раз число повторяется в строке, сравнение сумм, кратность.
Подсказка 2. По каждой строке отдельно найди повторяющиеся и неповторяющиеся числа, затем проверь все условия вместе — одного невыполненного хватит, чтобы строка не подошла.
Подсказка 3. Обычно быстрее написать короткую программу, чем формулы; типичная ошибка — смешивать повторяющиеся числа с неповторяющимися в сумме.
Разбор.
Решение. Приведём решение на языке Python. f = open('99.txt') count = 0 otv = [] for s in f: count += 1 c=[int(x) for x in s.split()] c_tri=[x for x in c if c.count(x) == 3] c_dva=[x for x in c if c.count(x) == 2] ne_povtor=[x for x in c if c.count(x)==1] if len(c_tri) == 3 and len(c_dva) == 2 and len(ne_povtor) == 2: if min(min(c_tri),min(c_dva)) >= sum(ne_povtor): otv.append((abs(min(min(c_tri),min(c_dva))))) print(otv[0]) Примечание. Файл следует сохранить в формате txt.
Ответ.
21
№ 9Пример 2краткий ответ★★★★★1 первичный балл
Откройте файл электронной таблицы, содержащей в каждой строке шесть натуральных чисел. Определите количество строк таблицы, содержащих числа, для чисел которых выполнены оба условия: — в строке есть ровно одно число, которое повторяется трижды, и остальные числа без повторений; — квадрат суммы всех повторяющихся чисел строки больше квадрата суммы всех неповторяющихся чисел строки. В ответе запишите только число. Задание 9
Подсказка 1. Разбей условия отбора на простые проверки: сколько раз число повторяется в строке, сравнение сумм, кратность.
Подсказка 2. По каждой строке отдельно найди повторяющиеся и неповторяющиеся числа, затем проверь все условия вместе — одного невыполненного хватит, чтобы строка не подошла.
Подсказка 3. Обычно быстрее написать короткую программу, чем формулы; типичная ошибка — смешивать повторяющиеся числа с неповторяющимися в сумме.
Разбор.
Решение. Сначала проверим первое условие. Для этого в ячейку G1 введем формулу: =СЧЁТЕСЛИ($A1:$F1;A1) и скопируем эту формулу во все оставшиеся ячейки диапазона G1:L20000. В ячейку M1 введем формулу: =ЕСЛИ(И(СЧЁТЕСЛИ(G1:L1;1)=3;СЧЁТЕСЛИ(G1:L1;3)=3);1;0) и скопируем эту формулу во все оставшиеся ячейки диапазона M2:M20000. Если в строке 3 повторяющихся числа и 3 различных, в ячейке М будет стоять 1, иначе будет стоять 0. Для проверки второго условия в ячейку N1 введем формулу: =ЕСЛИ(G1=3;A1;"") и скопируем эту формулу в ячейки диапазона N1:S20000. В данном диапазоне мы получим только повторяющиеся трижды числа. В ячейку Т1 введем формулу: =СУММ(N1:S1) и скопируем эту формулу во все оставшиеся ячейки диапазона Т2:Т20000. В этом столбце будет сумма повторяющихся чисел. В ячейку U1 введем формулу: =СУММ(A1:F1)-T1 и скопируем эту формулу во все оставшиеся ячейки диапазона U2:U20000. В этом столбце будет сумма неповторяющихся чисел. (Заметим, что для строк без повторяющихся чисел эта формула не будет правильно работать, но такие строки не подходят по первому условию.) Проверим строки, подходящие под оба условия. Для этого в ячейку V1 введем формулу: =ЕСЛИ(И(M1=1;T1*T1>U1*U1);1;0) и скопируем эту формулу во все оставшиеся ячейки диапазона U2:U20000. Окончательно воспользовавшись формулой: =СУММ(V:V), получим ответ — 40. Ответ: 40. Приведём решение Бориса Савельева на языке Python. f = open('69915.txt') k = 0 for i in f: a=list(map(int,i.split())) if len(set(a)) == 4: suma = 0 for j in range (0,len(a)): if a.count(a[j])==3: suma += a[j] if suma**2 > (sum(a)-suma)**2: k += 1 print(k) Примечание. Приведенный файл требуется сохранить как текстовый документ. Приведём решение Юрия Красильникова на языке Python. # Необходимо предварительно сохранить данные из таблицы LibreOffice Calc # в файл .csv с разделителем ';' ответ = 0 for строка in open('/home/yuri/00/9.csv'): числа = list(map(int, строка.split(';'))) повторы = [x for x in числа if числа.count(x)==3] уникумы = [x for x in числа if числа.count(x)==1] if len(повторы)==3 and len(уникумы)==3 and sum(повторы)**2 > sum(уникумы)**2: ответ += 1 print(ответ)
Ответ.
40
Как устроена практика в тренажёре
Опыт за каждое решение
Чистое решение без подсказок ценится выше: опыт, уровни и серии растут с каждым заданием, а не за клики.
Ошибки не пропадают
Нерешённое возвращается в работу над ошибками — тренажёр приведёт к заданию снова, пока оно не закроется без помощи.
Прогноз балла
После нескольких решённых номеров тренажёр показывает прогнозный балл и говорит, какие темы подтянуть, чтобы его поднять.
Закрепи задание 9 в тренажёре
Окно практики откроется сразу — без имени и онбординга. Прогресс сохранится, как только укажешь имя.