Урок 17 (Решенная задача номер 6)

Урок 17 (Решенная задача номер 6)

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

Подсказка: Т.е. такая процедура может иметь следующую сигнатуру:

procedure getData(str: string; var name: string; var ball: integer);
type myarr = array[1..3] of integer;
     miarr = array[1..3] of string;
var s, name : string;
    bal, o, u : integer;
    smassiv : miarr;
    cmassiv : myarr;

procedure ru36(h : string; var sname : string; var sbal : integer);
var  i, c : integer;
     g: string;
begin
  for i := 1 to length(h) do
  begin
    if (h[i] <> '') and (h[i] > '9') then
      sname := sname + h[i];
    if (h[i] >= '0') and (h[i] <= '9') then
      g := g + h[i];
    if (i = length(h)) then
      val(g, sbal, c);
  end;
end;

procedure ru37(m : miarr; a : myarr);

begin
  if (a[1] > a[2]) and (a[1] > a[3]) then
    writeln('Pobeditel - ', m[1],' ', 'ego kol-vo ballov - ', a[1])
  else if (a[2] > a[3]) then
    writeln('Pobeditel - ', m[2],' ', 'ego kol-vo ballov - ', a[2])
       else  writeln('Pobeditel - ', m[3],' ', 'ego kol-vo ballov - ', a[3]);
end;

begin
  o := 1;
  while (o <= 3) do
  begin
    writeln('vvedite stroky');
    readln(s);
    ru36(s, name, bal);
    smassiv[o] := name;
    cmassiv[o] := bal;
    Inc(o);
    name := '';
  end;
  ru37(smassiv, cmassiv);
end.