Programmeren in TI-Basic/Routines

Uit Wikibooks
Naar navigatie springen Naar zoeken springen

Soms is het handig om een stuk code te groeperen omdat je het bijvoorbeeld ook in een ander programma gebruikt, of omdat je het erg vaak gebruikt in hetzelfde programma. In andere programmeertalen heten dat functies. TI-Basic heeft die mogelijkheid niet; wat TI-Basic wel kan is andere programma's starten. Als je dus de code in een ander programma zet, is het mogelijk om deze uit te voeren vanuit je hoofdprogramma.

Routines[bewerken]

Om te laten zien hoe je routines gebruikt gaan we twee programmaatjes maken, één dat uitrekent wat het X-de priemgetal is, en één dat controleert of een ingegeven getal een priemgetal is. We zullen dus bij elk programma moeten kijken of een bepaald getal een priemgetal is. We beginnen met het maken van het programma dat kijkt of een getal dat je invoert een priemgetal is.

PRGM:CHKPRM
:Input "NUMMER: ",D
:DelVar B
:For(E,2,√(D
:If fPart(D/E)=0
:1→B
:End
:If B=1
:Disp "GEEN PRIEMGETAL
:Else
:Disp "WEL PRIEMGETAL
:End

Het tweede programma zou dan zijn:

:PRGM:NRPRM
:Input "NUMMER: ",A
:DelVar D
:For(C,0,A
:DelVar F
:Repeat F
:D+1→D
:DelVar B
:For(E,2,√(D
:If fPart(D/E)=0
:1→B
:End
:If B=0
:1→F
:End
:End
:Disp D

In deze twee programma's gebruik je precies dezelfde code, je kan dit dus veel efficiënter maken door dit stuk code apart te zetten:

:DelVar B
:For(E,2,√(D
:If fPart(D/E)=0
:1→B
:End

Bij TI-Basic doe je dat door de code in een nieuw programma te zetten.

PRGM:PRMSUB
:DelVar B
:For(E,2,√(D
:If fPart(D/E)=0
:1→B
:End
:Return                De return zorgt ervoor dat het programma niet stopt, maar teruggaat naar het vorige programma.

Onze nieuwe programma's worden dan:

PRGM:CHKPRM
:Input "NUMMER: ",D
:prgmPRMSUB
:If B
:Disp "GEEN PRIEMGETAL
:Else
:Disp "WEL PRIEMGETAL
:End
:PRGM:NRPRM
:Input "NUMMER: ",A
:DelVar D
:For(C,0,A
:DelVar F
:Repeat F
:D+1→D
:prgmPRMSUB
:If B=0
:1→F
:End
:End
:Disp D
Informatie afkomstig van http://nl.wikibooks.org Wikibooks NL.
Wikibooks NL is onderdeel van de wikimediafoundation.