-
Notifications
You must be signed in to change notification settings - Fork 11
/
Copy pathMATHE.bc
159 lines (159 loc) · 6.12 KB
/
MATHE.bc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
1000 A=100:GOTO20:REM * MATHETRAINING *
1010 DIMA$(20),SR$(3),TE$(23):ZV=0
1020 SR$="MATHETRAINING GRUNDRECHENARTEN":HO=0:GOSUB150:HO=6
1030 FORI=4 TO20 STEP2:VE=I
1040 A$(4)="1 = Addition":A$(6)="2 = Subtraktion"
1050 A$(8)="3 = Multiplikation":A$(10)="4 = Division"
1060 A$(12)="5 = Anwenderhinweise":A$(14)="6 = Programmende"
1070 A$(16)="":A$(18)=""
1080 A$(20)=" BITTE DEINE WAHL !"
1090 GOSUB110:PRINTA$(I):NEXTI
1100 M1=0:M2=0:GOSUB200:IF(IN<49)OR(IN>54) THEN1100
1110 IFIN=49 THEN2010:REM ADDITION
1120 IFIN=50 THEN2510:REM SUBTRAKTION
1130 IFIN=51 THEN3010:REM MULTIPLIKATION
1140 IFIN=52 THEN3510:REM DIVISION
1150 IFIN=53 THEN4510:REM ANWENDER-INFO
1160 IFIN=54 THEN GOSUB250:GOTO950:REM PROGRAMMENDE
1170 REM -------------------------------
2000 REM **** ADDITION ****
2010 SR$=" A D D I T I O N ":P1=1
2020 T1$="der Summanden"
2030 T2$="1.Summand":T3$="2.Summand":VZ$="+"
2040 GOSUB4010:GOTO1020
2050 REM -------------------------------
2500 REM **** SUBTRAKTION ****
2510 SR$=" S U B T R A K T I O N ":P1=2
2520 T1$="Minuent/Subtrah."
2530 T2$="Minuend :":T3$="Subtrahent:":VZ$="-"
2540 GOSUB4010:GOTO1020
2550 REM -------------------------------
3000 REM **** MULTIPLIKATION ****
3010 SR$=" M U L T I P L I K A T I O N ":P1=3
3020 T1$="der Faktoren"
3030 T2$="1.Faktor":T3$="2.Faktor":VZ$="*"
3040 GOSUB4010:GOTO1020
3050 REM -------------------------------
3500 REM **** DIVISION ****
3510 SR$=" D I V I S I O N ":P1=4
3520 T1$="Divident/Divisor"
3530 T2$="Divident":T3$="Divisor":VZ$=":"
3540 GOSUB4010:GOTO1020
3550 REM -------------------------------
4000 REM **** ROUTINEN ****
4010 GOSUB100:HO=1:VE=0:GOSUB110
4020 GOSUB150:VE=2:HO=0:GOSUB110
4030 PRINT:PRINT"Lege die obere Grenze ";T1$
4040 PRINT"fest":VE=6:GOSUB110:
4050 PRINTT2$;:INPUTM1
4060 PRINTT3$;:INPUTM2
4070 PRINT:PRINT"Sind die Eingaben richtig ? (j/n)"
4080 VE=9:HO=34:GOSUB110:GOSUB210
4090 IFIN$<>"j" THEN4010
4100 GOSUB100:HO=1:VE=0:GOSUB110
4110 GOSUB150:VE=3:HO=0:GOSUB110
4120 PRINT"Maximalwert 1.Eingabe:";M1
4130 PRINT"Maximalwert 2.Eingabe:";M2
4140 PRINT:PRINT"Ich stelle dir jetzt 10 Aufgaben":VE=8
4150 FORI=1 TO10
4160 GOSUB5010:REM ZUFALLSZAHLEN
4170 HO=1:VE=VE+1:GOSUB110
4180 PRINTI;". ";Z1;VZ$;Z2;"=";:INPUTZE
4190 IFZE=Z3 THENZV=ZV+1:HO=25:GOSUB110:PRINT"OK!":GOTO4210
4200 HO=25:GOSUB110:GOSUB250:PRINT"FALSCH !";Z3
4210 ZE=0:NEXTI
4220 GOSUB5410:VE=VE+1
4230 FORI=1 TO3:HO=0:VE=VE+1:GOSUB110:SR$=SR$(I):GOSUB150
4240 NEXTI
4250 VE=23:HO=15:GOSUB110:PRINT"Weiter --> eine Taste"
4260 GOSUB200:IFIN$="" THEN4250
4270 GOSUB100:RETURN
4280 REM -------------------------------
4500 REM ANWENDERINORMATIONEN
4510 SR$=" ANWENDERINFORMATIONEN "
4520 GOSUB100:VE=0:HO=2:GOSUB110:GOSUB150
4530 FORI=2 TO23:VE=I:HO=0:GOSUB110
4540 READTE$(I):PRINTTE$(I)
4550 NEXTI:GOSUB250
4560 GOSUB200:IFIN$="" THEN4560
4570 RESTORE:GOSUB100:GOTO1020
4580 REM ------------------------------
5000 REM ****** ZUFALLSZAHLEN *******
5010 GOSUB260:Z1=INT(RV*M1)+1
5020 GOSUB260:Z2=INT(RV*M2)+1
5030 IFP1=1 THENZ3=Z1+Z2:RETURN
5040 IFP1=2 THENZ3=Z1-Z2:RETURN
5050 IFP1=3 THENZ3=Z1*Z2:RETURN
5060 IFP1=4 THEN GOSUB5110:Z3=Z1/Z2
5070 IFZ3<>INT(Z3) THEN5010
5080 RETURN
5090 REM -------------------------------
5100 REM **** PRUEFEN ****
5110 IFZ1<Z2 THENZ4=Z2:Z5=Z1:Z1=Z4:Z2=Z5
5130 IFZ2=0 THENZ2=3:GOTO5110
5140 RETURN
5150 REM -------------------------------
5400 REM *** AUSWERTUNG ***
5410 SR=ZV:GOSUB300:V$=SR$:IFZV=10 THEN5460
5420 IFZV>7 THEN5500
5430 IFZV>5 THEN5540
5440 IFZV>0 THEN5580
5450 GOTO5620
5460 SR$(1)="Prima,du hast alles richtig geloest!"
5470 SR$(2)="Trotzdem, mache es dir mal nicht so "
5480 SR$(3)="leicht, du kannst noch viel mehr ! "
5490 ZV=0:RETURN
5500 SR$(1)="Naja war doch ganz gut. Du hast "+V$
5510 SR$(2)="Aufgaben richtig geloest ! Trotzdem,"
5520 SR$(3)="Du kannst noch besser werden ! "
5530 ZV=0:RETURN
5540 SR$(1)="Na,ich glaube du muesstest wieder "
5550 SR$(2)="mal ins Mathebuch sehen! Nur "+V$+" rich-"
5560 SR$(3)="tige Loesungen sollten dich warnen !"
5570 ZV=0:RETURN
5580 SR$(1)="Ganz schoen mies ! Du hast nur "+V$
5590 SR$(2)="Aufgaben richtig geloest! Ich rate "
5600 SR$(3)="dir,versuche es mal etwas einfacher"
5610 ZV=0:RETURN
5620 SR$(1)="Du bist ja eine absolute NIETE !!! "
5630 SR$(2)="Keine(!) Aufgabe hast du geschafft!"
5640 SR$(3)="Fang noch mal ganz von vorne an! "
5650 ZV=0:RETURN
5660 REM -------------------------------
25000 REM DATA - ZEILEN
25010 DATA"Mit diesem, auch etwas lustigem Pro-"
25020 DATA"gramm kannst du die 4 Grundrechenarten"
25030 DATA"ueben. Dazu musst du zum Anfang den ge-"
25040 DATA"wuenschten Zahlenbereich eingeben. Der"
25050 DATA"Computer stellt dir dann 10 Aufgaben"
25060 DATA"der gewuenschten Rechenart. Tippe dein"
25070 DATA"Ergebnis ein und quittiere mit <ENTER>"
25080 DATA"Bei einem Fehler erscheint hinter der"
25090 DATA"Fehlermeldung das richtige Ergebnis."
25100 DATA"Wenn du alle 10 Aufgaben geloest hast,"
25110 DATA"bewertet der Computer noch deine "
25120 DATA"Leistung und gibt dir auch einige Tips."
25130 DATA"Zu beachten ist, dass auch der negative"
25140 DATA"Zahlenbereich zur Anwendung kommt."
25150 DATA"Um bei der Division im Bereich der"
25160 DATA"ganzen Zahlen zu bleiben, wurde ein"
25170 DATA"Pruefteil mit eingebaut. Dadurch kann"
25180 DATA"es bei groesseren Zahlen eine Weile "
25190 DATA"dauern bis die Aufgabe erscheint."
25200 DATA" Na dann, viel Spass !"
25210 DATA""," MENUE --> Taste"
32000 REM *****************************
32010 REM * *
32020 REM * AUTOR: BURKHARDT PREUSS *
32030 REM * H.-BEIMLER-STR.20 *
32040 REM * FRANKFURT (ODER) *
32050 REM * 1200 *
32060 REM * *
32070 REM * DIESES PROGRAMM WURDE AM *
32080 REM * 17.01.1990 AUF EINEM *
32090 REM * C64 ERSTELLT. *
32100 REM * *
32110 REM *****************************
32120 REM
32130 REM Erstausstrahlung: Radio DDR
32140 REM 900207