PiF 1

  <terug>

Gebruikerscommando's

Veel programma's geven met behulp van een menu opties aan voor de gebruiker. Zoiets kan natuurlijk ook zonder een menu op een scherm. In dat geval leest de gebruiker in de programmahandleiding welke commando's hij kan gebruiken. Hoogstwaarschijnlijk is die handleiding zoek (zo die al bestaat) en dan is het een kwestie van proberen.

Voorbeelden van zo'n menu:

       Maak uw keuze:
          A = hoger
          B = lager
          C = niets veranderen
of
       Maak uw keuze:
          1 = noord
          2 = oost
          3 = zuid
          4 = west
We spreken af:

Het woordje KEUS

Zodra het programma een gebruikerscommando kan ontvangen, wordt het woordje KEUS aangeroepen. KEUS is geen bestaand Forth woord.
  1. KEUS verwacht dat de gebruiker een commando intypt.
  2. KEUS berekent aan de hand van de ingedrukte toets het volgnummer van het gewenste commando.

Dus:

vb1)  A levert 0 op
      B        1
      C        2

vb2)  1 levert 0 op
      2        1
      3        2
      4        3
Het gaat uitsluitend om het proces van kiezen, zoals de naam KEUS ook aangeeft. Wat het programma met het commandonummer gaat doen, is hier even niet van belang.

Om KEUS voor alle menus van dit type inzetbaar te maken, moet KEUS informatie over het betreffende menu meekrijgen op stack. Dat gaat in de vorm van:

n = het aantal commando's in het menu.
ch = het karakter bij het bovenste commando.

We spreken ook af dat de commandokarakters in een menu altijd een aaneengesloten oplopende reeks van ASCII-codes vormen.

Opdracht 1

  1. Wat zal er moeten gebeuren als de gebruiker een toets indrukt die niet in het menu staat?
  2. Hoe kun je er voor zorgen dat het niet uitmaakt of je hoofdletters of kleine letters intypt als commando?
  3. Definieer het woord
     : KEUS ( n ch -- commandonummer ) ... ;
Groeten,
A.N.
  <terug>