-
Notifications
You must be signed in to change notification settings - Fork 11
/
Copy pathA05_Parabolen.bc3
126 lines (125 loc) · 3.84 KB
/
A05_Parabolen.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
1000 A=200:GOTO20:REM PARABOLEN
1010 DIMF$(9),K$(9),A(9),B(9),C(9)
1020 GOSUB1500:REM --inleiding --
1030 TW=0:FT=0
1040 FP$="":KP$="":FQ$="":KQ$=""
1050 GOSUB2000:REM --input parameters
1060 GOSUB2500:REM --maak functie$ --
1070 GOSUB3000:REM --NOG 'n functie?-
1080 IFTW=1 THENTW=0:GOTO1050
1090 GOSUB3200:REM --teken functie --
1100 GOSUB3490:REM --nog een keer? --
1110 IFIN=74 THEN1030
1120 GOTO950
1500 REM=== INLEIDING ===
1510 GOSUB100
1520 PRINT:PRINT" P A R A B O L E N"
1530 PRINT" =================":PRINT
1540 PRINT" Dit programma tekent de grafiek":PRINT
1550 PRINT" van de functie":PRINT
1560 PRINT" 2"
1570 PRINT" Y = aX + bX + c":PRINT
1580 PRINT" Als je wilt zien wat a, b en c":PRINT
1590 PRINT" voor invloed hebben op de vorm":PRINT
1600 PRINT" van de grafiek, dan is dit een":PRINT
1610 PRINT" programma om uitgebreid mee te":PRINT
1620 PRINT" experimenteren.":PRINT
1630 PRINT"---> TIK OP 'N TOETS";
1640 GOSUB210:RETURN
2000 REM=== INPUT PARAMETERS ===
2010 GOSUB100
2020 PRINT"Het programma tekent de functie":PRINT
2030 PRINT" 2"
2040 PRINT" Y = ax + bx + c":PRINT
2050 PRINT" (a, b of c mogen ook =0 zijn)":PRINT
2060 PRINT" (decimale punt of breukstreep MAG)":PRINT
2070 PRINT:PRINT"Geef de waarden van a, b en c)"
2080 PRINT:PRINT" a = ";:INPUTA$
2090 P$=A$:GOSUB3100:A=P:A(FT)=P
2100 PRINT:PRINT" b = ";:INPUTB$
2110 P$=B$:GOSUB3100:B=P:B(FT)=P
2120 PRINT:PRINT" c = ";:INPUTC$
2130 P$=C$:GOSUB3100:C=P:C(FT)=P
2140 RETURN
2500 REM=== MAAK FUNCTIESTRING ===
2510 XX=1:F$="Y = "
2520 IFA=0 THENXX=0:GOTO2560
2530 IFA=1 THENF$=F$+" X":GOTO2560
2540 IFA=-1 THENF$=F$+"- X":GOTO2560
2550 F$=F$+A$+" X"
2560 G$="":IFB=0 THEN2610
2570 IFB=1 THENG$=" + X":GOTO2610
2580 IFB=-1 THENG$=" - X":GOTO2610
2590 IFB<0 THENG$=" "+B$+" X":GOTO2610
2600 IFB>0 THENG$=" + "+B$+" X"
2610 IF(A=0)AND(B>0) THENL=LEN(G$):G$=RIGHT$(G$,L-2)
2620 IFC=0 THEN2650
2630 IFC>0 THENG$=G$+" + "+C$:GOTO2650
2640 IFC<0 THENG$=G$+" "+C$
2650 IF(A=0)AND(B=0)AND(C>0) THENG$=RIGHT$(G$,LEN(G$)-2)
2660 L=LEN(F$):KW$=""
2670 IFXX=1 THENKW$=RIGHT$(" 2",L+1)
2680 IF(A=0)AND(B=0)AND(C=0) THENG$=" 0"
2690 F$=F$+G$
2700 F$(FT)=F$:K$(FT)=KW$:FT=FT+1
2710 PRINT
2720 PRINT" ";KW$
2730 PRINT" ";F$:RETURN
3000 REM=== 2e FUNCTIE? ===
3010 IFFT=10 THEN3050
3020 TW=0
3030 PRINT:PRINT" NOG een functie invoeren?";:GOSUB210
3040 IFIN=74 THENTW=1
3050 RETURN
3100 REM=== VAL(PARAMETER$) ===
3110 IFP$="" THENP=0:RETURN
3120 L=LEN(P$)
3130 BR=0:FORN=1 TOL
3140 IFMID$(P$,N,1)="/" THENBR=N
3150 NEXTN
3160 IFBR=0 THENP=VAL(P$):RETURN
3170 TL$=LEFT$(P$,BR-1):TL=VAL(TL$)
3180 NM$=RIGHT$(P$,L-BR):NM=VAL(NM$)
3190 P=(TL/NM):RETURN
3200 REM=== FUNCTIE(S) TEKENEN ===
3210 GOSUB600:CN=0:ZK=0
3220 REM -- teken de assen --
3230 HO=0:VE=0.5:GOSUB620
3240 HO=.999:VE=0.5:GOSUB630
3250 HO=0.5:VE=0:GOSUB620
3260 HO=0.5:VE=.999:GOSUB630
3270 REM -- schaalverdeling --
3280 CN=1:VE=0.5
3290 FORHO=0 TO.999 STEP0.05
3300 GOSUB620:NEXTHO
3310 HO=0.5
3320 FORVE=0 TO.999 STEP0.05
3330 GOSUB620:NEXTVE
3340 FORN=0 TOFT-1
3350 REM -- gegevens uit array --
3360 F$=F$(N):KW$=K$(N)
3370 A=A(N):B=B(N):C=C(N)
3380 REM -- print de functiestring --
3390 ZK=N*0.1
3400 CN=0:HO=0:VE=ZK:SR$=KW$:GOSUB650
3410 HO=0:VE=ZK+0.04:SR$=F$:GOSUB650
3420 REM -- teken de functie --
3430 FORX=-10 TO10 STEP0.02
3440 Y=A*X*X+B*X+C:IF(Y>10)OR(Y<-10) THEN3460
3450 HO=(X+10)/20:VE=1-((Y+10)/20):GOSUB620
3460 NEXTX
3470 NEXTN
3480 RETURN
3490 REM=== NOG EEN KEER? ===
3500 HO=0.52:VE=0.95:SR$="Nog een keer?":GOSUB650
3510 GOSUB210:RETURN
30000 REM==============================
30010 REM GEMAAKT OP EEN BBC B COMPUTER
30020 REM 11 FEBRUARI 1987
30030 REM DOOR
32000 REM Ch.W.Brederode
32010 REM Von Bonninghausenlaan 33
32020 REM 2161 ES LISSE
32100 REM
32110 REM TROS-RADIO dd 870325
32120 REM incl corr. dd 870822