Задача 8 Урок 18

Задача 8 Урок 18

Решите предыдущую задачу:

Пользователь вводит в консоль строки вида (имя + произвольное число пробелов + балл):

Вася 485
Коля 555
Юра 61
..........
....
end // признак завершения ввода

(пока не введёт строку end) -- где слева указаны имена участников, а справа -- число баллов.
Используя массив строк и массив целых чисел (пусть оба массива будут максимальной длины =3) считайте отдельно имена и баллы и определите победителя, выведя его имя и полученный им балл.

С использованием процедуры, которая разбирала бы очередную строку, изменяя по ссылке значения двух перемененных (одна для имени и одна для балла), уже после вызова этой процедуры для очередной строки записывайте очередные значения переменных в массивы (каждую в свой).

var i,j,max,l:integer; Nmax:string; bal:array [1..3] of integer; x,name:array [1..3] of string; s:array [1..4] of string;

procedure table(s:string;var name: string; var bal: integer);
var i: integer; x:string;
begin
  for i:=1 to Length(s) do
  begin
    if (s[i]>='0')and (s[i]<='9')then
      x:=x+s[i]
    else if s[i]<>' ' then
      name:=name+s[i];
  end;
  val(x,bal,l);
end;

begin
  for i:=1 to 4 do
  begin
    readln(s[i]);
    if s[i]='end' then
      break;
    table(s[i],name[i],bal[i]);
  end;
  max:=bal[1];
  for i:=2 to 3 do
    if bal[i]>max then
    begin
      max:=bal[i];
      Nmax:=name[i];
    end
    else
    begin
      max:=bal[i-1];
      Nmax:=name[i-1];
    end;
  write(Nmax,' ',max);
  readln();
end.