Задача на циклы... - Free Pascal
Формулировка задачи:
В соревнования по бегу принимают участие 30 спортсменов. Вводя по очереди фамилии и результаты участников в ЭВМ, определить, сколько из них выполнило нормативы и фамилию лучшего участника.
Решение задачи: «Задача на циклы...»
textual
Листинг программы
uses crt; const n=30; var nm,r,mn:real; f,fmn:string; i,k,imn:byte; begin clrscr; {примем что это бег на 100 метров, чтобы вводить корректные данные} repeat write('Введите норматив от 12 до 20 nm='); readln(nm); until(nm>=12)and(nm<=20); writeln('Введите фамилии и результаты спортсменов:'); k:=0; mn:=1000; for i:=1 to n do begin write('Фамилия: '); readln(f); write('Результат: '); readln(r); if r>nm then k:=k+1; if r<mn then begin mn:=r; fmn:=f; end; end; writeln('Выполнило норматив=',k); write('Лучший участник ',fmn,' ',mn:0:2); readln end.
Объяснение кода листинга программы
- Установка начального значения переменных:
- nm, r, mn, f, fmn, i, k, imn = 0 (для всех)
- Ввод данных от пользователя:
- Ввод норматива (nm) в диапазоне от 12 до 20
- Ввод фамилии и результата каждого спортсмена (f и r)
- Обработка данных:
- Счетчик выполнивших норматив (k) увеличивается на 1, если результат спортсмена (r) больше норматива (nm)
- Если результат спортсмена (r) меньше текущего лучшего результата (mn), то обновляется:
- k (количество выполнивших норматив)
- fmn (фамилия спортсмена с лучшим результатом)
- mn (лучший результат спортсмена)
- Вывод результатов:
- Выводится количество спортсменов, выполнивших норматив (k)
- Выводится фамилия и результат лучшего спортсмена (fmn и mn)
- Ввод для завершения работы программы