-
Notifications
You must be signed in to change notification settings - Fork 11
/
Copy pathA04_Breuken_1.bc2
874 lines (873 loc) · 24.4 KB
/
A04_Breuken_1.bc2
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
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
1000 A=2000:GOTO20:REM *** BREUKEN ***
1010 DIMA$(10),A(10),B(10)
1020 DIMC(10),C1(10),D(10)
1030 DIMD1(10),F(10),F1(10)
1040 DIMN$(20):ML=4:G$="":RV=0
1050 C$="VAN BREUKEN"
1060 REM
1070 REM OPVRAGEN:
1080 REM G$= NAAM
1090 REM LP = ASC("<-")
1100 REM RP = ASC("->")
1110 REM
1120 GOSUB100
1130 RESTORE:FORZ1=1 TO19:READN$(Z1):NEXTZ1
1140 VE=2:HO=0:GOSUB110
1150 FORZ1=1 TO19
1160 FORZ=1 TOLEN(N$(Z1))
1170 PRINTMID$(N$(Z1),Z,1);
1180 FORZ2=1 TO30:NEXTZ2
1190 NEXTZ
1200 IFZ1=4 THENVE=8:HO=22:GOSUB110
1210 FORZ3=1 TO100:PRINT" ";:NEXTZ3
1220 IFZ1=4 THENVE=8:HO=22:GOSUB110:GOSUB250:INPUTG$
1230 IFZ1=4 THENIFG$="" THEN1200
1240 IFZ1=4 THENIFASC(G$)<65 THEN1200
1250 IFZ1=4 THENIFLEN(G$)>14 THEN1200
1260 IFZ1=4 THENVE=8:HO=22:GOSUB110:PRINT" "
1270 IFZ1=4 THENN$(5)=G$+", "+N$(5)
1280 IFZ1=4 THENN$(8)=G$+N$(8)
1290 IFZ1=5 THENVE=VE+2
1300 L$="* DRUK EEN TOETS IN, "+G$+" "
1310 L$=L$+L$+L$+L$
1320 IFZ1=7 THENGOSUB6860:GOSUB100
1330 IFZ1=7 THENVE=0:HO=0:GOSUB110:GOTO1530
1340 IFZ1=8 THENVE=VE-1
1350 IFZ1=9 THENVE=VE+1
1360 IFZ1=12 THENVE=VE+1
1370 IFZ1=13 THENVE=VE-1
1380 IFZ1=14 THENVE=VE-1
1390 IFZ1=15 THENHO=25:GOSUB110:GOSUB250
1400 IFZ1=15 THENGOSUB210:C=ASC(IN$):LP=C
1410 IFZ1=15 THENIF(C>32) AND(C<95) THEN1390
1420 IFZ1=15 THENHO=25:GOSUB110:PRINT"DANK JE!";
1430 IFZ1=16 THENVE=VE-1
1440 IFZ1=17 THENVE=VE-1
1450 IFZ1=18 THENHO=25:GOSUB110:GOSUB250
1460 IFZ1=18 THENGOSUB210:C=ASC(IN$):RP=C
1470 IFZ1=18 THENIFASC(IN$)=LP THEN1450
1480 IFZ1=18 THENIF(C>32) AND(C<95) THEN1450
1490 IFZ1=18 THENHO=25:GOSUB110:PRINT"DANK JE!";
1500 IFZ1=18 THENN$(19)=" ** "+G$+N$(19)+" **"
1510 IFZ1=18 THENVE=VE+1
1520 VE=VE+2:HO=0:GOSUB110
1530 NEXTZ1
1540 FORZ=1 TO1000:NEXTZ
1550 REM
1560 REM
1570 REM
1580 REM VOORSTELLING
1590 REM
1600 REM
1610 REM
1620 GOSUB100
1630 VE=9:HO=0:GOSUB110
1640 FORZ=1 TO40:PRINT"%";:NEXTZ
1650 VE=15:HO=0:GOSUB110
1660 FORZ=1 TO40:PRINT"%";:NEXTZ
1670 VE=11:B$="BREUKEN":LK=80:GOSUB6970
1680 VE=13:B$="DOOR ROGER DENEWETH":LK=80:GOSUB6970
1690 FORZ=1 TO2000:NEXTZ
1700 REM
1710 REM
1720 REM
1730 REM M E N U
1740 REM
1750 REM
1760 REM
1770 GOSUB100
1780 HO=7:VE=0:GOSUB110
1790 PRINT"L E E R P R O G R A M M A"
1800 PRINT
1810 FORZ=1 TO40:PRINT"=";:NEXTZ
1820 PRINT
1830 PRINT" B E W E R K I N G E N - B R E U K E N "
1840 PRINT
1850 FORZ=1 TO40:PRINT"=";:NEXTZ
1860 PRINT:PRINT
1870 PRINTG$;", WAT WENS JE ?"
1880 PRINT:PRINT
1890 PRINT:PRINT"1. OPTELLEN ";C$
1900 PRINT:PRINT"2. AFTREKKEN ";C$
1910 PRINT:PRINT"3. EINDE (STOPPEN MET PROGRAMMA)"
1920 VE=22:HO=0:GOSUB110
1930 PRINT"DOE UW KEUZE (1-2-3)? ";
1940 GOSUB210:MN=1:MX=3:GOSUB3550:X=K
1950 REM********************
1960 REM
1970 REM HOOFDPROGRAMMA
1980 REM
1990 REM********************
2000 REM
2010 REM
2020 ONX GOTO2060,2680,2730
2030 REM
2040 REM
2050 REM
2060 S$="OPTELLEN":A$="+":D$="+"
2070 GOSUB4430:GOSUB4510
2080 GOSUB100:IFD$="+" THENONK GOTO2100,2330
2090 IFD$="-" THENONK GOTO2100,2690
2100 GOSUB4860:GOSUB3780:GOSUB6860:GOSUB100
2110 PRINT"VOORBEELD: ";S$;" ";C$:I=2:J=0
2120 A(1)=3:A(2)=18:A(3)=15:A(4)=72
2130 GOSUB7070:GOSUB6860:GOSUB100:IFJ=1 THEN2170
2140 PRINT"NOG EEN VOORBEELD: ";S$;" ";C$
2150 A(1)=-25:A(2)=-50:A(3)=32:A(4)=-40:A(5)=6:A(6)=-72:I=3
2160 J=1:GOTO2130
2170 PRINTG$;",":PRINT
2180 PRINT"WIL JE OOK EENS PROBEREN ?(J/N)";:GOSUB210
2190 GOSUB3470:IFIN$="N" THEN2300
2200 RESTORE
2210 FORZ1=1 TO19:READN$(Z1):NEXTZ1
2220 I=2:FORN=1 TO2*I:READA(N)
2230 IFA(N)=0 THENGOSUB100
2240 IFA(N)=0 THENPRINT" JE KAN NU STARTEN MET DE OPGAVEN"
2250 IFA(N)=0 THENGOSUB6860:GOSUB100
2260 IF(A(N)=0) AND(D$="+") THENN=2*I:NEXTN:GOTO2330
2270 IF(A(N)=0) AND(D$="-") THENN=2*I:NEXTN:GOTO2690
2280 B(N)=A(N):NEXTN:GOSUB100
2290 GOSUB7440:GOSUB4790:IFIN$="J" THEN2220
2300 GOSUB4600:IF(K=1) AND(D$="+") THEN2330
2310 IF(K=1) AND(D$="-") THEN2690
2320 GOSUB100:GOTO1860
2330 S$="OPTELLEN":A$="+":D$="+"
2340 GOSUB5050:GOSUB5160:GOSUB100
2350 ONK GOTO2360,2420
2360 GOSUB5250
2370 GOSUB5310
2380 GOSUB5410:GOSUB6620:GOSUB7440:GOSUB5530
2390 GOSUB100:IFIN$="J" THEN2380
2400 GOSUB5600
2410 GOSUB100:ONK GOTO2370,2420,2640
2420 GOSUB5740
2430 GOSUB4710:GOSUB5770
2440 IFI=2 THENML=3
2450 IF(I=3) OR(I=4) THENML=2
2460 VT=3:GOSUB4070
2470 GOSUB7310:LF=0
2480 SR=KG:GOSUB300:LM=LEN(SR$)
2490 IFLM>6 THENLF=1:GOTO2540
2500 FORN=1 TO2*I STEP2
2510 SR=D1(N):GOSUB300:LT=LEN(SR$)
2520 IFLT>6 THENLF=1
2530 NEXTN
2540 IFLF=1 THENVE=7:HO=0:GOSUB110
2550 IFLF=1 THENPRINT"DE AFMETINGEN VAN DIT SCHERM"
2560 IFLF=1 THENPRINT"LATEN HET VOLLEDIG UITPRINTEN VAN"
2570 IFLF=1 THENPRINT"DE OPLOSSING NIET TOE."
2580 IFLF=1 THENVE=13:HO=0:GOSUB110
2590 IFLF=1 THENPRINT"HET RESULTAAT IS: "
2600 IFLF=1 THENGOSUB6170:GOTO2620
2610 GOSUB7090
2620 ML=4:GOSUB6860:GOSUB100:GOSUB5490
2630 IFIN$="J" THEN2430
2640 GOSUB5850:GOSUB1890
2650 REM
2660 REM
2670 REM
2680 S$="ATREKKEN":A$="-":D$="-":GOTO2070
2690 S$="AFTREKKEN":A$="-":D$="-":GOTO2340
2700 REM
2710 REM EINDE
2720 REM
2730 GOSUB100:VE=8:HO=0:GOSUB110
2740 FORZ=1 TO40:PRINT"%";:NEXTZ
2750 VE=19:HO=0:GOSUB110
2760 FORZ=1 TO40:PRINT"%";:NEXTZ
2770 VE=10:B$=G$+"!":GOSUB6970
2780 VE=12:B$="HET WAS FIJN WERKEN MET JOU.":GOSUB6970
2790 VE=14:B$="JE KAN TEVREDEN ZIJN! DAAAA... G!"
2800 GOSUB6970
2810 PRINT:VE=17:B$="TOT EEN VOLGENDE KEER !!!!":GOSUB6970
2820 VE=22:HO=30:GOSUB110:PRINT"DANK U!"
2830 GOTO2830
2840 END:END:END:END:END
2850 REM
2860 REM
2870 REM
2880 REM =====================
2890 REM =====================
2900 REM
2910 REM S U B R O U T I N E S
2920 REM
2930 REM =====================
2940 REM =====================
2950 REM
2960 REM
2970 REM INPUTROUTINE
2980 REM
2990 REM TELLER - NOEMER
3000 REM
3010 REM
3020 CH=HO:CV=VE:NL=ML
3030 HO=CH-1:VE=CV:GOSUB110:PRINT"?"
3040 HO=CH:VE=CV:GOSUB110:F$="":W=0
3050 GOSUB210:C=ASC(IN$)
3060 IF(FL=1) AND(W=0) AND(C=48) THEN3050
3070 T3=0:T4=0
3080 IF(FL=1) AND(LEFT$(F$,1)="-") THENT3=1
3090 IF(W=1) AND(C=48) THENT4=1
3100 IF(T3=1) AND(T4=1) THEN3050
3110 IF(C<32) OR(C>95) THEN3220
3120 T1=0:T2=0
3130 IF(W=ML) AND(C<>13) THEN3050
3140 IF(C>47) AND(C<58) THENT1=1
3150 IF(W=0) AND(C=45) THENML=NL+1:T2=1
3160 IFNOT((T1=1) OR(T2=1)) THEN3210
3170 IFW<>LEN(F$) THENTR=1:GOTO3190
3180 TR=0
3190 PRINTIN$;:F$=MID$(F$,1,W)+IN$+MID$(F$,W+2,LEN(F$)-W-TR)
3200 W=W+1
3210 GOTO3360
3220 IFC<>13 THEN3280
3230 IFW=0 THEN3360
3240 IF(LEFT$(F$,1)="-") AND(W=1) THEN3050
3250 F$=MID$(F$,1,W)
3260 FORZ=W+1 TOML:PRINT" ";:NEXTZ
3270 GOTO3370
3280 IF(C=LP) AND(W<>0) THENHO=CH+W-1:GOSUB110:W=W-1
3290 IF(C=RP) AND(LEN(F$)<>W) THENHO=CH+W+1:GOSUB110:W=W+1
3300 IF(LEFT$(F$,1)="-") AND(W<>0) THENML=NL+1:GOTO3320
3310 ML=NL
3320 IF(W<>0) THEN3360
3330 HO=CH+ML:GOSUB110:PRINT" ";
3340 IF(LEN(F$)=NL+1) THENF$=LEFT$(F$,NL)
3350 HO=CH:GOSUB110
3360 IFML+1<>W THEN3050
3370 HO=CH-1:VE=CV:GOSUB110:PRINT" "
3380 ML=NL
3390 RETURN
3400 REM
3410 REM
3420 REM====================
3430 REM
3440 REM
3450 REM *** INVOERCONTROLE ***
3460 REM
3470 IF(IN$<>"J") AND(IN$<>"N") THEN3490
3480 GOTO3510
3490 GOSUB120:GOSUB110
3500 GOSUB210:GOTO3470
3510 RETURN
3520 REM
3530 REM====================
3540 REM
3550 SR=VAL(IN$):GOSUB300
3560 IF(SR<MN) OR(SR>MX) THEN3590
3570 IFSR$<>IN$ THEN3590
3580 K=VAL(IN$):GOTO3610
3590 GOSUB120:GOSUB110
3600 GOSUB210:GOTO3550
3610 RETURN
3620 REM====================
3630 REM
3640 REM
3650 REM WISSEN
3660 REM
3670 REM
3680 VE=21:HO=4:GOSUB110
3690 FORZ=4 TO40:PRINT" ";:NEXTZ
3700 VE=23:HO=0:GOSUB110
3710 FORZ=1 TO39:PRINT" ";:NEXTZ
3720 RETURN
3730 REM
3740 REM
3750 REM
3760 REM *** UITLEG ***
3770 REM
3780 N$="* VEREENVOUDIG ELKE BREUK INDIEN":GOSUB3930
3790 N$=" MOGELIJK.":GOSUB3930
3800 N$=" (GEEF ZE EEN POSITIEVE NOEMER)":GOSUB3930:PRINT
3810 IFD$="-" THENN$="* TEL BIJ ELKE BREUK;":GOSUB3930
3820 IFD$="-" THENN$=" HET TEGENGESTELDE":GOSUB3930
3830 IFD$="-" THENN$=" VAN DE VOLGENDE BREUK."
3840 IFD$="-" THENGOSUB3930:PRINT
3850 N$="* MAAK DE BREUKEN GELIJKNAMIG.":GOSUB3930:PRINT
3860 N$="* MAAK DE SOM VAN DE TELLERS.":GOSUB3930:PRINT
3870 N$="* BEHOUD DE NOEMER.":GOSUB3930:PRINT
3880 N$="* VEREENVOUDIG HET RESULTAAT INDIEN ":GOSUB3930
3890 N$=" MOGELIJK.":GOSUB3930:RETURN
3900 REM
3910 REM SPEED VOOR UITLEG
3920 REM
3930 N1$=MID$(N$,LEN(N$),1)
3940 IFN1$=";" THENLE=LEN(N$)-1:GOTO3960
3950 LE=LEN(N$)
3960 FORZ=1 TOLE
3970 IF(Z=LEN(N$)) THENPRINTMID$(N$,Z,1):GOTO4010
3980 PRINTMID$(N$,Z,1);
3990 FORZ2=1 TO50:NEXTZ2
4000 NEXTZ
4010 RETURN
4020 REM
4030 REM INPUT-OPLOSSING
4040 REM EEN REGEL
4050 REM
4060 REM
4070 GOSUB270:FORN=0 TOI-1
4080 IFN=I-1 THENVE=VT+1:HO=(7*N+1)
4090 IFN=I-1 THENGOSUB110:PRINT"---- =":NEXTN:GOTO4120
4100 VE=VT+1:HO=(7*N+1):GOSUB110
4110 PRINT"---- ";A$;" ";:NEXTN
4120 FORN=1 TO2*I-1 STEP2:L=(7*N-5)/2
4130 VE=VT:HO=L:GOSUB110:FL=0:GOSUB3020:A$(N)=F$
4140 A(N)=VAL(A$(N))
4150 VE=VT+2:HO=L:GOSUB110
4160 IFN=2*I-1 THENFL=1:GOSUB3020:A$(N+1)=F$:GOTO4180
4170 FL=1:GOSUB3020:A$(N+1)=F$
4180 A(N+1)=VAL(A$(N+1))
4190 NEXTN
4200 RETURN
4210 REM
4220 REM
4230 REM VEREENVOUDIGEN
4240 REM VAN EEN
4250 REM BREUK
4260 REM
4270 REM
4280 FORN=1 TO2*I STEP2:B=A(N):A=A(N+1)
4290 GOSUB4950:IF(D$="-") AND(N>=3) THENA(N)=-A(N)
4300 IFSGN(A(N+1))=-1 THENG=-G
4310 A(N)=A(N)/G:A(N+1)=A(N+1)/G
4320 C1(N)=A(N):C1(N+1)=A(N+1):NEXTN:RETURN
4330 REM
4340 REM K.G.V.-NOEMERS
4350 REM
4360 REM
4370 A=A(2):FORN=4 TO2*I STEP2:K=A:B=A(N)
4380 GOSUB4950::A=K*A(N)/G:NEXTN:K=A:RETURN
4390 REM
4400 REM HOOFDING
4410 REM OPT. EN AFTR.
4420 REM
4430 GOSUB100:FORZ=1 TO40:PRINT"*";:NEXTZ
4440 VE=4:HO=0:GOSUB110:FORZ=1 TO40:PRINT"*";:NEXTZ
4450 VE=2:HO=10:GOSUB110:B$=S$+" "+C$:PRINTB$
4460 HO=0:VE=10:GOSUB110:RETURN
4470 REM
4480 REM KEUZE
4490 REM
4500 REM
4510 PRINTG$;",";" JE WIL : ":PRINT:PRINT
4520 PRINT" 1. UITLEG ?":PRINT
4530 PRINT" 2. OPGAVEN ?":PRINT:PRINT
4540 PRINT"DOE UW KEUZE (1 OF 2)";
4550 GOSUB210:MN=1:MX=2:GOSUB3550:RETURN
4560 REM
4570 REM EINDE UITLEG
4580 REM
4590 REM
4600 GOSUB100:PRINT"EINDE UITLEG:";S$;" ";C$
4610 FORZ=1 TO40:PRINT"-";:NEXTZ
4620 VE=7:HO=0:GOSUB110
4630 PRINT"JE KAN VERVOLGEN MET:":PRINT:PRINT
4640 PRINT:PRINT" 1. OPGAVEN ";S$
4650 PRINT:PRINT" 2. ANDERE OPDRACHT ":PRINT:PRINT:PRINT
4660 PRINT"WAT IS UW KEUZE (1 OF 2)? ";
4670 GOSUB210:MN=1:MX=2:GOSUB3550:RETURN
4680 REM
4690 REM AANTAL BREUKEN
4700 REM
4710 HO=0:VE=4:GOSUB110
4720 PRINT"HOEVEEL BREUKEN WIL JE"
4730 PRINTS$;" (MAX.4)?";
4740 GOSUB210:MN=2:MX=4:GOSUB3550:I=K
4750 RETURN
4760 REM
4770 REM PROBEREN
4780 REM
4790 PRINT"WIL JE NOG EENS PROBEREN MET"
4800 PRINT"EEN NIEUWE OPGAVE?(J/N)?";
4810 GOSUB210:GOSUB3470
4820 RETURN
4830 REM
4840 REM HOOFDING UITLEG
4850 REM
4860 PRINT"UITLEG:"S$;" "C$:
4870 PRINT"------"
4880 PRINT:PRINT:PRINT
4890 RETURN
4900 REM
4910 REM
4920 REM G.G.D.
4930 REM
4940 REM
4950 A=ABS(A):B=ABS(B)
4960 IFA>=B THEN4990
4970 T=A:A=B:B=T
4980 IFB=0 THENG=1:RETURN
4990 R=A-(INT(A/B))*B:A=B:B=R:IFR<>0 THEN4990
5000 G=A:RETURN
5010 REM
5020 REM HOOFDING OPGAVEN
5030 REM
5040 REM
5050 GOSUB100:VE=0:HO=11:GOSUB110
5060 PRINT"*** OPGAVEN ***"
5070 LL=LEN(S$+" "+C$)
5080 LI=INT((40-LL)/2)
5090 VE=2:HO=LI:GOSUB110:PRINTS$;" ";C$
5100 VE=3:GOSUB110
5110 FORZ=1 TOLL:PRINT"-";:NEXTZ
5120 RETURN
5130 REM
5140 REM KEUZE
5150 REM
5160 VE=7:HO=0:GOSUB110
5170 PRINTG$;", JE KAN KIEZEN:"
5180 PRINT:PRINT" 1. IK GEEF JOU EEN OPGAVE"
5190 PRINT:PRINT" 2. JE GEEFT MIJ EEN OPGAVE"
5200 PRINT:PRINT:PRINT"UW KEUZE? (1 OF 2) ";
5210 GOSUB210:MN=1:MX=2:GOSUB3550:RETURN
5220 REM
5230 REM TEKST
5240 REM
5250 PRINT"IK GEEF JOU EEN OPGAVE, ";G$:RETURN
5260 REM
5270 REM
5280 REM MOEILIJKHEIDSGRAAD
5290 REM
5300 REM
5310 VE=6:HO=0:GOSUB110
5320 PRINT"KIES UIT VIER MOEILIJKHEIDSGRADEN:":PRINT
5330 VE=9:HO=0:GOSUB110
5340 PRINT"UW KEUZE (1-2-3-4) ? ";:GOSUB210
5350 MN=1:MX=4:GOSUB3550:H=K
5360 RETURN
5370 REM
5380 REM AANTAL BREUKEN
5390 REM + MOEILIJKHEID
5400 REM
5410 GOSUB100:PRINT"HOEVEEL BREUKEN WIL JE ";S$;" (MAX.4)"
5420 PRINT:PRINT"MET MOEILIJKHEIDSGRAAD ";
5430 PRINTH;" ";"?";" ";:GOSUB210
5440 MN=2:MX=4:GOSUB3550:I=K
5450 RETURN
5460 REM
5470 REM LATEN KIEZEN
5480 REM
5490 PRINT"NOG EEN OPGAVE? (J/N)";
5500 GOSUB210:GOSUB3470:RETURN
5510 REM
5520 REM
5530 PRINT"WIL JE NOG EEN NIEUWE OPGAVE"
5540 PRINT"MET DEZE MOEILIJKHEIDSGRAAD? (J/N)";
5550 GOSUB210:GOSUB3470
5560 RETURN
5570 REM
5580 REM
5590 REM
5600 GOSUB100:VE=5:GOSUB110
5610 PRINT"JE WENST:":PRINT:PRINT:PRINT
5620 PRINT"1. EEN ANDERE MOEILIJKHEIDSGRAAD?"
5630 PRINT
5640 PRINT"2. ZELF EEN OPGAVE GEVEN?"
5650 PRINT
5660 PRINT"3. ANDERE OPDRACHT?"
5670 REM
5680 PRINT:PRINT:PRINT"WAT IS UW KEUZE? (1, 2 OF 3)";
5690 GOSUB210:MN=1:MX=3:GOSUB3550
5700 RETURN
5710 REM
5720 REM TEKST
5730 REM
5740 GOSUB100:PRINT"JE WENST ZELF EEN OPGAVE TE GEVEN!!"
5750 RETURN
5760 REM
5770 GOSUB100:PRINT"JE KAN UW OPGAVE NU INVOEREN!"
5780 PRINT:RETURN
5790 REM
5800 REM
5810 REM HOOFDING
5820 REM EINDE OPGAVEN
5830 REM
5840 REM
5850 GOSUB100:PRINT"EINDE OPGAVEN ";S$;" ";C$
5860 FORZ=1 TO40:PRINT"-";:NEXTZ
5870 PRINT:PRINT"JE KAN VERVOLGEN MET:"
5880 PRINT:PRINT:PRINT:RETURN
5890 REM
5900 REM UITPRINTEN OPL
5910 REM
5920 REM
5930 FORN=1 TO2*I STEP2:L=(7*N-5)/2
5940 SR=A(N):GOSUB300:P=LEN(SR$)
5950 IFP>=5 THENVE=VT:HO=L-1:GOSUB110:GOTO5970
5960 GOTO5980
5970 PRINTA(N):GOTO5990
5980 VE=VT:HO=L-1:GOSUB110:PRINT" ";A(N)
5990 IFN=2*I-1 THENVE=VT+1:HO=L:GOSUB110:GOTO6010
6000 GOTO6020
6010 PRINT"---- =":GOTO6030
6020 VE=VT+1:HO=L:GOSUB110:PRINT"---- ";A$;" "
6030 SR=A(N+1):GOSUB300:P=LEN(SR$)
6040 IFP>=5 THENVE=VT+2:HO=L-1:GOSUB110:GOTO6060
6050 GOTO6070
6060 PRINTA(N+1):GOTO6080
6070 VE=VT+2:HO=L-1:GOSUB110:PRINT" ";:PRINTA(N+1)
6080 IFN=2*I-1 THENN=2*I:NEXTN:N=N-1:GOTO6100
6090 NEXTN
6100 RETURN
6110 REM
6120 REM
6130 REM UITPRINTEN
6140 REM EINDRESULTAAT
6150 REM OMKADERD
6160 REM
6170 VE=16
6180 HO=9:GOSUB110:PRINT"******************"
6190 VE=17:HO=9:GOSUB110:PRINT"*";:E=0
6200 IF(S=K) OR(K=1) OR(S=0) THEN6490
6210 IFABS(S)<K THEN6260
6220 E=INT(S/K):SR=E
6230 IFE<0 THENE=E+1:SR=E:GOSUB300:TL=LEN(SR$)
6240 IFE<0 THENS=S-K*E:S=ABS(S):GOTO6260
6250 GOSUB300:TL=LEN(SR$):S=S-K*E
6260 SR=S:GOSUB300:P=LEN(SR$):VE=17
6270 IFP=1 THENHO=19:GOSUB110:GOTO6320
6280 IF(P=2) OR(P=3) AND(S>0) THENHO=18:GOSUB110:GOTO6320
6290 IF(P=2) OR(P=3) AND(S<0) THENHO=17:GOSUB110:GOTO6320
6300 IFP=4 THENHO=17:GOSUB110:GOTO6320
6310 IFP>4 THENHO=16:GOSUB110
6320 PRINTS;:HO=26:GOSUB110:PRINT"*"
6330 IFE<>0 THENGOSUB120:HO=9:GOSUB110:GOTO6350
6340 GOTO6390
6350 PRINT"*";
6360 HO=(16-TL):GOSUB110:PRINTE;
6370 HO=17:GOSUB110:PRINT"====";
6380 HO=26:GOSUB110:PRINT"*":GOTO6420
6390 GOSUB120:HO=9:GOSUB110:PRINT"*";
6400 HO=17:GOSUB110:PRINT"====";
6410 HO=26:GOSUB110:PRINT"*"
6420 GOSUB120:HO=9:GOSUB110:PRINT"*";
6430 SR=K:GOSUB300:P=LEN(SR$):GOSUB120
6440 IFP=1 THENHO=19:GOSUB110:GOTO6480
6450 IF(P=2) OR(P=3) THENHO=18:GOSUB110:GOTO6480
6460 IFP=4 THENHO=17:GOSUB110:GOTO6480
6470 IFP>4 THENHO=16:GOSUB110
6480 PRINTK;:HO=26:GOSUB110:PRINT"*":GOTO6550
6490 SR=INT(S/K):GOSUB300:TL=LEN(SR$)
6500 HO=26:GOSUB110:PRINT"*":VE=18:HO=9:GOSUB110:PRINT"*";
6510 HO=9+INT((18-TL)/2):GOSUB110
6520 PRINTS/K;:HO=26:GOSUB110:PRINT"*"
6530 VE=19:HO=9:GOSUB110:PRINT"*";
6540 HO=26:GOSUB110:PRINT"*"
6550 GOSUB120:HO=9:GOSUB110:PRINT"******************"
6560 E=0:RETURN
6570 REM
6580 REM OPHALEN
6590 REM BREUKEN
6600 REM
6610 REM
6620 ONH GOTO6630,6630,6640,6650
6630 M=9:GOTO6660
6640 M=12:GOTO6660
6650 M=22
6660 FORN=1 TO2*I
6665 GOSUB260
6670 FORZ=1 TOINT(3*RV+1):GOSUB260:NEXTZ
6680 AN=INT(9*RV+1)
6690 GOSUB260:AM=INT(4*RV+1)
6700 GOSUB260:A(N)=INT(M*RV+1)
6710 IF(H=1) OR(H=3) GOTO6730
6720 IFAM=2 THENA(N)=-A(N)
6730 NEXTN:FORN=1 TO2*I STEP2
6740 A1=ABS(A(N)):A2=ABS(A(N+1))
6750 IF(A1>A2) AND(AN<>1) THENL=A(N):A(N)=A(N+1):A(N+1)=L
6760 B(N)=A(N):B(N+1)=A(N+1):NEXTN:RETURN
6770 REM
6780 REM
6790 REM
6800 REM
6810 REM
6820 REM LICHTKRANT 1
6830 REM
6840 REM
6850 GOSUB100:GOTO1870
6860 FORZ=1 TO40 STEP0.1
6870 HO=0:VE=23:GOSUB110
6880 PRINTMID$(L$,INT(Z),39);
6890 GOSUB200:IFIN$<>"" THENZ=40:NEXTZ:GOTO6910
6900 NEXTZ:GOTO6860
6910 RETURN
6920 REM
6930 REM
6940 REM LICHTKRANT 2
6950 REM
6960 REM
6970 FORZ=1 TO20+LEN(B$)/2
6980 HO=40-Z:GOSUB110:PRINTLEFT$(B$,Z);" ";
6990 FORY=1 TOLK:NEXTY:NEXTZ:PRINT:RETURN
7000 REM
7010 REM
7020 REM VOLLEDIG UITPRINTEN
7030 REM OPLOSSING
7040 REM + VEREENV. RESULTAAT
7050 REM
7060 REM
7070 IFD$="-" THENA$="-"
7080 VT=3:GOSUB5930
7090 S=0:GOSUB4280:IFD$="-" THENA$="+"
7100 VT=7:GOSUB5930:GOSUB4370:FORN=1 TO2*I STEP2
7110 A(N)=A(N)*(K/A(N+1)):A(N+1)=K
7120 S=S+A(N):NEXTN
7130 VT=11:GOSUB5930
7140 SR=S:GOSUB300:P=LEN(SR$):GOSUB120
7150 IF(S<0) AND(P>=3) THENVE=11:HO=7*I:GOSUB110:PRINTS
7160 IF(S<=0) AND(P<3) THENVE=11:HO=7*I+1:GOSUB110:PRINTS
7170 IFS>0 THENVE=11:HO=7*I+1:GOSUB110:PRINTS
7180 VE=12:HO=7*I:GOSUB110:PRINT" ----"
7190 VE=13:HO=7*I+1:GOSUB110:PRINTK
7200 A=S:B=K:IFA=0 THEN7220
7210 GOSUB4950:S=S/G:K=K/G
7220 GOSUB6170:IFD$="-" THENA$="-"
7230 RETURN
7240 REM
7250 REM
7260 REM BEPALEN
7270 REM EIND-
7280 REM RESULTAAT
7290 REM
7300 REM
7310 GOSUB4280:GOSUB4370:FORN=1 TO2*I STEP2
7320 A(N)=A(N)*(K/A(N+1)):A(N+1)=K
7330 D1(N)=A(N):D1(N+1)=K
7340 S=S+A(N):NEXTN:A=S:B=K:SG=S:KG=K
7350 GOSUB4950:S=S/G:K=K/G:RETURN
7360 REM
7370 REM UITPRINTEN OPGAVE
7380 REM INVOEREN OPLOSSING
7390 REM CONTROLE JUIST-FOUT
7400 REM EVENTUEEL TONEN OPL.
7410 REM
7420 REM
7430 REM
7440 GOSUB100:PRINT"ZIEHIER DE OPGAVE *** VEEL SUCCES"
7450 IFD$="-" THENA$="-"
7460 S=0:K=0:S1=0:K1=0:E1=0:S2=0:K2=0
7470 V=1:VT=3:GOSUB5930:IFD$="-" THENA$="+"
7480 GOSUB270
7490 VT=7:GOSUB4070:FORZ=1 TO2*I:C(Z)=A(Z):NEXTZ
7500 VT=11:GOSUB4070:FORZ=1 TO2*I:D(Z)=A(Z):NEXTZ
7510 VE=11:HO=7*I+1:GOSUB110:FL=0:GOSUB3020:S1$=F$
7520 VE=12:HO=7*I+1:GOSUB110:PRINT"----"
7530 S1=VAL(S1$):SS=S1
7540 VE=13:HO=7*I+1:GOSUB110:FL=1:GOSUB3020:K1$=F$
7550 K1=VAL(K1$):KK=K1
7560 REM
7570 REM INVOER EINDRESULTAAT
7580 REM
7590 REM
7600 PRINT:PRINT"HET RESULTAAT IS DUS:"
7610 IFS1=0 THEN7630
7620 IFABS(S1)<K1 THEN7680
7630 VE=18:HO=19:GOSUB110:FL=0:ML=3:GOSUB3020:E1$=F$
7640 SR=VAL(E1$):GOSUB300
7650 E1=VAL(E1$)
7660 IFINT(S1/K1)*K1=S1 THEN7790
7670 IF(S1=0) OR(ABS(S1)=K1) OR(K1=1) THEN7790
7680 VE=18:HO=23:GOSUB110:PRINT"----"
7690 VE=17:HO=23:GOSUB110:FL=0:ML=4:GOSUB3020:S2$=F$
7700 SR=VAL(S2$):GOSUB300
7710 S2=VAL(S2$)
7720 VE=19:HO=23:GOSUB110:FL=1:GOSUB3020:K2$=F$
7730 SR=VAL(K2$):GOSUB300
7740 K2=VAL(K2$)
7750 REM
7760 REM OPZOEKEN FOUTEN
7770 REM
7780 REM
7790 FORN=1 TO2*I:A(N)=B(N):NEXTN:GOSUB7310
7800 FORN=1 TO2*I:F(N)=0:F1(N)=0:NEXTN
7810 F1=0:F2=0:F3=0
7820 F4=0:F5=0:F6=0:F7=0:FF=0
7830 FORN=1 TO2*I STEP2
7840 IFC(N)<>C1(N) THENF(N)=1
7850 IFC(N+1)<>C1(N+1) THENF(N+1)=1
7860 IFD(N)<>D1(N) THENF1(N)=1
7870 IFD(N+1)<>D1(N+1) THENF1(N+1)=1
7880 NEXTN
7890 IFSG<>S1 THENF2=1
7900 IFKG<>K1 THENF3=1
7910 IF(S=0) OR(K=1) THENIFE1<>S THENF1=1
7920 IFABS(S)=K THENIFE1<>S/K THENF1=1
7930 IF(S=0) OR(K=1) OR(ABS(S)=K) THENFF=1
7940 IFFF=1 THENIFS2<>S THENF4=1
7950 IFFF=1 THENIFK2<>K THENF5=1
7960 IFFF=1 THEN8130
7970 IFABS(S)<K THENIFS2<>S THENF4=1
7980 IFABS(S)<K THENIFK2<>K THENF5=1
7990 IFABS(S)<K THENIFE1<>0 THENF6=1
8000 IFABS(S)<K THEN8130
8010 IFS<0 THENIFE1<>INT(S/K)+1 THENF6=1
8020 IFS<0 THENIFS2<>-(S-(INT(S/K)+1)*K) THENF4=1
8030 IFS<0 THENIFK2<>K THENF5=1:GOTO8180
8040 IFS<0 THEN8130
8050 IFE1<>INT(S/K) THENF6=1
8060 IFE1=INT(S/K) THENF7=1
8070 IFS2<>S-(INT(S/K))*K THENF4=1
8080 IFK2<>K THENF5=1
8090 REM
8100 REM CORRECT OF FOUT
8110 REM
8120 REM
8130 FORN=1 TO2*I
8135 IF(F(N)<>0) OR(F1(N)<>0) THENN=2*I:NEXTN:GOTO8180
8140 NEXTN
8150 IF(F1<>0) OR(F2<>0) OR(F3<>0) OR(F4<>0) THEN8180
8160 IF(F5<>0) OR(F6<>0) THEN8180
8170 GOTO8200
8180 VE=18:HO=30:GOSUB110:PRINT"F O U T !!"
8190 GOTO8280
8200 VE=18:HO=29:GOSUB110
8210 PRINT" CORRECT!"
8220 VE=19::HO=29:GOSUB110
8230 PRINT" -------":GOTO8630
8240 REM
8250 REM AANDUIDING FOUTEN
8260 REM
8270 REM
8280 FORN=1 TO2*I STEP2:L=(7*N-5)/2:L=L-1
8290 IFF(N)=1 THENVE=7:HO=L:GOSUB110:PRINT"?"
8300 IFF(N+1)=1 THENVE=9:HO=L:GOSUB110:PRINT"?"
8310 IFF1(N)=1 THENVE=11:HO=L:GOSUB110:PRINT"?"
8320 IFF1(N+1)=1 THENVE=13:HO=L:GOSUB110:PRINT"?"
8330 NEXTN
8340 IFF1=1 THENVE=18:HO=18:GOSUB110:PRINT"?"
8350 IFF2=1 THENVE=11:HO=7*I:GOSUB110:PRINT"?"
8360 IFF3=1 THENVE=13:HO=7*I:GOSUB110:PRINT"?"
8370 IFF4=1 THENVE=17:HO=22:GOSUB110:PRINT"?":F7=1
8380 IFF5=1 THENVE=19:HO=22:GOSUB110:PRINT"?"
8390 IFF6=1 THENVE=18:HO=18:GOSUB110:PRINT"?"
8400 IFF6=1 THENVE=18:HO=23:GOSUB110:PRINT"----"
8410 IFF7=1 THENVE=18:HO=23:GOSUB110:PRINT"----"
8420 REM
8430 REM BLIKVANGER
8440 REM VOOR FOUTEN
8450 REM
8460 REM
8470 FORZ=1 TO750:NEXTZ
8480 FORZ=1 TO50
8490 VE=0:HO=0:GOSUB110
8500 PRINT"==> ? D I T P E A K E O T N"
8510 VE=0:HO=0:GOSUB110
8520 PRINT" <== U D O G M A T F U E "
8530 NEXTZ
8540 VE=0:HO=0:GOSUB110
8550 PRINT"==> ? <== DUIDT OP GEMAAKTE FOUTEN !"
8560 FORZ=1 TO100:NEXTZ
8570 VE=21:HO=0:GOSUB110:PRINT"WENS JE NOG EEN POGING "
8580 PRINT"VOOR DEZE OPGAVE?(J/N) ";
8590 VE=22:HO=23:GOSUB110
8600 GOSUB210:GOSUB3470:IFIN$="J" THENV=0
8610 FORN=1 TO2*I:A(N)=B(N):NEXTN:IFV=0 THEN7440
8620 GOSUB100:PRINT"GOED! HIER DAN DE OPLOSSING":GOSUB7070
8630 GOSUB6860:GOSUB100:IFD$="-" THENA$="-"
8640 RETURN
8650 REM
8660 REM
8670 REM
8680 REM
20000 REM =====================
20010 REM
20020 REM
20030 REM HET OPVRAGEN VAN
20040 REM DE ASC-WAARDEN
20050 REM VOOR "<--" EN "-->"
20060 REM IN HET BEGIN VAN
20070 REM VAN HET PROGRAMMA
20080 REM KAN OP VOLGENDE
20090 REM MANIER WEGGELATEN
20100 REM WORDEN:
20110 REM
20120 REM BEPAAL:
20130 REM 1) DE ASC("<--")
20140 REM 2) DE ASC("-->")
20150 REM
20160 REM TERUG TE VINDEN
20170 REM IN DE DOCUMENTATIE
20180 REM VAN UW COMPUTER
20190 REM
20200 REM
20210 REM VERVANG REGEL 1150
20220 REM DOOR FOR Z1= 1 TO 7
20230 REM
20240 REM LAAT DE REGELS
20250 REM 1330 TOT EN MET
20260 REM 1510 WEG
20270 REM
20280 REM LAAT REGEL 1540 WEG
20290 REM
20300 REM VERVANG IN REGEL 3280
20310 REM LP = ASC("<--")
20320 REM LINKERPIJLTJE
20330 REM
20340 REM VERVANG IN REGEL 3290
20350 REM RP = ASC("-->")
20360 REM RECHTERPIJLTJE
20370 REM
20380 REM
20390 REM
20400 REM
20410 REM =====================
25000 DATA "HALLO,","MIJN NAAM IS << A P P E L >>"
25010 DATA "EEN RARE NAAM, VIND JE NIET?"
25020 DATA"HOE IS JOUW VOORNAAM? ......."
25030 DATA "DAT IS EEN MOOIE NAAM!"
25040 DATA"IK WIL JOU MIJN NIEUWSTE PROGRAMMA"
25050 DATA "TOEVERTROUWEN ALS JE HET GOEDVINDT."
25060 DATA", OM VLOT TE KUNNEN WERKEN"
25070 DATA "HAD IK GRAAG JOUW HULP GEKREGEN."
25080 DATA "WIL JE EVEN TWEE TOETSEN INDRUKKEN"
25090 DATA "OP HET TOETSENBORD VAN UW COMPUTER;"
25100 DATA "ALDUS KRIJGT HET PROGRAMMA MEER COMFORT."
25110 DATA " 1) DE TOETS OM DE CURSOR NAAR"
25120 DATA " LINKS TE BEWEGEN OF <-= PIJLTJE"
25130 DATA " DRUK DE TOETS NU IN:"
25140 DATA " 2) DE TOETS OM DE CURSOR NAAR"
25150 DATA" RECHTS TE BEWEGEN OF -=> PIJLTJE"
25160 DATA" DRUK DE TOETS NU IN:"
25170 DATA ", DAAR GAAN WE DAN"
25180 DATA 4,6,4,5,6,12,9,15,15,70,24,90,75,125
25190 DATA 90,180,-2,-5,10,-15,35,-60,180
25200 DATA -30,-33,-44,75,125,-30,72,0
25210 REM======================
30000 REM*********************
30010 REM* *
30020 REM* PROGRAMMA *
30030 REM* *
30040 REM* B R E U K E N *
30050 REM* *
30060 REM* O P T E L L E N *
30070 REM* A F T R E K K E N *
30080 REM* *
30090 REM*********************
30100 REM* *
30110 REM* LEERPROGRAMMA *
30120 REM* DOOR *
30130 REM* *
30140 REM* DENEWETH ROGER *
30150 REM* VIJVERSTRAAT 4 *
30160 REM* 8800 ROESELARE *
30170 REM* BELGIE *
30180 REM* *
30190 REM* 06.05.1984 *
30200 REM* *
30210 REM* GESCHREVEN *
30220 REM* VOOR DE *
30230 REM* PROGRAMMEER- *
30240 REM* WEDSTRIJD 1984 *
30250 REM* *
30260 REM* NOS-HOBBYSCOOP *
30270 REM* HILVERSUM *
30280 REM* *
30290 REM* OP APPLE II *
30300 REM* COMPUTER *
30310 REM* *
30320 REM* IN BASICODE 2 *
30330 REM* *
30340 REM*********************
30350 REM COPYRIGHT
30360 REM NOS HILVERSUM
30370 REM ------------------