Автор: Виталик 17.01.2004 18:55
Пожалуйста помогите решить задачу(это вопрос жизни или смерти):вводится натуральное число n(1<=n<=10);пронумеровать
клетки квадратной матрицы n*n челночным ходом по диагоналям.
Например для n=4:
1 2 6 7
3 5 8 13
4 9 12 14
10 11 15 16
Автор: dushik 1.02.2004 16:11
Я решал похожую задачу, вот:
Код
program matrix;
uses crt;
var i,j,nom,dio,dios:byte;
zad:integer;
mat:array [1..25,1..25] of byte;
begin
clrscr;
textcolor(white);
writeln('vvedite zadergku vivoda matrizi');
readln(zad);
clrscr;
randomize;
textcolor(green);
for i:=1 to 20 do
begin
for j:=1 to 20 do
begin
mat[i,j]:=random(10);
end;
end;
dios:=0;
for i:=20 downto 1 do
begin
dios:=dios+1;
dio:=dios;
if (i mod 2)<>0 then
begin
dio:=20;
for j:=i downto 1 do
begin
gotoxy(j,dio);
write(mat[dio,j]);
delay(zad);
dio:=dio-1;
end;
end
else
for j:=1 to i do
begin
gotoxy(j,dio);
write(mat[dio,j]);
delay(zad);
dio:=dio+1;
end;
end;
{} dios:=0;
for i:=20 downto 1 do
begin
dios:=dios+1;
dio:=dios;
if (i mod 2)=0 then
begin
dio:=20;
for j:=i downto 1 do
begin
gotoxy(dio,j);
write(mat[j,dio]);
delay(zad);
dio:=dio-1;
end;
end
else
for j:=1 to i do
begin
gotoxy(dio,j);
write(mat[j,dio]);
delay(zad);
dio:=dio+1;
end;
end;
end.
Автор: tricker 1.02.2004 17:12
Код
program lat_kv;
uses crt;
var a:array[1..100,1..100] of integer;
i,j,n:integer;
begin
clrscr;
write('Введите размер ');
readln(n);
for i:=1 to n do
for j:=1 to n do
begin
a[i,j]:=j+i-1;
if a[i,j]>n then a[i,j]:=a[i,j]-n;
end;
for i:=1 to n do
begin
for j:=1 to n do
write(a[i,j],' ');
writeln;
end;
readln;
end.