Это код для матрицы ,а как сделать что бы выравнивало вводимый текст?
 uses crt;
var
  s:string;
  i,j,k,b:integer;
begin
  FillArray;
  WriteArray;
  for i:=1 to n do begin // перебор по строкам массива
    s := '';
    for j := 1 to m do
      s := s + a[i,j];           // переносим из строки массива в переменную типа строки
    while s[length(s)] = ' ' do delete(s,length(s),1);   // удаляем пробелы в начале и конце строки
    while s[1] = ' ' do delete(s,1,1);
    b := length(s);
    write(b:3,' <',s); // по мере подсчета постепенно выводим, что мы делаем
    if (b < m) and (pos(' ',s) > 0) then begin // если в строке нет пробелов - ничего не поделаешь 

      k := 1; // счетчик внешнего цикла, а заодно - длина последовательности пробелов (сколько пропускать)
      repeat
        j := 1;   // бежим вдоль строки
        while (j < length(s)) and (length(s) < m) do begin
          if s[j] = ' ' then begin  // найдя пробел, вставляем еще один и "перепрыгиваем" через всю последовательность пробелов
            insert(' ',s,j);
            inc(j,k);
          end;
          inc(j);
        end;
        inc(k);
        write(' k=',k);
      until length(s) = m;
      for j:=1 to m do a[i,j]:=s[j];
    end;
    writeln('>');
  end;
  WriteArray;
  readkey;
end.