Присоединиться

11 класс·высокий уровень

На вход программе подаются 366 строк, которые содержат информацию о

Условие

На вход программе подаются 366 строк, которые содержат информацию о среднесуточной температуре всех дней 2004 года. Формат каждой из строк следующий: сначала записана дата в виде dd.mm (на запись номера дня и номера месяца в числовом формате отводится строго два символа, день от месяца отделен точкой), затем через пробел записано значение температуры — число со знаком плюс или минус, с точностью до 1 цифры после десятичной точки. Данная информация отсортирована по значению температуры, то есть хронологический порядок нарушен. Напишите эффективную, в том числе и по используемой памяти, программу (укажите используемую версию языка программирования, например Borland Pascal 7.0), которая будет выводить на экран информацию о месяце (месяцах) среднемесячная температура для которого (которых) наименее отклоняется от среднегодовой. В первой строке вывести среднегодовую температуру. Найденные значения для каждого из месяцев следует выводить в отдельной строке в следующем виде: номер месяца, значение среднемесячной температуры, отклонение от среднегодовой температуры. Указания по оцениванию. Программа читает входные данные, сразу подсчитывая в массиве, хранящем 12 вещественных чисел, сумму температур в каждом из месяцев, одновременно суммируя все температуры в году. Затем с использованием этого массива ищется минимальное отклонение среднемесячной температуры от среднегодовой. За дополнительный просмотр этого массива распечатывается информация об искомых месяцах. Баллы начисляются только за программу, которая решает задачу хотя бы для частного случая (например, месяц с минимальным отклонением единственен). Критерии оценивания выполнения задания | Баллы | Программа работает верно, т. е. определяет все месяцы, в которых среднемесячная температура минимально отклоняется от среднегодовой, не содержит вложенных циклов, в тексте программы не анализируется каждый месяц в отдельности. Допускается наличие в тексте программы одной синтаксической ошибки. | 4 | Программа составлена верно, но содержит вложенные циклы (oт 1 до 12 и от 1 до 366) и, возможно, запоминает значения всех температур в массиве. Допускается наличие от одной до трех синтаксических ошибок. | 3 | Программа составлена в целом верно с вложенными циклами или без них, или обрабатывает каждый месяц явным образом (12 операторов IF или оператор CASE, содержащий 12 вариантов), или предварительно сортирует входные данные в хронологическом порядке. Возможно, выводит значение только одного месяца с минимальным отклонением температуры. Возможно в реализации алгоритма содержатся 1-2 ошибки (используется знак «<» вместо «>», «or» вместо «and» и тому подобное). Допускается наличие не более пяти синтаксических ошибок. | 2 | Программа, возможно, неверно работает при некоторых входных данных, но по приведенному тексту решения ясно, что экзаменуемый понимает, из каких этапов должно состоять решение задачи.Программа, возможно, некорректно определяет номер месяца или неверно вводит или выводит данные, или содержит ошибку в алгоритме поиска минимума или средней температуры, или отклонение берется не по абсолютной величине. Допускается наличие не более семи синтаксических ошибок. | 1 | Задание не выполнено или выполнено неверно. | 0 | Максимальный балл | 4 |

Формат задания

Развёрнутый ответ: короткого ответа здесь нет — оценивается само рассуждение. Разбор откроется после входа.

Решение по шагам

  1. Как рассуждать

    Программа читает входные данные, сразу подсчитывая в массиве, хранящем 12 вещественных чисел, сумму температур в каждом из месяцев, одновременно суммируя все температуры в году.

Осталось ещё 3 шага

  1. Шаг 2

  2. Шаг 3

  3. Шаг 4

Получить полное решение

Бесплатно · займёт минуту

Другие задачи по теме «Обработка символьных строк»