Programmeren in TI-Basic/Andere CTL-commando's
Dit gedeelte gaat over de CTL-commando's die nog niet eerder zijn behandeld. Je vind het CTL-menu terug als je een programma aan het bewerken bent en drukt op: prgm>CTL
Het CTL-menu ziet er als volgt uit:
[CTL] I/O EXEC 1:If 2:Then 3:Else 4:For( 5:While 6:Repeat 7:End 8:Pause 9:Lbl 0:Goto A:IS>( B:DS<( C:Menu( D:prgm E:Return F:Stop G:Delvar H:Graphstyle( I:OpenLib( J:ExecLib
In dit artikel ga ik met u de verschillende functies van boven naar beneden af. If, then, else, end, lbl, menu, goto (en stop) zijn al eerder behandeld. Voor informatie over deze functies moet je naar een eerder artikel in dit boek gaan.
For(
[bewerken]We beginnen bij For(. Met deze functie kun je een variabele met een bepaalde stapgrote laten toenemen, totdat een waarde wordt bereikt. Dit gebeurd altijd volgens de volgende formule:
:For(Variabele,beginwaarde,eindwaarde,stapgrootte :Opdrachten :End
De variabele die je geeft, moet altijd een reële variabele zijn. Dit wil zeggen dat dit een letter van A t/m Z of Ø moet zijn. Vervolgens komt de beginwaarde. De TI begint hier met tellen totdat de eindwaarde wordt bereikt. De stapgrootte is niet verplicht. De TI telt steeds de stapgrootte op bij het de variabele. Als er geen stapgrootte is ingesteld, wordt er standaard '1' bij opgeteld. Na het optellen worden de opdrachten uitgevoerd die tussen For( en de bijbehorende End staan. Het volgende programmaatje laat zien wat je er bijvoorbeeld mee kan doen.
PROGRAM:TEST :For(A,1,10 :Disp A (getallen 1 t/m 10) :End :For(B,1,20,2 :Disp B (oneven getallen van 1 t/m 20) :End
While en Repeat
[bewerken]De while-functie (While ) is een functie volgens de volgende formule opgebouwd. Ook de repeat-functie (Repeat ) zal ik hier behandelen. Qua formule verschilt alleen het woordje While/Repeat.
:While waar(1) (een booleaanse vergelijking, bijv. A=0, kan worden gebruikt. Als de gelijkheid waar is, worden :opdracht 1 de opdrachten 1&2 uitgevoerd, anders niet.) :opdracht 2 :End
While en Repeat zijn lussen. Dit wil zeggen dat de opdrachten tussen While/Repeat en End herhaalt blijven worden, totdat de waarde achter While/Repeat "0" of "niet waar" is. Het verschil tussen While en Repeat zit in een klein detail. Als een programmaatje bij While komt en de waarde is niet waar, slaat het programmaatje de volledige While-loop over. Bij repeat wordt alles uitgevoerd, totdat het programmaatje bij End komt. Dan wordt er pas gekeken of de waarde waar is. Wanneer deze waarde waar is, wordt de loop herhaald, en anders gaat het programmaatje verder.
Pause
[bewerken]Pause is met Menu( en ? de enige die een programma stil kan zetten, zonder dat het programmaatje stopt. De gebruiker kan hierdoor bijvoorbeeld een tekst makkelijker lezen. Net zoals met de rest van dit artikel even een formule.
:opdracht 1 :Pause :opdracht 2 :Pause "TEXT
Achter pause kan ook een tekst worden geplaatst (voorafgegaan door een "). De tekst wordt dan weergegeven op het basisscherm. Dit is vooral handig bij grote matrices of lijsten, omdat (in tegenstelling tot het commando "Disp" of "Output") de gebruiker met pijltjes door de matrix/lijst kan bladeren. Ook is Pause handig om, als het programmaatje te snel is, een gebruiker ervan iets te laten lezen.
IS>( en DS<(
[bewerken]Wil iemand met tijd dit even controleren? De informatie kan wel eens iets anders zijn dan moet.
IS>( en DS<( zijn functies die of één bij een variabele optellen, of ervan aftrekken. Daarna kijken ze of de opgegeven waarde niet is overschreden. Formula...
:IS>(variabele,CheckGetal :opdracht 1 :opdracht 2 :DS<(variabele,CheckGetal :opdracht 3 :opdracht 4
Bij IS>( geldt: Als de variabele groter dan het CheckGetal is, wordt de regel er na niet uitgevoerd. Bij DS<( geldt: Als de variabele kleiner dan het CheckGetal is, wordt de regel er na niet uitgevoerd. In het programma hierboven worden opdracht 2 en 4 sowieso uitgevoerd!
Een variabele is (mocht je dit nog steeds niet weten) een letter of string. Met IS en DS kunnen alleen real variabelen worden ingevuld (A t/m Z en Ø). Het programma voert de opdracht na IS of DS alleen uit als het CheckGetal niet overschreden is . Zie eenvoudig wat er gebeurd met het volgende programmaatje.
PROGRAM:TEST :Input "1 meer dan ?",A :IS>(A,10 :Disp A (wordt alleen weergegeven als het getal minder is dan 10 :Input "1 minder dan ?",A :DS<(A,10 :Disp A (wordt alleen weergegeven als het getal meer is dan 10
prgm en Return
[bewerken]Deze functie is om een programma te starten. Hierdoor is het mogelijk om programma's te starten vanuit een ander programmaatje. Programmaatjes kunnen zo dus andere programmaatjes laten starten en grote programmaatjes kunnen zo makkelijker worden verdeeld in kleinere delen. Dit is vooral handig omdat het flash geheugen (archive in de plus uitvoeringen) in kleinere delen is opgesplitst. Communicatie tussen programmaatjes kan bijvoorbeeld zo worden bereikt.
PROGRAM:TEST :1→A :Menu("Maak uw keuze","keuze1",A,"keuze2",B,"keuze3",C,"STOP",D :Lbl A :Disp K :1:prgmTEST1 Wordt 1 of prgmTEST1 in Ans gestopt??? :Lbl B :Disp L :2:prgmTEST1 :Lbl C :Disp M :3:prgmTEST1 :Lbl D:Stop PROGRAM:TEST1 :If Ans=1:Then :Disp "Keuze 1 :1+K→K :End :If Ans=2:Then :Disp "Keuze 2 :1+L→L :End :If Ans=3:Then Voer deze programmaatjes in, om er mee te oefenen. :Disp "Keuze 3 De mogelijkheden worden vanzelf duidelijk. :1+M→M :End :prgmTEST
Return kan gebruikt worden om terug te keren naar het hoofdprogramma. Wanneer dit commando wordt uitgevoerd in het hoofdprogramma wordt het programma gestopt. Vaak terugkerende loops in verschillende programma's kunnen zo worden uitgevoerd in één programma.
Delvar
[bewerken]Zoals de naam al zegt, Del(ete) hij een var(iabele). Met behulp van deze functie kunnen in een programma variabelen worden gewist. Dit kan handig zijn om ruimte vrij te maken, of om gegevens te verwijderen die niet bedoeld zijn om te bewaren. Een extraatje die er bij gevoegd is, is dat Delvar + variabele achter elkaar kan worden gebruikt, zonder een scheidingsteken (:).
Delvar ADelvar BDelvar CDelvar D De variabelen A t/m D worden verwijderd
na Delvar kun je ook een andere commando gebruiken, zoals clrhome
Delvar ADelvar BClrHome De variabelen A en B worden verwijderd en het homescreen wordt leeggemaakt
Graphstyle
[bewerken]De functie Graphstyle is om de grafieken in het schermpje Y= van een andere manier van tekenen te voorzien. De formule...
Graphstyle(Functie#,tekenmanier
Met functie wordt Y1 t/m Y0 bedoeld. In graphscreen wordt uitgelegd hoe je deze functies kan opstellen.
De tekenmanieren zijn: stippellijn, gewone lijn, dikke lijn, schaduw boven, schaduw onder en de twee aangeefsymbolen.
Openlib( en Execlib
[bewerken]Op de GR kunnen ook externe dingen als een muis en een toetsenbord aangesloten worden, door middel van een usb/IO-poort. Met Openlib (en Execlib wordt het mogelijk gemaakt om aangesloten apparaten ook echt te gebruiken.