Задача 6 урок 16 Варианты решений и вопрос

Пользователь вводит строку произвольных символов,
выделите из неё массив первых 8 строковых литералов,
которые являются числами.
И выведите эти числа на экран.

Задача 6 урок 16

Вариант из разбора:

Вопрос: сделал точно по шаблону из разбора - не работает. Выводит в консоль только последнее число. Почему?

var
  s: string;
  a: array [1..8] of string;
  i,j: integer;
  f: boolean;
begin
  writeln('vvedite proizvolnuy stroku:');
  //readln(s);
  s:= 'rew2i@#$$#435tr353453t4er4df';
  f := false;
  j:=0;
  for i := 1 to length(s) do
  begin
    if (s[i] >= '0') and (s[i] <= '9') then
    begin
      if not f then
        j:=j+1;
        f:= true;
        a[j]:= a[j]+ s[i];
    end else
    begin
      if (f) then
      begin
        f:=false;
      end;
    end;
  end;
  for i:= 1 to j do;
    writeln(a[i]);
end.          
Вариант без флага boolean:
var a: array [1..8] of string;
    s: string;
    i,j: integer;
begin
  writeln('vvedite stroku s');
  readln(s);
  j:=1;
  a[j]:='';
  for i:=1 to length(s) do
  begin
    if (s[i]>='0') and (s[i]<='9') then
      a[j]:=a[j]+s[i]
    else
      if (a[j]<>'') then
      begin
        writeln(a[j]);
        if (j=8) then
          break;
        j:=j+1;
      end;
  end;
  readln();
end.   
vedro-compota's picture

for i:= 1 to j do;

- точка с запятой

_____________
матфак вгу и остальная классика =)