-
Notifications
You must be signed in to change notification settings - Fork 11
/
Copy pathA12_Keynes_hoofdprogramma.bc3
576 lines (575 loc) · 18.7 KB
/
A12_Keynes_hoofdprogramma.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
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
1000 A=1000:GOTO20:REM Keynesiaanse model
1010 DIMIN$(30,1),FO$(14),AF(1),Y(1),RM$(1),MR$(1)
1020 DIMXC(10,1),YC(10,1),VA$(10),PR$(1)
1030 HB=HO+1:VH=VE-2:AF(0)=13:AF(1)=4:PR$="off":PR=0
1040 RM$(0)="reele":RM$(1)="monetaire":Y1=0:R1=0:RM=2
1050 Y=0:R=0:W1=1:YE=0:YM=0:UW=.999
1060 MR$(0)="REELE SECTOR":MR$(1)="MONETAIRE SECTOR"
1070 FORI=0 TO1:FORJ=1 TOAF(I):READIN$(J,I)
1080 NEXTJ:NEXTI:PR$(1)="aanwezig":PR$(0)="afwezig"
1090 S$="":FORI=1 TOHB/2:S$=S$+" ":NEXTI
1100 FORI=1 TO14:READFO$(I):NEXTI
1110 GOSUB100:FO=0:SR$="KEYNESIAANSE MODEL"
1120 GOSUB8490:PRINT:PRINT
1130 PRINT:PRINT"Geef uw keuze,":PRINT
1140 PRINT:PRINT" 1. invoer":PRINT" 2. uitvoer"
1150 PRINT" 3. wijzigen":PRINT" 4. wissen"
1160 PRINT" 5. printer on/off"
1170 PRINT" 6. grafische voorstelling":PRINT" 7. stoppen"
1180 PRINT:PRINT"Uw keuze: ";:GOSUB120:PRINT:PRINT
1190 PRINT"reele sector:........";PR$(SGN(AF(0)))
1200 PRINT"monetaire sector:....";PR$(SGN(AF(1)))
1210 PRINT"printer:.............";PR$
1220 PRINT"vrij geheugen in Kb: ";:GOSUB270:SR=FR/1024
1230 CN=1:CT=4:GOSUB310:PRINTSR$:GOSUB110
1240 GOSUB210:IN=IN-48:IF(IN<1)OR(IN>7) THEN1240
1250 GOSUB100:IFIN=7 THEN950
1260 ONIN GOSUB1510,3510,4800,5130,5200,6010
1270 GOTO1110
1500 REM *** invoer ***
1510 PRINT:PRINT"In welke sector wilt u invoeren:"
1520 GOSUB8340:IFIN=3 THENRETURN
1530 GOSUB100:RM=IN-1:GOSUB5170:SR$="INVOER "+MR$(RM)
1540 GOSUB8490:W1=1:AF(RM)=1:PRINT:PRINT:SP$=" "
1550 PRINT"verg.";SP$;AF(RM);": ";:INPUTIN$(AF(RM),RM)
1560 IFIN$(AF(RM),RM)="" THENAF(RM)=AF(RM)-1:RETURN
1570 AF(RM)=AF(RM)+1:IFAF(RM)>9 THENSP$=""
1580 GOTO1550
1600 REM *** vergelijking verwerken ***
1610 K=1:SA=0:LG=LEN(IN$):F1=0:F2=0:FO=0:H6=0:H5=0
1620 H$=MID$(IN$,K,1):H1$=H$
1630 GOSUB8220:IF(F3=0)OR(F3=2) THEN1660
1640 K=K+1:IFK>LG THEN1820
1650 GOTO1620
1660 SA=K-1:K=K+1:F1=1:Z=0
1670 IFK>LG THEN1720
1680 H$=MID$(IN$,K,1):H2$=H$
1690 GOSUB8220:IFF3=1 THEN1720
1700 IFF3=3 THENF2=1:GOTO1720
1710 K=K+1:H1$=H1$+H2$:GOTO1670
1720 Z=Z+1:IFZ=Y(RM) THEN1720
1730 IFZ>AF(RM) THENFO=2:RETURN
1740 GOSUB7290:IFH1$=VA$ THEN1760
1750 GOTO1720
1760 H1=LEN(IN$(Z,RM))-VL+1:H2$=""
1770 H2=LEN(IN$)+1
1780 IFF2=1 THENH2$="*":F2=0
1790 H1$="("+RIGHT$(IN$(Z,RM),H1)+")"
1795 IFSA<1 THENIN$=H1$+H2$+RIGHT$(IN$,H2-K):GOTO1810
1800 IN$=LEFT$(IN$,SA)+H1$+H2$+RIGHT$(IN$,H2-K)
1810 K=K+H1+1:LG=LEN(IN$):IFK<LG THEN1620
1820 IFF1<>0 THEN1610
1830 IFFO<>0 THENRETURN
1840 IFLEFT$(IN$,1)="(" THEN1860
1850 IN$="("+IN$+")"
1860 F2=0:LG=LEN(IN$):FORI=1 TOLG
1870 H$=MID$(IN$,I,1)
1880 IFH$="(" THENH6=H6+1:GOTO1910
1890 IFH$=")" THENH5=H5+1:GOTO1910
1900 GOSUB8230:IF(F3=0)OR(F3=2) THENF2=1
1910 NEXTI:IFH6<>H5 THENFO=4
1920 RETURN
2000 REM *** haakjes uitwerken ***
2010 LG=LEN(IN$):DU$="":I=1
2020 IFI=LG THENRETURN
2030 I=1:GB$="!":LG=LEN(IN$)
2040 H$=MID$(IN$,I,1)
2050 IFH$="(" THENF1=I-1:GU$=GB$:GB$=""
2060 GB$=GB$+H$
2070 IFH$=")" THENF2=I+1:GOSUB2100:GOTO2020
2080 I=I+1:IFI>LG THENFO=4:RETURN
2090 GOTO2040
2100 IF(I=LG)OR(GU$="!") THEN GOSUB2400:RETURN
2110 J=LEN(GU$)-1
2120 H$=RIGHT$(GU$,1):H1$=H$
2130 IF(H$="*")OR(H$="/") THEN2170
2140 IF(H$="+")OR(H$="-") THEN2230
2150 IFH$="(" THENH$="+":GOTO2230
2160 H1$=H$+"*":F1=F1+1
2170 H$=MID$(GU$,J,1):IFH$="(" THEN2210
2180 H1$=H$+H1$
2190 IF(H$="+")OR(H$="-") THEN2230
2200 J=J-1:GOTO2170
2210 IF(LEFT$(H1$,1)="+")OR(LEFT$(H1$,1)="-") THEN2230
2220 H1$="+"+H1$:H$="+":F1=F1+1
2230 TG$=H$:H2$="":H3$="":J=2:F1=F1-LEN(H1$)
2240 TE$=MID$(GB$,2,1):IFTE$<>"-" THENTE$="+"
2250 H$=MID$(GB$,J,1)
2260 IF((H$<>"+")AND(H$<>"-"))OR(J=2) THEN2280
2270 GOSUB2330:H2$="":TE$=H$:GOTO2320
2280 IFH$=")" THEN GOSUB2330:GOTO2380
2290 IF(H$<>"+")AND(H$<>"-") THEN2310
2300 IFJ=2 THEN2320
2310 H2$=H2$+H$
2320 J=J+1:GOTO2250
2330 IFLEN(H1$)<2 THENH4$="":GOTO2340
2335 H4$=RIGHT$(H1$,LEN(H1$)-1)
2340 IF(TG$="-")AND(TE$="-") THENH1$="+"+H4$
2350 IF(TG$="+")AND(TE$="-") THENH1$="-"+H4$
2360 H3$=H3$+H1$+H2$:H1$=TG$+H4$
2370 RETURN
2380 IFF1=0 THENF1=1
2385 IN$=LEFT$(IN$,F1)+H3$+RIGHT$(IN$,LG-F2+1)
2390 RETURN
2400 H$=MID$(IN$,2,1):GB$=""
2410 IF(H$="+")OR(H$="-") THEN2430
2420 GB$="+":IFH$<>"(" THEN2430
2425 IN$=RIGHT$(IN$,LEN(IN$)-1)
2430 DU$=DU$+GB$+MID$(IN$,2,F2-3)
2440 IFI=LG THEN2460
2450 IN$="("+RIGHT$(IN$,LG-F2+1)+")"
2460 RETURN
2500 REM *** coefficienten bepalen ***
2510 F1=0:F2=0:YG=0:GG=0:RY=0:K=1:LG=LEN(IN$):H1$=""
2520 H$=MID$(IN$,K,1)
2530 IF(H$="*")OR(H$="/") THEN GOSUB3010
2540 IFFO<>0 THENRETURN
2550 IF(H$="+")OR(H$="-") THEN GOSUB2620
2560 IFH$="Y" THENH$="":F1=1
2570 IFH$="R" THENH$="":F1=2
2580 H1$=H1$+H$
2590 K=K+1
2600 IFK>LG THEN GOSUB2620:RETURN
2610 GOTO2520
2620 G1=VAL(H1$)
2630 IF(G1=0)AND(F1=0) THENRETURN
2640 IFG1=0 THENG1=VAL(H1$+"1")
2650 IFF1=0 THENGG=GG+G1
2660 IFF1=1 THENYG=YG+G1
2670 IFF1=2 THENRY=RY+G1
2680 F1=0:H1$="":RETURN
3000 REM *** delen of vermenigvuldigen ***
3010 G1=VAL(H1$):F2=0
3020 IFG1=0 THENG1=VAL(H1$+"1")
3030 B1$=H$:H1$=""
3040 K=K+1:IFK>LG THENH$="+":GOTO3110
3050 H$=MID$(IN$,K,1)
3060 IF(H$="+")OR(H$="-") THEN3110
3070 IF(H$="*")OR(H$="/") THEN3110
3080 IF(H$="Y")OR(H$="y") THENH$="":F2=1
3090 IF(H$="R")OR(H$="r") THENH$="":F2=2
3100 H1$=H1$+H$:GOTO3040
3110 G2=VAL(H1$):B2$=H$
3120 IF(G2=0)AND(B1$="/") THENFO=10:RETURN
3130 IF(G2=0)AND(F2=0) THEN3100
3140 IFG2=0 THENG2=VAL(H1$+"1")
3150 IFB1$="*" THENG1=G1*G2:GOTO3190
3160 IFB1$="/" THENG1=G1/G2
3170 IF(F1>0)AND(F2>0) THENF1=0:F2=0
3180 IFF2>0 THENF1=F2:F2=0
3190 IF(F1>0)AND(F2>0) THENFO=5
3200 IFF2>0 THENF1=F2:F2=0
3210 IF(B2$<>"-")AND(B2$<>"+") THEN3230
3220 SR=G1:GOSUB300:H1$=SR$:H$=B2$:RETURN
3230 H1$="":B1$=B2$:GOTO3040
3500 REM *** berekeningen ***
3510 PRINT:PRINT"Wat wilt u weten:":PRINT
3520 PRINT:PRINT" 1. evenwichtsinkomen en rentevoet"
3530 PRINT:PRINT" 2. totaal overzicht"
3540 GOSUB8360:GOSUB100:IFIN=3 THENRETURN
3550 ONIN GOTO3940,3570
3560 REM *** totaaloverzicht ***
3570 GOSUB3940:IFFO<>0 THENRETURN
3580 GOSUB100:SL=0:SH=1:IFAF(1)=0 THENSH=0
3590 IFPR=1 THEN GOSUB8520
3600 CN=2:CT=6:SR$="TOTAALOVERZICHT":GOSUB8490
3610 IFPR=1 THENF1=1:GOSUB8310
3620 PRINT:PRINT:IFFO<>0 THEN8010
3630 SR=Y:GOSUB310:SR$="Y="+SR$
3640 IFPR=1 THENF1=0:GOSUB8310
3650 PRINTSR$:IFSH=0 THEN3680
3660 CN=3:CT=6:SR=R:GOSUB310:SR$="R="+SR$
3670 PRINTSR$:IFPR=1 THENF1=1:GOSUB8310
3680 H1=AF(0):IFAF(1)>H1 THENH1=AF(1)
3690 IFPR=1 THEN GOSUB360
3700 CN=1:CT=5
3710 SR$=MR$(0)+RIGHT$(S$,HB/2-14)
3720 IFSH=0 THEN3740
3730 SR$=SR$+MR$(1)
3740 IFPR=1 THENF1=1:GOSUB8310
3750 PRINT:PRINTSR$:PRINT
3760 FORTE=1 TOH1:B$=" ":FORRM=0 TOSH
3770 IFTE=Y(RM) THEN3820
3780 GOSUB8410:IFIN$="" THEN3820
3790 IFFO<>0 THEN8010
3800 SR=YG*Y+RY*R+GG:GOSUB310:H1=LEN(LF$)
3810 B$=B$+LF$+"="+RIGHT$(S$,3-H1)+SR$
3820 IFRM=1 THEN3840
3830 B$=B$+RIGHT$(S$,HB/2-LEN(B$)+1)
3840 NEXTRM
3850 SR$=B$:IFPR=1 THENF1=0:GOSUB8310
3860 PRINTSR$
3870 NEXTTE:SR=ME:GOSUB310:B$="mpr: "+SR$
3880 IFAF(1)=0 THENSR$=B$:GOTO3910
3890 SR=MM:GOSUB310
3900 SR$=B$+RIGHT$(S$,HB/2-LEN(B$)+5)+SR$
3910 IFPR=1 THEN GOSUB8310
3920 PRINTSR$:GOTO7370
3930 REM *** evenwichtsinkomen berekenen ***
3940 SL=0:SH=1
3950 IFAF(0)=0 THENSL=1
3960 IFAF(1)=0 THENSH=0
3970 IF(SL<>1)OR(SH<>0) THEN3990
3980 FO=3:GOTO8010
3990 IF((Y<>0)OR(R<>0))AND(W1=0) THEN4400
4000 PRINT"Momentje, dit kost zelfs voor mij tijd!";
4010 RM=SL
4020 Y(RM)=0
4030 Y(RM)=Y(RM)+1:FO=0
4040 IFY(RM)>AF(RM) THENFO=6:GOTO8010
4050 Z=Y(RM):GOSUB8100:IFFO<>0 THEN8010
4060 B=I:IFF2=1 THEN4120
4070 IN$=LF$:GOSUB1610
4080 IF(F2=1)OR(FO<>0) THEN4030
4090 B$=IN$:H$=IN$(Y(RM),RM):IN$=RIGHT$(H$,LEN(H$)-B+1)
4100 GOSUB1610:IF(FO<>0)OR(F2=1) THEN4030
4110 GOTO4160
4120 IN$=LF$:GOSUB1610:B$=IN$
4130 IFFO<>0 THEN8010
4140 H$=IN$(Y(RM),RM):IN$=RIGHT$(H$,LEN(H$)-B+1)
4150 GOSUB1610:IFFO<>0 THEN8010
4160 H$=B$:B$=IN$:IN$=H$:GOSUB2010:IFFO<>0 THEN8010
4170 IN$=DU$:GOSUB2510:IFFO<>0 THEN8010
4180 GY=YG:GH=GG:YR=RY
4190 IN$=B$:GOSUB2010:IFFO<>0 THEN8010
4200 IN$=DU$:GOSUB2510:IFFO<>0 THEN8010
4210 YG=GY-YG:GG=GG-GH:YR=RY-YR
4220 IFRM=0 THENYE=YG:RG=GG:RR=YR
4230 IFRM=1 THENYM=YG:GM=GG:MR=YR
4240 RM=RM+1:IFRM=SH THEN4020
4250 RM=2:IFYE=0 THENFO=9:RM=0:GOTO8010
4260 ME=1/YE*SGN(RG)
4270 IFAF(1)=0 THENY=RG/YE:RM=0:GOTO4390
4280 IFYM=0 THENFO=9:RM=1:GOTO8010
4290 GOSUB8610:IFFO<>0 THEN8010
4300 Y=H2:R=H1
4310 REM *** multiplier berekenen ***
4320 FORRM=0 TO1
4330 IFRM=0 THENRG=RG+SGN(RG)
4340 IFRM=1 THENGM=GM+SGN(GM)
4350 GOSUB8610:FO=0
4360 IFRM=0 THENME=H2-Y:RG=RG-SGN(RG)
4370 IFRM=1 THENMM=H2-Y:GM=GM-SGN(GM)
4380 NEXTRM
4390 IFY<0 THENFO=7:GOTO8010
4400 W1=0:IFIN=2 THENRETURN
4410 GOSUB100:SR$="OPLOSSING":
4420 GOSUB8490:PRINT:PRINT:PRINT
4430 CN=2:CT=6
4440 IFPR=1 THEN GOSUB8520
4450 SR$="Van het opgegeven model"
4460 IFPR=1 THEN GOSUB350
4470 PRINTSR$;:IFAF(1)=0 THEN4690
4480 SR$=" zijn de even-":IFPR=1 THENF1=0:GOSUB8310
4490 PRINTSR$:SR$="wichtsvergelijkingen:"
4500 IFPR=1 THENF1=1:GOSUB8310
4510 PRINTSR$:SR$=RM$(0)+" sector: "+IN$(Y(0),0)
4520 PRINT:IFPR=1 THENF1=0:GOSUB8310
4530 PRINTSR$:SR$=RM$(1)+" sector: "+IN$(Y(1),1)
4540 IFPR=1 THENF1=1:GOSUB8310
4550 PRINTSR$:PRINT:SR=Y:GOSUB310
4560 SR$="Het evenwichtsinkomen (Y) is: "+SR$
4570 IFPR=1 THENF1=0:GOSUB8310
4580 PRINTSR$:SR=R:CN=3:GOSUB310
4590 SR$="De rentevoet (R) is: "+SR$
4600 IFPR=1 THENF1=1:GOSUB8310
4610 PRINTSR$:PRINT:CN=3
4620 FORRM=0 TO1:SR$=""
4630 IFRM=0 THENH1=ME:GOTO4650
4640 H1=MM
4650 SR=H1:GOSUB310
4660 SR$="Multiplier "+RM$(RM)+" sector: "+SR$
4670 IFPR=1 THENF1=0:GOSUB8310
4680 PRINTSR$:NEXTRM:GOTO7370
4690 SR$=" is de even-":IFPR=1 THENF1=0:GOSUB8310
4700 PRINTSR$:SR$="wichtsvergelijking: "+IN$(Y(0),0)
4710 IFPR=1 THENF1=1:GOSUB8310
4720 PRINTSR$:PRINT:SR=Y:GOSUB310
4730 SR$="Het evenwichtsinkomen (Y) is: "+SR$
4740 IFPR=1 THEN GOSUB8310
4750 PRINTSR$:PRINT:CN=3:SR=ME:GOSUB310
4760 SR$="De multiplier is: "+SR$
4770 IFPR=1 THEN GOSUB8310
4780 PRINTSR$:GOTO7370
4790 REM *** wijzigen ***
4800 PRINT:PRINT"Welke sector wilt u wijzigen:"
4810 GOSUB8340:IFIN=3 THENRETURN
4820 GOSUB100:W1=1
4830 H1=1:H2=VH-4:RM=IN-1
4840 GOSUB100:SP$=" "
4850 SR$=MR$(RM)+" WIJZIGEN"
4860 GOSUB8490
4870 PRINT:PRINT:FORI=H1 TOH2
4880 IFI>9 THENSP$=""
4890 IFI>40 THEN4910
4900 PRINTSP$;I;":";IN$(I,RM)
4910 NEXTI
4920 HO=0:VE=VH-1:GOSUB110
4930 PRINT"Geef commando: ";:INPUTIN$
4940 IFIN$="" THENRETURN
4950 IFLEN(IN$)>1 THENIN=VAL(RIGHT$(IN$,LEN(IN$)-1))
4960 IN$=LEFT$(IN$,1)
4970 SR$=IN$:GOSUB330
4980 IF(SR$="W")AND(IN<>0) THEN GOSUB5030
4990 IFSR$="T" THEN GOSUB5050
5000 IF(SR$="V")AND(IN<>0) THEN GOSUB5060
5010 IFSR$="P" THEN5090
5020 GOTO4840
5030 FORI=IN TOAF(RM):IN$(I,RM)=IN$(I+1,RM)
5040 NEXTI:AF(RM)=AF(RM)-1:RETURN
5050 AF(RM)=AF(RM)+1:IN=AF(RM)
5060 HO=0:VE=VH-1:GOSUB110:PRINT"Geef vergelijking: ";IN
5070 INPUTIN$(IN,RM)
5080 RETURN
5090 H1=H2+1:H2=H2+VH-4
5100 IFH1>AF THENH1=1:H2=VH-4
5110 GOTO4840
5120 REM *** wissen ***
5130 PRINT:PRINT"Welke sector wilt u wissen:"
5140 GOSUB8340
5150 IFIN=3 THENRETURN
5160 GOSUB100:RM=IN-1:W1=1
5170 FORI=1 TOAF(RM):IN$(I,RM)="":NEXTI
5180 AF(RM)=0:RETURN
5190 REM *** printer on/off ***
5200 PR=1-PR
5210 IFPR$="on" THENPR$="off":RETURN
5220 PR$="on":RETURN
6000 REM *** grafische voorstelling ***
6010 GOSUB100
6020 SR$="GRAFISCHE VOORSTELLING":GOSUB8490
6030 PRINT:PRINT:PRINT:PRINT"Geef uw keuze:"
6040 PRINT:PRINT" 1. IS-LM grafiek"
6050 PRINT:PRINT" 2. IS-LM grafiek, nieuw en oud"
6060 PRINT:PRINT" 3. grafiek(en)"
6070 PRINT:PRINT" 4. terug naar hoofdmenu"
6080 PRINT:PRINT"Uw keuze: ";
6090 GOSUB210:IN=IN-48:IF(IN<1)OR(IN>4) THEN6090
6100 IFIN=4 THENRETURN
6110 GOSUB100
6120 ONIN GOSUB6210,6170,6510
6130 IFFO<>0 THENRETURN
6140 GOSUB210:IFIN=67 THEN GOSUB20020
6150 GOTO6010
6160 REM *** IS-LM grafiek ***
6170 IF(Y1=0)OR(R1=0) THEN6210
6180 FORI=9 TO10:FORJ=0 TO1:XC(I-2,J)=XC(I,J)
6190 YC(I-2,J)=YC(I,J):VA$(I-2)=VA$(I)
6200 NEXTJ:NEXTI:S1=6:GOTO6220
6210 S1=8
6220 IF(AF(0)=0)OR(AF(1)=0) THENFO=12:GOTO8010
6230 IFW1=1 THENIN=2:FO=0:GOSUB3940:W1=0
6240 IF(R=0)AND(FO=0) THENFO=11:GOTO8010
6250 IFFO<>0 THENRETURN
6260 IFS1=8 THENY1=2*Y:R1=2*R
6270 H6=Y1:H4=R1:AF=10
6280 F1=H6/.8999:F2=.9/H4:S2=10
6290 FORI=9 TO10
6300 IFI=9 THENH1=YE:H2=RR:H3=RG
6310 IFI=10 THENH1=YM:H2=MR:H3=GM
6320 GOSUB6930:IFFO<>0 THENI=11
6330 NEXTI
6335 IFFO<>0 THEN8010
6340 GOSUB7130
6350 VA$(9)="R.I=S":VA$(10)="M.L=M"
6360 GOSUB6820
6370 FORHO=Y/F1+.1 TO.1 STEP-3/HG
6380 VE=.9-F2*R:GOSUB620:NEXTHO
6390 FORVE=.9-F2*R TO.9 STEP3/VG
6400 HO=Y/F1+.1:GOSUB620:NEXTVE
6410 RETURN
6500 REM *** verg. invoeren ***
6510 SR$="VERGELIJKINGEN INVOEREN":GOSUB8480
6520 PRINT:PRINT
6530 PRINT"Hoeveel vergelijkingen: ";
6540 INPUTAF:IF(AF<1)OR(AF>8) THEN6530
6550 S1=0:FORI=1 TOAF
6560 PRINT:PRINT"Geef vergelijking: ";
6570 INPUTVA$(I):SR$=LEFT$(VA$(I),2):GOSUB330
6580 IF(SR$="M.")OR(SR$="R.") THEN6600
6590 PRINT"Niet correct":PRINT:GOTO6560
6600 NEXTI:L=0:PRINT:PRINT"Momentje...";
6610 L=L+1:F1=0:LG=LEN(VA$(L))
6620 SR$=LEFT$(VA$(L),1):GOSUB330
6630 IFSR$="M" THENRM=1
6640 IFSR$="R" THENRM=0
6650 H1$=MID$(VA$(L),3,LG-2):H1=VAL(H1$)
6660 IFH1=0 THEN6700
6670 IFH1>AF(RM) THENFO=14:VA$(L)="":GOTO8010
6680 IN$=IN$(H1,RM):Z=H1:GOSUB7290
6690 VA$(L)=LEFT$(VA$(L),2)+VA$:GOTO6750
6700 Z=0
6710 Z=Z+1:GOSUB7290:IFH1$=VA$ THEN6740
6720 IFZ>=AF(RM) THENFO=2:VA$="":GOTO8010
6730 GOTO6710
6740 IN$=IN$(Z,RM)
6750 TE=Z:GOSUB8410:IFYG=0 THENH3=GG+R*RY:GOTO6770
6760 H1=1:H2=1/YG:H3=-GG/YG-R*RY
6770 H6=400:H4=H6:I=L:GOSUB6930:IFFO<>0 THEN8010
6780 IFL<>AF THEN6610
6790 F1=H6/.8999:F2=.9/H4:GOSUB7130
6800 GOSUB6820:RETURN
6810 REM *** verg. tekenen ***
6820 FORI=1+S1 TOAF
6830 SR$=MID$(VA$(I),3,LEN(VA$(I))-2)
6840 FORJ=0 TO1
6850 HO=XC(I,J)/F1+.1:VE=.9-F2*YC(I,J)
6860 IFJ=0 THEN GOSUB620:GOTO6900
6870 GOSUB630:IFVE>.88 THENVE=.85
6880 IFHO>.98 THENHO=.96
6890 HO=HO-.017*LEN(SR$):VE=VE+.01:GOSUB650
6900 NEXTJ:NEXTI
6910 RETURN
6920 REM *** coordinaten berekenen ***
6930 IF(H1<>0)AND(H2<>0) THEN6950
6932 IFH2=0 THEN6940
6935 XC(I,0)=0:XC(I,1)=H6:YC(I,0)=H3:YC(I,1)=H3:RETURN
6940 XC(I,0)=H3:XC(I,1)=H3:YC(I,0)=H4:YC(I,1)=0:RETURN
6950 F3=H2/H1:IFF3>=0 THENH5=H3/H1:GOTO6970
6960 H5=(H4*H2+H3)/H1
6970 IF(H5<0)OR(H5>H6) THEN7010
6980 XC(I,0)=H5:YC(I,0)=0
6990 IFF3<0 THENYC(I,0)=H4
7000 GOTO7030
7010 H5=-H3/H2:IF(H5<0)OR(H5>H4) THENFO=13:RETURN
7020 YC(I,0)=H5:XC(I,0)=0
7030 IFF3>=0 THENH5=(H4*H2+H3)/H1:GOTO7050
7040 H5=H3/H1
7050 IF(H5<0)OR(H5>H6) THEN7090
7060 XC(I,1)=H5:YC(I,1)=H4
7070 IFF3<0 THENYC(I,1)=0
7080 GOTO7110
7090 H5=(H1*H6-H3)/H2:IF(H5<0)OR(H5>H4) THENFO=13:RETURN
7100 YC(I,1)=H5:XC(I,1)=H6
7110 RETURN
7120 REM *** assenstelsel ***
7130 GOSUB600:CN=0:CT=3:HO=.1:VE=.9:GOSUB620
7140 HO=UW:GOSUB630:HO=.1:VE=0:GOSUB620
7150 VE=.9:GOSUB630
7160 FORSR=H6/4 TOH6 STEPH6/4.001
7170 HO=SR/F1+.1:VE=.89:GOSUB620
7180 VE=.91:GOSUB630:GOSUB310
7190 HO=HO-.075:VE=.93:GOSUB650
7200 NEXTSR
7210 FORI=0 TOH4 STEPH4/4
7220 VE=.9-I/H4*.9:HO=.09:GOSUB620
7230 HO=.11:GOSUB630:SR=I:GOSUB310
7240 IF(VAL(SR$)>=1)OR(I=0) THEN7260
7250 CT=4:CN=2:GOSUB310:SR$=RIGHT$(SR$,3):CT=3:CN=0
7260 HO=0:GOSUB650:NEXTI
7270 RETURN
7280 REM *** variabele uit string halen ***
7290 VA$="":VL=1:LG=LEN(IN$(Z,RM))
7300 H$=MID$(IN$(Z,RM),VL,1)
7310 IFH$="=" THENVL=VL+1:RETURN
7320 IFH$=" " THEN7340
7330 VA$=VA$+H$
7340 VL=VL+1:IFVL<LG THEN7300
7350 FO=1:RETURN
7360 REM *** toets ***
7370 HO=HB-8:VE=VH:GOSUB110:PRINT"<TOETS>";
7380 GOSUB210:RETURN
8000 REM *** foutmelding ***
8010 GOSUB100:SR$="FOUTMELDING":GOSUB8490
8020 PRINT:PRINT:PRINT
8030 PRINT"Er is een fout geconstateerd, en wel:"
8040 IFFO<>2 THENPRINTFO$(FO):GOTO8060
8050 PRINTH1$;FO$(FO)
8060 IFRM>1 THEN7370
8070 PRINT:PRINT"Deze fout komt voor in de ";RM$(RM)
8080 PRINT"sector.":GOTO7370
8090 REM *** evenwichtsvergelijkingen zoeken ***
8100 I=0:H1$="":F2=0
8110 LG=LEN(IN$(Z,RM))
8120 I=I+1:IFI>=LG THENFO=1:RETURN
8130 H$=MID$(IN$(Z,RM),I,1)
8140 IFH$=" " THEN8120
8150 IF(H$="+")OR(H$="-") THENF2=1
8160 IF(H$>="0")AND(H$<="9") THENF2=1
8170 IFH$="=" THEN8190
8180 H1$=H1$+H$:GOTO8120
8190 IFH1$="R" THENF2=1
8200 IFH1$="Y" THENF2=1
8210 I=I+1:LF$=H1$:RETURN
8220 REM *** variabele of cijfer ? ***
8230 F3=0:IF(H$="Y")OR(H$="R") THEN GOSUB8290
8240 IF(H$>="0")AND(H$<="9") THENF3=F3+1
8250 IF(H$="*")OR(H$="-")OR(H$="+") THENF3=F3+1
8260 IF(H$="/")OR(H$="(")OR(H$=")") THENF3=F3+1
8270 IF(H$=".")OR(H$="") THENF3=F3+1
8280 RETURN
8290 F3=2:H$=MID$(IN$,K+1,1):RETURN
8300 REM *** printen ***
8310 GOSUB350:FORJ=0 TOF1:GOSUB360:NEXTJ
8320 RETURN
8330 REM *** reel of monetair ? ***
8340 PRINT:PRINT:PRINT" 1. reele sector"
8350 PRINT:PRINT" 2. monetaire sector"
8360 PRINT:PRINT" 3. terug naar het hoofdmenu"
8370 PRINT:PRINT:PRINT"Geef uw keuze: ";
8380 GOSUB210:IN=IN-48:IF(IN<1)OR(IN>3) THEN8380
8390 RETURN
8400 REM *** waarden verg. zoeken ***
8410 Z=TE:GOSUB8100
8420 IN$=RIGHT$(IN$(Z,RM),LG-I+1)
8430 IFIN$="" THENRETURN
8440 GOSUB1610:IFFO<>0 THENRETURN
8450 GOSUB2010:IFFO<>0 THENRETURN
8460 IN$=DU$:GOSUB2510
8470 RETURN
8480 REM *** reverse printen ***
8490 HO=INT(HB/2-LEN(SR$)/2-3):VE=0
8500 GOSUB110:GOSUB150:RETURN
8510 REM *** model printen ***
8520 SR$="HET OPGEGEVEN MODEL IS:"
8530 F1=1:GOSUB8310
8540 FORRM=SL TOSH:FORI=1 TOAF(RM)
8550 IFI>1 THEN8570
8560 SR$=MR$(RM):F1=1:GOSUB8310
8570 F1=0:SR$=IN$(I,RM):GOSUB8310
8580 NEXTI:GOSUB360:NEXTRM:GOSUB360
8590 RETURN
8600 REM *** Y en R berekenen ***
8610 H3=1/YE*RG:H4=1/YE*RR
8620 H5=1/YM*GM:H6=1/YM*MR
8630 IF(RR=0)AND(MR=0) THENFO=11:RETURN
8640 H1=(H5-H3)/(H4-H6):H2=H4*H1+H3
8650 IFH1<0 THENFO=8:RM=1
8660 IFH2<0 THENFO=7
8670 RETURN
20000 REM *** hier kunt u een screen- ***
20010 REM *** dumpprogramma plaatsen ***
20020 IFPR=0 THENRETURN:REM *** LATEN STAAN! ***
20025 REM bijvoorbeeld CALL&C00A
20030 RETURN
25000 DATA"C=.75(Y-B-Sp+Ou)+40"
25010 DATA"B=.35Y+40","Sp=.1Y","I=-800R+200"
25020 DATA"O=Ob+Ou","Ob=.225Y+80","Ou=5W+54"
25030 DATA"E=60","M=100","W=Na-Nv","Na=17"
25040 DATA"Nv=Y/25","Y=C+I+Ob+E-M","La=.5Y"
25050 DATA"Lb=-660R+150","M=210","La+Lb=M"
25060 REM
25070 DATA"Geen juiste vergelijking"
25080 DATA" is een onbekende variabele"
25090 DATA"Er is geen invoer aanwezig"
25100 DATA"De haakjes zijn fout geplaatst"
25110 DATA"Er is een kwadratische functie ontstaan"
25120 DATA"Er is geen evenwichtsvergelijking"
25130 DATA"Er is een negatieve Y ontstaan"
25140 DATA"Er is een negatieve R ontstaan"
25150 DATA"Er is geen Y aanwezig"
25160 DATA"Een noemer is nul geworden"
25170 DATA"Er is geen R aanwezig"
25180 DATA"Niet beide sectoren zijn aanwezig"
25190 DATA"Grafiek zit niet in het eerste kwadrant"
25200 DATA"Vergelijking bestaat (nog) niet"
32000 REM ****************************
32010 REM KEYNESIAANSE MODEL
32020 REM
32030 REM (C) Ronald van Vugt, PA3EAH
32040 REM
32050 REM Postbus 160, 5580 AD, Waalre
32060 REM
32070 REM april 1987, v1.4
32080 REM ****************************
32090 REM TROS-RADIO dd.870422