Решение задач
Разбор задачи C5 (демо ЕГЭ 2005)
На вход программе подаются 366 строк, которые содержат информацию о среднесуточной температуре всех дней 2004 года. Формат каждой из строк следующий: сначала записана дата в виде dd.mm (на запись номера дня и номера месяца в числовом формате отводится строго два символа, день от месяца отделен точкой), затем через пробел записано значение температуры — число со знаком плюс или минус, с точностью до 1 цифры после десятичной точки. Данная информация отсортирована по значению температуры, то есть хронологический порядок нарушен. Требуется написать программу на языке Паскаль или Бейсик, которая будет выводить на экран информацию о месяце (месяцах), среднемесячная температура у которого (которых) наименее отклоняется от среднегодовой. В первой строке вывести среднегодовую температуру. Найденные значения для каждого из месяцев следует выводить в отдельной строке в виде: номер месяца, значение среднемесячной температуры, отклонение от среднегодовой температуры.
Решение:
Программа считывает входные данные из файла "temp_ra.txt". В нем хранятся записи о реальных среднесуточных температурах в Москве за 2004 год, отсортированных по значению температуры в порядке возрастания:
Алгоритм программы такой:
- Считываем запись из файла, сразу подсчитывая в массиве сумму температур в каждом из 12-и месяцев. Одновременно суммируем все температуры в году.
- Определяем минимальное отклонение среднемесячной температуры от среднегодовой, используя этот массив.
- Просматривая данный массив еще раз, выводим информацию об искомых месяцах.
Программа написана на языках:
- Паскаль (среда разработки Turbo Pascal 7.0),
- Бейсик (среда разработки Quick Basic 4.5),
- Алгоритмический язык (среда разработки Кумир 1.9.0).
- Си (среда разработки Borland C++ 3.1),
Чтобы прочесть комментарии к программе, наведите мышью на соответствующую строку. Строки, снабженные комментарием, выделены фиолетовым цветом.
Напротив названия языка программирования в скобках содержатся ссылки на скачку исходников и ехе (исполняемых файлов).
Работа программы на этих языках:
Видно, что ответ, выданный программой, совпадает с результатом, полученным в Excel.
Подробнее о файле "temp_ra.txt". Он был подготовлен следующим образом:
- С сайта о погоде была взята информация о среднесуточных температурах в Москве в 2004 году по месяцам и занесена в файл Excel "Карта_температуры" по листам: "янв", "фев", "март", "апр", "май", "июн", 'июл", "авг", "сент", "окт', "нояб', "дек". Пример части листа "янв" на рисунке:
- На лист "год" были скопированы все записи по месяцам друг за другом. Данная таблица получилась отсортированной по дате. Скопировав эту таблицу и разместив ее рядом была произведена сортировка по температуре средствами Excel.
- Полученная таблица (правая) была скопирована в файл "temp_ra" и отредактирована в нужном формате согласно условию задачи.