-
Notifications
You must be signed in to change notification settings - Fork 11
/
B18_Rekenen.bc3
301 lines (300 loc) · 10.1 KB
/
B18_Rekenen.bc3
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
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
1000 A=700:GOTO20:REM ** REKENEN **
1010 GOSUB8010:REM ** LOGO **
1020 REM ** MENU **
1030 A=0:G=0:S=0:F=0:R=0:T=0:A$=""
1040 GOSUB100:HO=18:VE=1:GOSUB110:PRINT"MENU"
1050 VE=2:GOSUB110:PRINT"----"
1060 VE=4:HO=8:GOSUB110:PRINT"1.OPTELLEN"
1070 VE=6:GOSUB110:PRINT"2.AFTREKKEN"
1080 VE=8:GOSUB110:PRINT"3.VERMENIGVULDIGEN"
1090 VE=10:GOSUB110:PRINT"4.DELEN"
1100 VE=12:GOSUB110:PRINT"5.WORTELTREKKEN"
1110 VE=14:GOSUB110:PRINT"6.MACHTSVERHEFFEN"
1120 VE=16:GOSUB110:PRINT"7.STOPPEN"
1130 HO=6:VE=20:GOSUB110:PRINT"MAAK NU JE KEUZE ";W$
1140 GOSUB210:A=VAL(IN$)
1150 IF(A<1)OR(A>7)THEN1140
1160 ONA GOTO2010,2030,3010,3030,4010,4030,9010
2000 REM ** OPTELLEN **
2010 A$="+":GOSUB8530:GOTO2040
2020 REM ** AFTREKKEN **
2030 A$="-":GOSUB8530
2040 GOSUB6210
2050 FORT=1 TO20
2060 GOSUB260:B=RV:GOSUB260:C=RV:H=1:S=0
2070 IFB<.1 THENB=B*10
2080 IFC<.1 THENC=C*10
2090 GOSUB5010
2100 HO=3:VE=5:GOSUB110:PRINT"OPGAVE ";T
2110 REM ** PRINT OPDRACHT **
2120 HO=2:VE=7:GOSUB110
2130 PRINT" ";D;" ";A$;" ";E;" = ";
2140 REM ** INVOER ANTWOORD **
2150 INPUTG$:G=VAL(G$)
2160 IFA$="+" THEN2180
2170 IFABS(D-E-G)<.1/H THEN2300
2180 IFABS(D+E-G)<.1/H THEN2300
2190 REM ** FOUT ANTWOORD **
2200 VE=9:HO=3:GOSUB110:PRINT"fout, ";W$;
2210 F=F+1:REM ** AANTAL FOUTEN **
2220 IFS=2 THENS=0:GOTO2330
2230 S=S+1:PRINT" probeer het nog eens";
2240 SD=20:GOSUB450
2250 FORI=6 TO10
2260 HO=2:VE=I:GOSUB110
2270 PRINT" "
2280 NEXTI:GOTO2120
2290 REM ** ANTWOORD GOED **
2300 R=R+1:VE=9:HO=3:GOSUB110:PRINT"goed zo, ";W$
2310 GOTO2350
2320 REM ** ANTWOORD BIJ TWEEMAAL FOUT **
2330 IFA$="-" THENPRINT" het antwoord is ";D-E
2340 IFA$="+" THENPRINT" het antwoord is ";D+E
2350 IFT=20 THEN2390
2360 REM ** VOLGENDE OPGAVE **
2370 VE=12:HO=2:GOSUB110
2380 PRINT" nu de volgende opgave";
2390 SD=20:GOSUB450:GOSUB7010:NEXTT
2400 GOTO6010
3000 REM ** VERMENIGVULDIGEN **
3010 A$="X":GOSUB8530:GOTO3040
3020 REM ** DELEN **
3030 A$=":":GOSUB8530
3040 GOSUB6210
3050 FORT=1 TO20
3060 GOSUB260:B=RV:GOSUB260:C=RV:H=1:S=0
3070 IFB<.1 THENB=B*10
3080 IFC<.1 THENC=C*10
3090 GOSUB7010:GOSUB5010
3100 IFA$=":" THEND=D*E
3110 HO=3:VE=5:GOSUB110:PRINT"OPGAVE ";T
3120 REM ** PRINT OPGAVE **
3130 HO=2:VE=7:GOSUB110
3140 PRINT" ";D;" ";A$;" ";E;" = ";
3150 REM ** INVOER ANTWOORD **
3160 INPUTG$:G=VAL(G$)
3170 IFA$="X" THEN3190
3180 IFABS(D/E-G)<.1/H THEN3310
3190 IFABS(D*E-G)<.1/H THEN3310
3200 REM ** FOUT ANTWOORD **
3210 VE=9:HO=3:GOSUB110:PRINT"fout, ";W$;
3220 F=F+1:REM ** AANTAL FOUTEN **
3230 IFS=2 THENS=0:GOTO3340
3240 S=S+1:PRINT" probeer het nog eens";
3250 SD=20:GOSUB450
3260 FORI=6 TO10
3270 HO=2:VE=I:GOSUB110
3280 PRINT" "
3290 NEXTI:GOTO3130
3300 REM ** ANTWOORD GOED **
3310 R=R+1:VE=9:HO=3:GOSUB110:PRINT"goed zo, ";W$
3320 GOTO3370
3330 REM ** ANTWOORD BIJ TWEEMAAL FOUT **
3340 IFA$="*" THENPRINT" het antwoord is ";D*E
3350 IFA$=":" THENPRINT" het antwoord is ";D/E
3360 REM ** VOLGENDE OPGAVE **
3370 IFT=20 THEN3400
3380 VE=12:HO=2:GOSUB110
3390 PRINT" nu de volgende opgave";
3400 SD=20:GOSUB450:GOSUB7010:NEXTT
3410 GOTO6010
4000 REM ** MACHTSVERHEFFEN **
4010 A$="sqr":GOSUB8530:GOTO4040
4020 REM ** WORTELTREKKEN **
4030 A$="^2":GOSUB8530
4040 GOSUB6210
4050 FORT=1 TO20:GOSUB260:B=RV:H=1:S=0
4060 IFB<.1 THENB=B*10
4070 REM ** MOEILIJKHEIDSGRADEN **
4080 ONA GOTO4090,4100,4110,4120,4130
4090 D=INT(10*B):GOTO4140
4100 D=INT(100*B+1):GOTO4140
4110 D=INT(1000*B+10):GOTO4140
4120 H=10:D=INT(1000*B+10)/H:GOTO4140
4130 H=100:D=INT(10000*B+100)/H
4140 CT=3:CN=0:SR=D:GOSUB310:D=VAL(SR$)
4150 IFA$="sqr" THEND=D*D
4160 GOSUB7010
4170 HO=3:VE=5:GOSUB110:PRINT"OPGAVE ";T
4180 IFA$="^2" THEN4210
4190 IFA$="sqr" THEN4260
4200 REM ** PRINT OPGAVE MACHTSVERHEFFEN **
4210 HO=2:VE=7:GOSUB110
4220 PRINT" ";D;" ";A$;" = ";:INPUTG$:G=VAL(G$)
4230 IFABS(D^2-G)<.1/H THEN4400
4240 GOTO4300
4250 REM ** PRINT OPGAVE WORTELTREKKEN **
4260 HO=2:VE=7:GOSUB110
4270 PRINT"sqr(";D;") = ";:INPUTG$:G=VAL(G$)
4280 IFABS(SQR(D)-G)<.1/H THEN4400
4290 REM ** FOUT ANTWOORD **
4300 VE=9:HO=3:GOSUB110:PRINT"fout, ";W$;
4310 F=F+1:REM ** AANTAL FOUTEN **
4320 IFS=2 THENS=0:GOTO4430
4330 S=S+1:PRINT" probeer het nog eens";
4340 SD=20:GOSUB450
4350 FORI=6 TO10
4360 HO=2:VE=I:GOSUB110
4370 PRINT" "
4380 NEXTI:GOTO4180
4390 REM ** ANTWOORD GOED **
4400 R=R+1:VE=9:HO=3:GOSUB110:PRINT"goed zo, ";W$
4410 GOTO4460
4420 REM ** ANTWOORD BIJ TWEEMAAL FOUT **
4430 IFA$="^2" THENPRINT" het antwoord is ";D^2
4440 IFA$="sqr" THENPRINT" het antwoord is sqr ";SQR(D)
4450 REM ** VOLGENDE OPGAVE **
4460 IFT=20 THEN4490
4470 VE=12:HO=2:GOSUB110
4480 PRINT" nu de volgende opgave";
4490 SD=20:GOSUB450:GOSUB7010:NEXTT
4500 GOTO6010
5000 REM ** MOEILIJKHEIDSGRADEN **
5010 ONA GOTO5020,5030,5050,5070,5090
5020 D=INT(10*B+1):E=INT(10*C+1):GOTO5110
5030 D=INT(100*B+10)
5040 E=INT(10*C+1):GOTO5110
5050 D=INT(1000*B+100)
5060 E=INT(100*C+10):GOTO5110
5070 H=10:D=INT(1000*B+100)/H
5080 E=INT(100*C+10)/H:GOTO5110
5090 H=100:D=INT(10000*B+1000)/H
5100 E=INT(1000*C+100)/H
5110 IFD<E THENX=D:D=E:E=X
5120 CT=3:CN=0:SR=D:GOSUB310:D=VAL(SR$)
5130 CT=3:CN=0:SR=E:GOSUB310:E=VAL(SR$)
5140 RETURN
6000 REM ** UITSLAG **
6010 HO=3:VE=11:GOSUB110
6020 PRINT"JE HEBT ";R;" SOMMEN GOED BEANTWOORD"
6030 HO=5:VE=13:GOSUB110
6040 PRINT"EN ";F;" MAAL FOUT GEANTWOORD"
6050 IFR<10 THEN6110
6060 IF(R>=10)AND(A=5)THEN6090
6070 IF(R>=10)AND(F<3)THEN6150
6080 GOTO6110
6090 HO=1:VE=15:GOSUB110:PRINT"DIT WAS DE HOOGSTE";
6100 PRINT" MOEILIJKSHEIDSGRAAD":GOTO6180
6110 HO=3:VE=15:GOSUB110:PRINT"ERG SLECHT HOOR";
6120 PRINT" PROBEER DE ZELFDE"
6130 HO=3:VE=17:GOSUB110:PRINT"MOEILIJKHEIDSGRAAD";
6140 PRINT" NOG MAAR EENS":GOTO6180
6150 HO=3:VE=15:GOSUB110:PRINT"PROBEER HET NU EENS"
6160 HO=3:VE=17:GOSUB110:PRINT"MET EEN HOGERE";
6170 PRINT" MOEILIJKHEIDSGRAAD"
6180 HO=10:VE=19:GOSUB110:PRINT"DRUK EEN TOETS"
6190 GOSUB210:GOTO1030
6200 REM ** PRINT KADERLIJN **
6210 GOSUB100:HO=8:VE=1:GOSUB110
6220 PRINT"REKENEN ";B$
6230 HO=0:VE=3:GOSUB110
6240 PRINT"----------------------------------------"
6250 RETURN
7000 REM ** OPGAVE WISSEN **
7010 FORI=4 TO16
7020 VE=I:HO=0:GOSUB110
7030 PRINT" ":NEXTI
7040 RETURN
8000 REM ** LOGO **
8010 GOSUB100:HO=1:VE=5:GOSUB110
8020 PRINT"**** **** * * **** * * **** * *"
8030 VE=6:GOSUB110
8040 PRINT"* * * * * * ** * * ";
8050 PRINT"** *"
8060 VE=7:GOSUB110:PRINT"* * * ** * * * * *";
8070 PRINT" * * *"
8080 VE=8:GOSUB110:PRINT"**** *** * *** *";
8090 PRINT" * * *** * * *"
8100 VE=9:GOSUB110:PRINT"* * * ** * * **";
8110 PRINT" * * **"
8120 VE=10:GOSUB110:PRINT"* * * * * * * *";
8130 PRINT" * * *"
8140 VE=11:GOSUB110:PRINT"* * **** * * **** *";
8150 PRINT" * **** * *"
8160 REM ** ONDERDELEN TONEN **
8170 VE=14:HO=16:GOSUB110:PRINT"OPTELLEN";:GOSUB8240
8180 HO=15:GOSUB110:PRINT"AFTREKKEN";:GOSUB8240
8190 HO=10:GOSUB110:PRINT"VERMENIGVULDIGEN";:GOSUB8240
8200 HO=10:GOSUB110:PRINT" DELEN ";:GOSUB8240
8210 HO=10:GOSUB110:PRINT" WORTELTREKKEN ";:GOSUB8240
8220 HO=10:GOSUB110:PRINT" MACHTSVERHEFFEN ";
8230 SD=40:GOSUB450:GOTO8260
8240 SD=20:GOSUB450:GOSUB250:RETURN
8250 REM ** NAAM INVULLEN **
8260 GOSUB100:VE=5:HO=15:GOSUB110:PRINT"HALLO ???"
8270 VE=7:HO=7:GOSUB110:PRINT"Wij gaan samen sommen maken."
8280 VE=9:GOSUB110:PRINT"Maar vertel me eerst je naam,"
8290 VE=13:HO=13:GOSUB110:PRINT"max.8 letters"
8300 VE=11:HO=15:GOSUB110:INPUTW$
8310 REM ** LENGTE NAAM **
8320 IF(LEN(W$)<1)OR(LEN(W$)>8)THEN8260
8330 REM ** INSTRUCTIE **
8340 GOSUB100:VE=2:HO=14:GOSUB110
8350 PRINT"HALLO ";W$:PRINT
8360 PRINT"Bij het maken van deze sommen kan je"
8370 PRINT"kiezen uit de moeilijkheidsgraden"
8380 PRINT"1 t/m 5"
8390 PRINT"Hoe hoger het cijfer hoe moeilijker."
8400 PRINT"Verder kan je kiezen uit optellen,"
8410 PRINT"aftrekken, vermenigvuldigen, delen en"
8420 PRINT"als je het heel goed kunt uit"
8430 PRINT"worteltrekken en machtsverheffen."
8440 PRINT"Na iedere opdracht op de (return/enter)"
8450 PRINT"toets drukken."
8460 PRINT"Bij iedere som krijg je tweemaal de"
8470 PRINT"gelegenheid de fout te verbeteren,"
8480 PRINT"daarna geeft de computer het antwoord."
8490 HO=6:VE=18:GOSUB110:PRINT"Veel succes ";W$
8500 VE=20:HO=12:GOSUB110:PRINT"DRUK EEN TOETS"
8510 GOSUB210:RETURN
8520 REM ** KIEZEN MOEILIJKHEIDSGRAAD **
8530 GOSUB100:HO=3:VE=2:GOSUB110
8540 PRINT"WELKE MOEILIJKHEIDSGRAAD KIES JE"
8550 HO=3:VE=4:GOSUB110:PRINT"1-2-3-4-5";
8560 GOSUB210:A=VAL(IN$)
8570 IF(A<1)OR(A>5)THEN8530
8580 VE=6:GOSUB110:PRINT"MOEILIJKHEIDSGRAAD ";IN$
8590 HO=15:VE=8:GOSUB110:PRINTW$
8600 REM ** BEGIN OPGAVE **
8610 HO=3:VE=10:GOSUB110
8620 PRINT"JE GAAT NU 20 SOMMEN MAKEN"
8630 HO=3:VE=15:GOSUB110
8640 PRINT"DRUK EEN TOETS":GOSUB210
8650 IFA$="+" THENB$="OPTELLEN":RETURN
8660 IFA$="-" THENB$="AFTREKKEN":RETURN
8670 IFA$="X" THENB$="VERMENIGVULDIGEN":RETURN
8680 IFA$=":" THENB$="DELEN":RETURN
8690 IFA$="sqr" THENB$="WORTELTREKKEN":RETURN
8700 IFA$="^2" THENB$="MACHTSVERHEFFEN":RETURN
9000 REM ** EINDE PROGRAMMA **
9010 GOSUB100:HO=8:VE=9:GOSUB110
9020 FORI=1 TO24:PRINT"*";:NEXTI
9030 HO=8:VE=10:GOSUB110:PRINT"*"
9040 HO=31:GOSUB110:PRINT"*"
9050 HO=8:VE=11:GOSUB110:PRINT"*"
9060 HO=10:GOSUB110:PRINT"tot de volgende";
9070 PRINT" keer":HO=31:GOSUB110:PRINT"*"
9080 HO=8:VE=12:GOSUB110:PRINT"*"
9090 HO=31:GOSUB110:PRINT"*"
9100 HO=8:VE=13:GOSUB110
9110 FORI=1 TO24:PRINT"*";:NEXTI
9120 SD=20:GOSUB450
9130 GOTO950
30000 REM DIT PROGRAMMA IS GEMAAKT VOOR
30010 REM KINDEREN VANAF DE DERDE GROEP
30020 REM VAN DE BASISSCHOOL.
30030 REM HIERMEE KUNNEN ZE LEREN SOM-
30040 REM MEN OP TE LOSSEN
30050 REM
30060 REM
32000 REM ***********************
32010 REM B R.J V/D ZEE B
32020 REM A A
32030 REM S BRAAMKAMP 40 S
32040 REM I I
32050 REM C 7206 HB ZUTPHEN C
32060 REM O O
32070 REM D TEL.05750-21736 D
32080 REM E E
32090 REM ***********************
32100 REM