Page 23 - Enterpress Magazin - 2020. 3-6.
P. 23

2020. május – december                                                                          23. oldal



        szó hatására a kernyő interpretálása megszakad, az inter-  Valamennyi  szerkezet, amely vezérlésátadást  tartalmaz
        preter ott folytatja, ahol a LOAD volt.               (tehát a feltételes és ciklus
        Egyszerre több egymást utáni blokkot adhatunk át az in-  képző utasítások), csakis definícióban használható!
        terpreternek a                                        Ha legegyszerűbb példának okáért meg szeretnénk vizs-
                                                              gálni, hogy a verem tetején 6 van-e, és ha igen, kiíratjuk a
            THRU ( n m - - - - )                              „Helyes” szöveget, akkor a következő szót kell elkészíteni:

        szóval, ami az n és m közöti blokkokat tölti be. A 2 5 THRU      : HAT? 6 = IF .” Helyes” THEN ;
        utasítás a kettes blokktól az ötösig tölt.
        Az interpreternek szinte mindegy, hogy az adott pillanat-  Ebben a definícióban a verem kiértékelődik, mint azt már
        ban billentyűzetről vagy kernyőről kapja-e a vezérlést. Azt  láttuk. Ha a feltétel igaz, akkora a „Helyes” felirat megje-
        a karakterfolyamot, amelyet az interpreter értelmez, az  lenik. Ha a feltétel hamis, semmilyen tevékenység nem
        angol nyelvű irodalom input stream-nek nevezi, ezt itt be-  történik.
        folyamnak fordítjuk.
        Egy kernyő szövegét a                                 Írjunk egy olyan szót, amely ha 0 és 9 közötti számot talál
                                                              a vermen, kiírja a képernyőre: EGYJEGYU . Természetesen
            LIST ( n - - - - )                                felhasználjuk az előző fejezetben definiált 1JEGY ( n - - - - f
                                                              ) szavunkat. Az új szó veremhatása: ( n - - - - )
        szóval írathatjuk ki a képernyőre.
        Megállapodás szerint minden képernyő legfelső sora tar-      : EGYJ 1JEGY IF .” EGYJEGYU” THEN CR ;
        talmaz valamilyen utalást a kernyő tartalmára. Ezt hasz-
        nálja fel az                                          Más magas szintű programnyelvek a THEN-t teljesen
                                                              másképp használják; mielőtt hagynánk magunkat megke-
            INDEX ( tól ig - - - - )                          verni, legjobb, ha az eszünkbe véssük: ez más, a THEN itt
                                                              ENDIF-et jelent! Az IF-et és THEN-et nem használhatjuk
        szó, amely nem szabvány ugyan, de az IS-FORTH alap-   egymás nélkül.
        szókészlet tartalmazza. Az INDEX kilistázza a megadott
        két szám közötti számú kernyők legfelső sorát és ezzel  Az ELSE
        mintegy tartalomjegyzéket ad a kernyőinkről.          Ha nemcsak egy adott feltétel teljesülésekor vannak teen-
                                                              dőink, hanem az ellenkező esetben is, akkor ilyesfélekép-
        2. Vezérlési Szerkezetek                              pen építjük a programunkat.

        2.1. A feltételes utasítás                            IF     (itt van, amit akkor kell tenni, ha a jelző igaz);
        Tudjuk már, hogyan kaphatunk jelzőt egy feltétel igaz  ELSE   (itt van, amit akkor kell tenni, ha nem)
        vagy hamis voltáról. Most megtanuljuk, hogyan lehet a  THEN
        jelzőket használni.
                                                              Például:
        Az IF ... THEN
        (A szabvány FORTH-ban IF ... ENDIF szerkezetnek hívják).      : HAT? 6 = IF .” Helyes” ELSE .” Nem helyes” THEN ;
        Szerkezete:
                                                                  : EGYJ 1JEGY IF .” EGYJEGYU” ELSE .” NEM EGYJEGYU”
            (feltétel vizsgálat) IF (az igaz ág szavai) THEN  THEN CR ;

        Az IF ... THEN szerkezet működése: az IF megeszi a verem
        tetején levő jelzőt. Ha a jelző igaz, az IF és THEN közötti                                     Folytatjuk!
        programrész végrehajtódik, ha nem, nem. Mielőtt példát
        mutatnánk rá, gyorsan szögezzük le:
   18   19   20   21   22   23   24   25   26   27   28