ЕГЭ, ОГЭ, программирование и робототехника в Калининграде

Алгоритм решения задания 9. Часть 3

Тип 3

В прошлых двух статьях мы успешно освоили решение заданий 9 ЕГЭ по информатике первого и второго типов, научились работать со всеми необходимыми функциями LibreOffice Calc и на практике разобрали основные алгоритмы решения этих заданий. Теперь настало время перейти к последнему типу заданий 9.

В заданиях третьего типа нам предстоит не просто определить наименьшую или наибольшую строку в таблице, в которой выполняются оба условия, но и произвести какие-либо операции с числами в этой строке. Обычно требуется просто подсчитать сумму чисел в первой или последней строке таблицы, удовлетворяющей условиям.

Но, как и с заданиями второго типа, это нововведение на нас не сильно повлияет: всего лишь в конце добавится еще одно действие к уже знакомому нам алгоритму. Не будем тянуть и приступим к практике!

Пример 1

Начнём мы с такого задания:

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

– в строке все числа расположены в порядке убывания;
 –  среднее арифметическое минимального и максимального чисел строки больше среднего арифметического оставшихся её чисел.

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

Открыть задание

Начинаем стандартно: откроем приложенный к заданию файл в любимом редакторе электронных таблиц.

Отлично, имеем по 7 чисел в строке. Теперь нужно определить, что все эти числа расположены в порядке убывания. Что это значит?

А то, что первое число должно быть больше второго, второе – третьего и так далее. Решается это всего одной формулой – сочетанием неравенств внутри функции И(). Выглядит эта формула так: =И(A1>B1;B1>C1;C1>D1;D1>E1;E1>F1;F1>G1).

На изображении видим, что в порядке убывания расположены числа во второй и десятой строках. Действительно, 188 больше 133, 133 – 114 и так далее. Значит, наша формула верна, идём дальше.

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

Итак, далее находим максимальное и минимальное число в строке с помощью функций МАКС() и МИН(). Это мы уже проделывали в прошлой статье, так что останавливаться подробно не будем.

Теперь с помощью СРЗНАЧ() ищем среднее арифметическое только что найденных максимального и минимального чисел: =СРЗНАЧ(I1:J1).

Всё той же функцией находим среднее арифметическое оставшихся чисел. Опять же, здесь можно пойти разными путями. Мы же просто сложим все числа в строке, отнимем найденные максимальное и минимальное и поделим на количество оставшихся чисел в строке, а именно: 5 (было 7, без максимального и минимального осталось 5 чисел). Формула у нас будет такая: =(СУММ(A1:G1)-I1-J1)/5.

Теперь сформируем столбец для результатов второго условия: значение столбца K со средним арифметическим максимального и минимального чисел должно быть больше значения столбца L со средним арифметическим оставшихся. Формула максимально простая: =K1>L1.

Почти закончили с решением. Осталось лишь сформировать итоговый столбец, как мы обычно это делаем: через функцию ЕСЛИ() проверить выполнение обоих условий, если они выполняются – поставить 1 в ячейку, если нет – 0. Для этого будем использовать следующую формулу: =ЕСЛИ(И(H1;M1);1;0).

Дело за малым: ищем первую строку с единицей в столбце N и вычисляем сумму чисел в этой строке (от A до G). У нас такой является вторая строка, а сумма чисел в ней равна 652.

Как и договаривались, теперь рассмотрим второй, более короткий способ решения. Вновь перечитаем первое условие: «числа расположены в порядке убывания». То есть если оно выполняется, то гарантируется, что первое число будет максимальным, а последнее – минимальным.

Тогда нам нет смысла отдельно вычислять эти числа, да и оставшиеся найти несложно: это все числа со второго до предпоследнего (шестого) включительно.

Что же, среднее арифметическое будем искать той же функцией СРЗНАЧ(), только теперь «в лоб» укажем диапазоны: максимальное и минимальное число – это ячейки A1 и G1, а оставшиеся – диапазон от B1 до F1. В виде формулы это записывается так: =СРЗНАЧ(A1;G1)>СРЗНАЧ(B1:F1).

И сразу же в функции ЕСЛИ() можем не выводить 1 или 0, а вычислять сумму чисел строки (в случае истинности) или по-прежнему выводить 0. То есть в столбце мы сразу получим сумму чисел строки, которая удовлетворяет обоим условиям. Выглядит это следующим образом: =ЕСЛИ(И(H1;I1);СУММ(A1:G1);0).

