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

Задача 7 Урок 18:

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

procedure getData(str: string; var name: string; var ball: integer);
program u18z7;
type
  data = array[1..3] of integer;
  simb = array[1..3] of string;
var
  a,code,i,j,max,ball: integer;
  str,b,n,name: string;
  ba: data;
  na: simb;

procedure getData(str: string; var name: string; var ball: integer);
begin
  for j:=1 to length(str) do
  begin
    val(str[j], a, code);
    if (str[j]<>' ') then
      if (code=0) then //цифры записываем в "b"
        b:=b+str[j]
      else
        n:=n+str[j];   //буквы записываем в "n"
  end;
  val(b, a);
  name:=n;
  ball:=a;
end;

begin
  for i:= 1 to 3 do
  begin
    writeln('Vvedite stroku',i);
    readln(str);
    n:='';
    b:='';
    if str='end' then
      break
    else
    begin
      getData (str,name,ball);
      na[i]:=name;
      ba[i]:=ball;
    end;
  end;
  max:=1;
  for i:= 1 to 3 do
  begin
    if ba[i]>ba[i-1] then
      max:=i;
  end;
  writeln(na[max],'   ',ba[max]);
  readln();
end.