# Programmeren in TI-Basic/Controlestructuren

Als je programmeert dan moet je dingen controleren. Als je bijvoorbeeld een wachtwoordprogrammaatje maakt, dan moet je controleren of het wachtwoord goed is. Als je wilt dat mensen het wachtwoord meerdere keren kunnen invoeren heb je herhalingen nodig, zogenoemde loops. In dit hoofdstuk gaan we een programmaatje maken dat een text laat zien als je het wachtwoord hebt ingevoerd. Je moet het wachtwoord ook kunnen veranderen in het programma. Het wachtwoord zullen we opslaan in een lijst. We beginnen dus met het laden van de lijst.

### If

Het if commando wordt gebruikt om te kijken of dingen waar zijn, hiervoor gebruik je de TEST tekens: =, ≠, >, ≥, <, ≤. Dit is de syntax:
of
of
Als er geen Then na een If komt, wordt alleen het commando achter de If uitgevoerd als de waarde 1 is. Als er een Then na de If komt wordt alles van de Then tot de End of Else uitgevoerd als de waarde 1 is. Als er een Else na Then komt, dan wordt alles na de Else en tot de End uitgevoerd als de waarde 0 is. Een voorbeeld:
Als A=2, dan wordt het eerste uitgevoerd, als A≠2, dan wordt alles van else tot end uitgevoerd.

### TEST

Hieronder staat een beschrijving van de tekens.
Dit kijkt of twee waardes hetzelfde zijn. 2 = 2
Dit kijkt of twee waardes niet hetzelfde zijn. 2 ≠ 3
Dit kijkt of de eerste waarde groter is dan de tweede waarde. 2 > 1
Dit kijkt of de eerste waarde groter of gelijk is aan de tweede waarde. 2 ≥ 1 2 ≥ 2
Dit kijkt of de eerste waarde kleiner is dan de tweede waarde. 2 < 3
Dit kijkt of de eerste waarde kleiner of gelijk is aan de tweede waarde. 2 ≤ 3 2 ≤ 2
We kunnen nu verder met ons programma omdat we nu kunnen kijken of het wachtwoord dat de gebruiker heeft ingevoerd klopt met wat er in de lijst staat.

### Stop

Stop wordt gebruikt om het programma te stoppen. Het programma gaat niet terug naar het programma waarmee het is gestart, maar stopt helemaal.

### Return

Return is de beste manier om een programma te stoppen. Het programma waarmee jouw programma is gestart gaat dan gewoon verder met waar het mee bezig was. Dit wordt ook vaak gebruikt bij routines (subprogramma's).
Het programma controleert nu of het wachtwoord goed is, maar doet er verder nog niets mee, het wachtwoord is altijd 0. We moeten nu nog iets maken waarmee je het wachtwoord kan veranderen. Dit kunnen we weer doen met een Input en een If.

### Loops

Als iemand een verkeerd wachtwoord heeft ingevoerd, dan wil je dat hij het wachtwoord opnieuw moet invoeren tot hij het goede wachtwoord heeft. Dit kan je doen met een loop. Hieronder staan de manieren om te loopen.

#### While

De While loop lijkt een beetje op de If. Als de waarde 1 is dan blijft hij lopen, zo niet, dan slaat hij het over en gaat verder in het programma. De syntax van het While commando is:
Zo kun je het programma dus aanpassen zodat hij blijft lopen tot hij het goede wachtwoord heeft:

#### Repeat

Repeat is eigenlijk het omgekeerde van While, hij blijft loopen tot de waarde 1 is. Hij gaat dus verder bij 0. Een Repeat loop wordt ook pas bij de end gecontroleerd en dus wordt het ook minstens 1 keer uitgevoerd. Een versie van ons programma met Repeat zou dus zijn:

#### For

For is een aparte manier van loopen. Hij loopt namelijk maar een paar keer. Je voert een variable in en stelt in van waar tot waar hij moet tellen. De syntax is:
Zo kun je er dus voor zorgen dat je het wachtwoord maar een paar keer in kan voeren. Dit is veel beter, omdat het programma daarna weer kan stoppen. De nieuwe versie van het programma wordt dan:

### Labels

Als je het wachtwoord hebt veranderd wil je dat ze het nieuwe wachtwoord meteen uitproberen. Dit kan je doen door naar een bepaalde plek in het programma te springen met een functie. Deze functie heet Goto. Voordat je een Goto gebruikt moet je eerst een Lbl in je programma hebben gezet. Gebruik labels zo min mogelijk, ze zijn langzaam en je hebt kans op fouten. Probeer dus zo veel mogelijk loops te gebruiken. De enige plek waar je labels zonder veel problemen kunt gebruiken zijn bij menus.

#### Lbl

De Lbl functie doet op zich niets, het geeft alleen een plek in het programma weer. Goto kan alleen naar die labels springen. Labels hebben een naam die maximaal 2 tekens kan zijn en alleen de letters + θ en getallen. De syntax is:

#### Goto

De Goto functie kan naar labels springen in het programma. Doe dit alleen niet tijdens loops, alleen als je er zeker van bent dat er geen End meer achter komt, bijvoorbeeld bij het einde van het programma. Anders heb je kans dat hij weer terugspringt naar de loop. De syntax is:
Als we een programma willen hebben die na het veranderen van het wachtwoord weer terugspringt naar het begin kunnen we het zo doen: