Это код для матрицы ,а как сделать что бы выравнивало вводимый текст?
 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.