Initial data commit
This commit is contained in:
parent
72d218235f
commit
f23f22d71c
199087 changed files with 3378941 additions and 0 deletions
|
|
@ -0,0 +1,80 @@
|
|||
INCLUDE "D2:PRINTF.ACT" ;from the Action! Tool Kit
|
||||
|
||||
DEFINE PTR="CARD"
|
||||
|
||||
TYPE Matrix=[
|
||||
BYTE width,height
|
||||
PTR data] ;INT ARRAY
|
||||
|
||||
PROC PrintMatrix(Matrix POINTER m)
|
||||
BYTE i,j
|
||||
INT ARRAY d
|
||||
CHAR ARRAY s(10)
|
||||
|
||||
d=m.data
|
||||
FOR j=0 TO m.height-1
|
||||
DO
|
||||
FOR i=0 TO m.width-1
|
||||
DO
|
||||
StrI(d(j*m.width+i),s)
|
||||
PrintF("%2S ",s)
|
||||
OD
|
||||
PutE()
|
||||
OD
|
||||
RETURN
|
||||
|
||||
PROC Create(MATRIX POINTER m BYTE w,h INT ARRAY a)
|
||||
m.width=w
|
||||
m.height=h
|
||||
m.data=a
|
||||
RETURN
|
||||
|
||||
PROC MatrixMul(Matrix POINTER m1,m2,res)
|
||||
BYTE i,j,k
|
||||
INT ARRAY d1,d2,dres,sum
|
||||
|
||||
IF m1.width#m2.height THEN
|
||||
Print("Invalid size of matrices for multiplication!")
|
||||
Break()
|
||||
FI
|
||||
d1=m1.data
|
||||
d2=m2.data
|
||||
dres=res.data
|
||||
|
||||
res.width=m2.width
|
||||
res.height=m1.height
|
||||
|
||||
FOR j=0 TO res.height-1
|
||||
DO
|
||||
FOR i=0 TO res.width-1
|
||||
DO
|
||||
sum=0
|
||||
FOR k=0 TO m1.width-1
|
||||
DO
|
||||
sum==+d1(k+j*m1.width)*d2(i+k*m2.width)
|
||||
OD
|
||||
dres(j*res.width+i)=sum
|
||||
OD
|
||||
OD
|
||||
RETURN
|
||||
|
||||
PROC Main()
|
||||
MATRIX m1,m2,res
|
||||
INT ARRAY
|
||||
d1=[2 1 4 0 1 1],
|
||||
d2=[6 3 65535 0 1 1 0 4 65534 5 0 2],
|
||||
dres(8)
|
||||
|
||||
Put(125) PutE() ;clear the screen
|
||||
|
||||
Create(m1,3,2,d1)
|
||||
Create(m2,4,3,d2)
|
||||
Create(res,0,0,dres)
|
||||
MatrixMul(m1,m2,res)
|
||||
|
||||
PrintMatrix(m1)
|
||||
PutE() PrintE("multiplied by") PutE()
|
||||
PrintMatrix(m2)
|
||||
PutE() PrintE("equals") PutE()
|
||||
PrintMatrix(res)
|
||||
RETURN
|
||||
Loading…
Add table
Add a link
Reference in a new issue