© h.hofstede (h.hofstede@hogeland.nl)

Een menu maken.
       
't Is natuurlijk handig als één programma méér voor je kan doen dan alleen maar bijvoorbeeld Fahrenheit in Celsius omrekenen.  Laten we ons vorige programma aanpassen zodat het ook Celsius om kan rekenen in Fahrenheit.....en daarna misschien nog wel meer eenheden in andere eenheden......
Laten we een menu gaan maken  (een keuze-programma)
       
Maak een nieuw programma  ""EENHEDEN"  via  PRGM  NEW  1:Create New  en noem het  "EENHEDEN"
Regel 1 maar weer  ClrHome
In Regel 2 gaan we nu een menu maken, net zoiets als de menu's die je rekenmachine zelf geeft als je bijv. VARS of MATH of zoiets indrukt.
Dat menu maken doe je met     PRGM    CTL   C : Menu(
Nu kun je stuk voor stuk je menu-onderwerpen invullen (maximaal 7)  gescheiden door dikke komma's
Elk onderwerp wordt weergegeven door 2 dingen:  eerst de naam in het menu (tussen aanhalingstekens) en daarna een getal dat de plaats van dat menu in je programma aangeeft.
Dus bijvoorbeeld:
Menu("EENHEDEN", "CEL FAR", 1, "FAR CEL", 2)
       

       
Links staat weer het programma, rechts wat je te zien krijgt als je het uitvoert. Je ziet dat er inderdaad een menu komt. Niet dat je het al kan uitvoeren of zo, immers we hebben nog niets ingevoerd, maar toch,...er IS tenminste een menu!

Labels.
 
Die 1 en 2 uit ons menu zijn plaatsen in het programma waar ons programma heen moet gaan als we ze in het menu kiezen.
We kunnen in een programma een "Label" zetten om een plaats een nummer te geven. t 'Is ongeveer als een vlaggetje op de golfbaan. Een gemarkeerde plek waar je heen moet gaan. 
Je vindt de label-instructie bij  PRGM    CTL    9: Lbl  en dan kun je daar achter een nummer zetten (of ook wel een letter als je de plaats de naam van een letter wilt geven).
Zet in ons EENHEDEN programma maar alvast op de volgende twee regels een  Lbl 1 en een Lbl 2, dan ziet het er uit als hiernaast.

       
Recall

Nu moeten we er voor zorgen dat bij  label 1 de omrekening van Celsius naar Fahrenheit komt en bij label 2 de omrekening van Fahrenheit naar Celsius.
Maar wacht eens even... dat omrekenen van Fahrenheit naar Celsius, dat hebben we al in de vorige les gemaakt!! 't Zou zonde zijn als we dat allemaal weer zouden moeten intypen.

Gelukkig hoeft dat niet.
Ga onder label 2 staan (nieuwe regel) en toets in   2nd   RCL  dan staat de cursor onder in beeld te knipperen.
Kies nu uit  PRGM   EXEC   het programma CELSIUS en druk op  ENTER
Dan wordt het hele programma CELSIUS achter Lbl 2 gezet.
Het is meestal wel handig om achter dat oude programma nu het commando STOP te zetten   PRGM   CTL    F:STOP
Als er later nog wat achteraan komt dan wil je dat het programma hier stopt, immers de menu-keuze 2 is klaar.

OK nu  Lbl 1 nog vullen.
Als je daar ook al een programma voor had, dan kon je een lege regel russen Lbl1 en Lb2 invoegen:  Ga aan het eind van regel 1 staan en druk op   2nd   INS . Op die nieuwe lege regel kun je een bestaand programma "recallen" net als hierboven.

We hebben nog niet zo'n programma, dus dat maken we dan maar gewoon ter plekke. Het gaat precies hetzelfde als bij de omrekening van  Fahrenheit naar Celsius, alleen is nu de formule  F = 1,8C + 32
Dat geeft dit bij Lbl 1 (ook weer met  STOP  aan het eind anders gaat het programma door met Lbl 2):
       

       
Het zou tenslotte nog handig zijn als het programma na een berekening te hebben gedaan weer terug gaat naar het beginmenu, zodat je niet steeds het programma opnieuw moet opstarten.
Dat kan door het beginmenu ook een label te geven, bijvoorbeeld Lbl 4  en dan na elke Disp  toe te voegen:  PRGM CTL    GOTO   4 .    GOTO doet precies wat het zegt:  het programma springt direct naar het label dat achter GOTO wordt genoemd.

Voeg wel elke keer eerst PRGM  CTL    8: Pause  toe, anders springt je rekenmachine direct naar het begin zonder dat je rustig het antwoord kunt bekijken. Pause pauzeert het programma totdat jij als gebruiker een toets intoetst.

Zet  Lbl 4 vóór ClrHome als je wilt dat het scherm elke keer weer tussendoor wordt schoongemaakt.
Verder moet je dan om te kunnen stoppen wel in het menu de optie  STOP bij bijvoorbeeld Lbl 3 toevoegen, en dan helemaal aan het eind Lbl 3 : STOP toe te voegen.

Hieronder zie je het eindprogramma. Merk nog even op dat je meerdere opdrachten best op één regel mag zetten als je er maar een dubbele punt tussen zet (met  ALPHA  ).
       

       
input/output
If...Then
       
  OPGAVEN
       
1. Maak een programma waarmee je de inhoud van een bol, een kegel en een cilinder kunt uitrekenen.

Ibol = 4/3πr3
Ikegel = 1/3πr2h
Icilinderπr2h
       
2. Breid het programma van opdracht 1 uit om ook de oppervlakte van de figuren uit te rekenen.  Gebruik eerst een menu voor oppervlakte/inhoud en daarna wéér een menu (een submenu) voor  bol/kegel/cilinder

O
bol = 4πr2
Okegelmantel = πr(r2 + h2)
O
cilindermantel = 2πrh
O
hele cilinder = 2πrh + 2πr2 
       
3. Voeg aan het programma van opgave 2 ook de afgeknotte kegel toe!

Een afgeknotte kegel kun je zien als het verschil van een grote en een kleine kegel (die eraf is gehaald). Gebruik als gegevens de straal van de bovenkant, de straal van de onderkant en de hoogte
       
       
     

© h.hofstede (h.hofstede@hogeland.nl)