Задача на циклы... - 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.

Объяснение кода листинга программы

  1. Установка начального значения переменных:
    • nm, r, mn, f, fmn, i, k, imn = 0 (для всех)
  2. Ввод данных от пользователя:
    • Ввод норматива (nm) в диапазоне от 12 до 20
    • Ввод фамилии и результата каждого спортсмена (f и r)
  3. Обработка данных:
    • Счетчик выполнивших норматив (k) увеличивается на 1, если результат спортсмена (r) больше норматива (nm)
    • Если результат спортсмена (r) меньше текущего лучшего результата (mn), то обновляется:
    • k (количество выполнивших норматив)
    • fmn (фамилия спортсмена с лучшим результатом)
    • mn (лучший результат спортсмена)
  4. Вывод результатов:
    • Выводится количество спортсменов, выполнивших норматив (k)
    • Выводится фамилия и результат лучшего спортсмена (fmn и mn)
    • Ввод для завершения работы программы

Оцени полезность:

11   голосов , оценка 4.091 из 5