58 lines
853 B
Text
58 lines
853 B
Text
PROC CreateIdentityMatrix(BYTE ARRAY mat,BYTE size)
|
|
CARD pos
|
|
BYTE i,j
|
|
|
|
pos=0
|
|
FOR i=1 TO size
|
|
DO
|
|
FOR j=1 TO size
|
|
DO
|
|
IF i=j THEN
|
|
mat(pos)=1
|
|
ELSE
|
|
mat(pos)=0
|
|
FI
|
|
pos==+1
|
|
OD
|
|
OD
|
|
RETURN
|
|
|
|
PROC PrintMatrix(BYTE ARRAY mat,BYTE size)
|
|
CARD pos
|
|
BYTE i,j,v
|
|
|
|
pos=0
|
|
FOR i=1 TO size
|
|
DO
|
|
FOR j=1 TO size
|
|
DO
|
|
v=mat(pos)
|
|
IF j=size THEN
|
|
PrintF("%I%E",v)
|
|
ELSE
|
|
PrintF("%I ",v)
|
|
FI
|
|
pos==+1
|
|
OD
|
|
OD
|
|
RETURN
|
|
|
|
PROC Main()
|
|
BYTE size
|
|
BYTE ARRAY mat(400)
|
|
BYTE LMARGIN=$52,old
|
|
|
|
old=LMARGIN
|
|
LMARGIN=0 ;remove left margin on the screen
|
|
|
|
DO
|
|
Print("Get size of matrix [1-20] ")
|
|
size=InputB()
|
|
UNTIL size>=1 AND size<=20
|
|
OD
|
|
|
|
CreateIdentityMatrix(mat,size)
|
|
PrintMatrix(mat,size)
|
|
|
|
LMARGIN=old ;restore left margin on the screen
|
|
RETURN
|