home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
64'er
/
64ER_CD.iso
/
sh3x
/
sh34c.d64
/
bruchrechnen
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
1995-03-30
|
7KB
|
188 lines
10 FORX=0TO29:READ Y:POKE49152+X,Y:NEXTX
15 REM MASCHINENPROGRAMM FUER SYSPR
20 PRINT"[147]":PR=49152:X=0:GOTO130
25 REM BLDSCHRM LOESCHEN, BESTIMMUNG VONPR, SPRUNG UEBER UNTERROUTINEN
30 SYSPR,ZE,SP,"FALSCH":FA=FA+1:FORI=1TO500:NEXTI
35 REM UNTERPROGRAMM FALSCHEINGABE
40 SYSPR,ZE,SP," ":RETURN
50 FORI=1TOL:SYSPR,9,1,CHR$(148):FORX=1TO10:NEXTX
55 REM UNTERPROGRAMM FUER VERSCHIEBUNG NACH RECHTS
60 SYSPR,10,1,CHR$(148):FORX=1TO10:NEXTX
70 SYSPR,11,1,CHR$(148):FORX=1TO8:NEXTX:NEXTI
80 RETURN
90 FORI=1TOL:SYSPR,09,1,CHR$(20):FORX=1TO10:NEXTX
95 REM UNTERPROGRAMM FUER VERSCHIEBUNG NACH LINKS
100 SYSPR,10,1,CHR$(20):FORX=1TO10:NEXTX
110 SYSPR,11,1,CHR$(20):FORX=1TO8:NEXTX:NEXTI:POKE1424,32
120 RETURN
130 FORI=1TO20:FORX=1TO100:NEXTX:SYSPR,10,10,"BRUCHRECHNEN"
135 REM ANFANGSBLDS.VIELLEICHT NICHT NOETIG JEDOCH KONZENTRATIONSVORBEREITUNG
140 SYSPR,12,10,"FUER CAROLIN"
150 SYSPR,14,9,"VON IHREM PAPA"
160 FORX=1TO100:NEXTX
165 REM HIER KANN DER FANTASIE FREIEN LAUF GELASSEN WERDEN
170 SYSPR,12,10," ":NEXTI
180 FOR AZ=1TO10:TI$="000000":R$=CHR$(43):IFAZ>5THENR$=CHR$(45)
182 REM UHR AUF NULL STELLEN
185 REM AZ=ANZAHL DER DURCHGAENGE, R$ FUER + ODER - NACH 5 DURCHLAEUFEN
190 A=INT(RND(0)*10):IFA=1ORA=0THEN190
195 REM BESTIMMUNG DES ERSTEN NENNERS, UNINTERESSANT WENN 1 ODER NULL
200 FORI=1TO A:NEXTI:B=INT(RND(0)*10):IFB=0ORB=1THEN200
205 REM BESTIMMUNG DES 2. NENNERS
210 FORI=1TOA:C=INT(RND(0)*10):IFC=0THEN210
215 REM BESTIMMUNG DES ERSTEN ZAEHLERS, KANN AUCH EINS SEIN
220 FORI=1TOA:D=INT(RND(0)*10):IFD=0THEN220
225 REM BESTIMMUNG DES 2. ZAEHLERS
230 IFA=CTHEN190
235 REM WENN NENNER GLEICH ZAEHLER UNINTERESSANT
240 IFB=DTHEN190
245 REM DAS GLEICHE
250 IFA=BTHEN190
255 REM WENN BEIDE NENNER GLEICH UNINTERESSANT
260 IFAZ>5AND(C/A)<(D/B)THEN190
265 REM NUR BEI - ERGEBNIS WIRD KUERZEN SCHWIERIG, WER KANN DAS LOESEN?
266 REM IN DEN ZEILEN AB 860 KOENNTE ENTSPRECHENDE ROUTINE EINGEBAUT WERDEN
270 PRINT"[147]":SYSPR,3,12,"BRUCHRECHNEN[154]"
275 REM ARBEITSBILDSCHIRM
280 SYSPR,10,3,"[192][192][192][192][192] ";R$;" [192][192][192][192][192] ="
285 REM AUSGABE DER BRUCHSTRICHE UND DES RECHENZEICHEN
290 SYSPR,10,21,"[192][192][192][192][192] ";R$;" [192][192][192][192][192]"
295 REM AUSGABE DES ARBEISBRUCHSTRICHES
300 SYSPR,9,4,C
305 REM AUSGABE DER ZAHLEN
310 SYSPR,9,12,D
320 SYSPR,11,4,A
330 SYSPR,11,12,B
340 F=0:Y=0
345 REM ZURUECKSTELLEN DER VARIABLEN
350 F=F+B:Y=Y+1:X=F/A:Z=INT(X+0.5):IFX=ZTHEN370
355 REM BESTIMMUNG DES HAUPTNENNERS, AUF DIESEM WEG WIRD DER NIEDRIGSTE GENOMMEN
360 GOTO 350
365 REM FALLS BEDINGUNG X=0 NOCHMALIGER DURCHLAUF
370 N=0
380 POKE214,11:POKE211,21:SYS58640:INPUTN
385 REM ABFRAGE DES HAUPTNENNERS
390 IFN<>FTHENZE=11:SP=20:GOSUB 30:GOTO380
395 REM FALLS UNRICHTIGE ANTWORT
400 SYSPR,11,20," ":SYSPR,11,22,F:SYSPR,11,30,F
405 REM WENN RICHTIG AUSGABE DES HAUPTNENNERS
410 POKE214,9:POKE211,21:SYS58640:INPUTN
415 REM ABFRAGE DES 1. ZAEHLERS
420 IFN<>F/A*CTHEN ZE=9:SP=20:GOSUB 30:GOTO 410
425 REM UEBERPRUEFUNG UND FALS FALSCH
440 SYSPR,9,20," ":SYSPR,9,22,N
445 REM ANTWORT RICHTIG UND AUSGABE
450 POKE214,9:POKE211,29:SYS58640:INPUTN
455 REM ABFRAGE DES 2. ZAEHLERS
460 IFN<>Y*DTHEN ZE=9:SP=29:GOSUB 30:GOTO 450
465 REM UEBERPRUEFUNG DES 2. ZAEHLERS UND FALS FALSCH FEHLERMELDUNG
470 SYSPR,9,27," ":SYSPR,9,30,N
475 REM ANTWORT RICHTIG UND AUSGABE
480 L=18:GOSUB90:L=0
485 REM RECHNUNG NACH LINKS WEGSCROLLEN
490 SYSPR,10,17,"= [192][192][192][192][192][192]":SYSPR,11,19,F
495 REM AUSGABE DES NAECHSTEN ARBEITSBRUCHSTRICHES UND HAUPTNENNERS
500 POKE214,9:POKE211,18:SYS58640:INPUTN
505 REM EINGABE DES GEMEINSAMEN ZAEHLERS
510 IFR$=CHR$(43)THEN GOTO 950
515 REM SPRUNG IN UNTERROUTINE +
520 IFN=F/A*C-Y*DTHEN540
525 REM WENN RICHTIG DANN WEITER
530 ZE=9:SP=17:GOSUB30:GOTO500
535 REM WENN FALSCH
540 SYSPR,9,18," ":SYSPR,9,19,N
550 L=18:GOSUB90:L=8:GOSUB50:L=0
555 REM VERSCHIEBEN
560 Z=N:G=N:E=F
570 R=G-INT(G/E)*E:G=E:E=R:IFR>0THEN570
575 REM KANN MAN KUERZEN? WENN NICHT UEBER KUERZROUTINE SPRINGEN
580 ZA=Z/G:NE=F/G
585 REM BESTIMMUNG VON ZAEHLER UND NENNER
590 POKE214,14:POKE211,5:SYS58640:INPUT"KANN MAN KUERZEN (J/N)";F$
600 IFF$=CHR$(74)ORF$=CHR$(78)THEN620
605 REM FALLS EINE ANDERE ANTWORT MIT FOLGENDER ZEILE RICHTIGE ANTWORT ERZWINGEN
610 GOTO 590
620 IF F$=CHR$(74)ANDG>1THEN680
630 IF F$=CHR$(74)ANDG=1THEN660
640 IF F$=CHR$(78)ANDG>1THEN660
650 IF F$=CHR$(78)ANDG=1THEN FORI=1TO300:NEXTI:GOTO810
655 REM ENTSPRECHEND DER ANTWORT UND RICHTIGKEIT VERZWEIGEN
660 SYSPR,14,5,"DU HAST DICH GEIRRT! ":FORI=1TO600:NEXTI:FA=FA+1
670 SYSPR,14,5," ":GOTO 590
675 REM UNRICHTIGE ANTWORT
680 SYSPR,14,5," "
685 REM RICHTIGE ANTWORT, LOESCHEN DER FRAGE
690 POKE214,14:POKE211,5:SYS58640:INPUT"MIT WELCHEM WERT";W
695 REM ABFRAGE WELCHER WERT GENOMMEN WERDEN KANN
700 IF W=G THEN730
705 REM RICHTIGE ANTWORT
710 SYSPR,14,5,"ES GIBT EINEN BESSEREN!":FORI=1TO500:NEXTI:FA=FA+1
715 REM FALSCHE ANTWORT
720 SYSPR,14,5," ":GOTO 680
725 REM LOESCHEN UND NEUABFRAGE
730 SYSPR,10,14," = [192][192][192][192][192]"
735 REM AUSGABE DES NAECHSTEN BRUCHSTRICHES
740 SYSPR,14,5," "
745 REM LOESCHEN DER FRAGE
750 POKE214,9:POKE211,17:SYS58640:INPUTN:IFN=ZATHEN 770
755 REM ABFRAGE DES ZAELERS. WENN RICHTIG SPRUNG
760 SYSPR,9,16,"FALSCH":FORI=1TO200:NEXTI:SYSPR,9,16," ":GOTO750
765 REM ANTWORT FALSCH
770 SYSPR,9,16," ":SYSPR,9,18,N
780 POKE214,11:POKE211,17:SYS58640:INPUTN:IFN=NE THEN800
785 REM ABFRAGE DES NENNERS. WENN RICHTIG SPRUNG
790 ZE=11:SP=16:GOSUB 30:GOTO780
795 REM ANTWORT FALSCH
800 SYSPR,11,16," ":SYSPR,11,18,N
805 REM AUSGABE DES RICHTIGEN NENNERS
810 G=INT(ZA/NE):IFG>0THENN=ZA-G*NE
815 REM BESTIMMUNG DER GANZZAHL
820 SYSPR,16,10,"PRIMA GEMACHT":FORI=1TO500:NEXTI
825 REM ZWISCHENBELOBIGUNG
830 IFG=0THEN GOTO 930
835 REM WENN GANZZAHL NULL WEITERARBEIT UNINTERESSANT
840 SYSPR,10,23,"= [192][192][192][192]":X=N:Y=NE
845 REM AUSGABE DES NAECHSTEN BRUCHSTRICHES
850 POKE214,10:POKE211,24:SYS58640:INPUTN$:X$=LEFT$(N$,2):A=VAL(X$)
855 REM DA DIE EINGABE DES BRUCHSTRICHES WG NICHT NUMMERISCH ERFOLGEN KANN MUSS
856 REM DIE EINGABE UMGEWANDELT WERDEN VON STRING IN NUMMERISCH
860 IFA=G THEN880
865 REM WERT STIMMMT UND SPRUNG
870 ZE=10:SP=24:GOSUB30:GOTO840
875 REM FALSCHE ANTWORT
880 POKE1448,32:SYSPR,11,28,Y
885 REM DAS FRAGEZEICHEN WEG UND AUSGABE DES NENNERS
890 N=0: POKE211,28:POKE214, 9:SYS58640:INPUTN
895 REM ABFRAGE DES ZAEHLERS
900 IFN=XTHEN930
905 REM WENN RICHTIG SPRUNG
910 ZE=9:SP=27:GOSUB30:GOTO890
915 REM FALSCHEINGABE
920 :
930 GOSUB980:NEXTAZ:SYSPR,14,10," E N D E [146]":WAIT198,1
935 REM WENN DER ZEHNTE DURCHLAUF NICHT ERREICHT IST WIEDER AN DEN ANFANG
936 REM VORHER NOCH AUSGABE DER FEHLER UND VERBRAUCHTEN ZEIT
940 GOTO 1020
950 IFN=Y*D+F/A*CTHEN970
955 REM UNTERPROGRAMM FUER PLUSRECHNUNG
960 ZE=9:SP=18:GOSUB30:GOTO500
970 GOTO540
975 REM RUECKSPRUNG DA VON HIERAN EGAL OB PLUS ODER MINUSRECHNUG
980 FORI=1TO500:NEXTI:PRINT"[147]":SYSPR,10,2,"DU HAST ";FA;"[146] FEHLER GEMACHT"
985 REM AUSGABE DER FEHLER UND VERBRAUCHTEN ZEIT
990 MI$=MID$(TI$,3,2):SE$=MID$(TI$,5,2)
995 REM DA NUR SEC UND MIN INTERESSANT AUCH NUR DIESE AUSGABE
1000 SYSPR,12,2,"UND ";MI$;"[146] MIN, ";SE$;"[146] SEK. GEBRAUCHT!":FA=0
1010 WAIT198,1:FORI=0TO9:POKE631+I,0:NEXTI:RETURN
1015 REM AUF TASTENDRUCK WARTEN UND DIE EINGABE IM TASTATURPUFFER LOESCHEN
1020 FORI=1TO1000:NEXTI:PRINT"[147]":SYSPR,10, 6,"WILLST DU NOCHMAL? (J/N)";
1030 INPUTN$:IFN$=CHR$(74)THENAZ=0:FA=0:GOTO 20
1035 REM WENN NOCHMAL NATUERLICH DIE FEHLER LOESCHEN UND AN DEN ANFANG OHNE
1036 REM DAS MASCHINENPROGRAMM NEU ZU SCHREIBEN
1040 DATA32,253,174,32,158,183,138,72,32
1045 REM DAS MASCHINENPROGRAMM IN DATAS
1050 END
1060 DATA 253,174,32,158,183,138,168,104,170
1070 DATA 24,32,240,255,32,253,174,76,160
1080 DATA 170,0,0