Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
69
Task/Spiral-matrix/Action-/spiral-matrix.action
Normal file
69
Task/Spiral-matrix/Action-/spiral-matrix.action
Normal file
|
|
@ -0,0 +1,69 @@
|
|||
DEFINE MAX_SIZE="10"
|
||||
DEFINE MAX_MATRIX_SIZE="100"
|
||||
|
||||
INT FUNC Index(BYTE size,x,y)
|
||||
RETURN (x+y*size)
|
||||
|
||||
PROC PrintMatrix(BYTE ARRAY a BYTE size)
|
||||
BYTE i,j,v
|
||||
|
||||
FOR j=0 TO size-1
|
||||
DO
|
||||
FOR i=0 TO size-1
|
||||
DO
|
||||
v=a(Index(size,i,j))
|
||||
IF v<10 THEN
|
||||
Print(" ")
|
||||
ELSE
|
||||
Print(" ")
|
||||
FI
|
||||
PrintB(v)
|
||||
OD
|
||||
PutE()
|
||||
OD
|
||||
RETURN
|
||||
|
||||
PROC FillMatrix(BYTE ARRAY a BYTE size)
|
||||
INT lev,maxLev,dist,maxDist,v
|
||||
|
||||
maxLev=size/2
|
||||
IF (size&1)=0 THEN
|
||||
maxLev==-1
|
||||
FI
|
||||
maxDist=size-1
|
||||
v=1
|
||||
FOR lev=0 TO maxLev
|
||||
DO
|
||||
FOR dist=0 TO maxDist
|
||||
DO
|
||||
a(Index(size,lev+dist,lev))=v v==+1
|
||||
OD
|
||||
FOR dist=0 TO maxDist-1
|
||||
DO
|
||||
a(Index(size,size-1-lev,lev+dist+1))=v v==+1
|
||||
OD
|
||||
FOR dist=0 TO maxDist-1
|
||||
DO
|
||||
a(Index(size,size-2-lev-dist,size-1-lev))=v v==+1
|
||||
OD
|
||||
FOR dist=0 TO maxDist-2
|
||||
DO
|
||||
a(Index(size,lev,size-2-lev-dist))=v v==+1
|
||||
OD
|
||||
maxDist==-2
|
||||
OD
|
||||
RETURN
|
||||
|
||||
PROC Test(BYTE size)
|
||||
BYTE ARRAY mat(MAX_MATRIX_SIZE)
|
||||
|
||||
PrintF("Matrix size: %B%E",size)
|
||||
FillMatrix(mat,size)
|
||||
PrintMatrix(mat,size)
|
||||
PutE()
|
||||
RETURN
|
||||
|
||||
PROC Main()
|
||||
Test(5)
|
||||
Test(6)
|
||||
RETURN
|
||||
Loading…
Add table
Add a link
Reference in a new issue