
09.07.2009, 14:13
|
|
Участник форума
Регистрация: 20.12.2007
Сообщений: 295
С нами:
9679872
Репутация:
347
|
|
мой вариант про спираль на поцкале:
Код:
program spiral;
const n = 5;
type matrix = array of array of cardinal;
//----------------------------------------------------------------------
procedure fill_spiral(var m : matrix; n : cardinal);
var i, num_circle, start: integer;
begin
start := 1;
for num_circle := 0 to n div 2 -1 do begin
for i := num_circle to n - num_circle - 1 do begin
m[num_circle, i] := start + i;
m[n - num_circle - 1, n - i - 1] := 2 * n - num_circle * 4 - 2 + start + i;
end;
for i := num_circle + 1 to n - num_circle - 2 do begin
m[i, n - num_circle - 1] := start + n - num_circle * 2 + i - 1;
m[n - i - 1, num_circle] := start + 3 * n - num_circle * 6 - 3 + i;
end;
start := start + 4 * n - num_circle * 7 - 5;
end;
if n mod 2 <> 0 then m[n div 2, n div 2] := start + 1;
end;
//----------------------------------------------------------------------
var i, j: integer;
s: matrix;
BEGIN
SetLength(s, n, n);
fill_spiral(s, n);
for i := 0 to n - 1 do begin
for j := 0 to n - 1 do
write(s[i, j] : 4, ' ');
writeln;
end;
END.
Последний раз редактировалось bons; 09.07.2009 в 14:37..
|
|
|