InfoNu.nl > Pc en Internet > Programmeren > TI-Basic: Programma voor vierkantsvergelijking en uitbreiden

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?

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.
AlgemeenTI-BasicVoorbeeld
Vergelijkingy=ax²+bx+cy=AX²+BX+Cy=x²+3x-10
Vkv0=ax²+bx+c0=AX²+BX+C0=x²+3x-10
Discriminantd=b²-4acB²-4AD->D49
Wortel 1 (E)-b+v(d)/(2a)(-B-v(D))/(2A)->E-5
Wortel 2 (F)-b+v(d)/(2a)(-B+v(D))/(2A)->F2

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)

: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

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:

:Disp "AX²+BX+C=0"
: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
: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ëren nog een situatie en zetten alle situaties eens apart:

...
: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..."
: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,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.

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

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

Zo spaar ik bijna 100 bytes!

Hierbij hoop ik iedereen veel bijgeleerd te hebben. Nog veel succes met het schrijven van programma's!
© 2007 - 2017 Wmnoa, het auteursrecht (tenzij anders vermeld) van dit artikel ligt bij de infoteur. Zonder toestemming van de infoteur is vermenigvuldiging verboden.
Gerelateerde artikelen
Sportschool uitgelicht: Basic-FitSportschool uitgelicht: Basic-FitBasic-Fit is niet alleen de grootste fitnessketen in Nederland, maar ook de grootste in Europa. Ondanks felle concurrent…
Sportschool in Rotterdam: Welke past het beste bij u?Sportschool in Rotterdam: Welke past het beste bij u?Welke Sportschool in Rotterdam is nu het meest geschikt voor het bereiken van uw persoonlijk fitnessdoelen? In Rotterdam…
Schiphol: Het Privium lidmaatschapHet pakken van een vlucht is vaak een hele gebeurtenis, wat niet een-twee-drie klaar is. Parkeren, incheckbalie zoeken,…
Sportschool: Health CitySportschool: Health CityVeel mensen houden hun conditie of gewicht op peil door te gaan sporten bij een sportschool. Een van de grotere ketens v…
Vierkantsvergelijkingen en hoe ze op te lossenVierkantsvergelijkingen en hoe ze op te lossenEen vierkantsvergelijking is in de wiskunde een vergelijking in de van de vorm ax^2+bx+c=0. Hierbij zijn a,b en c consta…

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

Plaats een reactie, vraag of opmerking bij dit artikel. Reacties moeten voldoen aan de huisregels van InfoNu.
Meld mij aan voor de tweewekelijkse InfoNu nieuwsbrief
Ik ga akkoord met de privacyverklaring en ben bekend met de inhoud hiervan
Reacties

Jorik, 09-10-2016 11:47 #2
Volgens mijwerkt dit programma wel maar een ding weet ik niet hoe ik het moet doen
:B²-4AC->D hoe zet je dat pijltje naar de D?

met vriendelijke groeten
Joeik Abbeloos

Dries, 12-12-2013 13:49 #1
Die ->, is moet je dan gewoon een (-) en een > plaatsen, of gewoon =?
MVG
Dries Reactie infoteur, 28-04-2014
Boven de ON knop staat er STO>
Dat is het benodigde symbool.

Infoteur: Wmnoa
Gepubliceerd: 24-02-2007
Rubriek: Pc en Internet
Subrubriek: Programmeren
Reacties: 2
Schrijf mee!