Задание 17
Это задание полностью связано с программированием, и можно сказать, что оно достаточно сложное. Поэтому мы советуем уделить ему достаточно времени при подготовке, чтобы как следует вникнуть в суть и во всем разобраться.
О задании
Это задача повышенного уровня сложности, проверяющая умение работать с массивами (или последовательностями) данных. Обычно требуется найти элементы, удовлетворяющие определенным условиям, и выполнить с ними какие-либо операции (например, посчитать их количество, найти сумму, определить максимальный/минимальный элемент).
В ответе всегда нужно приводить два числа. Важно: числа нельзя перепутать местами, иначе получишь 0 баллов.
Практика
- Считываем числа из файла в список; Чтобы работать с файлом в Python, используем функцию “open”
f = open ("17-1.txt")
- Далее генератором проходим по всем строчкам файла f
а = [ int(x) for x in f ]
- Задаем количество пар с помощью переменной k
k = 0
- Обозначаем максимальную сумму
ms = -20001
- Находим среднее арифметическое
av = sum(a) / len (a)
- Проходим по списку в поисках подходящих пар (идем по индексам, а не по элементам)
for i in range(len(a)-1):
- Проверяем, что в паре один элемент меньше среднего арифметического, а второй – больше
if a [i] < av and a [i + 1] > av or a [i] > av and a [i + 1] < av:
k +=1
- Сравниваем сумму пары с максимумом
ms = max(ms, a[i] + a[i + 1])
- Выводим результат
print(k, ms)
Итоговый вариант программы будет выглядеть так:
Ответ: 5034 9788
- Считываем числа из файла в список; Чтобы работать с файлом в Python, используем функцию “open”
f = open ("17-1.txt")
- Генератором проходим по всем строчкам файла f
а = [ int(x) for x in f ]
- Задаем количество пар с помощью переменной k
k = 0
- Обозначаем максимальное число
m = -10001
- В этой задачи не нужно искать среднее арифметическое, поэтому сразу идем по парам согласно условию:
for i in range(len(a)-1) :
if abs (a [i]) % 9 == 0 and abs(a[i + 1]) % 9 != 0 and abs (a[i + 1]) % 8 == 3 or \
abs(a [i + 1]) % 9 == 0 and abs (a [i]) % 9 != 0 and abs (a [i]) % 8 == 3:
k += 1
m = max(m, a[i], a[i + 1])
print(k, m)
Итоговый вариант программы:
Ответ: 252 9971
В статье разобрали типовые задачи, которые могут встретиться на ЕГЭ. В задании 17 важно обращать внимание на условие: часто на экзамене одиннадцатиклассники упускают важные детали в формулировке, из-за чего не задают в программе необходимые ограничения и теряют баллы 😢
Уверены, что практика в решении этого задания, принесет тебе заветные баллы на ЕГЭ!