program spirall; uses crt; const Size=15; k=-1; {pystaya ya4ejka soderjit zna4enie k} var mas:array[1..size,1..size]of shortint; i,j,a:integer; function freemas(i,j: shortint): boolean; begin if (i<1) or (i>size) or (j<1) or (j>size) then freemas:=false else freemas:=(mas[i,j]=k); end; procedure draw; {pe4at' massiva} begin writeln; for i:=1 to size do begin for j:=1 to size do write(mas[i,j]:2,'|'); writeln; end; end; begin for i:=1 to size do for j:=1 to size do mas[i,j]:=k; {zapolnenie massiva pystimi ya4ejkami} clrscr; i:=1; j:=1; mas[i,j]:=1; for a:=1 to sqr(size)-1 do begin if (freemas(i-1,j)) and (not freemas(i,j-1)) then begin dec(i); mas[i,j]:=a+1; end else if freemas(i,j+1) then begin inc(j); mas[i,j]:=a+1; end else if freemas(i+1,j) then begin inc(i); mas[i,j]:=a+1; end else if freemas(i,j-1) then begin dec(j); mas[i,j]:=a+1; end else continue; end; draw; readkey; end.