2. Для примера 6.5 выполните перечисленные задания.

1.  Найдите номер спортсмена, пришедшего на финиш последним.

Вместо минимального количества времени найдём максимальное — это и будет наш последний лыжник.

var a: array [1..20] of real;
n, n_max: integer;
begin
 writeln('Количество спортсменов');
 readln(n); writeln('Время');
 for var i := 1 to n do
read(a[i]);
 n_max := 1;
 for var i := 2 to n do
  if a[i] > a[n_max] then
   n_max := i;
 writeln('Последний — лыжник номер ', n_max);
 writeln('Его время - ', a[n_max]);
end.

2.  Определите, был ли победитель единственным или есть еще лыжник,
прошедший трассу с таким же результатом (см. пример 6.6).

Объявим дополнительную переменную k, в которую будем вести подсчёт минимальных элементов в массиве.

var a: array [1..20] of real;
n, k, n_min: integer;
begin
 writeln('Количество спортсменов');
 readln(n); writeln('Время');
 for var i := 1 to n do
read(a[i]);
 n_min := 1;
 for var i := 2 to n do
  if a[i] < a[n_min] then
   n_min := i;
 k := 0;
 for var i := 1 to n do
  if a[i] = a[n_min] then
   k := k + 1;
 writeln('Последний — лыжник номер ', n_min);
 writeln('Его время - ', a[n_min]);
 writeln('Встретился ', k, ' раз(–а)');
end.

3.  Добавьте еще один массив. Введите в него фамилии спортсменов.

Объявим переменную f, в которую будем записывать фамилии спортсменов.

var a: array [1..20] of real;
f: array [1..20] of string;
n, n_min: integer;
begin
 writeln('Количество спортсменов');
 readln(n);
 writeln('Фамилии спортсменов ', n);
 for var m := 1 to n do
  readln(f[m]);
 writeln('Время');
 for var i := 1 to n do
  read(a[i]);
 //поиск минимального элемента
 n_min := 1;
 for var i := 2 to n do
  if a[i] < a[n_min] then
   n_min := i;
writeln('Последний — лыжник номер ', n_min);
 writeln('Его время - ', a[n_min]);
end.

Реализуйте пункты 1—3 так, чтобы выводилась фамилия, а не номер (см. пример 5.10).

var a: array [1..20] of real;
f: array [1..20] of string;
n, n_min: integer;
begin
 writeln('Количество спортсменов');
 readln(n);
 writeln('Фамилии спортсменов ', n);
 for var m := 1 to n do
  readln(f[m]);
 writeln('Время');
 for var i := 1 to n do
read(a[i]);
 n_min := 1;
 for var i := 2 to n do
  if a[i] < a[n_min] then
   n_min := i;
writeln('Последний — лыжник номер ', f[n_min]);
 writeln('Его время - ', a[n_min]);
end.
Другие задания