Статья Автор: Лебедев Дмитрий Алексеевич

_Разбор задания кегэ типа 09 (демо версия 2026 года)

Задание 09

Откройте файл электронной таблицы, содержащей в каждой строке семь натуральных чисел.
Определите сумму чисел в строке с наибольшим номером, для которой выполнены оба условия:
– в строке есть одно число, которое повторяется трижды, остальные четыре числа различны;
– среднее арифметическое неповторяющихся чисел строки не больше повторяющегося числа.
В ответе запишите только число.
(Файл DEMO_9.ods приложен к тетради)
 

Будет разобран/показан только ПРОГРАММНЫЙ способ решения задания.
(решение с помощью табличного редактора считается малоэффективным, но желающие 
могут решать и с помощью табличного редактора)

Решение задания типа 9 программным способом содержит следующие этапы
  1. Коприрование данных в текстовый файл
  • открытие файла электронной таблицы
  • выделение и копирование данных Ctrl+A, Ctrl+C
  • переход в Блокнот и вставка данных Ctrl+V
    (можно сравнить количество строк)
  • Сохранение данных в рабочую директорию (ту, где сохраняются программы)
Этот блок проущен, текстовый файл с 42000 строк добавлен под именем DEMO_9.txt
В дальнейшем будем обращаться к нему.
  1.  Написание программы состоит из нескольких этапов
    1. Блок  открытия файла и цикл построчного считывани
    2. Подпрограмма/Блок обработки строки
    3. Добавление вывода результата - здесь есть сложность, нужен номер строки в файле (начинается с 1)
      можно получать его счётчиком, а можно указать в цикле - главное не забыть ПРОВЕРИТЬ
Реализуем этапы последовательно.
 


Запускаем код, убеждаемся в работоспособности, сравниваем число строк и последнюю строки 
Пишем подпрограмму def f9(A), получающую набор чисел и возвращающую удовлетворяет ли набор условиям

На входе список целых чисем. Примерный алгоритм
  • Считаем количество и сумму чисел встречающихся ровно 3 раза (k3,s3) и 1 раз (k1,s1)
    (строка не подходит, если k3 != 3 или k1 != 4)
  • Сравниваем средние значения: должно быть \(\frac{s_1}{k_1} <= \frac{s_3}{k3} \ или\ s_1\cdot k_3 <= s_3\cdot k_1 \) 
    строка не подойдет, если условие не будет выполнено
  • Вернем True если верно и Fakse в противном случае 
Добавим вызов в основную программу и при получении True будем выводить/сохранять сумму чисел списка, номер строки и список чисел (для проверки) 


Правильный ответ получен.
Номер строки можно было не получать/выводить( однако есть задания с номером строки, поэтому показали как это делается)
 
Прикрепленные файлы
DEMO_9.ods
DEMO_9.txt
Пропустить Навигационные Ссылки.
Чтобы оставить комментарий нужна авторизация
Печать