Data commit

This commit is contained in:
Ingy döt Net 2023-07-01 11:58:00 -04:00
parent 7387c8f97b
commit cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions

View file

@ -0,0 +1,52 @@
$ include "seed7_05.s7i";
const type: matrix is array array integer;
const func matrix: spiral (in integer: n) is func
result
var matrix: myArray is matrix.value;
local
var integer: i is 0;
var integer: dx is 1;
var integer: dy is 0;
var integer: x is 1;
var integer: y is 1;
var integer: nx is 0;
var integer: ny is 0;
var integer: swap is 0;
begin
myArray := n times n times 0;
for i range 1 to n**2 do
myArray[x][y] := i;
nx := x + dx;
ny := y + dy;
if nx >= 1 and nx <= n and ny >= 1 and ny <= n and myArray[nx][ny] = 0 then
x := nx;
y := ny;
else
swap := dx;
dx := -dy;
dy := swap;
x +:= dx;
y +:= dy;
end if;
end for;
end func;
const proc: writeMatrix (in matrix: myArray) is func
local
var integer: x is 0;
var integer: y is 0;
begin
for key y range myArray do
for key x range myArray[y] do
write(myArray[x][y] lpad 4);
end for;
writeln;
end for;
end func;
const proc: main is func
begin
writeMatrix(spiral(5));
end func;