EnableExplicit DataSection Matrix_A_B_Dimension_Bsp1: Data.i 2,2,?MatrixA_Werte_Bsp1,2,2,?MatrixB_Werte_Bsp1 Matrix_A_B_Dimension_Bsp2: Data.i 3,3,?MatrixA_Werte_Bsp2,3,4,?MatrixB_Werte_Bsp2 MatrixA_Werte_Bsp1: Data.i 1,2,3,4 MatrixA_Werte_Bsp2: Data.i 0,1,0,1,1,1,0,1,0 MatrixB_Werte_Bsp1: Data.i 0,5,6,7 MatrixB_Werte_Bsp2: Data.i 1,1,1,1,1,0,0,1,1,1,1,1 EndDataSection Define.i ma, na, mb, nb, adr1, adr2, i, j, k, l Define mk$ Gosub Bsp1_Matrix_A_B : Gosub LoadMatrix : Gosub Bsp2_Matrix_A_B : Gosub LoadMatrix : End LoadMatrix: Read.i ma Read.i na Read.i adr1 Read.i mb Read.i nb Read.i adr2 Dim mxa.i(ma,na) Dim mxb.i(mb,nb) NewMap mxc.i() For i=1 To ma For j=1 To na mxa(i,j)=PeekI(adr1) adr1+SizeOf(Integer) Next Next For i=1 To mb For j=1 To nb mxb(i,j)=PeekI(adr2) adr2+SizeOf(Integer) Next Next OpenConsole("Kronecker product") PrintN("Matrix A:") For i=1 To ma ; Zeile Print("|") For j=1 To na ; Spalte Print(RSet(Str(mxa(i,j)),2," ")+" ") Next PrintN("|") Next PrintN("") PrintN("Matrix B:") For i=1 To mb ; Zeile Print("|") For j=1 To nb ; Spalte Print(RSet(Str(mxb(i,j)),2," ")+" ") Next PrintN("|") Next PrintN("") PrintN("Matrix C=AxB") For i=1 To ma ; Zeile MA For j=1 To na ; Spalte MA For k=1 To mb ; Zeile MB For l=1 To nb ; Spalte MB mxc(Str(i)+","+Str(j)+","+Str(k)+","+Str(l))=mxa(i,j)*mxb(k,l) Next Next Next Next For i=1 To ma ; Zeile MA For k=1 To mb; Zeile MB Print("|") For j=1 To na ; Spalte MA For l=1 To nb ; Spalte MB mk$=Str(i)+","+Str(j)+","+Str(k)+","+Str(l) If FindMapElement(mxc(),mk$) Print(RSet(Str(mxc()),2," ")+" ") EndIf Next Next PrintN("|") Next Next PrintN("Press return") : Input() Return Bsp1_Matrix_A_B: Restore Matrix_A_B_Dimension_Bsp1 Return Bsp2_Matrix_A_B: Restore Matrix_A_B_Dimension_Bsp2 Return