'----------------------------
' 行列の演算
'----------------------------
Dim A(3,3)
Dim B(3,4)
Dim A1(4,2)
Dim B1(2,5)
Dim C(5,5)
Call MatRead(A(),3,3)
Call MatPrint(A(),3,3)
Call MatRead(B(),3,4)
Call MatPrint(B(),3,4)
Call MatMul(A(),B(),C(),3,3,4)
Call MatPrint(C(),3,4)
Call MatRead(A1(),4,2)
Call MatPrint(A1(),4,2)
Call MatRead(B1(),2,5)
Call MatPrint(B1(),2,5)
Call MatMul(A1(),B1(),C(),4,2,5)
Call MatPrint(C(),4,5)
End
'--------------------------
'(a) A
Data 1 , 2, 3
Data 4 , 5, 6
Data 7 , 8, 9
'--------------------------
'(a) B
Data -1, 2, -3, 4
Data 5, -6, 7, -8
Data -9, 10, -11, 12
'--------------------------
'(b) A
Data 1, 2
Data 4, 5
Data 7, 8
Data 3, 6
'--------------------------
'(b) B
Data -1, 2, -3, 4, -5
Data 5 ,-6, 7, -8, 9
'--------------------------
Sub MatRead(A(),n,m)
For i=1 to n
For j=1 to m
Read A(i,j)
Next j
Next i
End Sub
Sub MatPrint(A(),n,m)
Print
For i=1 to n
For j=1 to m
Print A(i,j); " ";Tab(6*j);
Next j
Print
Next i
End Sub
Sub MatMul(A(),B(),C(),m,n,r)
For i=1 to m
For j=1 to r
S=0
For k=1 to N
S=S+A(i,k)*B(k,j)
Next k
C(i,j)=S
Next j
Next i
End Sub
'----------------------------