Разбор задачи C4 (демо ЕГЭ 2007)
Иванов Петр 4 5 4
Требуется написать программу, которая будет выводить на экран фамилии и имена трех лучших по среднему баллу учеников. Если среди остальных есть ученики, набравшие тот же средний балл, что и один из трех лучших, то следует вывести и их фамилии и имена. Требуемые имена и фамилии можно выводить в произвольном порядке.
Алгоритм программы следующий:
- Считываем записи, сохраняя фамилию, имя и сумму баллов в массиве записей (или в двух массивах).
- Определяем 3 самых высоких суммарных балла при просматре массива записей (или массивов). Средний балл не считаем, т.к. число экзаменов у школьников одинаково.
- При следующем просмотре массивов выводим фамилию и имена учеников, чей суммарный балл ≥ 3-ей по величине суммы.
Пример работы алгоритма.
Пусть на вход подается 10 записей, сумма баллов в которых равны:
- 15
- 14
- 13
- 9
- 12
- 9
- 9
- 15
- 8
- 12
- max1=15
- max2=15
- max3=14
- 15
- 14
- 15
Программа написана на языках:
- Паскаль (среда разработки Turbo Pascal 7.0),
- Бейсик (среда разработки Quick Basic 4.5),
- Алгоритмический язык (среда разработки Кумир 1.9.0).
- Си (среда разработки Borland C++ 3.1),
Чтобы прочесть комментарии к программе, наведите мышью на соответствующую строку. Строки, снабженные комментарием, выделены фиолетовым цветом.
Напротив названия языка программирования в скобках содержатся ссылки на скачку исходников и ехе (исполняемых файлов).
Работа программы на этих языках:
На рисунках видно, что в результате работы программы было выбрано 3 записи. Максимальный средний балл у 2-х школьников: Иванова Артема и Белова Олега, он равен (5+5+5)\3=5 баллов. Еще один школьник, Петров Андрей, набрал (4+5+5)/3=4,67 баллов.