
TI-Basic: Programma voor vierkantsvergelijking en uitbreiden
Wat is een vierkantsvergelijking? Als leerling zal je het wel geweten hebben. Je kan heel makkelijk een programma maken op je rekenmachine om de discriminant en de wortels te berekenen. Degenen die een sjieker programma willen maken, kunnen hier allemaal verbeteringen terugvinden en zelfs gebruiken in andere programma's!
TI-Basic: Vierkantsvergelijking
- Wat is een vierkantsvergelijking?
- prgmVKV Simpel
- prgmVKV Uitbreiden
- prgmVKV Uitgebreid
- Doe misschien eerst wat kennis op van TI-Basic
Wat is een vierkantsvergelijking?
Een vierkantsvergelijking is een lang woord, daarom zal ik vkv gebruiken... Een vkv is een tweedegraadsvergelijking (bv. y=x²+3x-10), maar de y-waarde is altijd 0 (bv. 0=x²+3x-10) - een functie met vergelijking y=0, valt samen met de x-as. Door middel van de discriminant (b²-4ac), kunnen we de snijpunten van de functie met de x-as berekenen. Als de dicriminant negatief is zijn er geen snijpunten. Als hij 0 is, is er één oplossing voor x. In het geval dat de discriminant groter is dan 0, zijn er twee oplossingen of wortels.| Algemeen | TI-Basic | Voorbeeld | |
|---|---|---|---|
| Vergelijking | y=ax²+bx+c | y=AX²+BX+C | y=x²+3x-10 |
| Vkv | 0=ax²+bx+c | 0=AX²+BX+C | 0=x²+3x-10 |
| Discriminant | d=b²-4ac | B²-4AD->D | 49 |
| Wortel 1 (E) | -b+v(d)/(2a) | (-B-v(D))/(2A)->E | -5 |
| Wortel 2 (F) | -b+v(d)/(2a) | (-B+v(D))/(2A)->F | 2 |
prgmVKV Simpel
(Een degelijk programma bestaat uit drie delen: Invoer, Verwerking, Uitvoer.)Eerst maken we een simpel programmaatje waarmee we een vkv kunnen in voeren: (invoer)
:Prompt A,B,C
Dan berekenen we de discriminant en de wortels: (verwerking):B²-4AC->D
:(-B+v(D))/2/A->E
:(-B-v(D))/2/A->F
Tenslotte laten we de resultaten zien op het scherm:(uitvoer):(-B+v(D))/2/A->E
:(-B-v(D))/2/A->F
:Disp "DISCR",D,"WORTELS",E,F
Het totaal::Prompt A,B,C
:B²-4AC->D
:(-B+v(D))/2/A->E
:(-B-v(D))/2/A->F
:Disp "DISCR",D,"WORTELS",E,F
Grootte: 94:B²-4AC->D
:(-B+v(D))/2/A->E
:(-B-v(D))/2/A->F
:Disp "DISCR",D,"WORTELS",E,F
prgmVKV Uitbreiden
Nu gaan we het programma wat uitbreiden, we beginnen bij de invoer.We maken de user(degene die het programma gebruikt) duidelijk wat hij moet invullen:
:Disp "AX²+BX+C=0"
:Prompt A,B,C
Om het wat mooier te maken::Prompt A,B,C
:Disp "AX²+BX+C=0"
:Input "A: ",A
:Input "B: ",B
:Input "C: ",C
:Input "A: ",A
:Input "B: ",B
:Input "C: ",C
Het invoergedeelte is klaar, dus we gaan over op de verwerking. Stel je voor: een vkv heeft een negatieve discriminant, dus kan hij ook geen wortels hebben. Maar als we een negatieve discriminant hebben, zal het programma stoppen bij:
:(-B+v(D))/2/A->E
Waarom? Omdat de vierkantswortel van een negatief getal - hier is dit D - niet bestaat. We kunnen dit oplossen door te vragen of D kleiner is dan 0, we doen dit zo:...
:B²-4AC->D
:If D<0
:Stop
:Disp "DISCR",D,"WORTELS",E,F
Nu weet de user wel de discriminant niet, dus::B²-4AC->D
:If D<0
:Stop
:Disp "DISCR",D,"WORTELS",E,F
...
:B²-4AC->D
:Disp "DISCR",D
:If D<0
:Stop
:(-B+v(D))/2/A->E
:(-B-v(D))/2/A->F
:Disp "WORTELS",E,F
Dit is al een hele verbetering: bij elke invoer zal de discriminant getoond worden, als hij positief of 0 is komen de wortels er ook bij. We creëeren nog een situatie en zetten alle situaties eens apart::B²-4AC->D
:Disp "DISCR",D
:If D<0
:Stop
:(-B+v(D))/2/A->E
:(-B-v(D))/2/A->F
:Disp "WORTELS",E,F
...
:B²-4AC->D
:If D<0
:Then
:Disp "DISCR",D
:Stop
:End
:(-B+v(D))/2/A->E
:(-B-v(D))/2/A->F
:If D=0
:Then
:Disp "DISCR",D,"DE WORTEL",E
:Stop
:End
:Disp "DISCR",D,"DE WORTELS",E,F
:B²-4AC->D
:If D<0
:Then
:Disp "DISCR",D
:Stop
:End
:(-B+v(D))/2/A->E
:(-B-v(D))/2/A->F
:If D=0
:Then
:Disp "DISCR",D,"DE WORTEL",E
:Stop
:End
:Disp "DISCR",D,"DE WORTELS",E,F
De verwerking is in drie situaties opgedeeld: D<0, D=0, iets anders (Dus: D>0). We kunnen de uitvoer nu uitbreiden:
...
:Disp "DISCR IS NEG:",D,"","DIT BETEKENT:","GEEN WORTELS..."
...
:Disp "DISCR = 0","DE WORTEL",E
...
:Disp "DISCR",D,"TWEE WORTELS",E,F
Elke keer het programma uitgevoerd is komt er rechts 'Done' te staan, die gaan we wegwerken::Disp "DISCR IS NEG:",D,"","DIT BETEKENT:","GEEN WORTELS..."
...
:Disp "DISCR = 0","DE WORTEL",E
...
:Disp "DISCR",D,"TWEE WORTELS",E,F
...
:Disp "DISCR IS NEG:",D,"","DIT BETEKENT:","GEEN WORTELS..."
:Output(1,1,"")
...
:Disp "DISCR = 0","DE WORTEL",E
:Output(1,1,"")
...
:Disp "DISCR",D,"TWEE WORTELS",E,F
:Output(1,1,"")
Voor degenen die er niet genoeg van kunne krijgen, we zetten alles nog eens om in breuken::Disp "DISCR IS NEG:",D,"","DIT BETEKENT:","GEEN WORTELS..."
:Output(1,1,"")
...
:Disp "DISCR = 0","DE WORTEL",E
:Output(1,1,"")
...
:Disp "DISCR",D,"TWEE WORTELS",E,F
:Output(1,1,"")
...
:Disp "DISCR IS NEG:",D,D>Frac"","DIT BETEKENT:","GEEN WORTELS..."
:Output(1,1,"")
...
:Disp "DISCR = 0","DE WORTEL",E,E>Frac
:Output(1,1,"")
...
:Disp "DISCR",D,"TWEE WORTELS",E,E>Frac,F,F>Frac
:Output(1,1,"")
Zo hebben we het wel gehad.:Disp "DISCR IS NEG:",D,D>Frac"","DIT BETEKENT:","GEEN WORTELS..."
:Output(1,1,"")
...
:Disp "DISCR = 0","DE WORTEL",E,E>Frac
:Output(1,1,"")
...
:Disp "DISCR",D,"TWEE WORTELS",E,E>Frac,F,F>Frac
:Output(1,1,"")
prgmVKV Uitgebreid
Nu we het hebben uitgebreid, zetten we het allemaal eens achter elkaar: (Een Clrhome in het begin is wel handig):Clrhome
:Disp "AX²+BX+C=0"
:Input "A: ",A
:Input "B: ",B
:Input "C: ",C
:B²-4AC->D
:If D<0
:Then
:Disp "DISCR IS NEG:",D,D>Frac"","DIT BETEKENT:","GEEN WORTELS..."
:Output(1,1,"")
:Stop
:End
:(-B+v(D))/2/A->E
:(-B-v(D))/2/A->F
:If D=0
:Then
:Disp "DISCR = 0","DE WORTEL",E,E>Frac
:Output(1,1,"")
:Stop
:End
:Disp "DISCR",D,"TWEE WORTELS",E,E>Frac,F,F>Frac
:Output(1,1,"")
Grootte: 393:Disp "AX²+BX+C=0"
:Input "A: ",A
:Input "B: ",B
:Input "C: ",C
:B²-4AC->D
:If D<0
:Then
:Disp "DISCR IS NEG:",D,D>Frac"","DIT BETEKENT:","GEEN WORTELS..."
:Output(1,1,"")
:Stop
:End
:(-B+v(D))/2/A->E
:(-B-v(D))/2/A->F
:If D=0
:Then
:Disp "DISCR = 0","DE WORTEL",E,E>Frac
:Output(1,1,"")
:Stop
:End
:Disp "DISCR",D,"TWEE WORTELS",E,E>Frac,F,F>Frac
:Output(1,1,"")
Dit is nog een beetje 'onprofessioneel' omdat elke situatie helemaal apart staat, een beetje snoeien en een paar ingrepen:
:Clrhome
:Disp "AX²+BX+C=0"
:Input "A: ",A
:Input "B: ",B
:Input "C: ",C
:B²-4AC->D
:Disp "D",D,D>Frac
:If D<0
:Then
:Disp "DUS GEEN WORTELS"
:Else
:(-B+v(D))/2/A->E
:(-B-v(D))/2/A->F
:If D=0
:Disp "WORTEL",E,E>Frac
:If D>0
:Disp "WORTELS",E,E>Frac,F,F>Frac
:End
:Output(1,1,"")
Grootte: 296:Disp "AX²+BX+C=0"
:Input "A: ",A
:Input "B: ",B
:Input "C: ",C
:B²-4AC->D
:Disp "D",D,D>Frac
:If D<0
:Then
:Disp "DUS GEEN WORTELS"
:Else
:(-B+v(D))/2/A->E
:(-B-v(D))/2/A->F
:If D=0
:Disp "WORTEL",E,E>Frac
:If D>0
:Disp "WORTELS",E,E>Frac,F,F>Frac
:End
:Output(1,1,"")
Zo spaar ik bijna 100 bytes!
Hierbij hoop ik iedereen veel bijgeleerd te hebben. Nog veel succes met het schrijven van programma's! © 2007 - 2008 Wmnoa, gepubliceerd in Programmeren (Pc en Internet) op 24-02-2007. Het auteursrecht van dit artikel ligt bij de infoteur. Zonder toestemming van Wmnoa is vermenigvuldiging van dit artikel verboden. Meer...
Gerelateerde link
TI-Basic: Menu PRGM.Verwante artikelen
- Vierkantsvergelijkingen en hoe ze op te lossen: Een vierkantsvergelijking is in de wiskunde een vergelijking in de van de vorm ax^2+bx+c=0. Hierbij zijn a,b en c constante getallen, waarbij a geen nul is. He…
- TI-Basic: Programmeren - Menu PRGM: Heb je een grafische rekenmachine? Een GRM? Als je er eentje van Texas Instruments hebt, kan je er je eigen programma's mee maken. Daarvoor wordt een speciale programmeert…
- Texas Instruments: Menu MEM - Gegevensbeheer: Hou je van programma's maken of wil je alles eens uitproberen. Als je wil verhinderen dat je rekenmachine een warboel wordt, dat al je programma's door elkaar zi…
- Nooit meer willen bladeren in woordenboeken? Euroglotonline!: ''Overal ter wereld, op elke computer gebruik maken van EuroglotOnline''. Klinkt aantrekkelijk maar wat houdt dat in?
- Oudere programma's gebruiken in Windows XP: Met Windows XP zult u ongetwijfeld tegen problemen aan lopen, zeker als het gaat om het uitvoeren van oudere bestanden die niet compatible zijn met Windows Xp maar…

Reageer op het artikel "TI-Basic: Programma voor vierkantsvergelijking en uitbreiden"

Er zijn nog geen reacties geplaatst op dit artikel.

