7-месячные курсы ЕГЭ стартуют завтра

Задание 17

ЗаданиеДлительность: 7 минутПросмотров: 6178

В статье подробно рассказали о задании 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 важно обращать внимание на условие: часто на экзамене одиннадцатиклассники упускают важные детали в формулировке, из-за чего не задают в программе необходимые ограничения и теряют баллы 😢

Уверены, что практика в решении этого задания, принесет тебе заветные баллы на ЕГЭ!

Читайте также

Популярное