Een programma voor de ABC-formule

Overzicht  ][  TI-werkbladen


Overzicht begin pagina

  1. Inleiding
  2. Programma-opzet
  3. Het programma
         3.1. De invoer
                     Opdracht 1
                     Opdracht 2
                     Opdracht 3
         3.2. Bewerking van gegevens
                     Opdracht 4
         3.3. De uitvoer
                     Opdracht 5
                     Opdracht 6
                     Opdracht 7
                     Opdracht 8
  4. Download

1. Inleiding begin pagina
Uitgaande van de vierkantsvergelijking (2e-graads vergelijking)
   ax2 + bx + c = 0
kan een formule worden afgeleid voor de oplossing, ook wel wortels, van die vergelijking.

Deze formule luidt: prgmvkv_f1.gif (768 bytes)

Hieronder wordt beschreven hoe een programma voor de TI83 kan worden ontwikkeld, dat de wortel(s) van deze vergelijking berekent na invoer van de waarden voor a, b en c.

2. Programma-opzet begin pagina
In principe kan men elk (deel van een) computerprogramma uiteen laten vallen in drie delen:

  1. invoer van gegevens (data input)
  2. bewerking van de ingevoerde gegevens (processing)
  3. uitvoer van de gewenste gegevens (output).

Deze deelprocessen in het programma zijn vaak niet helemaal van elkaar gescheiden, omdat vaak ook bij de bewerking van de gegevens andere gegevens (bijvoorbeeld uit een bestaande verzameling data, of ook wel aanvullende gegevens) moeten worden gebruikt.
Bij het ontwikkelen van een programma is het echter verstandig deze driedeling in het oog te houden.

Daarnaast is het verstandig na te gaan of het programma vaker moet worden gebruikt, en vooral ook hoe (onder welke omstandigheden) het programma moet worden gestopt.
Voortgaande op dit laatste.
Bekijken we de vergelijking, dan zien we dat er geen sprake van kan zijn dat er gegevens kunnen worden berekend (uitgevoerd) als a = 0.
Immers, deling door 0 is niet mogelijk (zie de formule); of ook, als a = 0 is er geen sprake van een vierkantsvergelijking.
Daar gebruiken we a = 0 als "stopkriterium".

Bij de opzet van het programma zullen we verder de principes gebruiken die op de pagina's "Programmeren in TI-Basic" als uitgangspunt hebben gediend.

3. Het programma begin pagina
3.1. De invoer
De in te voeren gegevens voor het programma zijn de waarden van a, b en c.
Op basis van de overwegingen in paragraaf 2 hebben we dan:

ClrHome
Disp "ABC-formule"
Disp "-----------"
Disp "(STOP: A=0)
Prompt A
If A=0
Then
   STOP
Else
   <verdere invoer>
   <bewerking>
   <uitvoer>
End
<opnieuw>

De programmaregels waarop tekst tussen < en > staat, moeten echter nog worden uitgewerkt.
We kunnen het programma nu toch al invoeren in de TI83, mits we die regels gewoon weglaten (leeg laten).

Opdracht 1 begin pagina
Voer het programma in zoals hiernaast staat. Geef het programma (bijvoorbeeld) de naam VKV (van vierkantsvergelijking).

Er staan twee schermafdrukken onder elkaar.
Merk op, dat we de regels waarop nog programma-opdrachten moeten komen, inderdaad leeg hebben gelaten (n blanco regel).
De opdracht ClrHome staat er hiernaast niet bij. Voeg deze eventueel zelf nog toe.

prgmvkv5.gif (1583 bytes)
 
prgmvkv7.gif (1674 bytes)

Opdracht 2 begin pagina
Ga na, dat je het programma nu gewoon kunt uitvoeren.
Merk echter op, dat het programma ook stopt als je een getal ongelijk aan 0 invoert.

De regel met <opnieuw> (zie hierboven) kan het probleem uit Opdracht 2 ondervangen.

Opdracht 3 begin pagina
Wijzig het programma nu als onderstaand:
Lbl O
   <bestaand programma>
Goto O
Kies daartoe de opdrachten [PRGM]<EDIT> :VKV
Ga na, dat het programma nu alleen stopt als je voor a de waarde 0 invoert.
wpe3.jpg (5163 bytes)

3.2. Bewerking van gegevens begin pagina
Als a ongelijk 0 is, hebben we verdere invoer nodig, namelijk de waarden van b en c.

Opdracht 4 begin pagina
We kunnen deze regels eenvoudig toevoegen.
Doe dat dus.
Ook hierna kan je het programma weer testen, als je wilt.
wpeB.jpg (5163 bytes)

Uit de formule volgt dat het aantal oplossingen van de vergelijking afhangt van de waarde van de zogenoemde discriminant
   D = b2 - 4ac

twee verschillende oplossingen:     D > 0     te weten:
   x1 = (-b + D) / (2a) .... zie formule
   x2 = (-b - D) / (2a)
n oplossing: D = 0 met
   x = -b/(2a)
geen oplossing: D < 0 en dus:  x bestaat niet

In het onderdeel <bewerking> moeten deze verschillende gevallen dus worden afgehandeld.
Elk geval levert dan een andere uitvoer op, zodat we ook het uitvoerproces het handigst kunnen opnemen in elk van die onderscheiden gevallen.
Het proces <uitvoer> vervalt dus min of meer.

3.3. De uitvoer begin pagina

Opdracht 5 begin pagina
Zet nu de berekening van de discriminant D op de juiste plaats in het programma.
wpe9.jpg (2171 bytes)
Merk op, dat je niet onmiddellijk daarna de wortel uit D kunt berekenen, omdat D immers ook negatief kan zijn (dit zou tijdens het uitvoeren van het programma tot een "foutmelding" leiden).
Handel daarom nu de verschillende gevallen voor de waarde van D af.

We kunnen een en ander in een "pseudo taal" schrijven als

ALS D>0 DAN
   <handel dit geval af>
ANDERS
   <handel de beide andere gevallen af>
EINDE-ALS

Of, en tevens voorafgegaan door de uitvoer van D,

Disp "D=",D
If D > 0
Then
   D  D
   (-B+D)/(2A)X
   (-B-D)/(2A)Y
   Disp "2 WORTELS:",X,Y
Else
   <D gelijk 0 of D kleiner 0>
End

Ook bij <D gelijk 0 of D kleiner 0> hebben we een keuze.
We krijgen dus op de plaats van die regel:

If D = 0
Then 
   -B/(2A)X
   Disp "1 WORTEL:",X
Else
   Disp "GEEN WORTELS"
End

Opdracht 6 begin pagina
Maak het programma met bovenstaande gegevens verder af.
Let bij de "implementatie" van de berekeningen in TI83-Basic op de haakjes en op de "speciale" mintekens van de TI83!
Ga na, dat er aan het einde van het programma nu 3 keer de opdracht End moet staan.
Waarom is dat?

Opdracht 7 begin pagina
Werkt het programma nu goed?
Of kan je dat niet zien??
Als dit laatste het geval is, ga dan eens na waardoor dat veroorzaakt wordt.

Het programma moet er nu (ongeveer) uitzien als hieronder.
De ingesprongen regels zijn hier voor vergroting van de leesbaarheid; in het echte programma staan ze -helaas- recht onder elkaar. Hierdoor wordt het "geneste gebruik" van de verschillende IF..END statements goed zichtbaar.

Lbl O
ClrHome
Disp "ABC-FORMULE"
Disp "-----------"
Disp "(STOP: A=0)"
Prompt A
If A=0
Then
   Stop
Else
   Prompt B,C
   B2-4ACD
   Disp "D=",D
   If D>0
   Then
      (D)D
               
      (-B+D)/(2A)X
      (-B-D)/(2A)Y
      Disp "2 WORTELS:",X,Y
   Else
      If D=0
      Then
         -B/(2A)X
         Disp "1 WORTEL:",X
      Else
         Disp "GEEN WORTELS"
      End
   End
End
Goto O

Opdracht 8 begin pagina
Voeg n opdracht toe in het programma waardoor de Disp resultaten op het scherm blijven staan.
Aanwijzing
Kijk hiervoor zo nodig eens naar de opdracht Pause aan het einde van Paragraaf 4 van het programma "Cilinder2"

4. Download begin pagina
Het bovenstaande programma kan (mogelijk samen met andere programma's) in een bestand via deze website worden gedownload.
Dergelijke programma's kunnen met het programma TI-Graph Link™ (website van Texas Instruments) vanuit een computer worden overgezonden naar de TI-83.
ti83small.gif (1031 bytes) Klik hier om het downloaden te starten [ZIP-formaat].

Het werkblad is, in een iets andere vorm, ook beschikbaar als PDF-bestand.
download PRGMVKV.PDF prgmvkv.pdf [ca. 38Kb]


begin pagina

[prgmvkv.htm] laatste wijziging op: 20-03-01