home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
64'er
/
64ER_CD.iso
/
86xx
/
8605.d64
/
matrimult
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
1995-03-30
|
2KB
|
86 lines
10 REM ***** MATRIZENMULTIPLIKATION *****
20 POKE 53280,0:POKE 53281,0
30 REM ----- EINGABE DER PARAMETER -----
40 PRINTCHR$(147)CHR$(17)CHR$(17)CHR$(18)"PARAMETER DER MATRIZEN:"
50 PRINTCHR$(17)CHR$(17)"NAME DER 1.MATRIX"TAB(32);:INPUTA$
60 PRINT"ANZAHL SPALTEN(S1) U. ZEILEN(Z1)"TAB(31);:INPUTS1,Z1
70 PRINTCHR$(17)"NAME DER 2.MATRIX"TAB(32);:INPUTB$
80 PRINT"ANZAHL SPALTEN(S2) U. ZEILEN(Z2)"TAB(31);:INPUTS2,Z2
90 PRINTCHR$(17)CHR$(17)"FUER DIE AUSGABE DER MATRIX GEBEN SIE BITTE AN:"
100 PRINT"VERWENDEN SIE EINEN 80-ZEICHEN-BILDSCHIRM (J/N)"
110 GETD$:IF D$<>"J" AND D$<>"N" THEN 110
120 IF D$="J" THEN S=2
130 S=1
140 REM ----- PRUEFUNG AUF ZULAESSIGKEIT -----
150 IFS1<>Z2THEN PRINTCHR$(17)CHR$(17)CHR$(18)"S1 MUSS GLEICH Z2 SEIN !":GOTO50
160 REM ---- ARRAY-DEFINITIONEN ----
170 DIMA(Z1,S1),B(Z2,S2),C(Z1,S2)
180 REM ---- EINGABE DER ELEMENTE: 1.MATRIX ----
190 PRINTCHR$(147)
200 FOR I=1 TO Z1:REM ZEILENINDEX
210 :FOR J=1 TO S1:REM SPALTENINDEX
220 ::PRINTA$"("I","J") ="TAB(20);:INPUTA(I,J)
230 :NEXT J
240 NEXT I
250 REM ------------------------- 2.MATRIX ----
260 PRINTCHR$(17)CHR$(17)
270 FOR I=1 TO Z2
280 :FOR J=1 TO S2
290 ::PRINTB$"("I","J") ="TAB(20);:INPUTB(I,J)
300 :NEXT J
310 NEXT I
320 REM ---- BERECHNUNG ERGEBNISMATRIX ----
330 FOR I=1 TO Z1
340 :FOR J=1 TO S2:C(I,J)=0
350 ::FOR K=1 TO S1
360 :::C(I,J)=C(I,J)+A(I,K)*B(K,J)
370 ::NEXT K
380 :NEXT J
390 NEXT I
400 REM ---- MATRIXANZEIGE MENUE ----
410 PRINTCHR$(147)
420 PRINTCHR$(17)CHR$(17)CHR$(17)CHR$(18)"MATRIX ZEIGEN:"
430 PRINTCHR$(17)CHR$(17)"MATRIX"TAB(12)A$TAB(25)"1"
440 PRINTCHR$(17)"MATRIX"TAB(12)B$TAB(25)"2"
450 PRINTCHR$(17)"ERGEBNIS-MATRIX"TAB(25)"3"
460 PRINTCHR$(17)"PROGRAMMENDE"TAB(25)"4"
470 PRINTCHR$(17)CHR$(17)CHR$(17)CHR$(18)"BITTE AUSWAEHLEN !"
480 GETC$:IF C$<"1" OR C$>"4" THEN 480
490 ON VAL(C$) GOSUB 570,670,770,550
500 PRINTCHR$(17)CHR$(18)"ZUM MENUE _ DRUECKEN"
510 GETC$:IF C$<>"_" THEN 510
520 GOTO 420
530 REM ***** UNTERPROGRAMME *****
540 REM ---- PROGRAMMENDE ----
550 END
560 REM ---- AUSGABE DER 1.MATRIX ----
570 PRINTCHR$(17)CHR$(17)CHR$(18)A$
580 PRINTCHR$(17)CHR$(17)
590 FOR I=1 TO Z1
600 :FOR J=1TO S1
610 ::PRINTTAB(INT((S*40-5)/S1)*(J-1))A(I,J);
620 :NEXT J
630 :PRINT:PRINT
640 NEXT I
650 RETURN
660 REM ---- AUSGABE DER 2.MATRIX ----
670 PRINTCHR$(17)CHR$(17)CHR$(18)B$
680 PRINTCHR$(17)CHR$(17)
690 FOR I=1 TO Z2
700 :FOR J=1 TO S2
710 ::PRINTTAB(INT((S*40-5)/S2)*(J-1))B(I,J);
720 :NEXT J
730 :PRINT:PRINT
740 NEXT I
750 RETURN
760 REM ---- AUSGABE DER ERGEBNISMATRIX ----
770 PRINTCHR$(17)CHR$(17);:C$=A$+"*"+B$:PRINTCHR$(18)C$
780 PRINTCHR$(17)CHR$(17)
790 FOR I=1 TO Z1
800 :FOR J=1 TO S2
810 ::PRINTTAB(INT((S*40-5)/S2)*(J-1))C(I,J);
820 :NEXT J
830 :PRINT:PRINT
840 NEXT I
850 RETURN