Помогите составить прогу в Паскале!!!
Помогите составить прогу в Паскале!!!
Люди, выручайте!! Надо сделать так, шоб заполниласи матрица 10х10 по методу спирали из нижнего левого угла вверх!!! Ну очень нада)
Не нае...ь - не проживешь...
Код из Delphi 7:
program Project1;
{$APPTYPE CONSOLE}
uses
SysUtils;
const N = 10;
var i,j,r,c,num,l,t,b: integer;
a: array [1..N,1..N] of integer;
begin
num:=1; c:=1; j:=1;
l:=2; r:=10; t:=1; b:=10;
while (num<=100) do begin
for i:=b downto t do begin
a[i,j]:=num;
inc(num);
end;
inc(i);
for j:=l to r do begin
a[i,j]:=num;
inc(num);
end;
dec(j);
for i:=t+1 to b do begin
a[i,j]:=num;
inc(num);
end;
dec(i);
for j:=r-1 downto l do begin
a[i,j]:=num;
inc(num);
end;
inc(j);
inc(l);
inc(t);
dec(r);
dec(b);
end;
for i:=1 to N do begin
for j:=1 to N do
write(a[i,j],' ');
writeln;
end;
readln;
end.
-------------------------------
Может и офигенски нерационально, но на засыпающую голову что смог:)
program Project1;
{$APPTYPE CONSOLE}
uses
SysUtils;
const N = 10;
var i,j,r,c,num,l,t,b: integer;
a: array [1..N,1..N] of integer;
begin
num:=1; c:=1; j:=1;
l:=2; r:=10; t:=1; b:=10;
while (num<=100) do begin
for i:=b downto t do begin
a[i,j]:=num;
inc(num);
end;
inc(i);
for j:=l to r do begin
a[i,j]:=num;
inc(num);
end;
dec(j);
for i:=t+1 to b do begin
a[i,j]:=num;
inc(num);
end;
dec(i);
for j:=r-1 downto l do begin
a[i,j]:=num;
inc(num);
end;
inc(j);
inc(l);
inc(t);
dec(r);
dec(b);
end;
for i:=1 to N do begin
for j:=1 to N do
write(a[i,j],' ');
writeln;
end;
readln;
end.
-------------------------------
Может и офигенски нерационально, но на засыпающую голову что смог:)
MacBook Pro 13" + new iPad 32Gb/4G + iPhone 5s + Klipsch Image x10i
Это дельфевый код, возможно вообще uses не нужен... Попробуйте вставить так:
program Project1;
const N = 10;
var i,j,r,c,num,l,t,b: integer;
a: array [1..N,1..N] of integer;
begin
num:=1; c:=1; j:=1;
l:=2; r:=10; t:=1; b:=10;
while (num<=100) do begin
for i:=b downto t do begin
a[i,j]:=num;
inc(num);
end;
inc(i);
for j:=l to r do begin
a[i,j]:=num;
inc(num);
end;
dec(j);
for i:=t+1 to b do begin
a[i,j]:=num;
inc(num);
end;
dec(i);
for j:=r-1 downto l do begin
a[i,j]:=num;
inc(num);
end;
inc(j);
inc(l);
inc(t);
dec(r);
dec(b);
end;
for i:=1 to N do begin
for j:=1 to N do
write(a[i,j],' ');
writeln;
end;
readln;
end.
program Project1;
const N = 10;
var i,j,r,c,num,l,t,b: integer;
a: array [1..N,1..N] of integer;
begin
num:=1; c:=1; j:=1;
l:=2; r:=10; t:=1; b:=10;
while (num<=100) do begin
for i:=b downto t do begin
a[i,j]:=num;
inc(num);
end;
inc(i);
for j:=l to r do begin
a[i,j]:=num;
inc(num);
end;
dec(j);
for i:=t+1 to b do begin
a[i,j]:=num;
inc(num);
end;
dec(i);
for j:=r-1 downto l do begin
a[i,j]:=num;
inc(num);
end;
inc(j);
inc(l);
inc(t);
dec(r);
dec(b);
end;
for i:=1 to N do begin
for j:=1 to N do
write(a[i,j],' ');
writeln;
end;
readln;
end.
MacBook Pro 13" + new iPad 32Gb/4G + iPhone 5s + Klipsch Image x10i
Разобрался, это из-за оптимизации компилятора Delphi. Такой вариант должен работать:
program Project1;
const N = 10;
var i,j,r,c,num,l,t,b: integer;
a: array [1..N,1..N] of integer;
begin
num:=1; c:=1; j:=1;
l:=2; r:=10; t:=1; b:=10;
while (num<=100) do begin
for i:=b downto t do begin
a[i,j]:=num;
inc(num);
end;
for j:=l to r do begin
a[i,j]:=num;
inc(num);
end;
for i:=t+1 to b do begin
a[i,j]:=num;
inc(num);
end;
for j:=r-1 downto l do begin
a[i,j]:=num;
inc(num);
end;
inc(l);
inc(t);
dec(r);
dec(b);
end;
for i:=1 to N do begin
for j:=1 to N do
write(a[i,j],' ');
writeln;
end;
readln;
end.
program Project1;
const N = 10;
var i,j,r,c,num,l,t,b: integer;
a: array [1..N,1..N] of integer;
begin
num:=1; c:=1; j:=1;
l:=2; r:=10; t:=1; b:=10;
while (num<=100) do begin
for i:=b downto t do begin
a[i,j]:=num;
inc(num);
end;
for j:=l to r do begin
a[i,j]:=num;
inc(num);
end;
for i:=t+1 to b do begin
a[i,j]:=num;
inc(num);
end;
for j:=r-1 downto l do begin
a[i,j]:=num;
inc(num);
end;
inc(l);
inc(t);
dec(r);
dec(b);
end;
for i:=1 to N do begin
for j:=1 to N do
write(a[i,j],' ');
writeln;
end;
readln;
end.
MacBook Pro 13" + new iPad 32Gb/4G + iPhone 5s + Klipsch Image x10i