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

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

var
  intChislo, Code : Integer;   // подпрограмма val для преобразования
  s,s1,s2 : string; // для ввода строки
  n: string;    // для первичного хранения имени
  n1: string;   // для первичного хранения числа
  a: array [1..300] of string;     //  неотредактированная запись имени в массив
  a1: array [1..300] of string;     //  массив для записи отредактированных имён
  a11: array [1..300] of string;  // массив для хранения первичных строковых чисел
  a12: array [1..300] of Integer; // массив для хранения преобразованных из строк в числа
  j,j1,j2,i,q:integer;                // счётчики
begin
  writeln('Enter');
  repeat
    readln(s);
    if  s='end' then break;
      s1:=s1+s;
      s2:=s1;
  until s='end';
  n:='';

  for i:=1 to length(s1) do
    begin
      val(s1[i], intChislo, code);
      if (code<>0) then             // если буква
        n:=n+s1[i]                  // запись в переменную
  else                             // если цифра
    begin
      j+=1;                      // +1 к счётчику
      a[j]:=n;                   // запись в массив
      n:='';                    // обнуление переменной(возвращение к FOR)
    end;
    end;
  for i:=1 to j do
    begin
      val(a[i], intChislo, code);  // в val  для удаления пустых значений
      if  (code<>0) and (a[i]<>'') and (a[i]<>' ') then // если буква и не пусто
        begin
          j2+=1;              // +1 к счётчику
          a1[j2]:= a[i];      // запись в массив
        end;
    end;

  for i := 1 to length(s2) do
    if (s2[i] >= '0') and (s2[i] <= '9') then     // если цифра
      begin
        n1:= n1+s2[i];                            // запись в переменную
        if not ((s2[i+1] >= '0') and (s2[i+1] <= '9')) and (n1 <> '') then   // если не цифра и переменная не пуста
          begin
            j1 += 1;                                // + к счётчику
            a11[j1] := n1;                          // запись в массив
            n1 := '';                               // обнуление переменной
          end;
      end;
       writeln();

  for i := 1 to j1 do
    begin
      val(a11[i],intChislo, Code);                  // в подпролг для прербразования в число
      q+=1;                                         // + к счётчику
      a12[q]:=intChislo;                            // запись в массив
    end;
  for i := 1 to q do
    writeln(a1[i],a12[i]);                           // вывод имени и балла

  writeln();

  if (a12[1]>a12[2]) and (a12[1]>a12[3]) then
    writeln ('pobeditel',' ', a1[1],a12[1]);
  if (a12[2]>a12[1]) and (a12[2]>a12[3]) then             // Ищем победителя
    writeln ('pobeditel',' ', a1[2],a12[2]);
  if (a12[3]>a12[1]) and (a12[3]>a12[2]) then
    writeln ('pobeditel',' ', a1[3],a12[3]);

    readln();
end.  

Вывод консоли:

Enter
Vovan 55
Ilia 77
Pasha 99
end

Vovan 55
Ilia 77
Pasha 99

pobeditel Pasha 99