Статья Автор: Деникина Н.В., Деникин А.В.

Таблица по строкам — последнее действие

Отбор — это ещё не ответ

Условие отбора ты уже умеешь. Но задача просит одно из трёх, и каждый раз своё:

  • «определите количество строк» — самый частый случай;
  • «определите наибольший номер строки» (ЕГКР-2024);
  • «определите сумму чисел в строке с наименьшим номером» (ЕГКР-2025).

Отбор при этом не меняется ни на букву. Меняются последние строчки — и балл теряют именно там.

Чтобы знать номер строки, заводим собственный счётчик k и прибавляем к нему единицу в начале каждого прохода. Никаких хитростей: первая строка получит номер 1.

▶ Запусти. Программа отбирает строки по условию демоверсии и печатает сразу три величины: количество, номер первой подходящей и сумму её чисел.



Что получилось

12 19 146

Подходящих строк 12, первая из них — номер 19, сумма её чисел 146.

Приём с if nomer == 0 запоминает первый номер и больше его не трогает. Для наибольшего номера проверка не нужна вовсе: пиши nomer = k без условия, и последнее совпадение перезапишет все предыдущие. В этом файле наибольший номер — 93.


Три финала в таблице

Пусть в столбце G стоит признак (1 или 0), а в H — сумма чисел строки =СУММ(A1:F1). Тогда все три финала берутся готовыми функциями:

количество         =СУММ(G1:G100)
наименьший номер   =ПОИСКПОЗ(1;G1:G100;0)
сумма его чисел    =ИНДЕКС(H1:H100;ПОИСКПОЗ(1;G1:G100;0))

ПОИСКПОЗ ищет первую единицу и возвращает её позицию — это и есть наименьший номер. А вот наибольший номер в таблице так просто не взять: там нужен отдельный приём, тогда как в Питоне это одна строка без условия.

Отсюда простое правило выбора пути. Условие короткое и просят количество — быстрее формулы. Появилось «наибольший номер» или третье условие — быстрее код.


Регламент решения

До того как начал

  1. Прочитай, что просят вывести. Количество, номер или сумму — от этого зависят последние строки программы.
  2. Выпиши условия по пунктам. Их обычно два, и каждое переводится в отдельное сравнение.

Пока пишешь

  1. Счётчики заводи до цикла. Внутри они обнулятся на каждой строке.
  2. Нужен номер строки — заведи k и прибавляй в начале прохода.
  3. Про наибольшие и наименьшие — сортируй. Про повторы — раскладывай на кучки.

Перед тем как записать ответ

  1. Перечитай условие на строгость. «Не больше» — это <=, «больше» — >. Перепутать легко, ответ получится другой.
  2. Решил кодом — проверь формулами, и наоборот. Правильного ответа под рукой нет, пересчитать тем же способом бесполезно. Сверка двух путей — единственная независимая проверка, которая тут вообще есть.

Просят наибольший номер подходящей строки. Как проще всего?


В условии «сумма двух наибольших не больше суммы оставшихся». Какое сравнение?


Ответ отличается от правильного ровно на единицу. Где искать в первую очередь?

Загрузка...
Чтобы оставить комментарий, необходимо авторизоваться
💬
Пока нет комментариев. Будьте первым!
Печать