![]() |
|
#1
|
|||
|
|||
![]() мой вариант работает только в массиве 8х8
![]() ![]() Код:
{$APPTYPE CONSOLE} uses SysUtils; const N=8; type mas=array[1..N,1..N] of integer; var m:mas; procedure Vvod(n:integer;var m:mas); var i,j,k:integer; begin k:=1; for i:=1 to N do begin for j:=1 to 2 do begin m[i,j]:=k; k:=k+1; end; end; for i:=1 to N do begin for j:=3 to 4 do begin m[i,j]:=k; k:=k+1; end; end; for i:=1 to N do begin for j:=5 to 6 do begin m[i,j]:=k; k:=k+1; end; end; for i:=1 to N do begin for j:=7 to 8 do begin m[i,j]:=k; k:=k+1; end; end; end; procedure Vivod(m:mas); var i,j: integer; begin for i:=1 to N do begin for j:=1 to N do write(m[i,j]:5,' '); writeln; end; end; begin Vvod(n,m); Vivod(m); readln; end. Последний раз редактировалось Asira, 27.12.2009 в 18:19. |
#2
|
|||
|
|||
![]() интересная задачка)
Код:
procedure VVod(var m:mas); var FColIndex, FIndex, r, c:Integer; begin FIndex:=1; FColIndex:=Low(m); while FColIndex <= High(m) do begin for r:=Low(m[Low(m)]) to high(m[Low(m)]) do for c:=FColIndex to (FColIndex+1-ord(FColIndex+1 > High(m))) do begin m[r,c]:=FIndex; Inc(FIndex); end; Inc(FColIndex, 2); end; end; ...-(ord(FColIndex+1 > High(m))... - на случай, если размеры массива будут не кратны двум) |