Готово, всего за три столбца мы получили ровно такой же ответ: 652.

Пример 2

Для закрепления решим задание с такой формулировкой:

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

– в строке есть одно число, которое повторяется трижды, остальные четыре числа различны;
 – среднее арифметическое неповторяющихся чисел строки не больше повторяющегося числа.

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

Открыть задание

Скачиваем файл и открываем его в редакторе электронных таблиц.

В этом задании нам предстоит отдельно работать с повторяющимися и неповторяющимися числами. Такую задачу разделения чисел на две группы мы уже решали ранее, в первом примере второй статьи. Сейчас пойдём тем же путём: «отфильтруем» только повторяющиеся числа всё той же формулой: =ЕСЛИ(СЧЁТЕСЛИ($A1:$G1;A1)>1;A1;"")

Обратите внимание: нам нужны все повторяющиеся числа, а не только те, которые повторяются ровно 3 раза! Теперь мы легко сможем определить, что в строке только одно число повторяется ровно 3 раза. Для этого достаточно будет применить функцию СЧЁТ() к диапазону столбцов от H до N и потребовать равенства результата функции трём: =СЧЁТ(H1:N1)=3.

Обратите внимание на 8-ю строку: хоть число 122 в ней и повторяется три раза, все остальные числа не различны — 118 повторяется дважды. В таком случае, если бы мы записали предыдущую формулу так: =ЕСЛИ(СЧЁТЕСЛИ($A1:$G1;A1)=3;A1;"") (вместо «>1» поставили «=3»), то 8-я строка удовлетворяла бы первому условию, что не соответствует действительности.

Идём дальше: теперь сформируем 7 столбцов, в которые поместим только неповторяющиеся числа. Воспользуемся этой формулой: =ЕСЛИ(СЧЁТЕСЛИ($A1:$G1;A1)=1;A1;"").

Теперь мы готовы вычислить среднее арифметическое неповторяющихся чисел: применим к диапазону от P до V функцию СРЗНАЧ(): =СРЗНАЧ(P1:V1).

И вернёмся к повторяющимся числам. Нужно из имеющегося у нас диапазона получить только одно число. Есть несколько способов это сделать, но самый простой из них – вычислить сумму всех чисел в строке от H до N и разделить на 3, у нас же число должно повторяться ровно 3 раза.

В таком случае, например, для второй строки это сработает так: (194 + 194 + 194) / 3 = 194. То есть из трёх одинаковых чисел мы получили только одно. Выразим нашу идею в виде формулы: =СУММ(H1:N1)/3.

Все приготовления завершены, и мы можем сформировать результирующий столбец для второго условия. Для этого достаточно потребовать, чтобы значение из столбца W было меньше или равно (не больше) значения из X: =W1<=X1.

И мы на финишной прямой. Воспользуемся всё той же функцией ЕСЛИ(), но теперь сразу будем считать сумму чисел в подходящих строках: =ЕСЛИ(И(O1;Y1);СУММ(A1:G1);0).

Что же, нам нужна строка с наибольшим номером, то есть – последняя в таблице, значение в столбце Z которой не равно 0. Давайте используем автофильтр и скроем строки с нулями.

Осталось лишь опуститься в конец таблицы, в последней строке и будет искомое число. Чтобы быстро перейти к последней строке таблицы, воспользуемся сочетанием клавиш «Ctrl + Стрелка вниз».

Видим, что в строке 41990 находится ответ на это задание — число 901.

Итоги

Мы разобрали все три типа задания 9 в Calc. В третьем типе после поиска нужной строки необходимо выполнить указанное действие с её числами — чаще всего найти сумму.

Главный совет: сначала получите отдельные столбцы с результатами каждого условия, затем объедините их и только после этого вычисляйте итоговое значение.

В следующей статье познакомимся со списочными включениями Python. Они пригодятся, когда мы перейдём к программному решению задания 9.

Разберём эту тему на бесплатном пробном занятии

Преподаватель покажет, как решать такие задачи, и подскажет, с чего начать подготовку. Группы до 8 человек, очно в Калининграде и онлайн.

Записаться на пробное занятие