Задание OGEINF87A333: Написание программы

ФИПИ · ОГЭ · все форматы ответа · 1585 заданий

Открыть решение ↓ Ошибка или пожелание

Тип задачи: Написание программы.

Учебные темы: Табличные величины (массивы). Одномерные массивы. Составление и отладка программ, реализующих типовые алгоритмы обработки одномерных числовых массивов, на одном из языков программирования (Python, C++, Паскаль, Java, C#, Школьный Алгоритмический Язык): заполнение числового массива случайными числами, в соответствии с формулой или путём ввода чисел, нахождение суммы элементов массива, линейный поиск заданного значения в массиве, подсчёт элементов массива, удовлетворяющих заданному условию, нахождение минимального (максимального) элемента массива. Сортировка массива. Обработка потока данных: вычисление количества, суммы, среднего арифметического, минимального и максимального значения элементов последовательности, удовлетворяющих заданному условию.

Дайте развернутый ответ.

Напишите программу для решения следующей задачи.

На зачётной работе по физике ученикам 9 класса было предложено 12 задач. Зачёт можно получить, если правильно решить не менее 8 задач. Сколько учеников получило зачёт? Вычислите среднее количество правильно решённых задач учащимися, получившими зачёт. Гарантируется, что хотя бы один ученик сдал зачёт.

Программа получает на вход количество учеников в классе N (1 ≤ N ≤ 30), затем для каждого ученика вводится количество правильно решённых задач.

 

Пример работы программы:

Входные данные

Выходные данные

4

3

9

10

6

2

9.5

 


 

i
СВОЙСТВА ЗАДАНИЯ
КЭС:
3.2 Язык программирования (Python, C++, Паскаль, Java, C#, Школьный Алгоритмический Язык). Система программирования: редактор текста программ, транслятор, отладчик. Переменная: тип, имя, значение. Целые, вещественные и символьные переменные. Оператор присваивания. Арифметические выражения и порядок их вычисления. Операции с целыми числами: целочисленное деление, остаток от деления. Ветвления. Составные условия (запись логических выражений на изучаемом языке программирования). Нахождение минимума и максимума из двух, трёх и четырёх чисел. Решение квадратного уравнения, имеющего вещественные корни. Цикл с условием. Алгоритм Евклида для нахождения наибольшего общего делителя двух натуральных чисел. Разбиение записи натурального числа в позиционной системе с основанием, меньшим или равным 10, на отдельные цифры. Цикл с переменной. Алгоритмы проверки делимости одного целого числа на другое, проверки натурального числа на простоту
Тип ответа:Развернутый ответ
Номер: 87A333
НЕ РЕШЕНО Изменить статус

Решение задания OGEINF87A333

Ответ: Программа приведена в шаге 3

1. Разберём формат ввода.
Сначала читаем N — количество элементов или участников, затем обрабатываем ровно N записей. Первое число N не участвует в вычислении результата. Для каждой записи читаем одно число. Данные могут быть разделены переносами строк или пробелами: программа одинаково обрабатывает оба варианта.

2. Выберем алгоритм.
Зачёт получают ученики с результатом не меньше восьми: от 8 до 12 включительно. Считаем только этих учеников и суммируем только их результаты. Среднее равно этой сумме, делённой на количество сдавших; на общее число учеников N делить нельзя. По условию хотя бы один ученик сдал зачёт, поэтому знаменатель положителен. В программе функция truediv выполняет обычное деление с вещественным результатом.

3. Программа на Python 3.

import sys
from operator import truediv

data = iter(map(int, sys.stdin.buffer.read().split()))
count = 0
total = 0
best = None
flag = False
n = next(data)
for _ in range(n):
    x = next(data)
    if x >= 8:
        count += 1
        total += x
print(count)
print(truediv(total, count))

4. Проверка и обоснование.
Пример 1. Входные числа: 4 3 9 10 6.

Вывод: 2 9.5.
На каждом шаге обновляются только показатели для уже прочитанных записей. После обработки всех записей они относятся ко всему набору данных. Проверки границ используют ровно строгие или нестрогие сравнения из условия. Каждая запись обрабатывается один раз, поэтому время работы линейно по количеству записей. Алгоритму достаточно нескольких накопителей; приведённый способ чтения сохраняет входной текст, поэтому общая память программы линейна по размеру ввода.

Ответ: Программа приведена в шаге 3.

Помочь улучшить сайт

Напишите пожелание к сайту или решению либо сообщите о найденной неточности в задании OGEINF87A333.

Сообщение увидит только команда сайта: на странице оно не публикуется.

Комментарии к решению

Комментарии видны всем посетителям сайта.

Комментариев пока нет. Будьте первым.

Чтобы оставить комментарий, войдите или зарегистрируйтесь.