00000000: 70 72 6F 67 72 61 6D 20 6D 61 74 6D 75 6C 74 3B |program matmult;|
00000010: 0D 28 2A 20 6D 75 6C 74 69 70 6C 69 6B 61 74 69 |.(* multiplikati|
00000020: 6F 6E 20 76 6F 6E 20 7A 77 65 69 20 20 2A 29 0D |on von zwei *).|
00000030: 28 2A 20 6D 61 74 69 7A 65 6E 20 76 6F 72 67 65 |(* matizen vorge|
00000040: 67 65 62 65 6E 65 72 20 67 72 6F 65 73 73 65 20 |gebener groesse |
00000050: 2A 29 0D 63 6F 6E 73 74 20 6E 3D 35 3B 0D 20 20 |*).const n=5;. |
00000060: 20 20 20 20 6D 3D 33 3B 0D 20 20 20 20 20 20 6C | m=3;. l|
00000070: 3D 34 3B 0D 74 79 70 65 20 61 31 3D 61 72 72 61 |=4;.type a1=arra|
00000080: 79 5B 31 2E 2E 6E 2C 31 2E 2E 6D 5D 20 6F 66 20 |y[1..n,1..m] of |
00000090: 72 65 61 6C 3B 0D 20 20 20 20 20 62 31 3D 61 72 |real;. b1=ar|
000000A0: 72 61 79 5B 31 2E 2E 6D 2C 31 2E 2E 6C 5D 20 6F |ray[1..m,1..l] o|
000000B0: 66 20 72 65 61 6C 3B 0D 20 20 20 20 20 63 31 3D |f real;. c1=|
000000C0: 61 72 72 61 79 5B 31 2E 2E 6E 2C 31 2E 2E 6C 5D |array[1..n,1..l]|
000000D0: 20 6F 66 20 72 65 61 6C 3B 0D 76 61 72 20 61 3A | of real;.var a:|
000000E0: 61 31 3B 0D 20 20 20 20 62 3A 62 31 3B 0D 20 20 |a1;. b:b1;. |
000000F0: 20 20 63 3A 63 31 3B 0D 70 72 6F 63 65 64 75 72 | c:c1;.procedur|
00000100: 65 20 65 69 6E 67 65 62 65 6E 28 76 61 72 20 78 |e eingeben(var x|
00000110: 3A 61 31 3B 20 76 61 72 20 79 3A 62 31 29 3B 0D |:a1; var y:b1);.|
00000120: 76 61 72 20 69 2C 6A 3A 69 6E 74 65 67 65 72 3B |var i,j:integer;|
00000130: 0D 62 65 67 69 6E 0D 20 20 77 72 69 74 65 6C 6E |.begin. writeln|
00000140: 28 27 62 69 74 74 65 20 27 2C 6E 2C 27 20 6B 72 |('bitte ',n,' kr|
00000150: 65 75 7A 20 27 2C 6D 2C 27 20 6D 61 74 72 69 78 |euz ',m,' matrix|
00000160: 20 65 69 6E 67 65 62 65 6E 27 29 3B 0D 20 20 66 | eingeben');. f|
00000170: 6F 72 20 69 3A 3D 31 20 74 6F 20 6E 20 64 6F 0D |or i:=1 to n do.|
00000180: 20 20 20 20 20 20 66 6F 72 20 6A 3A 3D 31 20 74 | for j:=1 t|
00000190: 6F 20 6D 20 64 6F 20 72 65 61 64 20 28 78 5B 69 |o m do read (x[i|
000001A0: 2C 6A 5D 29 3B 0D 20 20 77 72 69 74 65 6C 6E 28 |,j]);. writeln(|
000001B0: 27 62 69 74 74 65 20 27 2C 6D 2C 27 20 6B 72 65 |'bitte ',m,' kre|
000001C0: 75 7A 20 27 2C 6C 2C 27 20 6D 61 74 72 69 78 20 |uz ',l,' matrix |
000001D0: 65 69 6E 67 65 62 65 6E 27 29 3B 0D 20 20 66 6F |eingeben');. fo|
000001E0: 72 20 69 3A 3D 31 20 74 6F 20 6D 20 64 6F 0D 20 |r i:=1 to m do. |
000001F0: 20 20 20 20 20 66 6F 72 20 6A 3A 3D 31 20 74 6F | for j:=1 to|
00000200: 20 6C 20 64 6F 20 72 65 61 64 28 79 5B 69 2C 6A | l do read(y[i,j|
00000210: 5D 29 3B 0D 65 6E 64 3B 0D 70 72 6F 63 65 64 75 |]);.end;.procedu|
00000220: 72 65 20 6D 75 6C 74 69 70 6C 69 7A 69 65 72 65 |re multipliziere|
00000230: 6E 20 28 66 31 3A 61 31 3B 20 66 32 3A 62 31 3B |n (f1:a1; f2:b1;|
00000240: 20 76 61 72 20 70 72 6F 64 75 6B 74 3A 63 31 29 | var produkt:c1)|
00000250: 3B 0D 76 61 72 20 69 2C 6A 3A 20 69 6E 74 65 67 |;.var i,j: integ|
00000260: 65 72 3B 0D 66 75 6E 63 74 69 6F 6E 20 6D 75 6C |er;.function mul|
00000270: 74 20 28 66 31 3A 61 31 3B 20 66 32 3A 62 31 3B |t (f1:a1; f2:b1;|
00000280: 20 76 61 72 20 69 2C 6A 3A 69 6E 74 65 67 65 72 | var i,j:integer|
00000290: 29 3A 20 72 65 61 6C 3B 0D 76 61 72 20 64 3A 72 |): real;.var d:r|
000002A0: 65 61 6C 3B 0D 20 20 20 20 6B 3A 69 6E 74 65 67 |eal;. k:integ|
000002B0: 65 72 3B 0D 62 65 67 69 6E 0D 20 20 20 64 3A 3D |er;.begin. d:=|
000002C0: 30 2E 30 3B 0D 20 20 20 66 6F 72 20 6B 3A 3D 31 |0.0;. for k:=1|
000002D0: 20 74 6F 20 6D 20 64 6F 20 64 3A 3D 64 2B 66 31 | to m do d:=d+f1|
000002E0: 5B 69 2C 6B 5D 2A 66 32 5B 6B 2C 6A 5D 29 3B 0D |[i,k]*f2[k,j]);.|
000002F0: 20 20 20 6D 75 6C 74 3A 3D 64 3B 0D 65 6E 64 3B | mult:=d;.end;|
00000300: 0D 62 65 67 69 6E 0D 20 20 20 66 6F 72 20 69 3A |.begin. for i:|
00000310: 3D 31 20 74 6F 20 6E 20 64 6F 0D 20 20 20 20 20 |=1 to n do. |
00000320: 20 20 66 6F 72 20 6A 3A 3D 31 20 74 6F 20 6C 20 | for j:=1 to l |
00000330: 64 6F 20 70 72 6F 64 75 6B 74 5B 69 2C 6A 5D 3A |do produkt[i,j]:|
00000340: 3D 6D 75 6C 74 28 66 31 2C 66 32 2C 69 2C 6A 29 |=mult(f1,f2,i,j)|
00000350: 0D 65 6E 64 3B 0D 70 72 6F 63 65 64 75 72 65 20 |.end;.procedure |
00000360: 61 75 73 67 65 62 65 6E 20 28 76 61 72 20 63 3A |ausgeben (var c:|
00000370: 63 31 29 3B 0D 76 61 72 20 69 2C 6A 3A 20 69 6E |c1);.var i,j: in|
00000380: 74 65 67 65 72 3B 0D 62 65 67 69 6E 0D 20 20 20 |teger;.begin. |
00000390: 77 72 69 74 65 6C 6E 28 27 65 72 67 65 62 6E 69 |writeln('ergebni|
000003A0: 73 20 64 65 72 20 6D 75 6C 74 69 70 6C 69 6B 61 |s der multiplika|
000003B0: 74 69 6F 6E 27 29 3B 0D 20 20 20 66 6F 72 20 69 |tion');. for i|
000003C0: 3A 3D 31 20 74 6F 20 6E 20 64 6F 0D 20 20 20 62 |:=1 to n do. b|
000003D0: 65 67 69 6E 0D 20 20 20 20 20 20 66 6F 72 20 6A |egin. for j|
000003E0: 3A 3D 31 20 74 6F 20 6C 20 64 6F 20 77 72 69 74 |:=1 to l do writ|
000003F0: 65 20 28 63 5B 69 2C 6A 5D 3A 38 3A 32 29 3B 0D |e (c[i,j]:8:2);.|
00000400: 20 20 20 20 20 20 77 72 69 74 65 6C 6E 3B 0D 20 | writeln;. |
00000410: 20 20 65 6E 64 3B 0D 65 6E 64 3B 0D 62 65 67 69 | end;.end;.begi|
00000420: 6E 0D 20 20 20 65 69 6E 67 65 62 65 6E 28 61 2C |n. eingeben(a,|
00000430: 62 29 3B 0D 20 20 20 6D 75 6C 74 69 70 6C 69 7A |b);. multipliz|
00000440: 69 65 72 65 6E 28 61 2C 62 2C 63 29 3B 0D 20 20 |ieren(a,b,c);. |
00000450: 20 61 75 73 67 65 62 65 6E 28 63 29 0D 65 6E 64 | ausgeben(c).end|
00000460: 2E 0D |.. |
PROGRAM MATMULT;.(* MULTIPLIKATION VON Z
WEI *).(* MATIZEN VORGEGEBENER GROESSE
*).CONST N=5;. M=3;. L=4;.TYPE
A1=ARRAY[1..N,1..M] OF REAL;. B1=AR
RAY[1..M,1..L] OF REAL;. C1=ARRAY[1.
.N,1..L] OF REAL;.VAR A:A1;. B:B1;.
C:C1;.PROCEDURE EINGEBEN(VAR X:A1; VAR
Y:B1);.VAR I,J:INTEGER;.BEGIN. WRITELN
('BITTE ',N,' KREUZ ',M,' MATRIX EINGEBE
N');. FOR I:=1 TO N DO. FOR J:=1 T
O M DO READ (X[I,J]);. WRITELN('BITTE '
,M,' KREUZ ',L,' MATRIX EINGEBEN');. FO
R I:=1 TO M DO. FOR J:=1 TO L DO RE
AD(Y[I,J]);.END;.PROCEDURE MULTIPLIZIERE
N (F1:A1; F2:B1; VAR PRODUKT:C1);.VAR I,
J: INTEGER;.FUNCTION MULT (F1:A1; F2:B1;
VAR I,J:INTEGER): REAL;.VAR D:REAL;.
K:INTEGER;.BEGIN. D:=0.0;. FOR K:=1
TO M DO D:=D+F1[I,K]*F2[K,J]);. MULT:
=D;.END;.BEGIN. FOR I:=1 TO N DO.
FOR J:=1 TO L DO PRODUKT[I,J]:=MULT(F1
,F2,I,J).END;.PROCEDURE AUSGEBEN (VAR C:
C1);.VAR I,J: INTEGER;.BEGIN. WRITELN(
'ERGEBNIS DER MULTIPLIKATION');. FOR I
:=1 TO N DO. BEGIN. FOR J:=1 TO L
DO WRITE (C[I,J]:8:2);. WRITELN;.
END;.END;.BEGIN. EINGEBEN(A,B);. M
ULTIPLIZIEREN(A,B,C);. AUSGEBEN(C).END
..
×
C64 Image
> CLICK IMAGE PREVIEW FOR FULL MODAL