Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
52
Task/Spiral-matrix/Seed7/spiral-matrix.seed7
Normal file
52
Task/Spiral-matrix/Seed7/spiral-matrix.seed7
Normal 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;
|
||||
Loading…
Add table
Add a link
Reference in a new issue