Даны натуральные 1<=N,M<=10 . Заполнить матрицу порядка NxM целыми числами 0, 1, 2, 3, …, MxN–1, в соответствии со схемой расположения:
0 2 3 9 10
1 4 8 11 16
5 7 12 15 17
6 13 14 18 19 Как квадратную заполнить эт получается.. а вот с прямоугольной проблемка..
Добавлено (08.04.2009, 16:12)
---------------------------------------------
Code
{----------------------------------------
Procedura proizvodit zapolnenie matricy
-----------------------------------------}
procedure diag (var a:TMatrix; n:word);
var i,j,x,f,k : integer;
t: boolean;
D: real;
begin {diag}
t:=false;
for k:=1 to sqr(n) do
begin
f:=k;
if f>(n*(n+1)/2) then
begin
t:=true;
f:=sqr(n)+1-f;
end;
D:=sqrt(1+4*(2*f-1));
x:=trunc((-1+D)/2);
if x mod 2 = 0 then
begin
j:=n-x-1+(f-((x+1)*x)div 2);
i:=f-((x+1)*x)div 2;
end
else
begin
j:=n-(f-((x+1)*x)div 2)+1;
i:=x+2-(f-((x+1)*x)div 2);
end;
if t then
begin
i:=n+1-i;
j:=n+1-j;
end;
a[i,j]:=k-1;
end;
end; {diag}
Вот для квадратной