Вывести матрицу спиралью - Free Pascal

Формулировка задачи:

Дан массив NxN (N<=10), заполненный буквами. Вывести массив спиралью. Пример: Ввод a b c d e f g h i Вывод a b c h i d g f e

Код к задаче: «Вывести матрицу спиралью - Free Pascal»

textual
const n=4;
type matr=array[1..n,1..n] of char;
     mas=array[1..n*n] of char;
var a:matr;
    b:mas;
    i,imax,imin,j,jmax,jmin,k:integer;
begin
 k:=1;
 writeln('A:');
 for i:=1 to n do
  begin
   for j:=1 to n do
    begin
     a[i,j]:=chr(97+random(26));
     b[k]:=a[i,j];
     inc(k);
     write(a[i,j]:3)
    end;
   writeln
  end;
 writeln;
 jmin:=1;jmax:=n;imin:=2;imax:=n;
 k:=0;
 repeat
   for j:=jmin to jmax do
    begin
      inc(k);
      a[imin-1,j]:=b[k];
    end;
   for i:=imin to imax do
    begin
      inc(k);
      a[i,jmax]:=b[k];
    end;
    dec(jmax);
   for j:=jmax downto jmin do
    begin
      inc(k);
      a[imax,j]:=b[k];
    end;
    dec(imax);
   for i:=imax downto imin do
    begin
      inc(k);
      a[i,jmin]:=b[k];
    end;
   inc(imin);
   inc(jmin);
  until k>=n*n;
 writeln('A'':');
 for i:=1 to n do
  begin
    writeln;
    for j:=1 to n do write(a[i,j]:3);
  end;
  readln;
end.

8   голосов, оценка 3.875 из 5


СОХРАНИТЬ ССЫЛКУ