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

2020. május – december                                                                          25. oldal



        vigyázzunk arra, hogy minden megnyitott IF-hez tartoz-  szereplő változó(k) értéke megváltozott, akkor ez a ciklus
        zék egy ENDIF is!                                     befejezését is jelentheti. Gyakran használjuk olyan helyze-
                                                              tekben is, amikor szeretnénk elölről elkezdeni a ciklusmag
        Esetszétválasztás:                                    végrehajtását. Az utasítás az utoljára elkezdett - legbelső-
        Néhány programnyelvben ezt „kapcsolószerkezetnek” is  ciklusra vonatkozik, azaz annak feltételét tudjuk újra kiér-
        nevezik; több felsorolt feltételből kikeresi az első igaz ér-  tékeltetni.  A külső, ezt  tartalmazó  ciklusokat az  utasítás
        tékűt, és a hozzá tartozó parancso(ka)t hajtja végre, majd  nem befolyásolja.
        kilép a szerkezetből, az azt követő utasításra. A szerkezet
        dBASE nyelvű megvalósítása:                           10.4. Változók a programokban
                                                              Programírás közben állandóan szükségünk van különbö-
            DO CASE                                           ző tárolóhelyekre, ahol adatainkat ideiglenesen el tudjuk
               CASE <feltétel>                                helyezni; mint már az alapfogalmaknál említettük, ezeket
                  <parancs(ok)>                               a tárolóhelyeket szokás változóknak nevezni. Programot
               [CASE <feltétel>                               írni változók használata nélkül szinte lehetetlen, mert így
                  <parancs(ok)>]                              csak állandó értékű adatok szerepelhetnének az utasítá-
               [OTHERWISE                                     sokban, azaz minden alkalommal ugyanazt a tevékeny-
                  parancs]                                    séget végezné el a program, minden futtatás alkalmával
            ENDCASE                                           pontosan ugyanazt az eredményt kapnánk. Az ilyen utasí-
                                                              tássorozatot csak erős túlzással lehet számítógépes prog-
        Csak egyetlen (az első igaz feltételű) CASE parancsait  ramnak tekinteni.
        hajtja végre, utána kilép az ENDCASE utasítást követő pa-  Programjainkban ugyanolyan változókat használhatunk,
        rancsra. (A CASE ágak száma tetszőleges.) Az OTHERWISE  mint párbeszédes módban, azaz memóriaváltozókat és
        után felsorolt parancsokat akkor hajtja végre, ha egyetlen  adatbázismezőket. Az eddig ismertetett, változókat kez-
        feltételt sem talált igaznak. Ha nem használunk OTHER-  elő parancsokon kívül rendelkezésünkre áll még néhány
        WISE részt, az ENDCASE után folytatódik a végrehajtás.  utasítás, amelyek egy részét nincs értelme programon kí-
                                                              vül alkalmazni, de amelyek léte ékesen bizonyítja, hogy a
        10.3.2. Ciklusszervezés                               változóknak (és itt most kivételesen elsősorban a memó-
        A ciklus egy utasításcsoport ismételt végrehajtása, amíg  riaváltozókat értjük ezen) a programírásban van elsődle-
        egy adott ún. ciklusfeltétel teljesül. Amikor a ciklusfeltétel  ges szerepük.
        hamissá válik, befejeződik a ciklus, és a ciklust követő pa-
        ranccsal folytatódik a programvégrehajtás. A ciklust létre-  10.4.1. Memóriaváltozók használata programban
        hozó utasításokat a következő formában kell a program-  Először  foglalkozzunk  a  memóriaváltozók  programon
        szövegbe írni:                                        belüli alkalmazásával! Ez több olyan új parancsot jelent,
                                                              amelyek használatával nagyon kényelmesen és „egysze-
            DO WHILE <feltétel>                               rűen” programozhatjuk adatbázis-kezelőnket. A memó-
               <parancs(ok)>                                  riaváltozók definícióját- programon belül is az értékadó
            ENDDO                                             utasítások  végzik.  Az eddig megismert  parancs  (a STO-
                                                              RE) mellett azonban használhatunk olyan utasításokat
        Ez egy ún. elöltesztelt ciklus; a parancsok első végrehaj-  is, amelyek a program felhasználójától fogadnak adatot,
        tása előtt is ellenőrzi a feltételt. Ha már ekkor hamisnak  és azt egy megadott memóriaváltozóban helyezik el. Az
        találja, egyszer sem végzi el a ciklusmag utasításait. A  ilyen változók pontos értéke minden futtatásnál más és
        ciklusok is „egymásba ágyazhatók”, azaz a ciklusmag tar-  más lehet, értéküket a billentyűzeten begépelt kifejezés
        talmazhat egy másik ciklust, de azt is be kell fejezni az  határozza meg.
        ENDDO utasítással. Elméleti szempontból fontos, hogy
        ha a programvégrehajtás belépett egy ciklusba, akkor a  Tetszőleges típusú adat bekérésére alkalmas a következő,
        ciklusvégen is szigorúan át kell haladnia. Soha ne írjunk  interaktív dódban is használható (de legalább kipróbálha-
        ciklusmag belsejébe RETURN parancsot. Programunkat  tó) parancs:
        egy program is elindíthatja, ilyenkor a RETURN hatására a
        hívott program befejeződik, de lezáratlanul marad a cik-      INPUT [<üzenet>] TO <memóriaváltozó>
        lus, és a hívó program ciklusai ettől zavarba jöhetnek.
                                                              Az „üzenet” egy karakteres kifejezés lehet, általában  va-
        A dBASE nyelve rendelkezik egy paranccsal, amelyek le-  lamilyen magyarázószöveg, mellyel emlékeztetjük a fel-
        hető ad számunkra, hogy a megkezdett ciklus befejezését  használót arra, hogy milyen jellegű adatot vár a program
        a normális végrehajtás menetétől függetlenül is kezde-  (ha ez egy állandó karaktersorozat, akkor a határolójelek
        ményezhessük. A                                       közé kell tenni).  Az „üzenet” a parancs  végrehajtásának
                                                              első lépéseként megjelenik a képernyőn (az utoljára hasz-
            LOOP                                              nált sort követő sor első pozíciójától kezdve), és utána (a
                                                              kurzortól kezdődően) gépelhetünk be egy tetszőleges,
        parancs hatására a ciklusmag további parancsait figyel-  dBASE által értelmezhető kifejezést, a adott nevű me-
        men kívül hagyva, azonnal a ciklusfeltétel újbóli kiérté-  móriaváltozó ennek típusát és értékét veszi fel. Tekintet-
        kelését végzi el a rendszer. Ha előtte a ciklusfeltételben  tel arra, hogy kifejezést vár a parancs, a karakteres típu-
   20   21   22   23   24   25   26   27   28