Content extract
Helpből készített referenciakönyv összeállította: Nagy Zoltán A Comenius Logo felülete: Objektum szerkesztő Betöltés Mentés Segítség 2 Teljes rajzlap Osztott képernyő Írólap Feladatok Alapszavak Gombsor Demó programok Program leállítás Numerikus függvények * * --- művelet 2 bemenő adattal szám1 * szám2 a bemenet1 bemenet2 és a SZORZAT bemenet1 bemenet2 függvények megegyeznek Eredményül a bemenő adatok szorzatát kapjuk. ? KI 7 * 3 21 ? KI -3 * -5 15 ? KIÍR (MONDAT 2 "* 3 "EGYENLŐ 2 3) 2 * 3 EGYENLŐ 6 + + --- művelet 1 vagy 2 bemenő adattal szám1 + szám2 +szám a bemenet1 + bemenet2 és az ÖSSZEG bemenet1 bemenet2 függvények megegyeznek Eredményül a bemenetként adott számok összegét kapjuk. ? KI 22 + 18 40 ? HA ÖSSZEG 3 4 = 3 + 4 [KIÍR "JÓL VAN] [KIÍR "BOCS] JÓL VAN Ha a műveletnek egyetlen paramétere van, akkor eredményként magát a bemenő számot kapjuk. - --- művelet 1 vagy 2 bemenő
adattal szám1 - szám2 -szám a bemenet1 - bemenet2 és a KÜLÖNBSÉG bemenet1 bemenet2 függvények megegyeznek Eredményül a szám1 és a szám2 különbségét kapjuk. ? KIÍR 44 - 12 32 Egyetlen bemenő adat esetén a visszaadott érték az eredeti szám ellentettje. ? KI -2 -2 ? KI -3-2 -5 3 / / --- művelet 2 bemenő adattal szám1 / szám2 a bemenet1 / bemenet2 és a HÁNYADOS bemenet1 bemenet2 függvények megegyeznek Kimenetként a szám1 szám2-vel való osztási eredményét kapjuk. A nullával való osztás HIBÁ-t idéz elő. Figyeljünk az / és az EGÉSZHÁNYADOS függvény közötti különbségre, hiszen ez utóbbi a bemeneti adatok maradékos osztásával kapott hányadost adja meg, mely mindig egész szám. ? KI 555555 / 32 17361.09 ? KI EGÉSZHÁNYADOS 555555 32 17361 ABSZ ABSZ --- függvény 1 bemenő adattal ABSZ szám Eredménye a bemenő szám abszolút értéke. ? KIÍR ABSZ -55.4 55.4 ? KIÍR ABSZ -5 = 5 IGAZ ARCTG ARCTG --- függvény 1 bemenő
adattal ARCTG szám Eredménye az a (fokokban mért) szög, amelynek tangense a bemenetként adott számmal egyezik meg. Ez az eredmény mindig -90 és 90 közé esik Tehát az ARCTG a TG függvény inverze abban az esetben, ha a tangens értelmezési tartományát a (-90, 90) intervallumra szűkítjük le ? KI ARCTG -5 -78.69 ? KI ARCTG 5 78.69 ? KI TG ARCTG 33.5 33.5 EGÉSZHÁNYADOS; EH EGÉSZHÁNYADOS; EH --- függvény 2 bemenő adattal EGÉSZHÁNYADOS szám1 szám2 Eredményét a szám1-nek szám2-vel való maradékos osztásánál adódó hányados értéke adja meg. Ha a bemenő adatok nem egész számok, akkor első lépésként az EGÉSZRÉSZ függvény alkalmazásával csonkítani fogja őket a rendszer. 4 Az első paraméter másodikkal való maradékos osztása esetén kapott maradék a MARADÉK függvény által visszaadott érték. Figyeljük meg az EGÉSZHÁNYADOS és a HÁNYADOS függvények közötti különbséget, mely az osztási eredményből olvasható le: ?
KI EGÉSZHÁNYADOS 14 4 3 ? KI HÁNYADOS 14 4 3.5 ? KI MARADÉK 14 4 2 EGÉSZRÉSZ EGÉSZRÉSZ --- függvény 1 bemenő adattal egészrész EGÉSZRÉSZ szám Eredménye a szám egészrésze (nem matematikai értelemben, inkább csonkolás), vagyis az eljárás azt az egész számot adja vissza, mely a törtrész elhagyása után keletkezik a számból. Hasonlítsuk össze a KEREKÍT függvénnyel! ? KI EGÉSZRÉSZ -34.76565 -34 ? KI EGÉSZRÉSZ HATVÁNY 1 2 EH EGÉSZHÁNYADOS; EH --- függvény 2 bemenő adattal EGÉSZHÁNYADOS szám1 szám2 Eredményét a szám1-nek szám2-vel való maradékos osztásánál adódó hányados értéke adja meg. Ha a bemenő adatok nem egész számok, akkor első lépésként az EGÉSZRÉSZ függvény alkalmazásával csonkítani fogja őket a rendszer. Az első paraméter másodikkal való maradékos osztása esetén kapott maradék a MARADÉK függvény által visszaadott érték. Figyeljük meg az EGÉSZHÁNYADOS és a HÁNYADOS függvények
közötti különbséget, mely az osztási eredményből olvasható le: ? KI EGÉSZHÁNYADOS 14 4 3 ? KI HÁNYADOS 14 4 3.5 ? KI MARADÉK 14 4 2 GYÖK GYÖK --- függvény 1 bemenő adattal GYÖK szám ahol a szám nem negatív Eredménye a bemenet négyzetgyöke. 5 ? NÉV "VALAMI 5 ? KIÍR GYÖK :VALAMI 2.24 ? ISMÉTLÉS 3 [KIÍR GYÖK :VALAMI NÉV "VALAMI :VALAMI+5] 2.24 3.16 3.87 ? TIZEDESJEGY! 18 ? KIÍR GYÖK 2 1,41421356237309505 HATVÁNY HATVÁNY --- függvény 1 bemenő adattal HATVÁNY szám Eredményét úgy kapjuk meg, hogy a természetes alapot, azaz e = 2.718281-t a bemenő szám által meghatározott kitevőre emeljük. ? KI HATVÁNY -5 0.01 ? KI ELEMSZÁM HATVÁNY -5 20 ? TIZEDESJEGY! 18 ? KI HATVÁNY 1 2,71828182845904524 ; a belső pontosság igen nagy HÁNYADOS HÁNYADOS --- függvény 2 bemenő adattal HÁNYADOS szám1 szám2 a HÁNYADOS bemenet1 bemenet2 és a bemenet1 / bemenet2 függvények megegyeznek Eredményét a szám1 szám2-vel való
osztásával kapjuk. A nullával való osztás HIBÁ-t okoz. Figyeljük meg a különbséget a HÁNYADOS és az EGÉSZHÁNYADOS függvény között, ami a bemenetek egészhányadosát adja meg (az eredmény egészrészét) ? KI HÁNYADOS 555555 32 17361.09 ? KI EGÉSZHÁNYADOS 555555 32 17361 KEREKÍT KEREKÍT --- függvény 1 bemenő adattal KEREKÍT szám Eredménye a bemenő számhoz legközelebb eső egész szám. Figyeljük meg a különbséget a KEREKÍT és az EGÉSZRÉSZ függvények között, mely nem kerekíti a bemenetét, hanem levágja annak törtrészét. ? KI KEREKÍT 7.72 8 6 ? KI KEREKÍT -55.5 -56 COS KEREKÍT --- függvény 1 bemenő adattal KEREKÍT szám Eredménye a bemenő számhoz legközelebb eső egész szám. Figyeljük meg a különbséget a KEREKÍT és az EGÉSZRÉSZ függvények között, mely nem kerekíti a bemenetét, hanem levágja annak törtrészét. ? KI KEREKÍT 7.72 8 ? KI KEREKÍT -55.5 -56 KÜLÖNBSÉG KÜLÖNBSÉG --- függvény 2 bemenő
adattal KÜLÖNBSÉG szám1 szám2 a KÜLÖNBSÉG bemenet1 bemenet2 nem más, mint a bemenet1 - bemenet2 Eredménye a két paraméter, szám1 és szám2 különbsége. ? KIÍR KÜLÖNBSÉG 44 -12 32 LN LN --- függvény 1 bemenő adattal LN szám ahol a szám pozitív szám Eredménye a bemenetként szereplő szám természetes alapú logaritmusa (azaz az e = 2.71828 alapú logaritmusa) ? KI LN 10 2.3 ? KI ELEMSZÁM LN 10 19 ; a számok belső ábrázolásának pontossága nagyon nagy ? TIZEDESJEGY! 18 ? KI LN 10 2,30258509299404568 MA MARADÉK; MA --- függvény 2 bemenő adattal MARADÉK szám1 szám2 ahol szám2 nem lehet 0 Eredménye a bemenetek maradékos osztása esetén keletkező maradék lesz. Jegyezzük meg, hogy a kimenet előjele mindig azonos a szám1 előjelével. ? KI MARADÉK 33 5 3 ? KI MARADÉK -33 5 -3 7 MARADÉK; MA ÖSSZEG ÖSSZEG --- függvény 2 vagy N bemenő adattal ÖSSZEG szám1 szám2 (ÖSSZEG szám1 ) az ÖSSZEG bemenet1 bemenet2 egyenértékű a
bemenet1 + bemenet2 művelettel. Eredménye a két szám összege. Kettőnél több vagy kevesebb bemenet esetén az egész kifejezést zárójelek közé kell foglalni. ? KI (ÖSSZEG 22 33 44) 99 ? HA ÖSSZEG 3 4 = 3 + 4 [KIÍR "HELYES!] [KIÍR "BOCS!] HELYES! SIN SIN --- függvény 1 bemenő adattal SIN szög Eredménye a bemenő (fokokban mért) szög szinusza. ? KIÍR SIN 90 1 ? KIÍR ARCTG (SIN 45) / COS 45 45 ? KIÍR ARCTG SIN 45 / COS 45 ; először a COS-t számolja ki, aztán az osztást, ; és csak ezután foglalkozik a SIN-szal és az ARCTG-sel 41.86 SZORZAT SZORZAT --- függvény 2 vagy N bemenő adattal SZORZAT szám1 szám2 (SZORZAT szám1 . ) a SZORZAT bemenet1 bemenet2 és a bemenet1 * bemenet2 függvények azonosak Eredménye a két bemenő szám szorzata. Kettőnél több (vagy kevesebb) bemenő adat esetén az egész szerkezetet zárójelek közé kell tenni. ? HA 2 * 3 = SZORZAT 2 3 [KIÍR "IGEN] [KIÍR "NEM] IGEN ? KI (SZORZAT 7) 7 TG TG ---
függvény 1 bemenő adattal TG szög Eredménye a bemenő (fokokban mért) szög tangense. A függvény nem definiált 90 + i * 180 (ahol i egy egész szám) bemenő adatokra. 8 ? KIÍR TG 45 1 ? KIÍR TG 50 1.19 Ha a TG függvényt a (-90, 90) intervallumra korlátozzuk, akkor létezik inverze, konkrétan az ARCTG: ? KI TG ARCTG 72.5 72.5 VÉLETLEN VÉLETLEN --- bemenő adat nélküli utasítás VÉLETLEN A rendszerórától kapott véletlen értékkel inicializálja a beépített véletlenszámgenerárort. Ha a Logót kétszer egymás után elindítjuk, és az első kifejezésként ugyanazt a parancsot, a KI VÉLETLENSZÁM 5-öt adjuk ki, akkor ugyanahhoz az eredményhez jutunk, mert a véletlenszám-generátor tulajdonképpen mindig ugyanarról az értékről indul. (Ez a sajátosság programunk fejlesztése, illetve a hibakeresés szakaszában igen hasznos lehet.) A VÉLETLEN utasítás „találomra megváltoztatja a véletlenszám-generátor kezdőértékét, így a: ?
VÉLETLEN ? KI VÉLETLENSZÁM 5 utasítássorok különböző véletlenszámokat generálnak, akárhányszor újra elindítjuk a Logót. VÉLETLENSZÁM; VSZ VÉLETLENSZÁM; VSZ --- függvény 1 bemenő adattal VÉLETLENSZÁM szám ahol a szám nem negatív Eredménye a 0 és szám-1 zárt intervallumból véletlenül választott egész szám. (Ha a bemenő szám nem egész, akkor ezt először kerekíti.) Például a VÉLETLENSZÁM 5 eredménye a következő számok egyike: 0, 1, 2, 3 vagy 4. ? ISMÉTLÉS 4 [KIÍR VÉLETLENSZÁM 5] 0 2 0 1 VSZ 9 Numerikus predikátumok < < --- művelet 2 bemenő adattal szám1 < szám2 a bemenet1 < bemenet2 és a KISEBB? bemenet1 bemenet2 függvények megegyeznek Eredménye IGAZ értékű, ha a szám1 kisebb, mint a szám2, egyébként pedig HAMIS. ? HA 2+3 < 6 [KIÍR "IGEN] [KIÍR "NEM] IGEN Ne lepődjünk meg, ha a következőt látjuk: ? KIÍR 10 / 3 ; az eredmény csak 2 tizedes jegyet tartalmaz, 3.33 ; de a belső
számolás ennél sokkal pontosabb ? KIÍR 3.33 < 10 / 3 IGAZ A tizedesjegyek száma. <= <= --- művelet 2 bemenő adattal szám1 <= szám2 Eredménye IGAZ, ha a szám1 kisebb, mint a szám2, vagy egyenlő vele, különben pedig HAMIS. ? KI 5 <= ABSZ -5 IGAZ Jegyezzük meg, hogy a <= művelet egyetlen szó, tehát nem tehetünk szóközt a két relációs jel közé. > > --- művelet 2 bemenő adattal szám1 > szám2 a bemenet1 > bemenet2 és a NAGYOBB? bemenet1 bemenet2 függvények megegyeznek Eredményül IGAZ értéket kapunk, ha a szám1 nagyobb, mint a szám2, különben pedig HAMIS-at. ? KI 2 > 7 / 3 HAMIS ? HA 2+3 > 6 [KIÍR "IGEN] [KIÍR "NEM] NEM 10 Ne lepődjünk meg, ha a következőt látjuk: ? KIÍR 10 / 3 ; az eredmény csak 2 tizedesjegyet tartalmaz, 3.33 ; de a belső számolás ennél sokkal pontosabb ? KIÍR 10 / 3 > 3.33 IGAZ A tizedesjegyek száma. >= >= --- művelet 2 bemenő adattal szám1 >= szám2
Eredménye IGAZ, ha a szám1 nagyobb, mint a szám2, vagy egyenlő vele. Különben az eredmény HAMIS. ? KI 7 >= KEREKÍT 7.44 IGAZ Jegyezzük meg, hogy a >= művelet egyetlen szó, tehát nem tehetünk szóközt a két relációs jel közé. <> <> --- művelet 2 bemenő adattal akármi1 <> akármi2 Eredménye IGAZ, ha a két bemenet különbözik egymástól, egyébként pedig HAMIS. ? KI (ÖSSZEG 2 3 4) <> 2 + 3 + 4 HAMIS ? KI 8 <> 3.4 + 45 IGAZ Jegyezzük meg, hogy a <> művelet egyetlen szó, tehát nem tehetünk szóközt a két relációs jel közé. Figyeljünk arra is, hogy az üres szó és az üres lista (valamint az üres képsor) különböző objektumok: ? KI [ ] <> " IGAZ = = --- művelet 2 bemenő adattal akármi1 = akármi2 a bemenet1 = bemenet2 és az EGYENLŐ? bemenet1 bemenet2 függvények megegyeznek Ha mindkét bemenő adat szám, akkor az eredmény aszerint IGAZ vagy HAMIS, hogy a két szám egyenlő-e. Ha
mindkét paraméter szövegkonstans vagy képsor, akkor az eredmény csak abban az esetben IGAZ, ha a két bemenő adat azonos Ha mindkét bemenet 11 lista, csak akkor kapunk IGAZ értéket, ha a megfelelő elemeik egyenlőek (az = értelmében). ? KI 2+3 = 4+1 IGAZ ? KI "A = [A B C] HAMIS ? KI "AAA = ELSŐ [AA BB CC] HAMIS ? KI ELSŐNEK "A [B C] = UTOLSÓNAK "C [A B] IGAZ ? KI ÜRESKÉPSOR = EN ELSŐ KÉREM 0 [ALAK] IGAZ Jegyezzük meg, hogy az üres szó és az üres lista (valamint az üres képsor is) különböző objektumok: ? KI [ ] = " HAMIS Mivel a Logoban a számok szavak (numerikus szavak), ezért a következők teljesülnek: ? KI 7 * 12 = SZÓ 8 UTOLSÓ [2 4] IGAZ ? KI 27 = "27 IGAZ EGYENLŐ? EGYENLŐ? --- függvény 2 vagy N bemenő adattal EGYENLŐ? akármi1 akármi2 (EGYENLŐ? akármi . ) az EGYENLŐ? bemenet1 bemenet2 és a bemenet1 = bemenet2 függvények megegyeznek Eredménye IGAZ, ha a két bemenet azonos szó (szövegkonstans vagy
szám), azonos képsor vagy lista. Egyébként az eredmény HAMIS Ha a bemenetek száma több mint kettő, akkor az EGYENLŐ? csak abban az esetben ad vissza IGAZ értéket, ha az összes bemenet azonos. Különben az eredmény HAMIS ? KI EGYENLŐ? 5 2+3.0 IGAZ ? KI EGYENLŐ? UN "K IGAZ ? KI EGYENLŐ? [A [B C] ] [ [B C] A] HAMIS Jegyezzük meg, hogy az üres szó, az üres lista (illetve az üres képsor) páronként különböző objektumok: 12 ? KI EGYENLŐ? EN "A EN [A] HAMIS KISEBB? KISEBB? --- függvény 2 vagy N bemenő adattal KISEBB? szám1 szám2 (KISEBB? szám1 . ) a KISEBB? bemenet1 bemenet2 és a bemenet1 < bemenet2 függvények azonosak Eredménye IGAZ, ha a szám1 kisebb, mint a szám2. Különben az eredmény HAMIS Ha a bemenetek száma kettőnél több, akkor a KISEBB? eredménye csak abban az esetben lesz IGAZ értékű, ha a bemenetek növekvő sorrendben követik egymást. Különben az eredmény HAMIS. ? KI KISEBB? -4 4 IGAZ ? KI KISEBB? ABSZ -100 2
* 50 HAMIS ? KI (KISEBB? -7 -4 -1 2 5) IGAZ NAGYOBB? NAGYOBB? --- függvény 2 vagy N bemenő adattal NAGYOBB? szám1 szám2 (NAGYOBB? szám1 . ) a NAGYOBB? bemenet1 bemenet2 és a bemenet1 > bemenet2 függvények megegyeznek Eredménye IGAZ, ha a szám1 nagyobb, mint a szám2. Egyébként a visszaadott érték HAMIS. Ha a bemenő adatok száma kettőnél több, akkor a NAGYOBB? eredménye csak abban az esetben lesz IGAZ, ha a bemenő adatok csökkenő sorrendben követik egymást. Minden más esetben HAMIS az eredmény ? KI NAGYOBB? 8 4 IGAZ ? KI NAGYOBB? 5 MARADÉK 22 14 HAMIS ? KI (NAGYOBB? 8 0 -8) IGAZ 13 Szó- és listafüggvények < < --- művelet 2 bemenő adattal szám1 < szám2 a bemenet1 < bemenet2 és a KISEBB? bemenet1 bemenet2 függvények megegyeznek Eredménye IGAZ értékű, ha a szám1 kisebb, mint a szám2, egyébként pedig HAMIS. ? HA 2+3 < 6 [KIÍR "IGEN] [KIÍR "NEM] IGEN Ne lepődjünk meg, ha a következőt látjuk: ? KIÍR 10 /
3 ; az eredmény csak 2 tizedesjegyet tartalmaz, 3.33 ; de a belső számolás ennél sokkal pontosabb ? KIÍR 3.33 < 10 / 3 IGAZ A tizedesjegyek száma. <= <= --- művelet 2 bemenő adattal szám1 <= szám2 Eredménye IGAZ, ha a szám1 kisebb, mint a szám2, vagy egyenlő vele, különben pedig HAMIS. ? KI 5 <= ABSZ -5 IGAZ Jegyezzük meg, hogy a <= művelet egyetlen szó, tehát nem tehetünk szóközt a két relációs jel közé. > > --- művelet 2 bemenő adattal szám1 > szám2 a bemenet1 > bemenet2 és a NAGYOBB? bemenet1 bemenet2 függvények megegyeznek Eredményül IGAZ értéket kapunk, ha a szám1 nagyobb, mint a szám2, különben pedig HAMIS-at. ? KI 2 > 7 / 3 HAMIS ? HA 2+3 > 6 [KIÍR "IGEN] [KIÍR "NEM] NEM 14 Ne lepődjünk meg, ha a következőt látjuk: ? KIÍR 10 / 3 ; az eredmény csak 2 tizedesjegyet tartalmaz, 3.33 ; de a belső számolás ennél sokkal pontosabb ? KIÍR 10 / 3 > 3.33 IGAZ A tizedesjegyek
száma. >= >= --- művelet 2 bemenő adattal szám1 >= szám2 Eredménye IGAZ, ha a szám1 nagyobb, mint a szám2, vagy egyenlő vele. Különben az eredmény HAMIS. ? KI 7 >= KEREKÍT 7.44 IGAZ Jegyezzük meg, hogy a >= művelet egyetlen szó, tehát nem tehetünk szóközt a két relációs jel közé. <> <> --- művelet 2 bemenő adattal akármi1 <> akármi2 Eredménye IGAZ, ha a két bemenet különbözik egymástól, egyébként pedig HAMIS. ? KI (ÖSSZEG 2 3 4) <> 2 + 3 + 4 HAMIS ? KI 8 <> 3.4 + 45 IGAZ Jegyezzük meg, hogy a <> művelet egyetlen szó, tehát nem tehetünk szóközt a két relációs jel közé. Figyeljünk arra is, hogy az üres szó és az üres lista (valamint az üres képsor) különböző objektumok: ? KI [ ] <> " IGAZ = = --- művelet 2 bemenő adattal akármi1 = akármi2 a bemenet1 = bemenet2 és az EGYENLŐ? bemenet1 bemenet2 függvények megegyeznek Ha mindkét bemenő adat szám, akkor az
eredmény aszerint IGAZ vagy HAMIS, hogy a két szám egyenlő-e. Ha mindkét paraméter szövegkonstans vagy képsor, akkor az eredmény csak abban az esetben IGAZ, ha a két bemenő adat azonos Ha mindkét bemenet 15 lista, csak akkor kapunk IGAZ értéket, ha a megfelelő elemeik egyenlőek (az = értelmében). ? KI 2+3 = 4+1 IGAZ ? KI "A = [A B C] HAMIS ? KI "AAA = ELSŐ [AA BB CC] HAMIS ? KI ELSŐNEK "A [B C] = UTOLSÓNAK "C [A B] IGAZ ? KI ÜRESKÉPSOR = EN ELSŐ KÉREM 0 [ALAK] IGAZ Jegyezzük meg, hogy az üres szó és az üres lista (valamint az üres képsor is) különböző objektumok: ? KI [ ] = " HAMIS Mivel a Logoban a számok szavak (numerikus szavak), ezért a következők teljesülnek: ? KI 7 * 12 = SZÓ 8 UTOLSÓ [2 4] IGAZ ? KI 27 = "27 IGAZ CSERE CSERE --- függvény 3 bemenő adattal CSERE szám lista akármi CSERE szám szó1 szó2 CSERE szám képsor1 képsor2 CSERE intervallum lista1 lista2 CSERE intervallum szó1 szó2
CSERE intervallum képsor1 képsor2 Ha az első bemenet szám, akkor a CSERE eredményeként a második bemenetben a szám sorszámú elemet a harmadik bemenetre cseréljük. ? KI CSERE 2 [A B C D] 1000 [A 1000 C D] ? KI CSERE 3 "HAJÓ "JT HAJTÓ 16 A számra vonatkozó feltétel, hogy 1 és a második bemenet elemszáma közé essen. (Ha a szám nem egész szám, akkor először ennek törtrészét levágja a Logo.) Ha az első paraméter a [szám1 szám2] intervallum, akkor a CSERE eredményeként a második bemenet módosítását kapjuk, melynek a fenti intervallum által meghatározott részét, a harmadik paraméterre való cseréjével kapható meg. Jegyezzük meg, hogy a harmadik bemenet mindig ugyanolyan típusú, mint a második. Az intervallum első értéke a kezdő elem sorszámát adja, a második érték azt, hogy hány egymásutáni elemet cserélünk. Például a [3 2] törli a 3 és 4 elemet ? KI CSERE [3 2] "MÁSZIK "L MÁLIK ? KI CSERE [2 4]
[A B C D E F] [X Y] [A X Y F] ? KI CSERE [2 4] [A B C D E F] "ROSSZ HIBA: csere mellett nem használható ROSSZ ? KI CSERE [2 4] [A B C D E F] [ROSSZ] [A ROSSZ F] Ha a CSERE függvény első paramétereként intervallum szerepel, akkor lehetőséget nyújt számunkra a második bemenet néhány elemének törölésére, illetve néhány új elem beszúrására: ? KI CSERE [1 0] [a b c] [10 20 30] [10 20 30 a b c] ? KI CSERE [3 0] "ABCDEF "XYZ ABXYZCDEF ; [3 0] itt azt jelenti, hogy pontosan a 3. elem elé szúrunk be ; amíg a [3 1] azt jelentené, hogy pontosan a 3. elemtől kezdünk, ; és egy elemet áthidalunk ? KI CSERE [2 3] [a b c d e f] [ ] [a e f] EGYENLŐ? EGYENLŐ? --- függvény 2 vagy N bemenő adattal EGYENLŐ? akármi1 akármi2 (EGYENLŐ? akármi . ) az EGYENLŐ? bemenet1 bemenet2 és a bemenet1 = bemenet2 függvények megegyeznek Eredménye IGAZ, ha a két bemenet azonos szó (szövegkonstans vagy szám), azonos képsor vagy lista. Egyébként az
eredmény HAMIS Ha a bemenetek száma több mint kettő, akkor az EGYENLŐ? csak abban az esetben ad vissza IGAZ értéket, ha az összes bemenet azonos. Különben az eredmény HAMIS ? KI EGYENLŐ? 5 2+3.0 IGAZ ? KI EGYENLŐ? UN "K IGAZ ? KI EGYENLŐ? [A [B C] ] [ [B C] A] 17 HAMIS Jegyezzük meg, hogy az üres szó, az üres lista (illetve az üres képsor) páronként különböző objektumok: ? KI EGYENLŐ? EN "A EN [A] HAMIS ELEM ELEM --- függvény 2 bemenő adattal ELEM szám akármi ELEM intervallum akármi Ha az első paraméter egy szám, akkor az ELEM eljárás a második bemenet szám sorszámú elemét adja eredményül. Ha a második paraméter lista, akkor a visszaadott érték ennek szám sorszámú tagja. Ha a második paraméter szó, akkor az eredmény ennek szám sorszámú karaktere. Ha a második bemenet képsor, akkor eredményül ennek szám sorszámú fázisát kapjuk Mindhárom esetben a szám értékének 1 és akármi elemszáma között kell
lennie (Ha a szám nem egész, akkor ennek törtrészét először levágja a rendszer.) ? KI ELEM 3 [A B C D E] C ? KI ELEM 3 [ [A] [B] [C] [D] ] [C] ? KI ELEM 4 "Péter e ? KI ELEM 2.73 [ [aa] [bb] [cc] [dd] ] [bb] Ha az első bemenet intervallum [szám1 szám2], akkor az ELEM függvény eredménye akármi egy része lesz, vagyis néhány megfelelő szomszédos eleme, karaktere vagy fázisa, mely a szám1-edik tagjától kezdődik és szám2 számú elemet tartalmaz. ? KI ELEM [3 4] "TULIPÁN LIPÁ ? KI ELEM [2 1] [a b c d] [b] Ha az intervallum hossza 0, mint pl. [3 0], akkor (akármi típusától függően) üres lista, üres szó vagy üres képsor lesz a visszaadott érték. Az intervallumbeli szám1 értékének 1 és akármi elemszáma között kell lennie, azonban a szám2 meghaladhatja akármi utolsó elemét: ? KI ELEM [3 5] "JÁNOS NOS 18 ELEME ELEME --- függvény 2 bemenő adattal ELEME szó1 szó2 ELEME akármi lista A függvény a második
paraméterben balról jobbfelé haladva az első bemenettel azonos részt keres. Ha sikerrel jár, akkor a függvény eredményeként a második bemenő adat azon pozícióját kapjuk, melynél az elsőt megtalálta: ? KI ELEME "A "TENGERALATTJÁRÓ 7 Ha a függvény nem talál megfelelő részt a második paraméterben, akkor a visszaadott érték 0. Ha a második bemenő adat lista, akkor a függvény először ennek első elemét vizsgálja, hogy azonos-e (az EGYENLŐ?-ség értelmében) akármivel, és ha talál vele azonost, akkor eredményül a megfelelő pozíciót adja (illetve 0-t, ha nem talált): ? KI ELEME 1 [[1][2][3]] 0 ? KI ELEME [2] [[1][2][3][2][1]] 2 ELEME? ELEME? --- függvény 2 bemenő adattal ELEME? akármi lista ELEME? szó1 szó2 Eredménye IGAZ, ha akármi eleme a második paraméternek, egy listának. Különben az eredmény HAMIS. Ha a második paraméter szó, akkor az ELEME? az első bemenetet részszóként keresi a második bemenő adatban. ? KI
ELEME? "ABC [A AB ABC ABCD] IGAZ ? KI ELEME? "ABC [ [A AB ABC ABCD] ] HAMIS ; a fenti listának egyetlen eleme van, ; konkrétan az [A AB ABC ABCD] lista ? KI ELEME? [ABC] [ [A] [AB] [ABC] ] IGAZ ? KI ELEME? "OR "GÁBOR IGAZ 19 ELEMNÉLKÜLI ELEMNÉLKÜLI--- függvény 2 bemenő adattal ELEMNÉLKÜLI karakter szó ELEMNÉLKÜLI akármi lista A függvény törli az első paraméterként adott adat összes előfordulását a második bemenő adatból. Az így kapott eredmény lesz az ELEMNÉLKÜLI által visszaadott érték Ha a második paraméter szó, akkor az ELEMNÉLKÜLI kitörli az adott karaktert a szóból, valahányszor az szerepel benne. Ha a második bemenet lista, akkor az összes olyan eleme, mely azonos (az EGYENLŐ? -ség értelmében) az elsőként adott paraméterrel, kimarad a listából. ? KI ELEMNÉLKÜLI "L "HELLO HEO ? KI ELEMNÉLKÜLI 1 [[1][2][3]] [[1][2][3]] ? KI ELEMNÉLKÜLI 1 [1 2 3 1 2 3] [2 3 2 3] ? KI ELEMNÉLKÜLI [A]
[[B][C][D][A][A] 10000] [[B][C][D] 10000] ELEMSZÁM; ESZ ELEMSZÁM; ESZ --- függvény 1 bemenő adattal ELEMSZÁM akármi Ha a bemenő adat szó, akkor az ELEMSZÁM eredményeként azt kapjuk meg, hogy a szó hány karakterből áll. Ha a bemenet lista, akkor az ELEMSZÁM visszaadott értéke a lista elemeinek száma lesz. Ha a paraméter képsor, akkor az ELEMSZÁM eljárás ennek fázisszámát adja meg. Legyünk óvatosak: [A B [C D] ] listának nem 4 eleme van, hanem 3, melyek a következők: az A, a B és a [C D]. ? KI ELEMSZÁM "LOGO 4 ? KI ELEMSZÁM [LOGO] 1 ? KI ELEMSZÁM EN "A 0 ELEMTŐL ELEMTŐL --- függvény 2 bemenő adattal ELEMTŐL szó1 szó2 ELEMTŐL akármi lista A függvény a második paraméterben balról kezdve keresi az első bemenet előfordulását ha ez létezik és a második bemenetnek ezzel az elemmel kezdődő részét adja vissza eredményül. 20 ? KI ELEMTŐL "AL "TENGERALATTJÁRÓ ALATTJÁRÓ Ha mindkét paraméter szó, akkor a
függvény karakterenként vizsgálja a szó2-t balról kezdve, és ellenőrzi, hogy ezzel kezdődik-e a szó1. Ha sikerrel jár, akkor a szó2 megfelelő része, mely a szó1-gyel kezdődik, lesz az eredményszó Különben a függvény üres szót eredményez. ? KI ELEMTŐL "AB "MNCABXYZCAB ABXYZCAB ? KI ELEMTŐL "ABBA "MABB ; üres szó lesz visszaadva, mert ; az ABBA nem alszava a MABB-nak Ha a második paraméter lista, akkor a függvény ennek első elemétől kezdve keresi az akármivel azonos tagot (az EGYENLŐ?-ség értelmében), és az eredmény a lista megfelelő része lesz, mely az akármivel kezdődik. Ha nincs ilyen elem, akkor a függvény az üres listát [ ] adja vissza: ? KI ELEMTŐL 1 [[1][2][3]] [] ? KI ELEMTŐL [2] [[1][2][3][2][1]] [[2][3][2][1]] ELSŐ ELSŐ --- függvény 1 bemenő adattal ELSŐ akármi ahol akármi tetszőleges nem üres szó, lista vagy képsor Ha a bemenet szó, akkor az ELSŐ egy olyan szót ad vissza, mely az eredetinek
csak az első karakterét tartalmazza. Ha a bemenő adat lista, akkor az ELSŐ eredménye ennek első eleme. Ha a bemenő paraméter képsor, akkor az ELSŐ eredményeként az eredeti képsornak csak az első fázisát tartalmazó képsort kapunk. ? KI ELSŐ "ABC A ? KIÍR ELSŐ 99.567 9 ? KI ELSŐ [ [A B C] D E] [A B C] ? KIÍR ELSŐ [ [A B C] D E] ABC Legyen az AUTÓK egy változó, melynek értéke egy 4 fázisból álló képsor. Ekkor: ? KI ELSŐ :AUTÓK {képsor1} ; egy egyetlen fázisból álló képsor 21 ELSŐNEK ELSŐNEK --- függvény 2 bemenő adattal ELSŐNEK betesz ELSŐNEK akármi lista ELSŐNEK képsor1 képsor2 ELSŐNEK szó1 szó2 Ha a második paraméter lista, akkor a függvény eredménye egy olyan lista, melynek ELSŐ eleme akármi és többi eleme a bemenő lista elemeivel egyezik meg (az eredményre alkalmazva az ELSŐNÉLKÜLI függvényt a bemenő lista-át kapjuk meg). Ha a második paraméter képsor, akkor az ELSŐNEK eljárás egy módosított
képsort ad vissza, mely a képsor1 és képsor2 fázisainak összefűzéséből adódik. Az ELSŐNEK képsor1 képsor2 ugyanaz, mint a KÉPSOR szó1 szó2. Ha a második bemenet szó, akkor az ELSŐNEK függvény eredménye egy módosított szó, mely a két bemenet, szó1 és szó2 összefűzésével adódik. Az ELSŐNEK szó1 szó2 ugyanaz, mint a SZÓ szó1 szó2. ? KI ELSŐNEK "A [B C D] [A B C D] ? KI ELSŐNEK "A [ ] [A] ? KI ELSŐNEK [ ] [ ] [[]] Legyen az AUTÓK egy 4 fázisból álló képsor értékű változó. Ekkor: ? KI ELSŐNEK :AUTÓK [44 77] [ {képsor4} 44 77] ? KI ELSŐNEK :AUTÓK :AUTÓK {képsor8} Ha az első bemenet szó és a második egy szó-elemű lista, akkor az ELSŐNEK függvény a MONDAT függvényhez hasonló. Összetettebb bemenetek esetén a függvények hatása különböző lehet: ? KI M [1 2] [3 4] [1 2 3 4] ? KI ELSŐNEK [1 2] [3 4] [[1 2] 3 4] ELSŐNÉLKÜLI; EN ELSŐNÉLKÜLI; EN --- függvény 1 bemenő adattal ELSŐNÉLKÜLI akármi
ahol akármi egy tetszőleges nem üres szó, lista vagy képsor Ha a bemenet szó, akkor az ELSŐNÉLKÜLI eredménye az a szó lesz, melyet az eredetiből annak első karakterének elhagyásával kapunk. Ha a bemenő adat lista, akkor az ELSŐNÉLKÜLI egy listát ad vissza, mely az eredeti lista összes elemét tartalmazza, kivéve az elsőt. Ha a bemenet egy képsor, akkor az ELSŐNÉLKÜLI eredményeként létrejövő képsor az eredetinek a fázisaiból fog állni, az elsőt elhagyva. 22 ? KIÍR ELSŐNÉLKÜLI "LOGO LOGO ? KIÍR EN [ ] HIBA: en mellett nem használható [ ] ? KI EN EN [ [A 2] [B 3] [C 4] ] [ [C 4] ] EN ESZ ELEMSZÁM; ESZ --- függvény 1 bemenő adattal ELEMSZÁM akármi Ha a bemenő adat szó, akkor az ELEMSZÁM eredményeként azt kapjuk meg, hogy a szó hány karakterből áll. Ha a bemenet lista, akkor az ELEMSZÁM visszaadott értéke a lista elemeinek száma lesz. Ha a paraméter képsor, akkor az ELEMSZÁM eljárás ennek fázisszámát adja meg.
Legyünk óvatosak: [A B [C D] ] listának nem 4 eleme van, hanem 3, melyek a következők: az A, a B és a [C D]. ? KI ELEMSZÁM "LOGO 4 ? KI ELEMSZÁM [LOGO] 1 ? KI ELEMSZÁM EN "A 0 FORDÍT FORDÍT --- függvény 1 bemenő adattal FORDÍT akármi Megfordítja a bemenő paramétert alkotó elemek sorrendjét, és az így kapott adatot adja eredményül. Tehát a bemenő adat utolsó eleme lesz az eredményadat első eleme, az utolsó előtti a második, és így tovább. Az eredmény lehet: egy ugyanannyi karakterből álló szó, ha a bemenő adat szó, egy azonos elemszámú lista, ha a bemenő adat lista. Ha ennek valamely eleme maga is lista, akkor az „al-lista elemsorrendje már változatlan marad, egy ugyanannyi fázisból álló képsor, ha a bemenő adat képsor. ? KI FORDÍT "LÉGGÖMB BMÖGGÉL ? KI FORDÍT [ [1 2 3] [4 5 6] [7 8 9] ] [ [7 8 9] [4 5 6] [1 2 3] ] JEL JEL --- függvény 1 bemenő adattal JEL szám ahol a szám egy a 0 és 255 közé eső
egész szám Eredményül azt a karaktert kapjuk, melynek ASCII kódja az adott számmal egyenlő. Ahhoz, hogy egy karakter (vagy egy szó első karakterének) ASCII kódját megtudjuk, használjuk a KÓD függvényt. 23 ? KIÍR JEL 122 z ? KI JEL 32 + KÓD "E e KISEBB? KISEBB? --- függvény 2 vagy N bemenő adattal KISEBB? szám1 szám2 (KISEBB? szám1 . ) a KISEBB? bemenet1 bemenet2 és a bemenet1 < bemenet2 függvények azonosak Eredménye IGAZ, ha a szám1 kisebb, mint a szám2. Különben az eredmény HAMIS Ha a bemenetek száma kettőnél több, akkor a KISEBB? eredménye csak abban az esetben lesz IGAZ értékű, ha a bemenetek növekvő sorrendben követik egymást. Különben az eredmény HAMIS. ? KI KISEBB? -4 4 IGAZ ? KI KISEBB? ABSZ -100 2 * 50 HAMIS ? KI (KISEBB? -7 -4 -1 2 5) IGAZ KIVÁLASZT KIVÁLASZT --- függvény 1 bemenő adattal KIVÁLASZT akármi ahol akármi nem üres A függvény eredményeként a bemenetként szereplő akármi egy véletlenszerűen
kiválasztott elemét kapjuk. Ha a bemenet szó, akkor a KIVÁLASZT eredménye ennek egy véletlenszerűen kiválasztott karaktere. Ha a bemenő paraméter lista, akkor a KIVÁLASZT ennek véletlenszerűen választott listaelemét adja vissza Ha bemenetként egy képsort adunk meg, akkor a KIVÁLASZT eredménye ennek véletlenszerűen kiválasztott fázisa Ha a bemenet üres (szó, lista vagy képsor), akkor hiba következik be. ? KI KIVÁLASZT [1 2 3 4 5 6 7 8 9] 8 ? KI KIVÁLASZT [1 2 3 4 5 6 7 8 9] 2 Jegyezzük meg, hogy a KIVÁLASZT akármi és az ELEM 1 + VÉLETLENSZÁM ELEMSZÁM akármi akármi eljárások hatása azonos. KÓD KÓD --- függvény 1 bemenő adattal KÓD karakter KÓD szó Eredményül a bemenő karakternek vagy a bemenő szó első karakterének megfelelő ASCII kódszámot kapjuk meg (ami egy a 0 és 255 közé eső egész szám). 24 ? KI KÓD "A 65 ? KI KÓD "! 33 ? KI JEL 32 + KÓD "A a LISTA LISTA --- függvény 2 vagy N bemenő adattal
LISTA akármi1 akármi2 (LISTA akármi1 . ) Eredményeként azt a listát kapjuk meg, amely az összes bemenő paramétert tartalmazza elemként. A bemenetek lehetnek szavak, listák vagy képsorok Figyeljük meg a LISTA és a MONDAT függvények közötti különbségeket! ? KI LISTA 4 -6 [4 -6] ? KI LISTA "A [B C] [A [B C] ] ? KI MONDAT "A [B C] [A B C] ? NÉV "VAGYOK "TEKI ? KI (LISTA :VAGYOK "AZ :VAGYOK) [TEKI AZ TEKI] ? KI (LISTA) [] ; ha nincs bemenet, akkor az eredmény üres lista A szavak, listák és képsorok keverve együtt is alkothatnak összetettebb listákat: ? NÉV "TEKNŐC ALAK ? KI (LISTA [EZ A] :TEKNŐC 33 + 17) [ [EZ A] {képsor24} 50] LISTA? LISTA? --- függvény 1 bemenő adattal LISTA? akármi Eredménye csak akkor IGAZ, ha a bemenő adat lista. Különben az eredmény HAMIS ? KI LISTA? [A B C] IGAZ ? KI LISTA? [ ] IGAZ ? KI LISTA? ELSŐ [A B C] HAMIS ? KI LISTA? "ZOLI HAMIS 25 M MONDAT; M --- függvény 2 vagy N bemenő
adattal MONDAT akármi1 akármi2 (MONDAT akármi1 . ) Eredményeként azt a listát kapjuk, melyet a következőképpen készít el: ha az összes bemenet lista, akkor ezek elemei alkotják az egyszerű eredménylistát. ? KI M [A B C] [D [E] F] ; M a MONDAT rövidítése [A B C D [E] F] Ha valamelyik bemenő adat szó, akkor ezt elemként szúrja be az eredménylistába: ? KIÍR M "Péter [nincs jelen.] Péter nincs jelen. ? KI M "PÉTER "PÁL [PÉTER PÁL] ? KIÍR M "PÉTER "PÁL PÉTER PÁL Ha valamely paraméter N fázisú képsor, akkor a {képsorN} formájú kifejezést foglalja az eredménylistába: ? KI LISTA [A teknőcök alapalakja] ALAK [A teknőcök alapalakja {képsor24} ] Figyeljük meg a MONDAT és a LISTA közötti különbséget! Jegyezzük meg a KIÍRJEL és a KIÍR közötti különbséget is listákra való alkalmazásuk során. ? KI LISTA [A B C] "D [ [A B C] D] ? KI M [A B C] "D [A B C D] MONDAT; M NAGYOBB? NAGYOBB? ---
függvény 2 vagy N bemenő adattal NAGYOBB? szám1 szám2 (NAGYOBB? szám1 . ) a NAGYOBB? bemenet1 bemenet2 és a bemenet1 > bemenet2 függvények megegyeznek Eredménye IGAZ, ha a szám1 nagyobb, mint a szám2. Egyébként a visszaadott érték HAMIS. Ha a bemenő adatok száma kettőnél több, akkor a NAGYOBB? eredménye csak abban az esetben lesz IGAZ, ha a bemenő adatok csökkenő sorrendben követik egymást. Minden más esetben HAMIS az eredmény 26 ? KI NAGYOBB? 8 4 IGAZ ? KI NAGYOBB? 5 MARADÉK 22 14 HAMIS ? KI (NAGYOBB? 8 0 -8) IGAZ ÖSSZEKEVER ÖSSZEKEVER --- függvény 1 bemenő adattal ÖSSZEKEVER akármi Eredményét a bemenetként kapott akármi elemeinek véletlenszerű összekeverésével (vagyis átrendezésével) kapja a rendszer. Jegyezzük meg, hogy az eredmény lehet: egy ugyanannyi karakterből álló szó, ha a bemenet szó, egy azonos elemszámú lista, ha a bemenet lista. Ha a listának valamely eleme maga is lista, akkor ennek elemei nem keverednek
össze, egy azonos fázisszámú képsor, ha a bemenet képsor. ? KI ÖSSZEKEVER "LÉGGÖMB GÖÉLBMG ? KI ÖSSZEKEVER "LÉGGÖMB BÖGÉMLG ? KI ÖSSZEKEVER [1 2 3 [4 5] 6] [3 [4 5] 2 6 1] SZÁM? SZÁM? --- függvény 1 bemenő adattal SZÁM? akármi Eredményül IGAZ értéket kapunk, ha akármi egy szám, azaz egy numerikus szó. Különben az eredmény HAMIS ? KI SZÁM? 5 + 4.7 IGAZ ? KI SZÁM? ELSŐ [A B C] HAMIS ? KI SZÁM? SZÓ ELEMSZÁM "JÁNOS ELEMSZÁM "PÁL IGAZ SZÓ SZÓ --- függvény 2 vagy N bemenő adattal SZÓ szó1 szó2 (SZÓ szó1 . ) Eredménye egy szó, melyet az összes bemenő szó összefűzésével (konkatenációjával) kapunk. A bemenő szavak üresek is lehetnek ? KIÍR SZÓ "Win "dows Windows ? KIÍR (SZÓ 23 ".7) 23.7 27 ? KI SZÁM? (SZÓ 23 ".7) IGAZ Néha speciális karaktereket tartalmazó szavakkal dolgozunk, mint például A/B vagy A B azaz egy szó, mely szóközt tartalmaz. Ekkor a backslash () karaktert
kell alkalmaznunk. ? KI (SZÓ "A "32 "B) AB ; ez egy szóközt tartalmazó szó SZÓ? SZÓ? --- függvény 1 bemenő adattal SZÓ? akármi Eredménye IGAZ értékű, ha a bemenet egy szó, azaz vagy szövegkonstans, vagy számjegyekből álló szó (vagyis szám). Különben az eredmény HAMIS ? KI SZÓ? "EGY.SZÓ IGAZ ? KI SZÓ? UTOLSÓ [AHA EHE UHU] IGAZ ? KI SZÓ? UTOLSÓNÉLKÜLI "E IGAZ ; az üres szó is szó Néha olyan szavakkal dolgozunk, melyekben speciális karakterek szerepelnek, mint például az A/B vagy A B azaz egy szóközt tartalmazó szó. Ekkor a backslash () karaktert kell használnunk: Escape Character and "Forbidden Words". ? KI (SZÓ "PÉTER JEL 38 "PÁL) PÉTER&PÁL ? KI SZÓ? (SZÓ "PÉTER JEL 38 "PÁL) IGAZ UN UTOLSÓNÉLKÜLI; UN --- függvény 1 bemenő adattal UTOLSÓNÉLKÜLI akármi ahol akármi egy tetszőleges nem üres szó, lista vagy képsor Ha a bemenő adat szó, akkor az
UTOLSÓNÉLKÜLI eredménye az eredeti szóból az utolsó karakterének elhagyásával keletkező szó. Ha bemenetként lista szerepel, akkor az UTOLSÓNÉLKÜLI egy olyan listát ad vissza, ami az eredeti lista elemeit tartalmazza, kivéve ennek utolsó elemét. Ha a paraméter képsor, akkor az UTOLSÓNÉLKÜLI eredménye egy olyan képsor lesz, mely az eredeti fázisaiból áll, kivéve ennek legutolsó fázisát. ? KIÍR UTOLSÓNÉLKÜLI [ [1 I] [2 II] [3 III] ] [1 I] [2 II] ? KI UN UTOLSÓ UTOLSÓ UN [ [A 56] [B 78] [C 91] ] 7 28 UTOLSÓ UTOLSÓ --- függvény 1 bemenő adattal UTOLSÓ akármi ahol akármi tetszőleges nem üres szó, lista vagy képsor Ha a bemenet szó, akkor az UTOLSÓ egy olyan szót ad vissza, mely az eredetinek csupán az utolsó karakterét tartalmazza. Ha a bemenő adat lista, akkor az UTOLSÓ eredménye ennek utolsó eleme Ha a bemenő paraméter képsor, akkor az UTOLSÓ eredményeként az eredeti képsornak csak az utolsó fázisát tartalmazó
képsort kapunk ? KI UTOLSÓ [ [A 56] [B 78] [C 91] ] [C 91] ? KI UTOLSÓ UTOLSÓ [PÉTER ÉS PÁL] L UTOLSÓNAK UTOLSÓNAK --- függvény 2 bemenő adattal UTOLSÓNAK betesz UTOLSÓNAK akármi lista UTOLSÓNAK képsor1 képsor2 UTOLSÓNAK szó1 szó2 Ha a második paraméter lista, akkor az UTOLSÓNAK eredménye egy olyan módosított lista, melynek UTOLSÓ eleme akármi, és UTOLSÓNÉLKÜLI elemei a bemenő lista elelmeivel egyeznek meg. Ha mindkét bemenet képsor, akkor az UTOLSÓNAK eredményeként egy olyan képsort kapunk, mely a képsor2 és a képsor1 fázisainak összefűzésével keletkezik. Az UTOLSÓNAK képsor1 képsor2 és a KÉPSOR képsor2 képsor1 parancsok azonos hatásúak. (Figyeljünk a bemenő adatok sorrendjére!) Ha a második bemenet szó, akkor az UTOLSÓNAK egy módosított szót ad vissza, mely a szó2 és szó1 összefűzésével keletkezik. Az UTOLSÓNAK szó1 szó2 és a SZÓ szó2 szó1 parancsok azonos hatásúak. (Legyünk óvatosak a bemenő adatok
sorrendjével!) ? KI UTOLSÓNAK 5 [1 2 3 4] [1 2 3 4 5] ? KI UTOLSÓNAK "A [ ] [A] ? KI UTOLSÓNAK [X Y] [Z W] [Z W [X Y] ] ? KI UTOLSÓNAK "GÖMB "LÉG LÉGGÖMB Legyen az AUTÓ egy 4 fázisból álló képsor tartalmú változó. Ekkor: ? KI UTOLSÓNAK :AUTÓ LISTA EN EN :AUTÓ EN :AUTÓ [ {képsor2} {képsor3} {képsor4} ] 29 UTOLSÓNÉLKÜLI; UN ÜRES? ÜRES? --- függvény 1 bemenő adattal ÜRES? akármi Eredménye IGAZ, ha akármi üres szó, üres lista vagy üres képsor. Minden más esetben a kimenet HAMIS. ? KI ÜRES? [ ] IGAZ ? KI ÜRES? EN UN "FIÚ HAMIS Jegyezzük meg, hogy az üres szó, az üres lista és az üres képsor páronként különböző objektumok: ? KI EGYENLŐ? EN "A EN [A] HAMIS ? KI EN BETÖLTKÉPSOR "AUTO [1 1] {képsor0} ? KI EGYENLŐ? EN "C EN BETÖLTKÉPSOR "AUTO [1 1] HAMIS 30 Rekordokra vonatkozó eljárások ÁTÍR ÁTÍR --- utasítás 1 bemenő adattal ÁTÍR memóriaobjektum ÁTÍR [
memóriaobjektum ] ahol a memóriaobjektum vagy egy új, vagy egy már definiált objektum neve Megnyitja és aktívvá teszi a Memóriaobjektum Szerkesztőt vagy a Memóriaobjektum Képsorszerkesztőt (a létrehozni, illetve javítani kívánt objektum fajtájától függően ha az eljárás, szó vagy lista értékű változó, mezőkkel rendelkező szó, vagy új név, akkor a szöveges Szerkesztőt indítja el, ha pedig képsor értékű változó, akkor a Képsorszerkesztő indul el). Ha a bemenet új név, akkor a Memóriában új objektum jön létre. A Logo alapszavai és a különleges jelentéssel bíró szavak nem szerkeszthetők ezzel a paranccsal. Ugyanez igaz minden rejtett memóriaobjektumra, melyet az ELFED utasítással tettünk fedetté, ha éppen nem tettük ideiglenesen láthatóvá a FED! eljárással Ha valamely változó értéke olyan lista, mely üres szót tartalmaz elemként (vagy egy elemének elemeként . stb), akkor a változó nem szerkeszthető
anélkül, hogy értéke megsérülne, ugyanis az üres szavakat a szerkesztő kitörli Ha a változó értéke olyan lista, mely képsort tartalmaz, akkor ennek egésze szintén nem szerkeszthető. Az ÁTÍR utasítás aktiválható egy saját eljárással is. Ebben az esetben a végrehajtási folyamat leáll és csak azután folytatódik, miután a Szerkesztő ablakot becsuktuk Más lehetőségek: ha az adott objektum még nem létezik, akkor a Memóriaablakban létrehozhatjuk az Új eljárás, Új változó vagy Új rekord utasítások egyikével ha ez az objektum már létezik, akkor a Memóriaablakban szerkeszthetjük. ELFED ELFED --- utasítás 1 bemenő adattal ELFED memóriaobjektum ELFED memóriaobjektumok listája Hogyan és miért rejtsünk el memóriaobjektumokat. Kötetek használata. Láthatatlanná teszi a paraméterként megadott, felhasználó által definiált memóriaobjektumokat, vagyis ezután ezek fedettek lesznek. A fedett objektumok megjelenítése és
feldolgozása eltér a Logoban szokásos módtól Erről a témáról olvasható bővebb információ a következő cím alatt: Hogyan kezeli a Logo a fedett objektumokat Az összes saját objektum elrejtésére szolgál az ELFEDMIND utasítás. Ahhoz, hogy az elfedett objektumok listáját megtudjuk, használjuk a FEDETT függvényt. Az objektumok elrejtettségének megszüntetését a FELFED utasítással érhetjük el Az összes fedett objektum ideiglenes láthatóvá tétele a FED! "HAMIS paranccsal lehetséges. A SAJÁTNEVEK, NEVEK és REKORDNEVEK listákat gyakran használjuk az ELFED utasítás bemenő adataként. Az adott időpontban már fedett objektumok ezekben a listákban már nem szerepelnek csak akkor, ha ezek éppen ideiglenesen láthatók (gondoljunk a FED! "HAMIS utasításra, illetve a Memóriaablak Elemek menüjének Elfedett is látszik menüpontjára). SAJÁTNEVEK, NEVEK és REKORDNEVEK listák. 31 Más lehetőség: az Elfed almenüpont a
Memóriaablak Elemek menüjében. ELFEDMIND ELFEDMIND --- bemenő adat nélküli utasítás ELFEDMIND Hogyan és miért rejtsünk el memóriaobjektumokat. Kötetek használata. A felhasználó által definiált összes memóriaobjektumot láthatatlanná teszi, vagyis ezek fedettek lesznek. A fedett objektumok megjelenítése és feldolgozása eltér a Logoban szokásos módtól. Erről a témáról olvasható bővebb információ a következő cím alatt: Hogyan kezeli a Logo a fedett objektumokat Ahhoz, hogy csak néhány adott objektumot tegyünk rejtetté, használjuk az ELFED utasítást. Az összes jelenleg fedett objektum nevét a FEDETT függvény eredménylistája tartalmazza. Adott objektumok visszaállítása a FELFED utasítással lehetséges Az aktuálisan fedett objektumok nem szerepelnek a SAJÁTNEVEK, NEVEK és REKORDNEVEK listáiban, hacsak ideiglenesen láthatóvá nem tettük őket a FED! "HAMIS utasítással, vagy a Memóriaablak Elemek menüjének Elfedett is
látszik almenüjével. Más lehetőség: az Elfed almenüpont a Memóriaablak Elemek menüjében. FED! FED! --- utasítás 1 bemenő adattal FED! logikai Hogyan és miért rejtsünk el memóriaobjektumokat. Kötetek használata. Ha pillanatnyilag vannak fedett objektumaink, akkor a FED! "HAMIS utasítással az összes ilyet ideiglenesen láthatóvá tehetjük. Ekkor a SAJÁTNEVEK, a NEVEK és a REKORDNEVEK eredménylistái ezeket is tartalmazni fogják, láthatóak lesznek a Memóriaablakban, kiírja őket a KIÍRTARTALOM vagy a KIÍRSAJÁTSZAVAK utasítás, szerkeszthetők lesznek az ÁTÍR utasítással stb. Azonban ezeket az objektumokat még mindig rejtett objektumként kezeli a Logo, és a FEDETT eredménylistájának elemei maradnak. Hogyan kezeli a Logo a fedett objektumokat A FED! "IGAZ utasítás ezeket az ideiglenesen láthatóvá tett fedett objektumokat ismét rejtetté teszi. Más lehetőség: a Memóriaablak Elemek menüjének Elfedett is látszik utasítása
FEDETT FEDETT --- bemenő adat nélküli függvény FEDETT Hogyan és miért rejtsünk el memóriaobjektumokat. Kötetek használata. Eredménye az összes fedett objektumot tartalmazó lista. Hasonlóan a SAJÁTNEVEK, NEVEK és REKORDNEVEK listáinak jelöléséhez, a FEDETT listájának elemeiről a következők mondhatók el: a kettősponttal (:) kezdődőek 32 jelölik a változókat, az idézőjellel (") kezdődőek meghatározott tulajdonsággal rendelkező szavak, és amelyek nem kezdődnek különleges karakterrel, azok a saját eljárások jelölésére szolgálnak. SAJÁTNEVEK, NEVEK és REKORDNEVEK listák. ? ELFED (M [TUL1 TUL2] [:VÁLT1 :VÁLT2 :VÁLT3] ["ELJ1 "ELJ2]) ; 2 tulajdonság, 3 változó és 2 eljárás ? KI FEDETT [TUL1 TUL2 :VÁLT1 :VÁLT2 :VÁLT3 "ELJ1 "ELJ2] Az összes saját objektum elrejtésére szolgál az ELFEDMIND utasítás. Ha csak néhány meghatározott objektumot szeretnénk elfedni, akkor az ELFED utasítást
használjuk. A FELFED parancs újra láthatóvá teszi az elrejtett objektumokat. Ahhoz, hogy minden fedett objektum ideiglenesen látható legyen, használjuk a FED! "HAMIS utasítássort Más lehetőség: a Memóriaablak Elemek menüjének Elfedett is látszik almenüpontja láthatóvá teszi a pillanatnyilag fedett objektumok nevét is. FELFED FELFED --- utasítás 1 bemenő adattal FELFED memóriaobjektum FELFED memóriaobjektumok listája Hogyan és miért rejtsünk el memóriaobjektumokat. Kötetek használata. Véglegesen megszünteti az adott saját objektum vagy saját objektumok fedett tulajdonságát (eltérően a FED! "HAMIS utasítástól, mely a fedett objektumokat csak ideiglenesen teszi láthatóvá). A fedett objektumok listáját a FEDETT függvény eredményeként kapjuk meg. Az öszszes rejtett objektumot egyetlen lépésben láthatóvá tehetjük a FELFED FEDETT utasítássor begépelésével ? KI FEDETT [A B :VÁLT22 "VALAKI] ? FELFED [A :VÁLT22] ?
KI FEDETT [B "VALAKI] Más lehetőség: a Memóriaablak Elemek menüjének Elfedett is látszik utasítása. MEZŐ MEZŐ --- függvény 2 bemenő adattal a mező értékei MEZŐ szó1 szó2 33 Megkeresi azokat a mezőket, melyeket a szó1-re definiáltunk, és eredményül a szó2 által meghatározott mező értékét adja. Ha nem definiáltunk szó2 elnevezésű mezőt a MEZŐ! vagy a MEZŐK! utasítással a szó1-hez, akkor az eredmény üres lista. ? MEZŐ! "APA "NÉMETÜL "VATER ? MEZŐ! "APA "ANGOLUL "FATHER ? MEZŐ! "ANYA "NÉMETÜL "MUTTER ? MEZŐ! "ANYA "ANGOLUL "MOTHER ? KI MEZŐ "ANYA "ANGOLUL MOTHER ? KI MEZŐK "APA ; az összes mezőértéket megadja [NÉMETÜL VATER ANGOLUL FATHER] ? KI MEZŐ "ANYA "OROSZUL [] Más lehetőségek: a Memóriaablakban az Objektumlista az összes definiált rekordot és ezek mezőit tartalmazza. Ezeket a szavakat a és a jelölések teszik
felismerhetővé MEZŐ! MEZŐ! --- utasítás 3 bemenő adattal új mező MEZŐ! szó1 szó2 akármi Ez az utasítás a szó1-hez kapcsol egy szó2 nevű mezőt, melynek értéke a harmadik bemenetként megadott akármi lesz. Ha a szó1-nek már van adott nevű mezője, akkor ennek régi értékét kicseréli az új értékre ? MEZŐ! "APA "NÉMETÜL "VATER ? MEZŐ! "APA "ANGOLUL "FATHER ? MEZŐ! "ANYA "NÉMETÜL "MUTTER ? MEZŐ! "ANYA "ANGOLUL "MOTHER ? KI MEZŐK "APA [ANGOLUL FATHER NÉMETÜL VATER] ? KI MEZŐ "ANYA "ANGOLUL MOTHER Egy szó összes mezőjét egyetlen lépésben is megadhatjuk, ha a MEZŐK! utasítást használjuk. Jegyezzük meg, hogy az adott szó nevű rekord, teljes mértékben különböző objektum a vele azonos nevű változótól: ? NÉV "APA 1000000 ? KI :APA 1000000 34 Más lehetőség: a Memóriaablak Objektumlistájában látható a mezőket tartalmazó szavak listája.
Új mezőket definiálhatunk itt, illetve már meglévőket módosíthatunk vagy törölhetünk A mezőkkel rendelkező szavakat a következő ikonok jelölik: vagy MEZŐK MEZŐK --- függvény 1 bemenő adattal mezőlista MEZŐK szó Eredménye az adott szóval kapcsolatban definiált mezők listája a következő formában: [név1 érték1 név2 érték2 . ] A lista az összes mezőt tartalmazza, melyet a szóhoz kapcsoltunk a MEZŐ! vagy a MEZŐK! utasítással (és eddig nem töröltünk a TÖRÖLMEZŐ eljárással). ? MEZŐ "APA "NÉMETÜL "VATER ? MEZŐ "APA "ANGOLUL "FATHER ? MEZŐ "ANYA "NÉMETÜL "MUTTER ? MEZŐ "ANYA "ANGOLUL "MOTHER ? KI MEZŐK "APA [ANGOLUL FATHER NÉMETÜL VATER] ? KI MEZŐK "MOTHER [] Más lehetőség: a Memóriaablak Objektumlistája az összes szót tartalmazza a hozzájuk tartozó mezőkkel együtt. Új mezőket is definiálhatunk itt, illetve már meglévőket módosíthatunk vagy
törölhetünk. A mezőkkel rendelkező szavakat a következő ikonok valamelyike jelöli: vagy MEZŐK! MEZŐK! --- utasítás 2 bemenő adattal új mezők MEZŐK! szó rekordmezők listája Az adott szóhoz (a rekord neve) egyetlen lépésben több mezőt definiál, melyeket a rekordmezők listájában adunk meg. Az utasítás helyettesíthető a MEZŐ! utasítások megfelelő sorozatával ? MEZŐK! "APA [ANGOLUL FATHER, NÉMETÜL VATER] ? KI MEZŐK "APA ; a teljes rekordmező-listát megtalálja [ANGOLUL FATHER, NÉMETÜL VATER] ? MEZŐK! "ANYA [ANGOLUL MOTHER, NÉMETÜL MUTTER] ? KI REKORDNEVEK ["ANYA "APA] SAJÁT NEVEK, NEVEK és REKORDNEVEK listák. 35 Más lehetőség: a Memóriaablak Objektumlistájában olvasható az összes, mezőket tartalmazó szó neve. Új mezőket definiálhatunk itt, és már meglévőket módosíthatunk, illetve törölhetünk. Ezeket a szavakat a következő ikonok jelölik: vagy . REKORDNEVEK REKORDNEVEK --- bemenő adat
nélküli függvény a rekordok REKORDNEVEK Eredménye a mezőket tartalmazó szavak listája. Az ELFED utasítással elrejtett szavak neveit csak abban az esetben tartalmazza a fenti lista, ha ideiglenesen láthatóvá tettük őket a FED! utasítással. ? MEZŐ! "APA "ANGOLUL "FATHER ? MEZŐ! "APA "NÉMETÜL "VATER ? MEZŐ! "ANYA "ANGOLUL "MOTHER ? MEZŐ! "ANYA "NÉMETÜL "MUTTER ? KI MEZŐK "APA ; az összes mezőjét megtalálja [ANGOLUL FATHER NÉMETÜL VATER] ? KI REKORDNEVEK ["ANYA "APA] SAJÁTNEVEK, NEVEK és REKORDNEVEK listák. Más lehetőség: a Memóriaablak Objektumlistájában olvasható az összes, mezőket tartalmazó szó. Új mezőket definiálhatunk itt, illetve már meglévőket módosíthatunk vagy törölhetünk. Ezeket a szavakat a következő ikonok jelölik: vagy . REKORDOK REKORDOK --- bemenő adat nélküli utasítás rekordok kiírása REKORDOK Kiírja az összes szót, melyhez eddig
a MEZŐ! vagy a MEZŐK! utasítással mezőket definiáltunk (és még nem töröltük a TÖRÖLMEZŐ paranccsal). Az ELFED utasítással fedetté tett szavakat (és mezőiket) nem írja ki A REKORDOK és a KIÍRTARTALOM REKORDNEVEK utasítások azonosak. Ne keverjük össze a REKORDOK és a MEZŐK utasításokat! ? REKORDOK ; semmit nem ír ki, mert eddig egyetlen ; mezőt sem definiáltunk ? MEZŐ! "APA "NÉMETÜL "VATER ? MEZŐ! "APA "ANGOLUL "FATHER ? MEZŐ! "ANYA "NÉMETÜL "MUTTER ? MEZŐ! "ANYA "ANGOLUL "MOTHER ? KI MEZŐK "APA [ANGOLUL FATHER NÉMETÜL VATER] 36 ? REKORDOK APA ANGOLUL értéke FATHER APA NÉMETÜL értéke VATER ANYA ANGOLUL értéke MOTHER ANYA NÉMETÜL értéke MUTTER Más lehetőség: a Memóriaablak Objektumlistájában látható a mezőket tartalmazó szavak listája. Új mezőket definiálhatunk itt, illetve már meglévőket módosíthatunk vagy törölhetünk A mezőkkel rendelkező
szavakat a következő ikonok jelölik: vagy TÖRÖL TÖRÖL --- utasítás 1 vagy N bemenő adattal TÖRÖL bemenet1 (TÖRÖL bemenet1 bemenet2 . ) ahol minden egyes bemenet vagy egy memóriaobjektum, vagy memóriaobjektumok listája Törli a bemeneteként felsorolt összes memóriaobjektumot. A SAJÁTNEVEK, NEVEK, és REKORDNEVEK listáit gyakran használjuk a TÖRÖL utasítás paramétereként. Vigyázzunk, hogy a pillanatnyilag fedett objektumok nem elemei ezen listáknak, azonban ha határozottan megnevezzük őket, akkor ezek is törölhetők SAJÁTNEVEK, NEVEK és REKORDNEVEK listák. ? TÖRÖL NEVEK ; az összes változót törli ? (TÖRÖL [F G] [:V1 V2] REKORDNEVEK) ; törli az F és G eljárásokat, a V1 és V2 ; változókat, és az összes ; mezőket tartalmazó szót ? (TÖRÖL "F ":Vált ""P) ; törli az F eljárást, a :Vált változót, ; és a "P szó összes mezőjét Ha a TÖRÖL eljárás egyik bemenete nem saját objektum neve, akkor
HIBA következik be csak létező objektumokat törölhetünk. Más lehetőségek: használjuk a Memóriaablak Töröl utasítását az összes kijelölt objektum törlésére TÖRÖLMEZŐ TÖRÖLMEZŐ --- utasítás 2 bemenő adattal mező törlése TÖRÖLMEZŐ szó1 szó2 Törli a szó1 nevű rekord szó2 nevű mezőjét ? MEZŐ! "APA "ANGOLUL "FATHER ? MEZŐ! "APA "NÉMETÜL "VATER ? KI MEZŐK "APA ; a szó összes mezőjét megtalálja 37 [ANGOLUL FATHER NÉMETÜL VATER] ? TÖRÖLMEZŐ "APA "ANGOLUL ? KI MEZŐK "APA [NÉMETÜL VATER] A szó nevű rekord összes mezője egyetlen lépésben is törölhető, a TÖRÖL ""szó utasítást vagy a TÖRÖL ["szó ] utasítást használjuk lásd a következő megjegyzést: SAJÁTNEVEK, NEVEK és REKORDNEVEK listák. Más lehetőségek: a Memóriaablak Objektumlistájában az összes rekord minden mezője látható. Itt új mezőket is definiálhatunk, illetve már
meglévőket módosíthatunk vagy törölhetünk A rekordokat a vagy a ikonok jelölik TÖRÖLMUNKA TÖRÖLMUNKA --- bemenő adat nélküli utasítás mindent töröl TÖRÖLMUNKA Törli az összes memóriaobjektumot és az összes teknőcöt, lefuttatja az új SLOGO.INI fájlt ha ez létezik a Logo alapkönyvtárában. Letörli a rajzlapot is, és alapállapotba hozza az egész Logót (ennek ablakát is, a LOGOABLAK! [ ] utasítás végrehajtásával), pontosan úgy, mintha kiléptünk volna a Logóból, és újra elindítottuk volna. Miután minden objektumot letörölt, minden beállítást az eredeti értékére változtat: egyetlen teknőc lesz, melynek neve 0, alapkoordinátái [0 0], iránya észak, LÁTHATATLAN, és tolla lent van. A Fő-ablak OSZTOTTABLAK módban lesz, az íróablakban 6 sor látszik, és a Memóriában egyetlen saját objektum sem található (azaz a TÖRÖLMUNKA még az ELFED utasítással rejtetté tett objektumokat is törli). 38 Logikai függvények
és igazságértékek ÉS ÉS --- függvény 2 vagy N bemenő adattal ÉS logikai logikai (ÉS logikai . ) Eredménye IGAZ, ha mindkét bemenő adat logikai értéke IGAZ, minden más esetben HAMIS. Ha kettőnél több (vagy kevesebb) paramétere van, akkor az eredmény csak abban az esetben IGAZ, ha az összes bemenet értéke IGAZ ? KI ÉS SZÁM? ELSŐ [2 3] SZÁM? UTOLSÓ [2 3] IGAZ ? HA ÉS (ELEMSZÁM [1 2 3] = 3) ELEME? 2 123 [KIÍR "IGEN] IGEN ? KI (ÉS SZÁM? 5 SZÁM? 6 SZÁM? "ABCD) HAMIS HAMIS HAMIS --- különleges jelentéssel bíró szó A hamis, illetve nem logikai értéket ábrázolja. Feltételes eljárások (pl HA, TESZT ), illetve logikai függvények (ÉS, VAGY és NEM ) bemeneteként használatos. ? KI ÉS "IGAZ "HAMIS HAMIS ? KI 6 = 2 + 3 HAMIS IGAZ IGAZ --- különleges jelentéssel bíró szó Az igaz, illetve igen logikai értéket ábrázolja. Feltételes eljárások, mint a HA és a TESZT, bemeneteként használatos, illetve a logikai
függvények, ÉS, VAGY, és NEM esetében. ? KI ÉS "IGAZ "IGAZ IGAZ ? KI 6 = 2 + 3 HAMIS NEM NEM --- függvény 1 bemenő adattal NEM logikai Logikai függvény. Tagadás Eredménye IGAZ, ha a bemenet HAMIS, illetve HAMIS, ha a bemenő érték IGAZ. ? KI NEM "IGAZ HAMIS ? KI NEM SZÁM? ELSŐ "J55 IGAZ 39 ? KI NEM 5 HIBA: 5 nem IGAZ vagy HAMIS VAGY VAGY --- függvény 2 vagy N bemenő adattal VAGY logikai1 logikai2 (VAGY logikai . ) Logikai függvény. Eredménye HAMIS, ha az összes bemenetének értéke HAMIS Különben a visszaadott érték IGAZ Ha kettőnél több bemenő paraméter van, akkor az egész utasítást zárójelek közé kell foglalni. ? KI VAGY "HAMIS "IGAZ IGAZ ? KI VAGY SZÁM? ELSŐ [[2 3]] SZÁM? UTOLSÓ [[2 3]] HAMIS ? HA VAGY EGYENLŐ? 2 3 EGYENLŐ? 4 5 [KIÍR "JÓ] [KIÍR [NEM JÓ]] NEM JÓ 40 Változók létrehozása és felhasználása ÁTÍR ÁTÍR --- utasítás 1 bemenő adattal ÁTÍR memóriaobjektum ÁTÍR [
memóriaobjektum ] ahol a memóriaobjektum vagy egy új, vagy egy már definiált objektum neve Megnyitja és aktívvá teszi a Memóriaobjektum Szerkesztőt vagy a Memóriaobjektum Képsorszerkesztőt (a létrehozni, illetve javítani kívánt objektum fajtájától függően ha az eljárás, szó vagy lista értékű változó, mezőkkel rendelkező szó, vagy új név, akkor a szöveges Szerkesztőt indítja el, ha pedig képsor értékű változó, akkor a Képsorszerkesztő indul el). Ha a bemenet új név, akkor a Memóriában új objektum jön létre. A Logo alapszavai és a különleges jelentéssel bíró szavak nem szerkeszthetők ezzel a paranccsal. Ugyanez igaz minden rejtett memóriaobjektumra, melyet az ELFED utasítással tettünk fedetté, ha éppen nem tettük ideiglenesen láthatóvá a FED! eljárással Ha valamely változó értéke olyan lista, mely üres szót tartalmaz elemként (vagy egy elemének elemeként . stb), akkor a változó nem szerkeszthető
anélkül, hogy értéke megsérülne, ugyanis az üres szavakat a szerkesztő kitörli Ha a változó értéke olyan lista, mely képsort tartalmaz, akkor ennek egésze szintén nem szerkeszthető. Az ÁTÍR utasítás aktiválható egy saját eljárással is. Ebben az esetben a végrehajtási folyamat leáll és csak azután folytatódik, miután a Szerkesztő ablakot becsuktuk Más lehetőségek: ha az adott objektum még nem létezik, akkor a Memóriaablakban létrehozhatjuk az Új eljárás, Új változó vagy Új rekord utasítások egyikévelha ez az objektum már létezik, akkor a Memóriaablakban szerkeszthetjük. CSÖKKENT CSÖKKENT --- utasítás 1 vagy 2 bemenő adattalcsökkent CSÖKKENT változónév (CSÖKKENT változónév szám ) Ha az utasításnak csak egyetlen paramétere van, akkor a bemenetként kapott változó értékét 1-gyel csökkenti. Egyéb esetben a megfelelő változót a második paraméterként adott szám értékével csökkenti. A változó értéke
csak szám lehet a CSÖKKENT "A és a NÉV "A :A - 1 parancsok hatása megegyezik a (CSÖKKENT "A 5) nem más, mint a NÉV "A :A - 5 ? NÉV "VALAMI 101 ? CSÖKKENT "VALAMI ? KI :VALAMI 100 ? CSÖKKENT :VALAMI HIBA: A(z) 100 változónak nincs értéke 41 ELFED ELFED --- utasítás 1 bemenő adattal ELFED memóriaobjektum ELFED memóriaobjektumok listája Hogyan és miért rejtsünk el memóriaobjektumokat. Kötetek használata. Láthatatlanná teszi a paraméterként megadott, felhasználó által definiált memóriaobjektumokat, vagyis ezután ezek fedettek lesznek. A fedett objektumok megjelenítése és feldolgozása eltér a Logoban szokásos módtól Erről a témáról olvasható bővebb információ a következő cím alatt: Hogyan kezeli a Logo a fedett objektumokat Az összes saját objektum elrejtésére szolgál az ELFEDMIND utasítás. Ahhoz, hogy az elfedett objektumok listáját megtudjuk, használjuk a FEDETT függvényt. Az objektumok
elrejtettségének megszüntetését a FELFED utasítással érhetjük el Az összes fedett objektum ideiglenes láthatóvá tétele a FED! "HAMIS paranccsal lehetséges. A SAJÁTNEVEK, NEVEK és REKORDNEVEK listákat gyakran használjuk az ELFED utasítás bemenő adataként. Az adott időpontban már fedett objektumok ezekben a listákban már nem szerepelnek csak akkor, ha ezek éppen ideiglenesen láthatók (gondoljunk a FED! "HAMIS utasításra, illetve a Memóriaablak Elemek menüjének Elfedett is látszik menüpontjára). SAJÁTNEVEK, NEVEK és REKORDNEVEK listák. Más lehetőség: az Elfed almenüpont a Memóriaablak Elemek menüjében. ELFEDMIND ELFEDMIND --- bemenő adat nélküli utasítás ELFEDMIND Hogyan és miért rejtsünk el memóriaobjektumokat. Kötetek használata. A felhasználó által definiált összes memóriaobjektumot láthatatlanná teszi, vagyis ezek fedettek lesznek. A fedett objektumok megjelenítése és feldolgozása eltér a Logoban
szokásos módtól. Erről a témáról olvasható bővebb információ a következő cím alatt: Hogyan kezeli a Logo a fedett objektumokat Ahhoz, hogy csak néhány adott objektumot tegyünk rejtetté, használjuk az ELFED utasítást. Az összes jelenleg fedett objektum nevét a FEDETT függvény eredménylistája tartalmazza. Adott objektumok visszaállítása a FELFED utasítással lehetséges Az aktuálisan fedett objektumok nem szerepelnek a SAJÁTNEVEK, NEVEK és REKORDNEVEK listáiban, hacsak ideiglenesen láthatóvá nem tettük őket a FED! "HAMIS utasítással, vagy a Memóriaablak Elemek menüjének Elfedett is látszik almenüjével. Más lehetőség: az Elfed almenüpont a Memóriaablak Elemek menüjében. FED! FED! --- utasítás 1 bemenő adattal FED! logikai Hogyan és miért rejtsünk el memóriaobjektumokat. Kötetek használata. 42 Ha pillanatnyilag vannak fedett objektumaink, akkor a FED! "HAMIS utasítással az összes ilyet ideiglenesen
láthatóvá tehetjük. Ekkor a SAJÁTNEVEK, a NEVEK és a REKORDNEVEK eredménylistái ezeket is tartalmazni fogják, láthatóak lesznek a Memóriaablakban, kiírja őket a KIÍRTARTALOM vagy a KIÍRSAJÁTSZAVAK utasítás, szerkeszthetők lesznek az ÁTÍR utasítással stb. Azonban ezeket az objektumokat még mindig rejtett objektumként kezeli a Logo, és a FEDETT eredménylistájának elemei maradnak. Hogyan kezeli a Logo a fedett objektumokat A FED! "IGAZ utasítás ezeket az ideiglenesen láthatóvá tett fedett objektumokat ismét rejtetté teszi. Más lehetőség: a Memóriaablak Elemek menüjének Elfedett is látszik utasítása FEDETT FEDETT --- bemenő adat nélküli függvény FEDETT Hogyan és miért rejtsünk el memóriaobjektumokat. Kötetek használata. Eredménye az összes fedett objektumot tartalmazó lista. Hasonlóan a SAJÁTNEVEK, NEVEK és REKORDNEVEK listáinak jelöléséhez, a FEDETT listájának elemeiről a következők mondhatók el: a
kettősponttal (:) kezdődőek jelölik a változókat, az idézőjellel (") kezdődőek meghatározott tulajdonsággal rendelkező szavak, és amelyek nem kezdődnek különleges karakterrel, azok a saját eljárások jelölésére szolgálnak. SAJÁTNEVEK, NEVEK és REKORDNEVEK listák. ? ELFED (M [TUL1 TUL2] [:VÁLT1 :VÁLT2 :VÁLT3] ["ELJ1 "ELJ2]) ; 2 tulajdonság, 3 változó és 2 eljárás ? KI FEDETT [TUL1 TUL2 :VÁLT1 :VÁLT2 :VÁLT3 "ELJ1 "ELJ2] Az összes saját objektum elrejtésére szolgál az ELFEDMIND utasítás. Ha csak néhány meghatározott objektumot szeretnénk elfedni, akkor az ELFED utasítást használjuk. A FELFED parancs újra láthatóvá teszi az elrejtett objektumokat. Ahhoz, hogy minden fedett objektum ideiglenesen látható legyen, használjuk a FED! "HAMIS utasítássort Más lehetőség: a Memóriaablak Elemek menüjének Elfedett is látszik almenüpontja láthatóvá teszi a pillanatnyilag fedett objektumok nevét is.
FELFED FELFED --- utasítás 1 bemenő adattal FELFED memóriaobjektum FELFED memóriaobjektumok listája Hogyan és miért rejtsünk el memóriaobjektumokat. Kötetek használata. Véglegesen megszünteti az adott saját objektum vagy saját objektumok fedett tulajdonságát (eltérően a FED! "HAMIS utasítástól, mely a fedett objektumokat csak ideiglenesen teszi láthatóvá). 43 A fedett objektumok listáját a FEDETT függvény eredményeként kapjuk meg. Az öszszes rejtett objektumot egyetlen lépésben láthatóvá tehetjük a FELFED FEDETT utasítássor begépelésével. ? KI FEDETT [A B :VÁLT22 "VALAKI] ? FELFED [A :VÁLT22] ? KI FEDETT [B "VALAKI] Más lehetőség: a Memóriaablak Elemek menüjének Elfedett is látszik utasítása. LOKÁLIS LOKÁLIS --- utasítás 1 vagy N bemenő adattal LOKÁLIS szó1 LOKÁLIS szavak listája (LOKÁLIS szó1 . ) Új változót vagy változókat hoz létre az adott nevekkel, melyek lokálisak lesznek arra az
eljárásra nézve, melyben a LOKÁLIS utasítás szerepel. Ha több név, vagy nevek listája szerepel, akkor egyetlen lépésben több lokális változót hozhatunk létre A lokális változók ideiglenesek, csak addig léteznek, amíg aktív az az eljárás, ami létrehozta őket. Lásd még globális és lokális változók A LOKÁLIS utasítás (vagy utasítások) bárhová elhelyezhető az eljáráson belül, mielőtt a megfelelő változónak kezdőértéket adnánk a NÉV vagy a NEVEZ utasításokkal. A LOKÁLIS önmagában nem ad kezdőértéket a változóknak! LOKÁLISNÉV LOKÁLISNÉV --- utasítás 2 vagy N bemenő adattal LOKÁLISNÉV szó1 akármi1 (LOKÁLISNÉV szó1 akármi1 szó2 akármi2 . ) Az utasítás létrehoz egy szó1 nevű változót, illetve a szó1, szó2 . nevű változókat, melyek lokálisak lesznek arra az eljárásra nézve, melyben a LOKÁLISNÉV parancs szerepel. Eltérően a LOKÁLIS eljárástól, a LOKÁLISNÉV rögtön összeköti akármi1,
akármi2 . értékekkel ezeket a lokális változókat. Ezért a LOKÁLISNÉV egyetlen lépésben eredményezi ugyanazt, mint a LOKÁLIS a NÉV utasítással kiegészítve. TANULD PRÓBA (LOKÁLISNÉV "M 1000 "N MONDAT [1 2 3] [4 5 6] ) (KI :M :N) VÉGE ? PRÓBA 1000 [1 2 3 4 5 6] NÉV NÉV --- utasítás 2 bemenő adattal 44 NÉV szó akármi a NÉV szó akármi és a NEVEZ akármi szó utasítások megegyeznek Egy szó nevű változót definiál, melynek értékét a második paraméter határozza meg. A változó értékére a TARTALOM "szó kifejezéssel, vagy röviden a :szó formával hivatkozhatunk. ? NÉV "A [TE ÉS ÉN] ? KI :A [TE ÉS ÉN] ? KIÍR :A TE ÉS ÉN ? KI TARTALOM "A [TE ÉS ÉN] A NÉV utasítás használatával egyaránt létrehozhatunk globális és lokális változókat valamely saját eljárás törzsében. Más lehetőségek: a Memóriaablak Elemek menüjének Új változó. utasítása új változót hoz létre, ha még nem
szerepel azonos néven változó, ha már létezik ezen a néven változó, akkor ennek értékét módosíthatjuk a Memóriaablak Szerkesztő részében. NÉV? NÉV? --- függvény 1 bemenő adattal NÉV? szó Eredményül IGAZ értéket kapunk, ha a szó a következők valamelyike: egy globális változó neve (még ha pillanatnyilag elrejtettük is a változót az ELFED utasítással), vagy tetszőleges aktív eljárás egy lokális változójának a neve, ha ennek a változónak már adtunk kezdőértéket a NÉV vagy a NEVEZ utasítással, valamely aktív eljárás bemenő adatának neve. Különben az eredmény HAMIS. ? NEVEZ [A B C] "BETŰK ? NÉV "SZÁMJEGYEK [0 1 2 3 8] ? KIÍR NÉV? "BETŰK IGAZ ? KIÍR NÉV? "SZÁMOK HAMIS Más lehetőség: ha a szó jelenleg nem rejtett az ELFED utasítás miatt (vagy ha ideiglenesen láthatóvá tettük a FED! utasítással), akkor látható a Memóriaablak memóriaobjektumok listájában. NEVEK NEVEK --- bemenő adat
nélküli függvény NEVEK Eredménye az összes pillanatnyilag létező változó nevét tartalmazó lista. A lista tartalma a következő: 45 az összes globális változó neve, melyet a NÉV vagy NEVEZ eljárással létrehoztunk (és még nem töröltünk). Az ELFED utasítással rejtetté tett változók neveit nem tartalmazza a lista, kivéve, ha ideiglenesen láthatóvá tettük őket a FED! utasítással, az összes lokális változó neve, azaz az összes éppen aktív eljárás bemenő adatainak neve; és az összes lokális változó neve, melyet a LOKÁLIS utasítással létrehoztunk, és a NÉV vagy a NEVEZ eljárással kezdőértékkel is elláttunk. ? NÉV "X 10000 ? KI NEVEK [:X] SAJÁTNEVEK, NEVEK és REKORDNEVEK listák. Más lehetőség: a Memóriaablak bal oldalán láthatjuk a globális változók neveit. Ezeket a neveket a vagy a ikon jelöli. NEVEZ NEVEZ --- utasítás 2 bemenő adattal NEVEZ akármi szó a NEVEZ akármi szó és a NÉV szó akármi
utasítások azonosak Egy szó nevű változót definiál, melynek az első paraméter lesz az értéke. A változó értékére a TARTALOM "szó kifejezéssel, vagy röviden csak a :szó formával hivatkozhatunk. ? NEVEZ [TE ÉS ÉN] "A ? KIÍR :A TE ÉS ÉN ? KI :A [TE ÉS ÉN] ? KI TARTALOM "A [TE ÉS ÉN] A NEVEZ utasítással tetszőleges saját eljárás törzsében globális és lokális változók is létrehozhatók. Más lehetőségek: a Memóriaablak Elemek menüjének Új változó. utasítása új változót hoz létre, ha még nem szerepel azonos néven változó, ha már létezik ezen a néven változó, akkor ennek értékét módosíthatjuk a Memóriaablak Szerkesztő részében. NÖVEL NÖVEL --- utasítás 1 vagy 2 bemenő adattal növel NÖVEL változónév (NÖVEL változónév szám ) Ha az utasításnak egy bemenete van, akkor 1-gyel növeli a bemenetében meghatározott változó értékét. Ha az utasításnak két bemenete van, akkor a változó
értékét az adott számmal növeli. 46 A változó értéke szükségképpen numerikus kell, hogy legyen. a NÖVEL "A és a NÉV "A :A + 1 utasítások azonosak a (NÖVEL "A 5) és a NÉV "A :A + 5 utasítások megegyeznek ? NÉV "VALAMI 99 ? NÖVEL "VALAMI ? KI :VALAMI 100 ? NÖVEL :VALAMI Hiba: A(z) 100 változónak nincs értéke TARTALOM TARTALOM --- függvény 1 bemenő adattal TARTALOM szó ahol a szó egy változó neve Eredménye a szó nevű változóval összekapcsolt érték. Ezt a hozzárendelést a NÉV vagy a NEVEZ utasításokkal valósíthattuk meg. Egy aktív saját eljárás paraméterneveinek megfelelő érték is lehet a függvény eredménye. A TARTALOM egy alapszó, amit kettősponttal helyettesíthetünk, azaz a TARTALOM "A ugyanarra az értékre hivatkozik, mint a :A. ? NÉV "NÉV "OTTÓ ? KI "NÉV NÉV ? KI TARTALOM "NÉV OTTÓ ? KI :NÉV OTTÓ Ha a szó nevű változó egy képsor, akkor a TARTALOM
függvény eredménye a következő megjegyzés lesz: {képsorN }, ahol az N a képsor fázisszáma. Más lehetőség: a Memóriaablakban az összes globális változó neve és értéke megtalálható, ellenőrizhető és módosítható. Ezeket a neveket a következő ikonok jelölik: vagy TÖRÖL TÖRÖL --- utasítás 1 vagy N bemenő adattal TÖRÖL bemenet1 (TÖRÖL bemenet1 bemenet2 . ) ahol minden egyes bemenet vagy egy memóriaobjektum, vagy memóriaobjektumok listája Törli a bemeneteként felsorolt összes memóriaobjektumot. A SAJÁTNEVEK, NEVEK, és REKORDNEVEK listáit gyakran használjuk a TÖRÖL utasítás paramétereként. Vigyázzunk, hogy a pillanatnyilag fedett objektumok nem elemei ezen listáknak, azonban ha határozottan megnevezzük őket, akkor ezek is törölhetők SAJÁTNEVEK, NEVEK és REKORDNEVEK listák. 47 ? TÖRÖL NEVEK ; az összes változót törli ? (TÖRÖL [F G] [:V1 V2] REKORDNEVEK) ; törli az F és G eljárásokat, a V1 és V2 ;
változókat, és az összes ; mezőket tartalmazó szót ? (TÖRÖL "F ":Vált ""P) ; törli az F eljárást, a :Vált változót, ; és a "P szó összes mezőjét Ha a TÖRÖL eljárás egyik bemenete nem saját objektum neve, akkor HIBA következik be csak létező objektumokat törölhetünk. Más lehetőségek: használjuk a Memóriaablak Töröl utasítását az összes kijelölt objektum törlésére TÖRÖLMUNKA TÖRÖLMUNKA --- bemenő adat nélküli utasítás mindent töröl TÖRÖLMUNKA Törli az összes memóriaobjektumot és az összes teknőcöt, lefuttatja az új SLOGO.INI fájlt ha ez létezik a Logo alapkönyvtárában. Letörli a rajzlapot is, és alapállapotba hozza az egész Logót (ennek ablakát is, a LOGOABLAK! [ ] utasítás végrehajtásával), pontosan úgy, mintha kiléptünk volna a Logóból, és újra elindítottuk volna. Miután minden objektumot letörölt, minden beállítást az eredeti értékére változtat: egyetlen
teknőc lesz, melynek neve 0, alapkoordinátái [0 0], iránya észak, LÁTHATATLAN, és tolla lent van. A Fő-ablak OSZTOTTABLAK módban lesz, az íróablakban 6 sor látszik, és a Memóriában egyetlen saját objektum sem található (azaz a TÖRÖLMUNKA még az ELFED utasítással rejtetté tett objektumokat is törli). 48 Vezérlő és feltételes eljárások AMÍG AMÍG --- utasítás 2 bemenő adattal AMÍG [ kifejezés ] utasításlista A Logo elsőként a kifejezést értékeli ki. Ha ennek értéke IGAZ, akkor a Logo az utasításlista összes utasítását végrehajtja, majd újra kiértékeli a kifejezést Ha ennek értéke még mindig IGAZ, akkor a Logo ismét végrehajtja az utasításlista összes utasítását. Ezt a folyamatot ismétli mindaddig, amíg a kifejezés kiértékelése az IGAZ értéket eredményezi. ? FIGYELJ 0 TL ? NÉV "I IRÁNY ? E 10 J 5 ? AMÍG [:I <> IRÁNY] [E 10 J 5] Jegyezzük meg, hogy az utasításlistán belül az ismétlések
aktuális számára a HÁNYADIK függvény alkalmazásával hivatkozhatunk. ÁTDOB ÁTDOB --- utasítás 1 bemenő adattal ÁTDOB szó Leállítja az aktuálisan futó saját eljárást és a felsőbb szintű eljárásokat is, egészen addig, amíg el nem éri a megfelelő ELKAP utasítást, melynek első bemenete pontosan ugyanaz a szó. Próbáljuk az ELKAP és az ÁTDOB utasításokat együtt megérteni. Legyünk óvatosak a használatukkal. ? ELKAP "ITT [KIÍR "A ÁTDOB "ITT KIÍR "B] A ? ; az A szót kiírja, és a lista többi részét nem hajtja végre Ha az ÁTDOB nem talál hozzá tartozó ELKAP utasítást, akkor a vezérlés a legfelső szintre adódik vissza, vagyis a párbeszédes szintre. Ugyanez történik akkor is, amikor az ÁTDOB "FELSŐSZINT utasítást használjuk mindenféle ELKAP eljárás nélkül. Lásd még a FELSŐSZINT speciális szót is. Mivel az ELKAP és ÁTDOB utasítások együttes alkalmazásával nemcsak azt az eljárást
állíthatjuk le, melyben az ÁTDOB szerepel, de az ezt meghívó eljárást is, az eljárást meghívó eljárást meghívó eljárást is stb., azaz az aktív eljárások láncolatának egy részét, esetleg egészét, ezeket együttesen szuper-STOP-nak-hívják. (Hasonlítsuk össze a VISSZATÉR utasítással, mely csak saját eljárását állítja le.) CIKLUS CIKLUS --- utasítás 3 bemenő adattal CIKLUS szó [SZ1 SZ2 ] utasításlista CIKLUS szó [SZ1 SZ2 SZ3 ] utasításlista ahol az SZ1, SZ2, SZ3 számok, SZ3 a ciklus lépésköze 49 Először feltételezzük, hogy SZ1 < SZ2. A szó változó kezdetben SZ1-gyel egyenlő, és az utasításlistát végrehajtja a rendszer. Ekkor a szó változót 1-gyel növeljük (ha nem szerepel SZ3 bemenet, különben SZ3-mal nő az értéke) és az utasításlista újra végrehajtódik. Ennek a folyamatnak akkor lesz vége, ha a szó változó értéke nagyobb lesz, mint az SZ2. ? CIKLUS "J [1 3] [KI :J] 1 2 3 ? CIKLUS "J [1
3 2] [KI :J] 1 3 Ha SZ3 a lépésköz nincs megadva, és SZ1 > SZ2, akkor a szó változó minden egyes alkalommal 1-gyel csökken. Egyébként SZ3 adódik mindig a szó változó értékéhez: ha az SZ3 negatív, akkor a szó változó értéke minden alkalommal csökkenni fog: ? CIKLUS "JÁNOS [25 10 -7] [KI :JÁNOS] 25 18 11 Az utasításlistán belül a HÁNYADIK függvényt használhatjuk az ismétlések aktuális számára való hivatkozásra. Jegyezzük meg, hogy ha SZ3, a lépésköz 0, akkor az utasításlistát csak egyszer hajtja végre a rendszer Ez akkor is igaz, ha SZ1 = SZ2 CIKLUSCSAK CIKLUSCSAK --- utasítás 3 bemenő adattal CIKLUSCSAK szó akármi utasításlista Az akármi első eleme (ami szó esetén egy karakter; lista esetén egy elem; képsor esetén egy fázis) lesz a szó változó kezdeti értéke, és az utasításlistát végrehajtja a rendszer. Ezután akármi második eleme lesz a szó változó értéke, s az utasításlista ismét
végrehajtódi . stb akármi minden egyes elemére Az utasításlistát pontosan annyiszor hajtja végre, amennyi az akármi elemszáma. Azaz, ha az akármi üres, akkor az utasításlista egyáltalán nem hajtódik végre. Jegyezzük meg, hogy az utasításlistán belül a HÁNYADIK függvényt használhatjuk, ha az ismétlések aktuális számára akarunk hivatkozni. ? CIKLUSCSAK "W [KROKODIL ZSIRÁF MAJOM] ~ [(KIÍR SZÓ "A(Z) HÁNYADIK ". "SZÓBAN ELEMSZÁM ~ :W "BETŰ "VAN)] A(Z) 1. SZÓBAN 8 BETŰ VAN A(Z) 2. SZÓBAN 6 BETŰ VAN A(Z) 3. SZÓBAN 5 BETŰ VAN 50 ? ÚJTEKNŐC 1 [20 100 90] ? ÚJTEKNŐC 2 [-50 -50 180] ? CIKLUSCSAK "TEKNŐC MIND [KÉREM :TEKNŐC [E 20]] ELÁGAZÁS ELÁGAZÁS --- utasítás 2 bemenő adattal függvény 2 bemenő adattal ELÁGAZÁS akármi [ág1 ág2 . ] ahol minden egyes ág a következők valamelyike: kételemű Logo-szerkezet: feltétel utasításlista (jegyezzük meg, hogy ezt a két struktúrát az ágon
belül nem foglaljuk zárójelbe [ . ] ), kételemű Logo-szerkezet: feltétel [kifejezés] (figyeljünk arra, hogy ez a két stuktúra nincs zárójelbe foglalva [ . ] ), egyelemű Logo-szerkezet utasításlista, ha ez az ELÁGAZÁS eljárás utolsó ága. Ez az ág az úgynevezett „KÜLÖNBEN ág szerepét tölti be, egyelemű Logo-szerkezet [kifejezés], ha ez az ELÁGAZÁS eljárás utolsó ága. Ez az ág az úgynevezett „KÜLÖNBEN ág szerepét tölti be, ha akármi, az ELÁGAZÁS első paramétere szó, akkor minden egyes ág lehet egy következő formátumú sorozat: szó1 szó2 . szóN utasításlista vagy szó1 szó2 . szóN [kifejezés] és ekkor a feltétel akármi Logo-érték. Az eljárás első lépésként meghatározza az első paraméterként adott akármi értékét, aztán összehasonlítja a kapott értéket minden egyes ág feltételével (vagy feltételeivel), amíg az összehasonlítás eredményeként IGAZ-at nem kap. Vigyázzunk, a feltételt
meghatározó adatokat nem értékeli ki! A fenti összehasonlításhoz a Logo a szokásos EGYENLŐ? függvényt használja. Majd amikor a megfelelő szelektort megtalálta, az adott ágban található utasításlista végrehajtását, illetve [kifejezés] kiértékelését kezdi meg. Ezután már nem végez több összehasonlítást, és az ELÁGAZÁS befejezte működését. Ha a megfelelő ág utasításlistát tartalmaz, akkor az ELÁGAZÁS is utasításként viselkedik. Ha ez az ág [kifejezést] tartalmaz, akkor az egész ELÁGAZÁS függvénynek tekinthető, és értékét a [kifejezés] kiértékelésével kapjuk meg Ha akármi, az első paraméter szó, és egy ág összetett szelektort, vagyis szó1 szó2 . szóN sorozatot tartalmaz feltételként, ez az ág akkor lesz megfelelő, ha a sorozat valamely szava EGYENLŐ? akármivel. Ha egyetlen összehasonlítás sem eredményez igaz értéket, és a szerkezetben szerepel „KÜLÖNBEN ág, akkor az ehhez tartozó
utasításlistát, illetve [kifejezést] dolgozza fel a program. Ha nincs „KÜLÖNBEN ág a struktúrában, akkor: ha az ELÁGAZÁS utasításként szerepel, leáll és semmi nem történik, ha az ELÁGAZÁS függvényként szerepel, hiba következik be. ? NÉV "K 100 ? ELÁGAZÁS :K * 3 [200 [KIÍR "NEM] 300 [KIÍR "IGEN] 400 [KIÍR "NEM]] IGEN ? ELÁGAZÁS :K [10 20 30 [NÉV "K :K * 3] [NÉV "K :K/10]] ? KI :K 10 ? NÉV "K ELÁGAZÁS MARADÉK :K 2 [0 [:K * 2 + 1] 1 [:K 2]] ? KI :K 51 21 ELFELEJT ELFELEJT --- utasítás 1 vagy N bemenő adattal ELFELEJT akármi (ELFELEJT akármi1 akármi2 . ) Ez az eljárás a kapott bemenetet (vagy bemeneteket) mellőzi, vagyis semmit sem csinál velük. Az ELFELEJT utasítás abban az esetben használatos, amikor egy függvénytől olyan értéket kapunk, melyre nincs szükségünk. Például, használhatjuk egyszerű „léptető eszközként egy számítási folyamat alatt, ilyenkor a kalkuláció
bizonyos pontokon billentyűlenyomásig várakozik Azonban a lenyomott billentyű értéke itt nem fontos, így egyszerűen mellőzzük: TANULD LASSÚ.SOKSZÖG :N :O :SZ HA :N = 0 [VISSZATÉR] E :O J :SZ ELFELEJT OLVASKÓD LASSÚ.SOKSZÖG :N - 1 :O :SZ VÉGE ? LÁTHATÓ LASSÚ.SOKSZÖG 12 180 150 ELKAP ELKAP --- utasítás 2 bemenő adattal ELKAP szó utasításlista Balról jobbra haladva kiértékeli a bemenetként kapott Logo utasításlistát. Amikor ebben az ÁTDOB utasításhoz jut, mely az első paraméterként adott szóval együtt szerepel, akkor a vezérlés újra az ELKAP eljáráshoz kerül, és az ezt követő kifejezések kiértékelése történik meg. ? ELKAP "HELLO [KIÍR "A ÁTDOB "HELLO KIÍR "B] KI [ITT VAGYOK] A ITT VAGYOK ? ; az A betűt kiírta, de a lista további elemeit nem vette figyelembe ? ISMÉTLÉS 3 [ELKAP "ITT [KIÍR "A ÁTDOB "ITT KIÍR "B ] ] A A A ; a B betűt soha nem írja ki Az ELKAP eljárás első
paraméterét címke fajtájúnak nevezzük, melyet maga az eljárás „deklarál. Ha a lista kiértékelése során az ÁTDOB szó utasítás végrehajtásához ér a program, akkor a pillanatnyilag futó eljárás leáll, és a magasabb szintű eljárásokat is leállítja, egészen addig, amíg ehhez a címkéhez el nem jut. Ezzel az ÁTDOB és az ELKAP eljáráspár nem lokális kiugrást határoz meg, ellentétben a VISSZATÉR és az EREDMÉNY utasításpárral, melyekkel lokális kiugrást definiálhatunk a saját eljárásokban. 52 Ha az ELKAP első bemenő adata HIBA, azaz az utasítás a következő formát veszi fel: ELKAP "HIBA lista, akkor a lista kiértékelése folyamán bekövetkező bármilyen hiba hibaüzenet küldését mellőzve az ELKAP eljárásnak adja vissza a vezérlést. Ezzel a program írójának lehetősége nyílik arra, hogy az ELKAP utasítást követő parancsokkal egy esetlegesen előforduló sajátságos hibát saját elképzeléseinek
megfelelően kezeljen. Próbáljuk meg együtt megérteni az ELKAP és az ÁTDOB utasításokat! Mindig nagy körültekintéssel használjuk őket! Próbáljuk meg maradéktalanul megérteni a HIBA jelentését mint szó és mint függvény egyaránt mielőtt az ELKAP utasítással használnánk. ER EREDMÉNY; ER --- utasítás 1 bemenő adattal EREDMÉNY akármi Meghatározza, hogy a pillanatnyilag futó függvény eredménye akármi lesz. Az EREDMÉNY függvény csak saját függvény törzsében szerepelhet, konkrétan ez tesz különbséget a függvény és utasítás között. Az EREDMÉNY utasítás leállítja annak a saját függvénynek a végrehajtását, melyben szerepel. A fenti tulajdonsága miatt különbözik a VISSZATÉR utasítástól, mely szintén leállítja az eljárás végrehajtását, de nem ad vissza semmilyen értéket a VISSZATÉR a saját utasításokban használatos, s nem a függvények esetén. TANULD NÉGYZETÖSSZEG :A :B EREDMÉNY :A * :A + :B :B VÉGE
? KI NÉGYZETÖSSZEG 5 -6 61 EREDMÉNY; ER FELSŐSZINT FELSŐSZINT --- különleges jelentéssel bíró szó ÁTDOB "FELSŐSZINT Leállítja a pillanatnyilag futó saját eljárást és a felsőbb szintű hívó eljárásokat is, amíg a vezérlés a legfelső szintre, vagyis a Logo párbeszédes szintjére nem adódik vissza. Próbáljuk a FELSŐSZINT szót az ELKAP és az ÁTDOB utasításokkal együtt megérteni. Használat közben legyünk óvatosak Az ÁTDOB "FELSŐSZINT nagymértékben különbözik a VISSZATÉR utasítástól. A VISSZATÉR csak a pillanatnyi saját eljárást állítja le, és a hívó eljáráshoz tér vissza. GENERÁL GENERÁL --- függvény 3 bemenő adattal GENERÁL szám eljárásobjektum2 akármi GENERÁL eljárásobjektum1 eljárásobjektum2 akármi ahol mindkét eljárásobjektum 1 bemenő adatot vár, és az eljárásobjektum1 mindig IGAZ vagy HAMIS értéket eredményez. A függvény egy listát generál a következőképpen : az
eredménylista első eleme mindig a harmadik paraméter (akármi) lesz A lista elsőtől különböző elemét úgy kapjuk meg, hogy a már meghatározott előtte lévő elemre 53 alkalmazzuk az eljárásobjektum2-t (a matematikából ismert rekurzív definíció). Ezt a folyamatot ismétljük, amíg: az eredménylista elemszáma megegyezik az adott számmal, vagy ha adott az eljárásobjektum1, akkor ezt alkalmazzuk az újonnan generált elemre. Ha eredményül IGAZ értéket kapunk, akkor a folyamat folytatódik Ha az eredmény HAMIS, akkor a folyamat leáll, és az utolsó elemet már nem tesszük a listába ? KI GENERÁL 10 [:% + 1] 1 [1 2 3 4 5 6 7 8 9 10] ? KI GENERÁL 5 [[X] [EREDMÉNY LISTA :X]] [ ] [[ ] [[ ]] [[[ ]]] [[[[ ]]]] [[[[[ ]]]]] ] ? KI GENERÁL [:% > 0] [EGÉSZHÁNYADOS :% 2] 100 [100 50 25 12 6 3 1] HA HA --- utasítás 2 vagy 3 bemenő adattal függvény 3 bemenő adattal utasítás: HA logikai lista1 HA logikai lista1 lista2 ahol lista1, lista2
Logo-utasítások listája függvény: HA logikai [ kifejezés1 ] [ kifejezés2 ] A HA utasítás és a HA függvény a második és harmadik bemenetük alapján különböztethetők meg egymástól. Ha ezek a listák utasításokat tartalmaznak, akkor az egész HA szerkezet szintén utasítás. Ha a második és a harmadik bemenet kifejezés, melyek kiértékelés után eredményt adnak vissza, akkor az egész HA szintén visszaad egy értéket, s ezért ilyenkor függvényről beszélünk. Ha a HA parancsot függvényként használjuk, akkor egyetlen paramétere sem lehet üres lista A HA parancsnak mindig teljes egészében bele kell férnie egyetlen logikai sorba. Ha utasításként szerepel, és csak 2 bemenete van, majd ezután egy új utasítás következik ugyanabban a logikai sorban, akkor az egész HA szerkezetet zárójelek közé kell foglalni. Ahhoz, hogy a HA parancs jobban olvasható legyen, néha hasznos a TESZT, HAIGAZ és HAHAMIS utasításokkal helyettesíteni.
Utasítás: ha az első bemenete IGAZ, akkor a lista1 elemeit hajtja végre. Ha az első bemenet értéke HAMIS és létezik a harmadik paraméterként megadott lista2, akkor az ebben található utasításokat hajtja végre Ha az első bemenet HAMIS, és nincs harmadik bemenő adat, akkor a HA utasításnak semmiféle hatása sincs. TANULD PRÓBA.1 :SZÁM HA MA :SZÁM 2 = 0 [KIÍR "PÁROS] [KIÍR "PÁRATLAN] VÉGE ? PRÓBA.1 22 PÁROS ? PRÓBA.1 23 PÁRATLAN 54 Függvény: Eredménye a kifejezés1 által visszaadott érték (azaz a kifejezés1 kiértékelésével kapott eredmény), ha az első bemenet IGAZ, különben pedig a kifejezés2 kiértékelésével kapott érték. TANULD PRÓBA.2 :SZÁM ER HA MA :SZÁM 2 = 0 ["PÁROS] ["PÁRATLAN] VÉGE ? KI PRÓBA.2 22 PÁROS ? KI PRÓBA.2 23 PÁRATLAN HAH HAHAMIS; HAH --- utasítás 1 bemenő adattal HAHAMIS Logo utasításlista Ha a HAHAMIS eljárás előtt ugyanabban az eljárásdefinícióban szerepel a TESZT
utasítás, és a bemenet kiértékelésével HAMIS érték született, akkor végrehajtja a bemenő lista utasításait. Ha a kiértékelt bemenet IGAZ értéket eredményez, akkor a HAHAMIS utasításnak nincs hatása. Hol használjuk a TESZT, HAHAMIS és HAIGAZ eljárásokat TANULD JÓ.EZ? :VÁLT ; igaz, hogy :VÁLT értéke 0-nál nagyobb és 6-nál kisebb? TESZT ÉS (:VÁLT < 6) (:VÁLT > 0) HAI [KIÍR [EZ HELYES BEMENŐ ADAT] ] HAH [KIÍR [SAJNOS EZ NEM JÓ] ] VÉGE ? JÓ.EZ? 6 SAJNOS EZ NEM JÓ ? JÓ.EZ? 3 EZ HELYES BEMENŐ ADAT HAHAMIS; HAH HAI HAIGAZ; HAI --- utasítás 1 bemenő adattal HAIGAZ Logo utasításlista Ha a HAIGAZ eljárás előtt ugyanabban az eljárásdefinícióban szerepel a TESZT utasítás, és a bemenet kiértékelésével IGAZ érték született, akkor végrehajtja a bemenő lista utasításait. Ha a kiértékelt bemenet HAMIS értéket eredményez, akkor a HAIGAZ utasításnak nincs hatása Hol használjuk a TESZT, HAHAMIS és HAIGAZ eljárásokat
55 TANULD JÓ.EZ? :VÁLT TESZT ÉS (:VÁLT < 6) (:VÁLT > 0) HAI [KIÍR [EZ HELYES BEMENŐ ADAT] ] HAH [KIÍR [SAJNOS EZ NEM JÓ] ] VÉGE ? JÓ.EZ? 266 EZ HELYES BEMENŐ ADAT ? JÓ.EZ? 32 SAJNOS EZ NEM JÓ HAIGAZ; HAI HASZNÁL HASZNÁL --- utasítás 2 bemenő adattal függvény 2 bemenő adattal HASZNÁL eljárásobjektum lista aholaz eljárásobjektum bemenő adatainak száma megegyezik a lista elemszámával. A korábban definiált eljárásobjektum, a lista által tartalmazott bemenő paraméterekkel való hívását érhetjük el a parancs használatával: ? HASZNÁL "KIÍR [2000000] 2000000 ? KI HASZNÁL "SZÓ [M A J O M] MAJOM ? KI HASZNÁL [[X Y Z][EREDMÉNY :X*:Y/:Z]] [100 200 300] 66.67 ? KI HASZNÁL [LISTA :%2 + :%1] [200 300] [500] Jegyezzük meg: a HASZNÁL utasításként viselkedik, ha a bemeneteként adott eljárásobjektum utasítást határoz meg. Egyébként függvényként viselkedik, például a HASZNÁL "SZÓ [AA BB] eredménye megegyezik
a SZÓ "AA "BB hatásával, és ha az eljárásobjektum olyan eljárást határoz meg, melynek bemenő adatai nem meghatározott számúak, akkor a listának akárhány eleme lehet: ? KI HASZNÁL "SZÓ [M A J O M] MAJOM HÁNYADIK HÁNYADIK --- bemenő adat nélküli függvény HÁNYADIK Csak az ISMÉTLÉS, a CIKLUS, az AMÍG és a CIKLUSCSAK utasítások belsejében használható eljárás. Eredményeként egy pozitív egész számot kapunk, mely azt fejezi ki, hogy az adott ISMÉTLÉS utasítás bemeneteként szereplő utasításlistát eddig hányszor hajtottuk végre az éppen végrehajtás alatt lévő alkalmat is beleszámítva: 56 ? ISMÉTLÉS 3 [KIÍR HÁNYADIK] 1 2 3 A HÁNYADIK függvény lényegében változóként viselkedik, mely az ISMÉTLÉS utasítás törzsében mindig 1-gyel növekedik. HIBA HIBA --- bemenő adat nélküli függvény különleges jelentéssel bíró szó függvény: HIBA speciális szó: ELKAP "HIBA Amikor függvényként
használjuk, teljes hibaüzenetet eredményez, ha a számítás alatt hiba lép fel. Ha nem következik be hiba, akkor az eredmény [ ] A teljes hibaüzenet csak a számítás befejeződése előtt érhető el, vagyis mielőtt a vezérlés a felső szintre adódik vissza. (Csak egyszer érhető el Ha a HIBA függvényt közvetlenül egymás után kétszer használjuk, és az első előfordulás hibaüzenetet eredményezne, akkor a második alkalmazás eredménye: [ ]) Ezért a HIBA függvényt csak a következő formában használjuk: ELKAP "HIBA lista parancs, vagyis az ELKAP és a HIBA mint különleges jelentésű szó szerepel. Ha a HIBA az első bemenete az ELKAP utasításnak, akkor a lista kiértékelése alatt bekövetkező bármilyen hibát itt kezel le a rendszer nem küld hibaüzenetet, s az ELKAP utasítást követő eljárásokkal adhatjuk meg a saját reakciónkat a bekövetkezett sajátos hibára. TANULD PRÓBA ELKAP "HIBA [VÉGREHAJT OLVASLISTA] KI HIBA ; a
HIBA mint függvény ; a HIBA mint szó VÉGE Próbáljuk ki a PRÓBA eljárást a következő bemenetekkel: KI 55 és 55. Ha lenyomjuk az F12 funkcióbillentyűt a kiértékelés során, akkor a Logo leállítja a végrehajtást, és egy hibakódot jelez, a 25-öt, azzal a megjegyzéssel, hogy VISSZATÉR. List of Error Messages HIBAÜZENET HIBAÜZENET --- utasítás 2 bemenő adattal HIBAÜZENET lista akármi Az eljárás alkalmazása esetén leáll a program végrehajtása, és saját hibaüzenetet küldhetünk. Ennek az utasításnak köszönhetően magunk határozhatjuk meg programunkban azokat a helyzeteket, melyekben hiba bekövetkeztével számolunk, például, ha az eljárásunk bemenő adata nem páros szám. 57 A hiba üzenetét a listában (a HIBAÜZENET eljárás első paramétereként) adhatjuk meg: ? HIBAÜZENET [Elfogadhatatlan adat] "759 HIBA: Elfogadhatatlan adat A második bemenet, akármi az az érték, mely a teljes hibaüzenet részévé fog válni.
Ennek megértése céljából tanulmányozzuk részletesen a HIBA függvényt: ? NÉV "I 333 ? ELKAP "HIBA [HA :I > 222 [ HIBAÜZENET [ Túl sok! ] :I ] ] KI HIBA [100 [ Túl sok! ] [ ] 0 [ ] 333 ] Hibaüzenetek listája ISM ISMÉTLÉS; ISM --- utasítás 2 bemenő adattal ISMÉTLÉS szám Logo utasításlista Az adott számnak megfelelő mennyiségben egymás után ismételve végrehajtja az utasításlistát. Ha az ISMÉTLÉS első bemenete 1-nél kevesebb, akkor az utasításlistát egyszer sem hajtja végre. Ha a szám nem egész, akkor először csonkítja ennek törtrészét a Logo Az ISMÉTLÉS utasítás másik ISMÉTLÉS belsejében is használható stb. ? ISMÉTLÉS 3 [KIÍR "HELLO] HELLO HELLO HELLO ? NÉV "A 4 ? NÉV "B [E 120 ISMÉTLÉS 4 [E 15 B 90] J 90] ? ISM :A [ISM 10 [VÉGREHAJT :B J 1.5] ] Gyakran hasznos a HÁNYADIK függvény alkalmazása az utasításlistában, mert ennek segítségével hivatkozhatunk a már megvalósított
ismétlések számára (beleértve ebbe az éppen aktuális ismétlést is). ISMÉTLÉS; ISM LEKÉPEZ LEKÉPEZ --- utasítás 1 vagy N bemenő adattal függvény 1 vagy N bemenő adattal LEKÉPEZ eljárásobjektum lista1 (LEKÉPEZ eljárásobjektum lista1 lista2 . ) aholaz eljárásobjektum által várt bemenetek száma és a listák száma lista1, lista2. megegyezik, valamint az összes lista elemszáma egyenlő Az összes lista, lista1, lista2 . első elemét összegyűjti egyetlen listába, és az eljárásobjektum ezt a listát alkalmazza Ezután a listák második elemét gyűjti ki, és az eljárásobjektum ezeket használja stb Ezt a folyamatot folytatja a listák összes elemére Ha az eljárásobjektum utasítást határoz meg, akkor a LEKÉPEZ eljárásnak nem lesz eredménye. Ezért a LEKÉPEZ ebben az esetben utasításként szerepel Azonban, ha az 58 eljárásobjektum függvényt határoz meg, akkor az összes alkalmazás részeredményét egy listában gyűjti a
rendszer, mely lista a LEKÉPEZ eljárás eredményévé válik. Ekkor a LEKÉPEZ függvényként működik. ? LEKÉPEZ "KIÍR [[Hello] [Ahoj] [Bye]] Hello Ahoj Bye ? KI (LEKÉPEZ "LISTA [1 2 3 4] [A B C D] ) [[1 A] [2 B] [3 C] [4 D]] NYOMOZ NYOMOZ --- utasítás 1 bemenő adattal NYOMOZ utasításlista A Logót hibafelderítő módra állítja. Ez a mód lehetőséget biztosít nyomon követni és láthatóvá tenni azt a számítási folyamatot, illetve annak részeredményeit, melyet a bemenő adatként megadott lista határoz meg lépésenként, vagy nagyobb egységekben haladva. Ez az utasítás csak közvetlenül az utasítássorban adható ki, s mellette másik utasítás nem szerepelhet a sorban Így a NYOMOZ eljárást nem használhatjuk az ISMÉTLÉS vagy a HA stb. utasítások belsejében sem Nyomozás a Logóban NYOMOZÓSZÜNET NYOMOZÓSZÜNET --- bemenő adat nélküli utasítás NYOMOZÓSZÜNET Az utasítás segítségével olyan pontot definiálhatunk a
programunkban, melyben a rendszer a végrehajtást felfüggeszti, ha a Logo hibakereső módban működik. Ha a Logo nem ebben a módban találkozik a NYOMOZÓSZÜNET utasítással, akkor az eljárásnak nem lesz hatása. TANULD PRÓBA :I KIÍRBELSŐ :I NYOMOZÓSZÜNET KIÍRBELSŐ :I + 1 PRÓBA :I + 2 VÉGE ? PRÓBA 1 123456789101112131415 ; stb. örökké Azonban, ha a NYOMOZ utasítás bemenő paramétereként adjuk a PRÓBA eljárást, és lenyomjuk a Lépések ablakban, a Finish Active Procedure, a Finish All vagy a Visualise Computation gombot, akkor a kiértékelés mindig leáll a NYOMOZÓSZÜNET utasítást tartalmazó sort követő sorban. Tetszőleges saját eljárásban több NYOMOZÓSZÜNET utasítást is használhatunk. Amikor a végrehajtás az utasítás miatt leáll, akkor az írólapon tetszőleges Logoparancsot kiadhatunk, vagy folytathatjuk a program végrehajtását az adott ponttól. 59 SZŰRŐ SZŰRŐ --- függvény 2 bemenő adattal SZŰRŐ
eljárásobjektum lista ahol azeljárásobjektum 1 bemenő adatot vár, és mindig IGAZ vagy HAMIS értéket eredményez. A függvény az eljárásobjektumot alkalmazza a lista minden elemére, és eredményül azon elemek listáját adja, melyek megfelelnek az eljárásobjektum által meghatározott feltételnek. ? KI SZŰRŐ "SZÁM? [AAA 123 B [22 33] C -99] [123 -99] ? KI SZŰRŐ [ [MICSODA] [ER :MICSODA > 5 ] ] [1 2 3 4 5 6 7 8] [6 7 8] ? KI SZŰRŐ [:% > 5] [1 2 3 4 5 6 7 8] [6 7 8] TESZT TESZT --- utasítás 1 bemenő adattal TESZT logikai Megjegyzi a bemenő szó IGAZ vagy HAMIS logikai értékét a HAIGAZ, illetve HAHAMIS utasítások által való későbbi felhasználás céljából. A TESZT utasításnak ugyanabban az eljárásban kell szerepelnie, mint amelyikben az eredményét a HAIGAZ vagy HAHAMIS utasítás felhasználja. Where to use TESZT, HAHAMIS, and HAIGAZ Procedures TANULD JÓ.EZ? :VÁLT ; a :VÁLT értéke szigorúan 0 és 6 közé esik? TESZT ÉS
KISEBB? :VÁLT 6 NAGYOBB? :VÁLT 0 HAI [KIÍR [EZ HELYES BEMENŐ ADAT] ] HAH [KIÍR [SAJNOS EZ NEM JÓ] VÉGE ? JÓ.EZ? 6 SAJNOS EZ NEM JÓ ? JÓ.EZ? 3 EZ HELYES BEMENŐ ADAT VÉGREHAJT VÉGREHAJT --- utasítás 1 bemenő adattal függvény 1 bemenő adattal utasítás: VÉGREHAJT Logo utasításlista függvény: VÉGREHAJT [ kifejezés ] Ha a VÉGREHAJT utasításként szerepel, akkor végrehajtja a Logo utasításlista összes utasítását. Az utasítás hatása a bemenő lista utasításainak hatásában realizálódik ? VÉGREHAJT [KIÍR "EGY KIÍR "KETTŐ] 60 EGY KETTŐ ? NÉV "VALAMI [ISMÉTLÉS 20 [E 80 B 117] ] ? VÉGREHAJT :VALAMI ? VÉGREHAJT M [B 23] :VALAMI a VÉGREHAJT lista és az ISMÉTLÉS 1 lista parancsok hatásukban megegyeznek. Ha a VÉGREHAJT parancsot függvényként használjuk, akkor eredménye a bemenő paraméterként kapott kifejezés eredményével egyezik meg (vagyis a kifejezés kiértékelésével kapott értékkel). ? NÉV :A
VÉGREHAJT OLVASLISTA : 23 * 9 ; ezt gépeljük be az OLVASLISTA ? KI :A 207 VISSZATÉR VISSZATÉR --- bemenő adat nélküli utasítás VISSZATÉR Leállítja az aktuálisan futó eljárás végrehajtását és visszaadja a vezérlést annak az eljárásnak, mely meghívta ezt az aleljárást. Ha nincs ilyen eljárás, akkor a vezérlés a legfelső szintre kerül vissza, azaz a párbeszédes szintre. A VISSZATÉR csak a felhasználó által definiált Logo eljárások belsejében használható. Figyeljük meg az EREDMÉNY és a VISSZATÉR utasítások közötti különbséget: az EREDMÉNY szintén a saját eljárás végrehajtását állítja le. Azonban ez bemenete segítségével meghatározza az eljárás eredményét is, ezzel különbséget téve a függvények és utasítások között. TANULD KIÍR.LISTÁT :Z HA ÜRES? :Z [VISSZATÉR] KIÍR ELSŐ :Z KIÍR.LISTÁT EN :Z VÉGE ? KIÍR.LISTÁT [A B C] A B C VÁRJ VÁRJ --- utasítás 1 bemenő adattal VÁRJ szám ahol a szám
egy pozitív egész szám, mely legfeljebb 65535 lehet. A további végrehajtás szám milliszekundum ideig való késleltetését okozza. A VÁRJ 1000 a további futást körülbelül 1 másodpercig késlelteti. 61 VÁRJAMÍG VÁRJAMÍG --- utasítás 1 bemenő adattal VÁRJAMÍG [kifejezés ] Újra és újra kiértékeli a bemeneteként adott kifejezést, amíg ennek értéke IGAZ nem lesz. ? VÁRJAMÍG [GOMBNYOMÁS?] ; addig vár, amíg valamely billentyűt ; vagy egérgombot lenyomjuk ? VÁRJAMÍG [OLVASKÓD = -2] ; addig vár, amíg az egérgombot felengedjük 62 Eljárások definiálása, szerkesztése és feldolgozása .ALAPSZAVAK .ALAPSZAVAK --- függvény 1 bemenő adattal .ALAPSZAVAK szám ahol a szám 0, 1, 2 vagy 3 Az eljárás eredményeként a Logo alapszavak listáját kapjuk meg. Ha a bemenő adat: 0, akkor a Logo angol és magyar alapszavainak felsorolását kapjuk, 1, akkor a Logo magyar alapszavainak felsorolását kapjuk, 2, akkor a Logo angol és magyar
alapszavainak rövidítését tartalmazó listát kapjuk eredményül, 3, akkor a Logo magyar alapszavainak rövidítését tartalmazó listát kapjuk eredményül. ALAPSZÓ? ALAPSZÓ? --- fügvény 1 bemenő adattal ALAPSZÓ? szó Eredményül akkor kapunk IGAZ értéket, ha a bemenő szó egy Logo alapeljárás neve, vagyis ha a Logo nyelvnek egy belső, alaputasításához tartozó névről van szó. Különben a kimenő érték HAMIS. A TANULD utasítással definiált eljárásokat saját eljárásnak nevezzük, ezek nem alapszavak. ? KI ALAPSZÓ? "ARCTG IGAZ TANULD NÉGYZET :OLDAL ISMÉTLÉS 4 [E :ODLAL J 90] VÉGE ; ez a mi saját eljárásunk ? KI ALAPSZÓ? "NÉGYZET HAMIS ÁTÍR ÁTÍR --- utasítás 1 bemenő adattal ÁTÍR memóriaobjektum ÁTÍR [ memóriaobjektum ] ahol a memóriaobjektum vagy egy új, vagy egy már definiált objektum neve Megnyitja és aktívvá teszi a Memóriaobjektum Szerkesztőt vagy a Memóriaobjektum Képsorszerkesztőt (a létrehozni,
illetve javítani kívánt objektum fajtájától függően ha az eljárás, szó vagy lista értékű változó, mezőkkel rendelkező szó, vagy új név, akkor a szöveges Szerkesztőt indítja el, ha pedig képsor értékű változó, akkor a Képsorszerkesztő indul el). Ha a bemenet új név, akkor a Memóriában új objektum jön létre. A Logo alapszavai és a különleges jelentéssel bíró szavak nem szerkeszthetők ezzel a paranccsal. Ugyanez igaz minden rejtett memóriaobjektumra, melyet az ELFED utasítással tettünk fedetté, ha éppen nem tettük ideiglenesen láthatóvá a FED! eljárással Ha valamely változó értéke olyan lista, mely üres szót tartalmaz elemként (vagy egy elemének elemeként . stb), akkor a változó nem szerkeszthető anélkül, hogy értéke megsé63 rülne, ugyanis az üres szavakat a szerkesztő kitörli. Ha a változó értéke olyan lista, mely képsort tartalmaz, akkor ennek egésze szintén nem szerkeszthető. Az ÁTÍR utasítás
aktiválható egy saját eljárással is. Ebben az esetben a végrehajtási folyamat leáll és csak azután folytatódik, miután a Szerkesztő ablakot becsuktuk Más lehetőségek: ha az adott objektum még nem létezik, akkor a Memóriaablakban létrehozhatjuk az Új eljárás, Új változó vagy Új rekord utasítások egyikével ha ez az objektum már létezik, akkor a Memóriaablakban szerkeszthetjük. ELFED ELFED --- utasítás 1 bemenő adattal ELFED memóriaobjektum ELFED memóriaobjektumok listája Hogyan és miért rejtsünk el memóriaobjektumokat. Kötetek használata. Láthatatlanná teszi a paraméterként megadott, felhasználó által definiált memóriaobjektumokat, vagyis ezután ezek fedettek lesznek. A fedett objektumok megjelenítése és feldolgozása eltér a Logoban szokásos módtól Erről a témáról olvasható bővebb információ a következő cím alatt: Hogyan kezeli a Logo a fedett objektumokat Az összes saját objektum elrejtésére szolgál az
ELFEDMIND utasítás. Ahhoz, hogy az elfedett objektumok listáját megtudjuk, használjuk a FEDETT függvényt. Az objektumok elrejtettségének megszüntetését a FELFED utasítással érhetjük el Az összes fedett objektum ideiglenes láthatóvá tétele a FED! "HAMIS paranccsal lehetséges. A SAJÁTNEVEK, NEVEK és REKORDNEVEK listákat gyakran használjuk az ELFED utasítás bemenő adataként. Az adott időpontban már fedett objektumok ezekben a listákban már nem szerepelnek csak akkor, ha ezek éppen ideiglenesen láthatók (gondoljunk a FED! "HAMIS utasításra, illetve a Memóriaablak Elemek menüjének Elfedett is látszik menüpontjára). SAJÁTNEVEK, NEVEK és REKORDNEVEK listák. Más lehetőség: az Elfed almenüpont a Memóriaablak Elemek menüjében. ELFEDMIND ELFEDMIND --- bemenő adat nélküli utasítás ELFEDMIND Hogyan és miért rejtsünk el memóriaobjektumokat. Kötetek használata. A felhasználó által definiált összes memóriaobjektumot
láthatatlanná teszi, vagyis ezek fedettek lesznek. A fedett objektumok megjelenítése és feldolgozása eltér a Logoban szokásos módtól. Erről a témáról olvasható bővebb információ a következő cím alatt: Hogyan kezeli a Logo a fedett objektumokat Ahhoz, hogy csak néhány adott objektumot tegyünk rejtetté, használjuk az ELFED utasítást. Az összes jelenleg fedett objektum nevét a FEDETT függvény eredménylistája tartalmazza. Adott objektumok visszaállítása a FELFED utasítással lehetséges Az aktuálisan fedett objektumok nem szerepelnek a SAJÁTNEVEK, NEVEK és REKORDNEVEK listáiban, hacsak ideiglenesen láthatóvá nem tettük őket a FED! "HAMIS utasítással, vagy a Memóriaablak Elemek menüjének Elfedett is látszik almenüjével. Más lehetőség: 64 az Elfed almenüpont a Memóriaablak Elemek menüjében. FEDETT FEDETT --- bemenő adat nélküli függvény FEDETT Hogyan és miért rejtsünk el memóriaobjektumokat. Kötetek
használata. Eredménye az összes fedett objektumot tartalmazó lista. Hasonlóan a SAJÁTNEVEK, NEVEK és REKORDNEVEK listáinak jelöléséhez, a FEDETT listájának elemeiről a következők mondhatók el: a kettősponttal (:) kezdődőek jelölik a változókat, az idézőjellel (") kezdődőek meghatározott tulajdonsággal rendelkező szavak, és amelyek nem kezdődnek különleges karakterrel, azok a saját eljárások jelölésére szolgálnak. SAJÁTNEVEK, NEVEK és REKORDNEVEK listák. ? ELFED (M [TUL1 TUL2] [:VÁLT1 :VÁLT2 :VÁLT3] ["ELJ1 "ELJ2]) ; 2 tulajdonság, 3 változó és 2 eljárás ? KI FEDETT [TUL1 TUL2 :VÁLT1 :VÁLT2 :VÁLT3 "ELJ1 "ELJ2] Az összes saját objektum elrejtésére szolgál az ELFEDMIND utasítás. Ha csak néhány meghatározott objektumot szeretnénk elfedni, akkor az ELFED utasítást használjuk. A FELFED parancs újra láthatóvá teszi az elrejtett objektumokat. Ahhoz, hogy minden fedett objektum ideiglenesen
látható legyen, használjuk a FED! "HAMIS utasítássort Más lehetőség: a Memóriaablak Elemek menüjének Elfedett is látszik almenüpontja láthatóvá teszi a pillanatnyilag fedett objektumok nevét is. KIÍRSAJÁTSZAVAK KIÍRSAJÁTSZAVAK --- bemenő adat nélküli utasítás saját eljárások címsorának kiírása KIÍRSAJÁTSZAVAK Kiírja az írólapra a saját eljárások címsorát. Az ELFED utasítással fedetté tett eljárások címsorát csak abban az esetben írja ki, ha ideiglenesen láthatóvá tettük őket a FED! "HAMIS paranccsal. TANULD ÖSSZEFŰZ :X :N KIÍR M :X :N VÉGE TANULD ÜDVÖZÖL KIÍR "SZIA VÉGE TANULD FURCSASÁG :A :B :C :D :E :F :G ER (M :A :B :C :D :E :F :G) 65 VÉGE ? KIÍRSAJÁTSZAVAK TANULD ÖSSZEFŰZ :X :N TANULD ÜDVÖZÖL TANULD FURCSASÁG :A :B :C :D :E :F :G KIÍRTARTALOM; KT KIÍRTARTALOM; KT --- utasítás 1 bemenő adattal tartalom kiírása KIÍRTARTALOM memóriaobjektum KIÍRTARTALOM memóriaobjektumok listája
Az írólapra írja a bemeneteként adott objektumok definícióját, illetve definícióit. A KIÍRTARTALOM kiírja azokat az aktuálisan rejtett objektumokat is, melyekre előzőleg az ELFED utasítást alkalmaztuk. Ha csak a saját eljárások címsorát szeretnénk kiíratni, használjuk a KIÍRSAJÁTSZAVAK utasítást Más lehetőség: a Memóriaablakban lehetőségünk van a saját objektumaink ellenőrzésére, létrehozására, és módosítására. KT SAJÁTNEVEK SAJÁTNEVEK --- bemenő adat nélküli függvény a felhasználó által definiált eljárások SAJÁTNEVEK Eredményeként az összes saját eljárást tartalmazó listát kapunk. Az ELFED utasítással rejtetté tett eljárások neveit csak abban az esetben listázza ki, ha ideiglenesen láthatóvá tettük őket a FED! utasítás alkalmazásával. TANULD ÜDVÖZÖL KIÍR "SZIA VÉGE TANULD NEM.ÜDVÖZÖL KIÍR " VÉGE ? KI SAJÁTNEVEK [NEM.ÜDVÖZÖL ÜDVÖZÖL] SAJÁTNEVEK, NEVEK és REKORDNEVEK listák.
Más lehetőség: a Memóriaablak Objektumlistájában az összes saját eljárás neve olvasható. Ezeket az eljárásokat a következő ikonok jelölik: vagy . SAJÁTSZÓ SAJÁTSZÓ --- utasítás 2 bemenő adattal SAJÁTSZÓ szó definíciólista 66 Egy olyan eljárást definiál, melynek a paraméterként adott szó a neve, és a bemenő adatként megadott definíciós lista a törzse. Ha a SAJÁTSZÓ utasítást a SZÓTARTALOM függvénnyel használjuk, akkor a programot adatként dolgozhatjuk fel. A paraméterként szereplő szó nem egyezhet meg sem egy Logo alapszó nevével, sem pedig valamely, a Logóban speciális jelentést hordozó szóval. Ha a szóval azonos nevű saját eljárás már létezik, akkor ennek tartalmát az új definíció felülírja. TANULD PLUSZ.5 :X EREDMÉNY :X + 5 VÉGE ; a bemenő adatot 5-tel növeli ? NÉV "T SZÓTARTALOM "PLUSZ.5 ? KI :T [ [X] [EREDMÉNY :X + 5] ] ? SAJÁTSZÓ "PLUSZ.6 LISTA [X] [EREDMÉNY :X + 6] ? KI PLUSZ.6
-3 ; ez az új függvény 6-tal növeli a bemenet értékét 3 SAJÁTSZÓ? SAJÁTSZÓ? --- függvény 1 bemenő adattal SAJÁTSZÓ? szó Eredményül IGAZ értéket kapunk, ha a szó általunk definiált eljárás neve, egyébként az eredmény HAMIS. A Logo alapszavai nem saját szavak, felismerésükre az ALAPSZÓ? függvény szolgál. Az összes saját eljárás nevét a SAJÁTNEVEK függvény által visszaadott lista tartalmazza. ? KI SAJÁTSZÓ? "NÉV HAMIS ? KI ALAPSZÓ? "DUPLÁZ HAMIS TANULD DUPLÁZ :X EREDMÉNY 2 * :X VÉGE ? KI SAJÁTSZÓ? "DUPLÁZ IGAZ Más lehetőség: a szó ha SAJÁTSZÓ? szerepel az Objektumlistában, ha pillanatnyilag nincs elrejtve az ELFED Logo-utasítással vagy az Elemek menü Elfed almenüpontjával. (Azonban még ha a szó eljárás rejtett is, kilistázható az Objektumlistában, ha ideiglenesen láthatóvá tesszük a FED! "HAMIS utasítás alkalmazásával vagy a Memóriaablak Elfedett is látszik menüpontjával.)
SZÓTARTALOM 67 SZÓTARTALOM --- függvény 1 bemenő adattal SZÓTARTALOM szó ahol a szó egy saját eljárás neve. Eredménye a szó nevű saját eljáráshoz tartozó definíciós lista. A SZÓTARTALOM függvény a SAJÁTSZÓ utasítással egységben használva lehetővé teszi, hogy a programokat adatként dolgozzuk fel. TANULD DUPLÁZÓ :X KIÍR :X EREDMÉNY 2 * :X VÉGE ? KI SZÓTARTALOM "DUPLÁZÓ [ [X] [KIÍR :X] [EREDMÉNY 2 * :X] ] Figyeljük meg, hogy az adott nevű eljárás paraméterei nem teszik ki a kettőspontot (:). Az eljárástörzs könnyebben olvasható formában jelenik meg, ha a KIÍRSOR utasítást adjuk ki: ? KIÍRSOR SZÓTARTALOM "DUPLÁZÓ X KIÍR :X EREDMÉNY 2 * :X TANULD TANULD --- utasítás 1 vagy N bemenő adattal TANULD szó TANULD szó :bemenet1 :bemenet2 . ahol a szó sem egy Logo alapszó neve, sem egy saját eljárás neve nem lehet, a bemenet1, bemenet2, . pedig szavak A Logót párbeszédes módból eljárásdefiníciós módba
állítja át. A párbeszédes mód parancsjelét egy speciális parancsjelre cseréli: >, hogy világossá tegye a felhasználó számára, hogy most egy új eljárás definícióját várja A szó az új eljárás nevét adja meg, a további paraméterek :bemenet1, :bemenet2 stb. pedig az új eljárás bemenő adatainak a nevét határozzák meg A TANULD utasítást követő sorokba gépelhetjük az új eljárás törzsét. Jegyezzük meg, hogy az eljárásdefiníciós mód csak soron belüli szerkesztőutasítások használatát teszi lehetővé. A definíció befejezését a VÉGE speciális szó külön sorba való begépelésével tudathatjuk a rendszerrel. ? TANULD NÉGYZET :OLDAL > ISMÉTLÉS 4 [E :OLDAL J 90] > VÉGE ? ; a szokásos párbeszédes mód állt vissza Lásd még: Utasítások és függvények Saját eljárás definiálása TÖRÖL 68 TÖRÖL --- utasítás 1 vagy N bemenő adattal TÖRÖL bemenet1 (TÖRÖL bemenet1 bemenet2 . ) ahol minden egyes
bemenet vagy egy memóriaobjektum, vagy memóriaobjektumok listája Törli a bemeneteként felsorolt összes memóriaobjektumot. A SAJÁTNEVEK, NEVEK, és REKORDNEVEK listáit gyakran használjuk a TÖRÖL utasítás paramétereként. Vigyázzunk, hogy a pillanatnyilag fedett objektumok nem elemei ezen listáknak, azonban ha határozottan megnevezzük őket, akkor ezek is törölhetők SAJÁTNEVEK, NEVEK és REKORDNEVEK listák. ? TÖRÖL NEVEK ; az összes változót törli ? (TÖRÖL [F G] [:V1 V2] REKORDNEVEK) ; törli az F és G eljárásokat, a V1 és V2 ; változókat, és az összes ; mezőket tartalmazó szót ? (TÖRÖL "F ":Vált ""P) ; törli az F eljárást, a :Vált változót, ; és a "P szó összes mezőjét Ha a TÖRÖL eljárás egyik bemenete nem saját objektum neve, akkor HIBA következik be csak létező objektumokat törölhetünk. Más lehetőségek: használjuk a Memóriaablak Töröl utasítását az összes kijelölt objektum
törlésére TÖRÖLMUNKA TÖRÖLMUNKA --- bemenő adat nélküli utasítás mindent töröl TÖRÖLMUNKA Törli az összes memóriaobjektumot és az összes teknőcöt, lefuttatja az új SLOGO.INI fájlt ha ez létezik a Logo alapkönyvtárában. Letörli a rajzlapot is, és alapállapotba hozza az egész Logót (ennek ablakát is, a LOGOABLAK! [ ] utasítás végrehajtásával), pontosan úgy, mintha kiléptünk volna a Logóból, és újra elindítottuk volna. Miután minden objektumot letörölt, minden beállítást az eredeti értékére változtat: egyetlen teknőc lesz, melynek neve 0, alapkoordinátái [0 0], iránya észak, LÁTHATATLAN, és tolla lent van. A Fő-ablak OSZTOTTABLAK módban lesz, az íróablakban 6 sor látszik, és a Memóriában egyetlen saját objektum sem található (azaz a TÖRÖLMUNKA még az ELFED utasítással rejtetté tett objektumokat is törli). VÉGE VÉGE --- különleges jelentéssel bíró szó Az eljárásdefiníció végét jelzi. A VÉGE
szó zár minden egyes saját eljárást Amikor az eljárásdefiníciós módban (melyet a TANULD utasítással kezdünk meg) egy különálló sorba begépeljük, a Logo a szokásos párbeszédes módba vált vissza, amit az aktuális parancsjel határoz meg. Bár minden egyes saját eljárás utolsó sora a VÉGE szó, nem tartozik az eljárás definíciós listájába. Saját eljárás definiálása 69 Teknőcműveletek ABLAK ABLAK --- utasítás 1 bemenő adattal vagy bemenő adat nélkül ABLAK (ABLAK téglalapnyi terület ) (ABLAK [ ]) Az utasítás az aktív teknőcök számára definiálja az általuk felhasználható területet. Ez a terület nem más, mint amelyben a felhasználó láthatja a teknőcöt, melyben a teknőc mozoghat, rajzolhat, sokszöget hozhat létre a SOKSZÖG vagy a SOKSZÖGVONAL utasítással, melyben írhat a BETŰZD utasítással, melyet kitölthet a TÖLT eljárással stb. Ha az utasítást paraméter nélkül adjuk ki, és ennek az adott teknőcnek
még nem határoztunk meg felhasználható területet, akkor az általa elérhető terület az aktuális rajzlappal fog megegyezni. Ha a bemenet egy téglalapnyi terület, akkor ez határozza meg az elérhető területet Ha a bemenet üres lista [ ], akkor a korábbi beállítások törlésével újradefiniálja a felhasználható területet, s ezzel ismét a teljes rajzlap lesz az elérhető terület Az ABLAK utasítás azt is meghatározza, hogy a teknőc hogyan viselkedjen, amikor eléri a terület határát. Az utasítás használatával megadjuk, hogy a teknőc az úgynevezett ablak-módot használja, vagyis egy olyan módot, melyben a teknőc (az ELŐRE,, illetve más utasítások hatásaként) az általa felhasználható terület határán kívül is korlátozás nélkül mozoghat, csak ebben az esetben a felhasználó nem látja a teknőc alakját, és a teknőc nem rajzolhat, illetve írhat ott. Ekkor a felhasználható terület lényegében egy olyan ablakot ábrázol, melyen
keresztül a teknőcök „végtelen síkjának egy részét figyelhetjük. Az ÚJTEKNŐC utasítással létrehozott új teknőc mindig körkörös módban van, felhasználható területe pedig az egész rajzlap. Ahhoz, hogy ezt ablak-módba kapcsoljuk, tegyük aktívvá, és használjuk az ABLAK utasítást. A körkörös módra a KÖRKÖRÖSEN utasítással tudjuk visszaállítani a teknőcöt Ha egy teknőcöt nagyon messzire mozgatunk, és „elvesztjük valahol a „végtelen síkban, akkor aktuális pozícióját a HELY függvény eredményéből tudhatjuk meg, és a HAZA utasítással alapkoordinátáiba hozhatjuk vissza. Érdekes megfigyelni a hatást, amikor néhány teknőcöt körkörös módban, a többieket ezzel párhuzamosan ablak-módban működtetjük. ALAK ALAK --- bemenő adat nélküli függvény ALAK Eredménye az a képsor, mely pillanatnyilag az első aktív teknőc alakjaként használatos. Ha ennek aktuális alakja több, mint 1 fázisból áll, akkor az
összes fázis, azaz a teljes képsor a függvény eredménye. Ahhoz, hogy az összes aktív teknőc alakját megváltoztassuk, használjuk az ALAK! utasítást. ? KI KIFIGYEL [0 1 2] ? KI KÉPSOR? ALAK IGAZ 70 ? NÉV "ALAKOM ALAK ; a 0 nevű teknőc alakja ? KÉREM 2 [ALAK! :ALAKOM] ; legyen a 2 teknőc alakja ; ugyanaz, mint a 0-é ? TÖRÖLTEKNŐC MIND ? NÉV "ÚJ ALAK KÉREM 2 [ALAK] HIBA: A(z) kérem eljárás nem ismeri a(z) 2 nevű teknőcöt. ALAK! ALAK! --- utasítás 1 bemenő adattal ALAK! képsor ALAK! LGW fájl ALAK! [ ] A továbbiakban az összes pillanatnyilag aktív teknőc alakjaként az adott képsort fogja használni. Fázisok használata Ha a bemenet egy LGW fájl neve, akkor az utasítássor a következővel egyenértékű: ? ALAK! BETÖLTKÉPSOR "LGW fájl [ ] tehát magában foglalja a BETÖLTKÉPSOR függvény végrehajtását is. Ha a fájlnévben nem szerepel kiterjesztés, akkor a rendszer automatikusan az .LGW kiterjesztést csatolja a
fájlnévhez. Ha csak részleges útvonal szerepel az adott fájlnévben, vagy egyáltalán nem szerepel útvonal, akkor az alapkönyvtár KÉPSOR alkönyvtárában keresi a megfelelő fájlt. Ennek a beállításnak a megváltoztatására szolgál az ÚT! utasítás a "KÉPSOR első bemenettel. Az a képsor, melyet rendes körülmények között a Logo teknőcök alapalakjaként használunk (a 24 fázist tartalmazó kis háromszög), a "TEKNOC.LGW fájlban van elmentve Tehát az ÚJTEKNŐC utasítással létrehozott teknőcöket ezzel az alakkal ábrázolja a rendszer, ha máshogy nem rendelkezünk. A teknőcök alapalakjának átdefiniálásához az SLOGO.INI fájlba kell a következő sorokat beírnunk: FIGYELJ [ ] ALAK! új alapalak ÚJTEKNŐC 0 . FIGYELJ 0 ; stb. Ha a bemenet egy [ ] üres lista, akkor az összes aktív teknőc aktuális alakja az alapalakot veszi fel (mely vagy a Logo által meghatározott kis háromszög, vagy az SLOGO.INI fájlban meghatározott új
alapalak). ALAKSZÍN ALAKSZÍN --- bemenő adat nélküli függvény ALAKSZÍN Eredménye az első aktív teknőc aktuális aktív alakszíne, vagyis egy 0 és 15 közé eső egész szám, vagy az üres lista [ ], ha az első aktív teknőc számára nem határoztunk meg aktív alakszínt. 71 Új teknőc létrehozásakor (az ÚJTEKNŐC utasítással vagy a jobb egérgombbal való kattintással a rajzlapon) a teknőcnek nem lesz aktív alakszíne, amíg mi meg nem határozzuk azt az ALAKSZÍN! utasítással. ALAKSZÍN! ALAKSZÍN! --- utasítás 1 bemenő adattal ALAKSZÍN! szín ALAKSZÍN! [ ] Az aktív teknőcök aktív alakszínét határozza meg. A bemenő színnek a 16 alapszín egyikének kell lennie. Ha a bemenet [ ] üres lista, akkor az összes aktív teknőc aktív alakszínét „Nem-re állítja be, tehát ettől kezdve ezen teknőcök számára nem lesz aktív alakszín meghatározva. Ebben az esetben az ALAKSZÍN függvény eredménye szintén [ ] lesz. Jegyezzük meg,
hogy bár az aktív alakszínnek a 16 alapszín egyikének kell lennie, az alakon belül helyettesíthető (a TOLLSZÍN! utasítással) bármilyen RGB színnel. ALAPHELYZET ALAPHELYZET --- bemenő adat nélküli utasítás ALAPHELYZET Előkészíti a rajzlapot az új rajzoláshoz úgy, hogy letörli a képernyőt, törli az összes teknőcöt, és a 0 nevű teknőcöt ismét létrehozza (eredeti állapotában lásd az ÚJTEKNŐC utasítást), valamint aktívvá és láthatóvá teszi, lásd a LÁTHATÓ utasítást. Az ALAPHELYZET hatása a következő utasítássorozatéval azonos: ? TR ? RAJZLAPSZÍN! 15 ? TÖRÖLTEKNŐC MIND ? ÚJTEKNŐC 0 [ ] ? FIGYELJ 0 ? KÖRKÖRÖSEN ? LÁTHATÓ ÁLLAPOT ÁLLAPOT --- bemenő adat nélküli függvény ÁLLAPOT Eredménye az [X Y szög, szó1, szó2 képsor] hattagú lista, mely az első aktív teknőc aktuális állapotát jellemzi. Az [X Y] ennek aktuális pozíciója, a szög a pillanatnyi iránya, a szó1 a TL, TF, TRD vagy TVT egyike, annak
megfelelően, hogy a tolla TOLLATLE, TOLLATFEL, TOLLRADÍR vagy TOLLVÁLTÓ módban van-e. A szó2 a LÁTHATÓ vagy LÁTHATATLAN szó, attól függően, hogy a teknőc LÁTHATÓ? vagy el van rejtve. A képsor a teknőc aktuális alakja A teknőc aktuális pozíciója az ELŐRE vagy a HÁTRA (illetve számos egyéb) utasítással megváltoztatható. Az aktuális iránya a JOBBRA vagy a BALRA utasítások hatásaként módosul Tollának állapotát a következő utasításokkal állíthatjuk át: TOLLATLE, TOLLATFEL, TOLLRADÍR vagy TOLLVÁLTÓ. Egy rejtett teknőcöt a LÁTHATÓ utasítással lehet megjeleníteni, illetve egy látható teknőcöt a LÁTHATATLAN utasítással lehet eltüntetni. A teknőchöz ennek új alakjaként az ALAK! utasítással kapcsolhatunk képsort 72 ANIMÁCIÓSMÓD! ANIMÁCIÓSMÓD! --- utasítás 1 bemenő adattal ANIMÁCIÓSMÓD! logikai Azt a módot határozza meg, hogy az aktív teknőcök alakja, illetve ezek fázisai milyen stratégiának
megfelelően jelölik a teknőcöt. Az alapbeállítás mindig az ANIMÁCIÓSMÓD! HAMIS. Ebben az esetben a teknőc aktuális alakjaként használt képsor fázisait a teknőc aktuális irányának ábrázolására használja. (Ekkor tehát, ha LÁTHATÓ? a teknőc, akkor mindig az irányának megfelelő fázis jelöli őt.) Fázisok használata Az ANIMÁCIÓSMÓD! IGAZ beállítást akkor használjuk, amikor a képernyőn animációt szeretnénk létrehozni. Ebben a módban a fázisok függetlenek a teknőcök aktuális irányától, mi magunk határozhatjuk meg a FÁZIS! utasítás segítségével, hogy a teknőcöt mikor melyik fázis jelölje rajzlapon. Az ANIMÁCIÓSMÓD! (egy bemenet nélküli szó) az ÚJTEKNŐC utasítás második paraméterén belül közvetlenül is használható, például: ÚJTEKNŐC "TEKI [0 0 180 TF ANIMÁCIÓSMÓD! LÁTHATÓ] A fenti sor szerint a TEKI nevű új teknőc animálható teknőc lesz, azaz a teknőc ANIMÁCIÓSMÓD! IGAZ állapotú
lesz. Hasonlítsuk össze ezt az eljárást a SZÖVEGDOBOZMÓD! utasítással. B BALRA; B --- utasítás 1 bemenő adattal BALRA szög Az összes aktív teknőcöt balra (vagyis az óramutató járásával ellenkező irányban) forgatja el a paraméterként adott (fokokban mért) szöggel. Az első aktív teknőc pillanatnyi irányát az IRÁNY függvény eredményeként ismerhetjük meg. A BALRA szög1 és a JOBBRA szög2 parancsok azonosak, ha szög1=-szög2. Lásd még a JOBBRA függvényt. ? B 90 ; az egyetlen aktív teknőc jelenleg a 0 nevű ? KI IRÁNY 270 ? B -90 ; vagyis JOBBRA 90 ? BALRA 390 ; vagyis BALRA 30 BALRA; B BELÜL? BELÜL? --- függvény 1 vagy 2 bemenő adattal BELÜL? téglalapnyi terület (BELÜL? pont téglalapnyi terület ) (BELÜL? teknőc téglalapnyi terület ) Ha a függvénynek csak egy paramétere van, eredménye akkor lesz IGAZ, ha az első aktív teknőc pillanatnyilag az adott téglalapnyi terület belsejében, vagy ennek határán helyezkedik el. Ha
az első aktív teknőc pillanatnyilag a téglalapon kívül van, akkor a függvény HAMIS értéket ad vissza. 73 Ha a függvénynek két bemenő adata van, melyek közül az első pont, akkor az eredmény abban az esetben IGAZ, ha az adott pont a meghatározott téglalapnyi területen belül (illetve ennek határán) helyezkedik el. Különben az eredmény HAMIS Ha az első bemenet egy teknőc neve, akkor a BELÜL? IGAZ értéket eredményez, ha az adott teknőc pillanatnyilag a téglalapon belül (illetve annak határán) helyezkedik el Ez akkor is érvényes, ha a teknőc éppen nem aktív, sőt akkor is, ha éppen nem látható, lásd még a LÁTHATÓ? eljárást. BETOLDKÉP BETOLDKÉP --- utasítás 1 bemenő adattal BETOLDKÉP képsor BETOLDKÉP LGW fájl Minden egyes aktív teknőc kinyomtatja a rajzlapra a bemenetként szereplő képsor, illetve a bemenő LGW fájlban tárolt képsor első fázisát. A képsor első fázisának tollpontja az aktív teknőc aktuális
pozíciójában lesz, melyet a HELY utasítás eredményeként tudhatunk meg, így tehát meghatározhatjuk a fázis pontos elhelyezkedését a rajzlapon. Amikor a képsort kirajzoltuk a BETOLDKÉP utasítással, akkor ez a rajzlap részévé válik, és nem lehet eltávolítani róla többé, csak magának a lapnak a törlésével. Az aktív teknőcök aktuális alakját is kirajzolhatjuk a rajzlapra a LENYOMAT utasítás alkalmazásával. Az aktív teknőcök aktuális iránya itt nem játszik szerepet: a képsort mindig a normális, „talpon álló helyzetben rajzolják ki a teknőcök. ? ÚJTEKNŐC 0 [-20 0 0] ? ÚJTEKNŐC 1 [20 0 0] ? FIGYELJ MIND ? TF ? LÁTHATÓ ? NÉV "AUTÓ BETÖLTKÉPSOR "AUTO [ ] ? ISMÉTLÉS 5 [E VSZ 100 J VSZ 180 BETOLDKÉP :AUTÓ] BETŰ! BETŰ! --- utasítás 2 bemenő adattal a teknőc által írott szöveg jellemzőinek beállítása BETŰ! szöveg [szám1 szám2 szám3 ] BETŰ! szöveg [szám1 szám2 szám3 szám4 szám5 ] ahol a szám1 nem
negatív, a szám2 0 és 1000 közé eső szám, a szám3, szám4 és szám5 értéke 0, vagy 1 Azt a betűkészletet és -méretet állítja be, melyet az aktív teknőcök a BETŰZD utasítás végrehajtása esetén a rajzlapra való íráshoz használnak. A szöveg első bemenete adja meg a betűkészlet nevét. Ez lehet például a "System, vagy a [Times New Roman] a felhasználható betűkészletek aktuális listája teljes egészében a Windows-beli „felszereltségtől függ. A szám1 a betűméretet határozza meg (pontokban) Ha a paraméter értéke 0, akkor az alapértelmezett betűméretet fogja választani A szám2 a karakter „kövérségét határozza meg. A 400-as érték a Regular vastagságot jelenti, a 800-as érték a Bold vastagságot Ha a szám3 1, akkor a kiírás dőlt betűkkel tör74 ténik, különben a szokásos álló betűket használja. Ha a BETŰ! teljes második bemenete [ ], akkor a System betűkészletet választja. ? ÚJTEKNŐC "TEKI [
] ? FIGYELJ "TEKI ? BETŰ! "Arial [20 800 0] ? ISMÉTLÉS 3 [BETŰZD [Boldog születésnapot kívánok!] J 120] Ha a vízszintes iránytól eltérő irányban is szeretnénk a rajzlapra írni, akkor csak vektor jellegű betűtípust (True Type, Adobe Type) használhatunk. A szám4 ha létezik 0 vagy 1. (Ha nem adott, akkor feltételezett értéke 0) Ha az érték 1, akkor az egész téglalapnyi területet, melyet később a BETŰZD eljárással kiírandó szöveg mérete határoz meg, kitölti a háttér aktuális színével. (Az RGB színek esetén a Windows nem támogatja maradéktalanul ezt a lehetőséget.) A szám4 értékét mindanynyiszor hasznos 1-re állítani, valahányszor egy adott szöveggel teljesen felül akarunk írni egy másik szöveget a rajzlapon Hasonlítsuk össze a következő helyzeteket: ? BETŰ! "Arial [20 0 0 0] BETŰZD "Szia ? VÁRJ 1000 ? BETŰ! "Arial [30 0 0 0] BETŰZD "Világ! ; és ? TR ? BETŰ! "Arial [20 0 0 1]
BETŰZD "Szia ? VÁRJ 1000 ? BETŰ! "Arial [30 0 0 1] BETŰZD "Világ! A szám5 a BETŰZD utasítással való kiírásnak a helyét határozza meg. Ha ez az érték 0, akkor annak a téglalapnyi területnek a bal felső sarka, melybe a szöveget később a BETŰZD utasítással írjuk, a teknőc aktuális pozíciójával egyezik meg. Ha ez az érték 1, akkor a szöveg alapvonalának kezdőpontja egyezik meg az aktuális teknőcpozícióval. Ez megkönnyíti a különböző betűméretű szövegek egy sorba írását: ? TR TF ? BETŰ! "Arial [20 0 0 0 0] BETŰZD "Szia ? IRÁNY! 90 E ELSŐ BETŰNÉGYZET "Szia IRÁNY! 0 ? BETŰ! "Arial [30 0 0 0 0] BETŰZD "Világ ; ez nem szép ? TR ? BETŰ! "Arial [20 0 0 0 1] BETŰZD "Szia ? IRÁNY! 90 E ELSŐ BETŰNÉGYZET "Szia IRÁNY! 0 ? BETŰ! "Arial [30 0 0 0 1] BETŰZD "Világ ; ez már sokkal szebb Ha valamely paraméter nem egész szám, akkor a rendszer először kerekíti a
KEREKÍT függvénnyel. BETŰZD BETŰZD --- utasítás 1 vagy N bemenő adattal BETŰZD szöveg (BETŰZD szöveg1 szöveg2 . ) 75 Hatásaként az összes aktív teknőc kiírja az adott szöveget vagy szövegeket a rajzlapra aktuális pozíciójában, és a BETŰ! utasítással előzőleg beállított betűkészlettel és mérettel. A szöveg1, szöveg2 . a teknőcök aktuális tollszínével megegyező színnel íródik ki (akkor is, ha a teknőcök tolla TOLLATFEL állapotban van) Ezt a lehetőséget a Windows nem támogatja teljes mértékben RGB színű tollak esetén. Ha valamely bemenő szöveg1, szöveg2 . lista, akkor a BETŰZD a külső zárójelek nélkül írja ki őket hasonlóan az írólapon használt KIÍR utasításhoz. A bemenetek kiírásának iránya a teknőc irányára merőleges lesz, tehát egy Északra néző teknőc az adott szöveget vízszintesen írja ki. Bizonyos betűkészlet esetén lehetőségünk van bármilyen irányban írni. BETŰNÉGYZET
BETŰNÉGYZET --- függvény 1 bemenő adattal BETŰNÉGYZET! szöveg Eredménye egy négyelemű, számokat tartalmazó lista [szélesség, magasság, meredekség, belső.ritkítás] Az első két szám annak a téglalapnak a méretét adja meg, melyet lefedne az első aktív teknőc által kiírt szöveg, ha a BETŰZD utasítás hatására kiírná a rajzlapra aktuális betűkészletével és méretével. Jegyezzük meg, hogy valójában semmit nem írunk ki! Az eredménylista harmadik és negyedik száma az adott betűkészlet néhány „finomabb DTP jellemzőjét határozza meg. A szöveg kiírása a BETŰZD utasítás hatására realizálódik. A betűkészlet és a méret beállítására, illetve módosítására a BETŰ! utasítás szolgál E ELŐRE; E --- utasítás 1 bemenő adattal ELŐRE szám Az összes jelenleg aktív teknőcöt az adott számú lépéssel (vagyis képponttal) elmozgatja abba az irányba, amelyikben állnak. Attól függően, hogy az egyes teknőcök
tolla milyen állapotban van (ezalatt a következőkre kell gondolni: TOLLATLE, TOLLATFEL, TOLLRADÍR vagy TOLLVÁLTÓ), vagy egy egyenes szakaszt rajzol (az aktuálisan beállított színnel, tollvastagsággal és mintával), vagy semmit sem rajzol, vagy töröl, illetve invertál egy szakaszt. Ha egy aktív teknőc LÁTHATÓ?, akkor ennek alakja megjelenik a mozgás előtt és után. Jegyezzük meg, hogy az ELŐRE 0 utasítás azt jelenti, hogy előremozdul 0 lépést, azaz egy 1 hosszúságú egyenes vonalat húz (az aktuális pozíciótól az aktuális pozícióig). ELŐRE 1 egylépésnyi haladást eredményez, ezért a rajzolt vonal hossza 2. Ezenfelül: az ELŐRE szám1 és a HÁTRA szám2 függvények eredménye megegyezik, ha szám1=szám2. az ELŐRE 0 ugyanaz, mint a PONT ? E 35 ? E -150 TANULD SOKSZÖG.SPI :LÉPÉS :SZÖG HA :LÉPÉS < 0.5 [VISSZATÉR] E :LÉPÉS B :SZÖG SOKSZÖG.SPI :LÉPÉS-3 :SZÖG VÉGE 76 ? SOKSZÖG.SPI 200 174 EGYMÁSUTÁN EGYMÁSUTÁN ---
utasítás 1 bemenő adattal EGYMÁSUTÁN utasításlista Az összes aktív teknőc (amelyek nevét a KIFIGYEL eredményeként kapott lista tartalmazza) végrehajtja a paraméterként adott utasításlistát. Az utasítás végrehajtása közben mindig csak egy teknőc aktív. Az utasítás végrehajtása előtt aktív állapotban levő teknőcök egymásután külön-külön hajtják végre az utasításlistában szereplő utasításokat, közben a többi teknőc inaktív állapotba kerül. Az utasítás befejezése után ismét aktívvá válik minden teknőc, amelyek előtte aktívak voltak. Az utasításlistában érdekes dolgok adódhatnak a KIFIGYEL függvény alkalmazásából: az adott pillanatban ennek értéke az egyedüli aktív teknőc neve, tehát azé, amelyik éppen végrehajtja a listát. Az EGYMÁSUTÁN utasítás kiértékelése után ugyanazok a teknőcök lesznek aktívak, amelyek előtte azok voltak. Amíg az EGYMÁSUTÁN esetén az aktív teknőcök egymás után
hajtják végre a megadott utasításlistát, tehát adott időben mindig csak egyetlen teknőc munkálkodik, a KÉREM utasítás alkalmazásával minden megszólított teknőc egyszerre, „párhuzamosan végzi el a kívánt feladatokat. ? TR RA ? ISMÉTLÉS 5 [ÚJTEKNŐC HÁNYADIK (M -150 + HÁNYADIK * 50 0 0)] ? FIGYELJ [1 2 3 4 5] ? LÁTHATÓ ? ISMÉTLÉS 40 [E 140 B 189] ? J 180 TOLLSZÍN! 4 ? EGYMÁSUTÁN [ ISMÉTLÉS 40 [E 140 B 189]] ELŐRE; E FÁZIS FÁZIS --- bemenő adat nélküli függvény FÁZIS Eredményül annak a fázisnak a sorszámát kapjuk, mely az első aktív teknőc alakját éppen ábrázolja. Ha a teknőcöt alakjának első fázisával ábrázoljuk, akkor a FÁZIS függvény eredménye 1; ha az 5 fázissal, akkor az eredmény 5 Ha a teknőc aktuális alakja üres képsor, akkor a FÁZIS függvény eredménye 0. A FÁZIS függvény akkor is működik, ha a teknőc a képernyőn LÁTHATÓ, illetve akkor is, ha a teknőc alakját nem látjuk a rajzlapon, mert a
LÁTHATATLAN utasítással eltüntettük onnan. How to Use Phases of an Image ? J 50 ; használjuk az alapalakot (kis háromszög) ? KIÍR FÁZIS 4 77 FÁZIS! FÁZIS! --- utasítás 1 bemenő adattal FÁZIS! szám ahol a szám egy a -32767 és 32767 közé eső egész szám A továbbiakban az aktív teknőcök alakjának adott sorszámú fázisával ábrázolja a teknőcöket. Az utasítás hatása csak azoknál a teknőcöknél mutatkozik meg, melyeknél az ANIMÁCIÓSMÓD! értéke IGAZ. Ha egy teknőc pillanatnyi alakja N fázisból áll, akkor a FÁZIS! 1 hatásaként a teknőcöt az első fázissal ábrázoljuk, a FÁZIS! 2 esetén a második fázissal stb. A bemenő számot a rendszer először modulo N-re redukálja, tehát a FÁZIS! N+1 és a FÁZIS! 1 egyenértékű, csakúgy, mint a FÁZIS! 0 és a FÁZIS! N stb. ? FÁZIS! 4 ? FÁZIS! FÁZIS+1 FÁZISPONT FÁZISPONT --- bemenő adat nélküli függvény FÁZISPONT Eredménye a rajzlap területének azon [X Y szélesség
magasság ] téglalapnyi területe, melyet az első aktív teknőc alakjának pillanatnyilag használt fázisa takar le. Az első két szám, X és Y az első aktív teknőc aktuális pozícióját ábrázolja. Ha az első aktív teknőc pillanatnyilag nem látható (mert előzőleg a LÁTHATATLAN utasítással elrejtettük alakját), akkor a FÁZISPONT függvény eredménye az [X Y 0 0] lista lesz. Ugyanezt az eredményt kapjuk akkor is, ha a teknőc nem láthatatlan, de jelenlegi alakja üres képsor, lásd az ÜRESKÉPSOR utasítást is. FIGYELJ FIGYELJ --- utasítás 1 bemenő adattal FIGYELJ teknőc FIGYELJ teknőclista Az összes bemeneteként adott teknőcöt aktívvá teszi. A Logo indításakor az egyetlen létező és aktív teknőc a 0 nevű teknőc ? KI KIFIGYEL 0 ? ÚJTEKNŐC "TEKI [10 10 90] ? FIGYELJ [TEKI] ? ISMÉTLÉS 4 [E 60 J 90] Az aktuálisan aktív teknőcök listáját (illetve egyetlen aktív teknőc esetén egy egyszerű nevet) a KIFIGYEL függvény
eredményeként kapjuk meg. A teknőcök listabeli sorrendjét az ÚJRASOROL utasítással változtathatjuk meg Bármely létező teknőc, akár aktív, akár nem, szerepelhet a KÉREM eljárás címzettjeként, hogy az adott utasításlistát végrehajtsa. Tetszőleges teknőc a TÖRÖLTEKNŐC utasítással törölhető. H HÁTRA; H --- utasítás 1 bemenő adattal 78 HÁTRA szám Az összes jelenleg aktív teknőcöt a paraméterként adott számú lépéssel (azaz képponttal), az irányukkal ellentétes irányban mozgatja. Attól függően, hogy az egyes teknőcök tolla milyen állapotban van (ezalatt a következőkre kell gondolni: TOLLATLE, TOLLATFEL, TOLLRADÍR vagy TOLLVÁLTÓ), vagy egy egyenes szakaszt rajzol (az aktuálisan beállított színnel, tollvastagsággal és tollmintával), vagy semmit sem rajzol, vagy töröl, illetve invertál egy szakaszt. Ha az aktív teknőc LÁTHATÓ?, akkor alakját a mozgás előtt és után a képernyőn láthatjuk. Érdemes
megjegyezni, hogy a HÁTRA -szám utasítás ugyanazt a hatást éri el, mint az ELŐRE szám. ? HÁTRA 40 ; megtesz hátrafelé 40 lépést ? HÁTRA -40 ; előrelépeget 40 lépést ? ISMÉTLÉS 4 [HÁTRA 100 B 90] ; hátrafelé mozogva egy négyzetet rajzol HAZA HAZA --- bemenő adat nélküli utasítás HAZA Az összes aktív teknőcöt alapkoordinátáiba viszi, melyeket akkor határoztunk meg, amikor a teknőcöt az ÚJTEKNŐC utasítással létrehoztuk. A teknőcök aktuális iránya nem változik meg, hasonlóan változatlan marad a tolluk állapota (TOLLATFEL, TOLLATLE, TOLLRADÍR vagy TOLLVÁLTÓ, a toll színe, mintája és vonalvastagsága) is. Ezért a teknőcök vonalat húznak maguk után, amikor alappozíciójukba visszatérnek, ha a tolluk hegye a papírra ér, vagyis lent van a toll, vagy pedig tollváltó állapotban van. A teknőcök alakja látható marad, ha azelőtt az volt (lásd LÁTHATÓ?). A képernyőt nem törli HÁTRA; H HELY HELY --- bemenő adat nélküli
függvény HELY Eredménye az az [X Y] pont, mely az első aktív teknőc aktuális koordinátáit ábrázolja (a Cartesian koordinátarendszerben). Jegyezzük meg, hogy a Cartesian sík origója a rajzlap középpontjában helyezkedik el. Az aktív teknőcök pillanatnyi pozíciójának megváltoztatására (ami a Cartesian stílusban új [X1 Y1] pont meghatározását jelenti), szolgálnak a HELY!, az XHELY!, az XYHELY! vagy az YHELY! utasítások. ? ÚJTEKNŐC "JANI [20 0 90] ? FIGYELJ "JANI ? KI HELY [20 0] ? E 70 ? KI HELY [90 0] HELY! HELY! --- utasítás 1 bemenő adattal 79 HELY! pont Az összes aktív teknőcöt az adott pontba viszi, de aktuális irányukat változatlanul hagyja. Ha a teknőc tolla TOLLATLE állapotban van, akkor eredeti és új pozícióját vonallal köti össze. Az első aktív teknőc aktuális pozícióját a HELY függvény eredményeként kapjuk meg. Az XHELY!, az XYHELY!, az YHELY! és a HELY! utasítások mellett az aktív teknőcök
pozíciója az ELŐRE, a HÁTRA, a TÖRÖLRAJZLAP, az ALAPHELYZET és a HAZA utasításokkal is megváltoztatható. Ha L egy pont, HELY! :L egyenértékű az XYHELY! ELSŐ :L UTOLSÓ :L parancssorral. ? ÚJTEKNŐC "JANI [20 0 0] ? ÚJTEKNŐC "FERI [40 0 0] ? FIGYELJ MIND ? EGYMÁSUTÁN [KI HELY] [0 0] [20 0] [40 0] ? HELY! [-220 150] ? E 50 ; próbáljuk ki! IRÁNY IRÁNY --- bemenő adat nélküli függvény IRÁNY Eredményeként az első aktív teknőc aktuális irányát jelző szöget kapjuk meg. Azt a szöget kapjuk meg amennyivel az északi iránytól az óramutató járásával megegyező irányban fordulva az első aktív teknőc irányáig jutunk el. Ha a teknőc egyenesen északra néz, akkor 0, keletre nézve 90 stb. a függvény értéke Az irány megváltoztatására a JOBBRA, a BALRA vagy az IRÁNY! utasítást használjuk A 0 nevű alapteknőc alapiránya 0, ami az ÚJTEKNŐC utasítással átállítható (illetve bármely új teknőcnél definiálható).
IRÁNY! IRÁNY! --- utasítás 1 bemenő adattal IRÁNY! szög Elfordítja az aktív teknőcöket úgy, hogy új irányuk megegyezzen az adott szöggel (azaz aktuális irányuktól függetlenül). A Logo a szögeket északtól kezdődően, az óramutató járásával megegyezően, fokokban méri, tehát az IRÁNY! 0 hatására az összes aktív teknőc északra fog nézni, az IRÁNY! 90 hatására keletre stb. Az első aktív teknőc aktuális iránya az IRÁNY függvény eredményéből olvasható ki. ? ÚJTEKNŐC 1 [ ] ; az [ ] itt azonos a [ 0 0 0 ]-val ? ÚJTEKNŐC 2 [ ] ? KÉREM 2 [IRÁNY! 180] ? FIGYELJ [1 2] ? E 100 J 45 E 100 80 IRÁNYSZÖG IRÁNYSZÖG --- függvény 1 bemenő adattal IRÁNYSZÖG pont IRÁNYSZÖG teknőc Eredménye az az irány, melybe az első aktív teknőcnek kellene fordulnia ahhoz, hogy az adott pont által meghatározott pozíció felé nézzen. Az irányt északtól kezdődően, az óramutató járásával megegyezően, fokokban mérjük. Ha a
bemenet egy teknőc, akkor a függvény eredménye az az irány, melybe az első aktív teknőcnek fordulnia kellene, hogy az adott teknőc felé nézzen. Jegyezzük meg, hogy az IRÁNYSZÖG függvény eredménye nem az a szög, amellyel a teknőcnek balra vagy jobbra kellene fordulnia, hogy az adott pontra nézzen. Ennek ellenére az eredményt felhasználhatjuk az IRÁNY! utasításban, például: ? ÚJTEKNŐC "ÉVI [60 40 0] ? FIGYELJ 0 E 40 ; legyen a 0 az egyetlen aktív teknőc ? IRÁNY! IRÁNYSZÖG KÉREM "ÉVI [HELY] ; forduljon a 0 ÉVI felé ? KI IRÁNY 90 J JOBBRA; J --- utasítás 1 bemenő adattal JOBBRA szög Az összes aktív teknőcöt elforgatja jobbra (vagyis az óramutató járásának megfelelően) az adott szöggel (fokokban mérve). Az első aktív teknőc aktuális irányát az IRÁNY függvény eredményéből olvashatjuk ki. A JOBBRA szög és a BALRA szög parancsok hatása megegyezik, lásd még a BALRA utasítást. ? J 90 ; legyen az egyetlen
aktív teknőc a 0 nevű ? KI IRÁNY 90 ? J -90 ; vagyis BALRA 90 ? J 380 ; vagyis JOBBRA 20 JOBBRA; J KÉREM KÉREM --- utasítás 2 bemenő adattal függvény 2 bemenő adattal utasítás: KÉREM teknőc utasításlista KÉREM teknőclista utasításlista függvény: KÉREM teknőc [ kifejezés ] KÉREM teknőclista [ kifejezés ] Ha a KÉREM eljárás második paramétere végrehajtandó utasításlista, akkor a KÉREM utasításként szerepel. Ha ez a bemenő adat kifejezés (melynek valamilyen érték az eredménye), akkor a KÉREM alapszó függvényként viselkedik. Ha a KÉREM eljárás utasítás, akkor az első paraméter által meghatározott teknőc, illetve teknőcök végrehajtják a második bemenetként megadott utasításokat. A fenti teknőcök egyaránt lehetnek pillanatnyilag aktívak vagy sem ideiglenesen aktívvá válnak arra 81 az időre, amíg az utasításlista elemeit végrehajtják. Az első paraméterben felsorolt öszszes teknőc párhuzamosan hajtja
végre az utasításlista elemeit, ellentétben az EGYMÁSUTÁN utasítással, melynek hatására az aktív teknőcök egyesével hajtják végre az utasításokat. Amikor a KÉREM utasítás befejeződött, a KIFIGYEL eredményeként kapott aktív teknőcök listája ugyanaz lesz, mint a parancs kiadása előtt volt. ? ÚJTEKNŐC "TEKI [10 10 90] ? KI KIFIGYEL 0 ? KÉREM "TEKI [(KI "Teki "a HELY "pontban "áll)] Teki a [10 10] pontban áll Ha a KÉREM függvényként szerepel, akkor az első paraméterrel megcímzett teknőc, illetve teknőcök egy kis időre ideiglenesen aktívvá válnak, és a rendszer kiértékeli a második bemenetet a kifejezés eredménye lesz a függvény által visszaadott érték, amely az első teknőccel kapcsolatos eredményt adja. Amikor a KÉREM függvény befejeződött, azaz megadja az eredményt, a KIFIGYEL kimeneteként kapott aktív teknőcök listája ugyanaz lesz, mint a parancs kiadása előtt volt. ? ÚJTEKNŐC
"TEKI [10 10 90] ? KI KIFIGYEL 0 ? (KI "Teki "a KÉREM "TEKI [HELY] "pontban "áll) Teki a [10 10] pontban áll KIFIGYEL KIFIGYEL --- bemenő adat nélküli függvény KIFIGYEL Ha pillanatnyilag egyetlen aktív teknőcünk van, akkor eredményként ennek nevét kapjuk. Különben eredménye az összes aktuálisan aktív teknőcöt tartalmazó lista Ezt a listát a FIGYELJ utasítással módosíthatjuk. Legyünk figyelmesek, és ne keverjük össze a KIFIGYEL listáját a MIND függvény eredményével, mely megegyezik az összes pillanatnyilag létező teknőc nevét tartalmazó listával, melyben az aktív és passzív teknőcök neve is szerepel. A KIFIGYEL listájában a teknőcök sorrendje annak a sorrendnek felel meg, melyben az ÚJTEKNŐC utasítással létrehoztuk azokat. Ez a sorrend azonban megváltoztatható az ÚJRASOROL utasítás alkalmazásával. A KIFIGYEL függvényt gyakran használjuk az EGYMÁSUTÁN utasítással együtt. ? KI KIFIGYEL
0 ? KI MIND [0] KIHASÍTKÉP KIHASÍTKÉP --- függvény 1 bemenő adattal KIHASÍTKÉP [ szám1 szám2 szám3 szám4 ] 82 Eredményeként egy egyetlen fázisból álló képsort kapunk. Ezt a képsort az első aktív teknőc készíti (mintha fényképezőgépet használna), a rajzlapon őt körülvelő pillanatnyi környezetről. A 4 számból álló lista [szám1 szám2 szám3 szám4] határozza meg azt a téglalap alakú területet a rajzlapon az első aktív teknőc aktuális pozíciójához képest relatívan amelyiket az új képsorba kell másolni. A lista elemei határozzák meg a kép széleit (képpontokban) az első aktív teknőc aktuális pozíciójához képest: szám1 távolság a terület bal határáig szám2 távolság a terület felső határáig szám3 távolság a terület jobb határáig szám4 távolság a terület alsó határáig Ennek a területnek teljes egészében a rajzlapon kell lennie. A bemenő lista két első száma határozza meg az új képsor
tollpontját [szám1 szám2] is. Az eredményként kapott képsor valódi szélességét és magasságát a következőképpen kapjuk meg: szám1+szám3+1 és szám2+num4+1, melyek egyike sem lehet 255-nél nagyobb. A tollpont helyzete (a képsor bal felső sarkához képest relatívan) nem szükséges, hogy a képsoron belül legyen. Így, például, a [-100 -100 140 160] bemenet megfelelő területet határoz meg a KIHASÍTKÉP utasítás számára, s az eredményképsor mérete [41 61], tollpontjának helye [-100 -100] lesz. A KIHASÍTKÉP [0 10 0 5] egy [1 16] méretű, és [0 10] tollpontú képsort készít el. Jegyezzük meg, hogy egyetlen teknőc alakja sem az első aktív teknőcé, sem másiké sem része az eredményképsornak, hacsak először nem készítünk róla egy másolatot a rajzlapra a LENYOMAT utasítással. ? TV! 3 TSZ! 12 ? ISMÉTLÉS 4 [E 10 J 90] ; kis piros négyzet ? NÉV "ÚJ.ALAK KIHASÍTKÉP [1 11 11 1] ? KI :ÚJ.ALAK {képsor1} ; használjuk a
Memóriaablakot ; ellenőrzésre Ahhoz, hogy egy teknőc aktuális alakját megváltoztassuk, használjuk az ALAK! utasítást: ? ALAK! :ÚJ.ALAK ? TR ? TV! 1 TSZ! 0 LÁTHATÓ ? E 50 ? ISMÉTLÉS 4 [E 50 J 90] Az eredményképsor átlátszóságának tetszőleges fajtáját az ÁTLÁTSZÓMÓD! utasítás alkalmazásával határozhatjuk meg. KÍVÜL? KÍVÜL? --- függvény 1 vagy 2 bemenő adattal 83 KÍVÜL? téglalapnyi terület (KÍVÜL? pont téglalapnyi terület ) (KÍVÜL? teknőc téglalapnyi terület ) Ha a függvénynek csak egy paramétere van, akkor eredménye IGAZ, ha az első aktív teknőc pillanatnyilag az adott téglalapnyi területen kívül helyezkedik el. Ha az első aktív teknőc a téglalapon belül, vagy ennek határán található, akkor a függvény eredménye HAMIS. Ha a függvénynek két bemenő paramétere van, melyek közül az első egy pont, akkor az eredmény akkor lesz IGAZ, ha az adott pont a téglalapnyi területen kívül helyezkedik el.
Különben az eredmény a HAMIS értéket veszi fel. Ha az első bemenet egy teknőc neve, a KÍVÜL? akkor ad IGAZ értéket, ha az adott teknőc pillanatnyilag a téglalapon kívül van. Ez akkor is érvényes, ha a teknőc éppen nem aktív, sőt akkor is, ha pillanatnyilag nem látható, lásd még a LÁTHATÓ? eljárást. KÖRKÖRÖSEN KÖRKÖRÖSEN --- utasítás 1 bemenő adattal vagy bemenő adat nélkül KÖRKÖRÖSEN (KÖRKÖRÖSEN téglalapnyi terület ) (KÖRKÖRÖSEN [ ]) Az utasítás az aktív teknőcök számára definiálja az általuk felhasználható területet. Ez a terület nem más, mint amelyben a felhasználó láthatja a teknőcöt, melyben a teknőc mozoghat, rajzolhat, sokszöget hozhat létre a SOKSZÖG vagy a SOKSZÖGVONAL utasítással, melyben írhat a BETŰZD utasítással, melyet kitölthet a TÖLT eljárással stb. Ha az utasítást paraméter nélkül adjuk ki, és eddig még nem határoztunk meg az adott teknőc számára felhasználható területet,
az általa elérhető terület az aktuális rajzlappal fog megegyezni. Ha a bemenet egy téglalapnyi terület, akkor ez határozza meg a felhasználható területet Ha a bemenet üres lista [ ], akkor a korábbi beállítások törlésével újradefiniálja a felhasználható területet, s ezzel ismét a teljes rajzlap lesz az elérhető terület. A KÖRKÖRÖSEN utasítás azt is meghatározza, hogy a teknőc hogyan viselkedjen, amikor eléri a terület határát. Az utasítás használatával megadjuk, hogy a teknőc az úgynevezett körkörös módot használja, vagyis egy olyan módot, melyben akármekkorát mozdul is el (az ELŐRE vagy más utasítások hatásaként), mindenképpen a rajzlapon marad. Valahányszor egy „körkörös módban lévő teknőc kimászik a képernyőről, automatikusan körbemászik rajta, és újra feltűnik a rajzlap ellentétes határán Az ÚJTEKNŐC utasítással létrehozott új teknőc mindig körkörös módban van. Ahhoz, hogy ezt ablak-módba
kapcsoljuk, tegyük aktívvá, és használjuk az ABLAK utasítást. Érdekes megfigyelni a hatást, amikor néhány körkörös módban dolgozó teknőc mellett a többieket ezekkel párhuzamosan ablak-módban működtetjük. ? TR ? J 5.3 ? E 25000 LÁTHATÓ LÁTHATÓ --- bemenő adat nélküli utasítás LÁTHATÓ Az utasítás hatására az összes aktív teknőc alakja megjelenik a képernyőn. 84 Az aktív teknőcök a LÁTHATATLAN utasítás kiadásával eltüntethetők a képernyőről. Azt, hogy az első aktív teknőc alakja pillanatnyilag látható-e a rajzlapon, a LÁTHATÓ? függvény eredménye mutatja meg. A rajzolás sebessége látható teknőc (vagy teknőcök) esetén sokkal lassabb. Ezért ésszerű néha elrejteni a teknőcöket a képernyőről Az aktív teknőcök alakjának megváltoztatására szolgál az ALAK! utasítás, tetszőleges képsor bemenettel. ? LÁTHATÓ ? ISMÉTLÉS 90 [E 140 J 172] ? TF ? H 150 ? TL ? LÁTHATATLAN ? ISMÉTLÉS 100 [E 80 J
176] ; hasonlítsuk össze a rajzolás sebességét! Más lehetőségek: a szürke plusz billentyű (a numerikus billentyűzeten) az összes aktív teknőcöt láthatóvá teszi, a Shift + szürke plusz billentyű (a numerikus billentyűzeten) az összes teknőcöt (még a pillanatnyilag nem aktívakat is) megjeleníti, lásd még az About Other Keys in the Main Window megjegyzést is. LÁTHATÓ? LÁTHATÓ? --- bemenő adat nélküli függvény LÁTHATÓ? Eredménye IGAZ értékű, ha az első aktív teknőc aktuálisan látható a rajzlapon. Különben a kimenet HAMIS Az aktív teknőcök a LÁTHATÓ utasítás alkalmazásával jeleníthetők meg a rajzlapon. Az összes aktív teknőcöt elrejthetjük a képernyőről a LÁTHATATLAN utasítással. Több teknőc létezése esetén egy adott teknőcöt a KÉREM és a LÁTHATÓ utasítások kombinációjával tehetünk láthatóvá. ? TF ? B 90 ? ISMÉTLÉS 50 [E 5 HA LÁTHATÓ? [LÁTHATATLAN] [LÁTHATÓ] ] LÁTHATATLAN LÁTHATATLAN
--- bemenő adat nélküli utasítás LÁTHATATLAN Az utasítás eltünteti az összes aktív teknőcöt a képernyőről. Ha az aktív teknőcök alakját újra látni szeretnénk a képernyőn, használjuk a LÁTHATÓ utasítást. A LÁTHATÓ? függvény eredményeként megtudjuk, hogy az első aktív teknőcöt pillanatnyilag ábrázolja-e a képernyőn a rendszer Amikor a teknőc (vagy teknőcök) láthatóak, akkor a rajzolás sokkal lassabb. Emiatt indokolt elrejteni a teknőcöket a képerenyőről. Az összes aktív teknőc alakjának megváltoztatása az ALAK! utasítással lehetséges, ha ennek bemenete valamelyik képsor. 85 ? LÁTHATÓ ? ISMÉTLÉS 90 [E 140 J 172] ? TOLLATFEL ? H 150 ? TOLLATLE ? LÁTHATATLAN ? ISMÉTLÉS 100 [E 80 J 176] ; hasonlítsuk össze a rajzolás sebességét Más lehetőségek: a szürke mínusz billentyű (a numerikus billentyűzeten) az összes aktív teknőcöt elrejti, a Shift + szürke mínusz billentyű (a numerikus billentyűzeten)
az összes teknőcöt elrejti, lásd még Egyéb billentyűk a Fő-ablakban. LENYOMAT LENYOMAT --- bemenő adat nélküli utasítás LENYOMAT Az összes aktív teknőc kinyomtatja alakját (illetve ennek aktuális fázisát) a rajzlapra. A LENYOMAT utasítással a képsor fázisa a rajzlap tartalmának részévé válik. Ne keverjük össze a LENYOMAT és a BETOLDKÉP utasításokat, mivel ez utóbbi a bemeneteként adott képsort rajzolja ki, nem magának a teknőcnek az alakját. Legyen az egyetlen aktív teknőcünk a 0 nevű, és legyen ennek alakja az alapalak (vagyis a kis háromszög): ? FIGYELJ 0 ? TF ? LÁTHATÓ ? ISMÉTLÉS 24 [E 45 LENYOMAT J 165] ? J 90 E 110 MIND MIND --- bemenő adat nélküli függvény MIND A függvény eredményeként a jelenleg létező teknőcök listáját kapjuk meg, mely az ÚJTEKNŐC utasítással létrehozott összes teknőc nevét tartalmazza. Ne keverjük össze ezt a listát a KIFIGYEL függvény eredményével, melyben csak az aktív
teknőcök neve szerepel. Az adott pillanatban létező teknőcök közül néhány vagy akár mind lehet nem aktív is. ? KI MIND [0 PETI KATI 1 2] ? KI KIFIGYEL 0 A MIND függvény eredményeként kapott listában a teknőcök olyan sorrendben szerepelnek, amilyenben őket az ÚJTEKNŐC paranccsal létrehoztuk. Ezt a sorrendet az ÚJRASOROL utasítás segítségével változtathatjuk meg. A teknőcök törlésére a TÖRÖLTEKNŐC parancs szolgál. A TÖRÖLMUNKA eljárás az összes teknőcöt törli, 86 és egyben létrehozza az alapteknőcöt, melynek neve 0, és elhelyezi a [0 0] pontba, a rajzlap origójába. PONT PONT --- bemenő adat nélküli utasítás PONT Minden aktív teknőc, melynek tolla TOLLATLE állapotú, kitesz egy pontot az aktuális pozíciójában, tolla aktuális színének és vonalvastagságának megfelelően. Jegyezzük meg, hogy a PONT nem más, mint az ELŐRE 0, lásd még az ELŐRE eljárást. PONTSZÍN PONTSZÍN --- bemenő adat nélküli függvény
PONTSZÍN Eredménye egy 0 és 15 közé eső szám, attól függően, hogy a rajzlapon az első aktív teknőc aktuális pozíciójában levő pontnak milyen színe van. Az első aktív teknőc koordinátáinak megismeréséhez használjuk a HELY függvényt. A rajzlap teljes hátterének színét a RAJZLAPSZÍN! utasítással változtathatjuk meg. A teljes háttér jelenlegi színét (mely bármelyik pont aktuális színétől különbözhet) a RAJZLAPSZÍN függvény eredményéből olvashatjuk le. ? RAJZLAPSZÍN! 7 ? TR ? KI PONTSZÍN 7 ; most a rajzlap minden egyes pontja szürke SOKSZÖG SOKSZÖG --- utasítás 1 bemenő adattal SOKSZÖG sokszöglista Az összes aktív teknőc egy a bemenő sokszöglistának megfelelő kitöltött sokszöget rajzol a rajzlapra a következő módon: Ha a lista az s1 s2 számokkal kezdődik, akkor ezek közül az első az ELŐRE s1 utasítást ábrázolja, a második pedig a JOBBRA s2 parancsot. Ha a következő két elem szintén szám, akkor
ugyanezen a módon értékeli őket a Logo stb. Így a: ? SOKSZÖG [100 90 100 90 100 90 100 90] egy kitöltött négyzetet eredményez. Ha s1 (nem negatív) szám, és s2 sokszöglista, akkor a párnak megfelelő utasításcsokor az s2 sokszöglista s1-szer való ismétlését eredményezi. Így a: ? SOKSZÖG [4 [100 90] ] hatására ugyanazt a négyzetet kapjuk, mint fent. A sokszög körvonalát a teknőcök az aktuális tollszínükkel rajzolják, és az aktuális kitöltőszínnel és töltőmintával töltik ki a belső tartományt. 87 Az összes aktív teknőc töltőszínét a TÖLTŐSZÍN! utasítással állíthatjuk be. Amíg nem használjuk ezt az utasítást, a töltőszín mindig megegyezik a pillanatnyi tollszínnel. Az első aktív teknőc aktuális töltőszínének lekérdezésére szolgál a TÖLTŐSZÍN függvény. Az összes aktív teknőc kitöltőmintáját a TÖLTŐMINTA! utasítással állíthatjuk be. Az első aktív teknőc aktuális kitöltőmintáját a
TÖLTŐMINTA függvény eredményéből olvashatjuk ki. A töltőminta és töltőszín fenti beállításai vonatkoznak a TÖLT utasításra is. Összetettebb sokszöglista megadásával bonyolultabb alakzatokat is rajzolhatunk. Próbáljuk ki az alábbiakat: ? ÚJTEKNŐC 0 [0 0 0] ? ÚJTEKNŐC 1 [0 0 180] ? FIGYELJ [0 1] ? TF ? TOLLSZÍN! 4 ? TÖLTŐSZÍN! 8 ? SOKSZÖG [5 [100 144]] ? J 90 ? SOKSZÖG [11 [23 134 39 83 5 [45 99]]] Ha egy sokszöglista által meghatározott sokszög körvonala nem záródik (vagyis különböző a kezdő- és a végpontja), akkor a SOKSZÖG utasítás bezárja ezt, egy további, „záró-vonal hozzáadásával. Így a következő sokszöglisták ugyanazt a sokszöget ábrázolják [100 120 100 120], [100 120 100 120 100 120] és [3 [100 120]]. A SOKSZÖG utasítás mindig kitölti a sokszög belsejét, ami a felhasználó által (különösen bonyolult sokszögek esetén) nem mindig határozható meg előre. SOKSZÖGVONAL SOKSZÖGVONAL --- utasítás
1 bemenő adattal SOKSZÖGVONAL sokszöglista Az összes aktív teknőc egy a bemenő sokszöglistának megfelelő, nem kitöltött sokszöget rajzol a rajzlapra a következő módon: Ha a lista az s1 s2 számokkal kezdődik, akkor ezek közül az első az ELŐRE s1 utasítást ábrázolja, a második pedig a JOBBRA s2 parancsot. Ha a következő két elem szintén szám, akkor ugyanezen a módon értékeli őket a Logo stb. Így a: ? SOKSZÖGVONAL [100 90 100 90 100 90 100 90] eredményeként egy nem kitöltött négyzetet kapunk. Ha s1 (nem negatív) szám, és s2 sokszöglista, akkor a párnak megfelelő utasításcsokor az s2 sokszöglistaz s1-szer való ismétlését eredményezi. Ezért a: ? SOKSZÖGVONAL [4 [100 90] ] hatására ugyanahhoz a kitöltetlen négyzethez jutunk, mint fent. A teknőcök a sokszög körvonalát az aktuális tollszínükkel rajzolják, amit a TOLLSZÍN utasítás segítségével lehet megváltoztatni. Összetettebb sokszöglisták meghatározásával
bonyolultabb alakzatokat is rajzolhatunk. Próbáljuk ki az alábbiakat: 88 ? ÚJTEKNŐC 0 [0 0 0] ? ÚJTEKNŐC 1 [0 0 180] ? FIGYELJ [0 1] ? TF ? TSZ! 4 ? SOKSZÖGVONAL [5 [100 144]] ? J 90 ? SOKSZÖGVONAL [11 [23 134 39 83 5 [45 99]]] Ha egy sokszöglista által meghatározott sokszög körvonala nem záródik (vagyis különböző a kezdő- és a végpontja), akkor a SOKSZÖGVONAL utasítás bezárja ezt, egy további, „záró-vonal hozzáadásával. Így a következő sokszöglisták ugyanazt a sokszöget ábrázolják [100 120 100 120], [100 120 100 120 100 120] és [3 [100 120]]. SZÖVEGDOBOZ SZÖVEGDOBOZ --- függvény 1 bemenő adattal SZÖVEGDOBOZ [ ] SZÖVEGDOBOZ szó ahola szó a következők egyike: SIZE, TITLE, BG, FRAME, FROM, PP, OFFSET, MARGIN, EDIT, ASIZE és MOUSE Ha bemenetként üres lista szerepel, akkor a függvény eredménye az első aktív szövegdobozteknőc összes beállítását tartalmazó lista, melyben azon beállítások is szerepelnek, melyeket
nem módosítottunk, s így megtartották az eredeti értéküket: ? ÚJTEKNŐC 1 [100 -100 0] ? KÉREM 1 [SZÖVEGDOBOZMÓD! "IGAZ LÁTHATÓ] ? NÉV 1 98765 ? KÉREM 1 [KI SZÖVEGDOBOZ [ ]] [PP 1 SIZE [0 0] TITLE 1 FRAME 1 BG 15 EDIT 1 OFFSET 0 MARGIN 0 FROM [0 0]] Ha a bemenet a fent felsorolt szavak valamelyike, akkor a függvény eredményeként az adott kulcsszónak megfelelő beállítást kapjuk meg. A fenti kulcsszavak közül azok magyarázata, melyek a függvényhez tartozó utasítás mellett is szerepelhetnek, a SZÖVEGDOBOZ! leírásánál olvashatók. A kivételként adódó két szó jelentése a következő: ha bemenő paraméterként a SIZE szó szerepel, akkor a függvény eredményeként a szövegdoboz aktuális méretét kapjuk, mely abban az esetben különbözhet a SIZE-tól, ha ezt nem adtuk meg, és ezzel a Logo döntésére bíztuk az aktuális méret meghatározását. A másik lehetséges bemenet a MOUSE szó. Ebben az esetben az eredmény [ ] üres
lista, vagy egy olyan [O S] lista, melyben a szövegdoboz azon oszlop- (O) és sorkoordinátái (S) szerepelnek, mely pozíción álló karakterre az egérrel kattintottunk. Tehát ha a RÁKATTINTOTT eredménye nem ÜRES?, akkor a KÉREM RÁKATTINTOTT [SZÖVEGDOBOZ "MOUSE] eredményeként a megfelelő sor- és oszlopkoordinátákat kapjuk. Jegyezzük meg, hogy sem a SIZE, sem a MOUSE lehetőséget nem használhatjuk a SZÖVEGDOBOZ! parancs érvényes bemeneteként. Szövegdobozteknőc létrehozása 89 SZÖVEGDOBOZ! SZÖVEGDOBOZ! --- utasítás 1 bemenő adattal SZÖVEGDOBOZ! lista ahola lista egy következő formátumú lista [kulcsszó1 érték1 kulcsszó2 érték2. ], ahol az összes kulcsszó a következő szavak közül választható: SIZE, TITLE, BG, FRAME, FROM, PP, OFFSET, MARGIN és EDIT A szövegdobozok több tulajdonságának beállítására van lehetőségünk, ilyenek a méret, a címsor, a háttérszín, a kerettípus, korlát a változók elfogadható
értékére (a numerikus értékek esetén), az értékek kijelzésének stílusa a doboz belsejében, az offset, a margó és a szerkesztés megengedése, illetve letiltása. Figyeljük meg, hogy a Comenius Logo jelen verziójában a szövegdobozok tulajdonságait csak a Logo alapszavainak alkalmazásával adhatjuk meg, erre menüpont nem szolgál. A SZÖVEGDOBOZ! utasítással az összes aktív szövegdobozteknőc megfelelő tulajdonságait állíthatjuk be. A fenti kulcsszavak érvényes értékei és jelentésük a következőkben olvasható: A Méret beállítása: Az aktív szövegdobozteknőcök méretének beállításához használjuk a SZÖVEGDOBOZ! [SIZE [O S]] utasítást, ahol az [O S] két egész számból álló lista. Az alapbeállítás [ ] vagy az ezzel megegyező [0 0], melyek esetén a Logo a szövegdobozban megjelenő változó aktuális értékének megfelelő méretűre állítja a szövegdobozt. (Ha nem adtuk meg a szövegdoboz méretét, akkor a SZÖVEGDOBOZ
függvény eredményeként megkaphatjuk aktuális méretét.) Ha szerepel az utasítás paraméterében a SIZE kulcsszó, akkor mindkét adott számnak egésznek, és 1-nél nagyobbnak kell lennie. Az O a szövegdoboz oszlopainak számát adja meg, értéke legfeljebb 80 lehet. Az S a szövegdoboz sorainak számát határozza meg, értéke legfeljebb 25 lehet. Ha a szövegdoboz egy slider, akkor ennek mindig egysorosnak (vízszintes slider) vagy egyoszloposnak (függőleges slider) kell lennie. Ezért a slider méretének megadása esetén a rendszer az O és S értékek közül csak a nagyobbat fogja figyelembe venni Ez a slider a vízszintes méretét határozza meg, ha O S, illetve a függőleges méretét, ha O < S. A Címsor beállítása: A TITLE kulcsszó alapértéke 1, melynek jelentése az, hogy a megfelelő szövegdoboz (ami valójában egy ablak) rendelkezik címsorral, melyben a dobozhoz rendelt változó neve olvasható. Ha a kulcsszó értékét 0-ra állítjuk, akkor
a címsor nem jelenik meg. A függőleges slider mindig címsor nélkül látható A Háttérszín beállítása: A háttér színe a SZÖVEGDOBOZ! [BG szín] utasítás kiadásával állítható be az egyik alapszínre, illetve a 1 érték használatával átlátszó hátteret adhatunk szövegdobozunknak. Az alapértelmezés szerint a háttér színe fehér, tehát az érték 15 (illetve sliderek esetén 7). Jegyezzük meg, hogy ha a képernyőn látható szövegdobozok némelyike átlátszó háttérszínű, akkor a Logo működése lelassulhat A Keret beállítása: Alapértelmezésben a FRAME kulcsszó értéke 1, melynek jelentése az, hogy a megfelelő szövegdoboz (ami valójában egy ablak) kerettel rendelkezik. Ha a kulcsszó értékét 0-ra állítjuk be, akkor a rendszer nem jelzi ki a keretet. A Változó értékhalmazának beállítása: Ha a szövegdobozban megjelenő X változó elfogadható értékeit egy [A, B] zárt intervallumra szeretnénk korlátozni, melynek
mindkét határa egész szám, akkor ez a SZÖVEGDOBOZ! [FROM [A B]] utasítással megtehető. Az alapbeállítás [ ], vagy az ezzel megegyező [0 0], melyek jelentése szerint az X értékeire semmiféle kikötést nem teszünk (még az sem feltétel, hogy numerikus értékű változó legyen). Ha a FROM [A B] (ahol A < B) utasítással megadunk egy intervallumot, akkor A és B értéke csak egész szám lehet. 90 Ezután abban az esetben, ha a szövegdobozhoz tartozó X változónak (ha már létezik) nem megfelelő értéket próbál adni a felhasználó, a változó az A értékét veszi fel. Ez alól a szabály alól egyetlen kivétel van, ha egy B értékénél nagyobb számot próbálunk megadni, akkor a változó a B értékét veszi fel. Ha a szövegdobozteknőcöt hozzuk létre első lépésként a változó értékének megfelelő korlátozásával, majd ezután készítjük el a hozzá tartozó változót, hibás értéket adva ennek, akkor szintén a fenti
szabályt alkalmazza a rendszer: ? ÚJTEKNŐC "Z [LÁTHATÓ] ? FIGYELJ "Z ? SZÖVEGDOBOZMÓD! "IGAZ ? SZÖVEGDOBOZ! [FROM [1 100]] ? NÉV "Z "HELLO ? KI :Z 1 Az elfogadható érték beállításához megadott intervallumnak legalább 2 különböző számot kell tartalmaznia, emiatt a SZÖVEGDOBOZ! [FROM .] utasítás számára nem szerepelhet érvényes bemenetként az [A, A] típusú intervallum. A Stílus beállítása (szép kiírás): Az opció alkalmazásával megadhatjuk a szövegdobozban megjelenő tartalom kijelzésének módját. A PP kulcsszó értéke 1 és 6 közötti egész szám lehet, melyek közül az 1 az alapérték. Ha a beállított érték: 1 akkor a szövegdoboz tartalma a Memóriaablak ellenőrző ablakában megjelenő módon lesz látható, 2 akkor a szövegdoboz tartalma úgy jelenik meg, ahogy a KIÍRJEL utasítás hatására jelenne meg az írólapon, tehát egyetlen hosszú sorban, 3 akkor a szövegdoboz tartalma egy sorban,
egyetlen hosszú szóként jelenik meg, 4 akkor a szövegdoboz tartalma úgy jeleneik meg, ahogy a KIÍRSOR utasítás hatására jelenne meg az írólapon, tehát listákat tartalmazó lista esetén a belső listák külön sorokba kerülnek, 5 akkor a hatás a 4 értékkel megegyező, a különbség az, hogy a szövegdoboz belsejében megjelenő szöveg színét is megadhatjuk. Ha a sorba beszúrunk egy listát, mely egy 0 és 15 közötti egész számot tartalmaz, a 16 alapszín egyikének számát, akkor az ezt a listát követő szöveg a sor végéig, illetve egy másik színmegadásig az adott színnel kiírva jelenik meg, 6 akkor a szövegdoboz sliderré válik, tehát ezt az értéket csak abban az esetben alkalmazhatjuk, ha a hozzá tartozó változó értéke egész szám. A slider segítségével a változó aktuális értéke a görgető doboz helyzetével mutatható meg. Slider esetén mindig meg kell adnunk az elfogadható értékek intervallumát a FROM kulcsszóval. Ha
ezt mégsem tennénk meg, akkor a rendszer az [1 10] alapbeállítást használja. A SIZE kulcsszó értékétől függően a slider függőleges, illetve vízszintes lehet Az Offset beállítása: Az OFFSET kulcsszó értéke -999 és 999 közé eső tetszőleges egész szám lehet, az alapérték 1. Ha a szövegdobozhoz tartozó X változó értéke többsoros szöveg (tehát ha az X teknőc PP opcióját 1, 4 vagy 5 értékűre állítjuk 91 be), akkor előfordulhat, hogy a szövegdobozban csak a szöveg egy része fér el. Az OFFSET kulcsszó beállításával megadhatjuk, hogy mely részt szeretnénk a szövegdobozban látni. Az OFFSET 1 beállítás esetén a szövegdoboz legfelső sorában az aktuális szöveg első sora jelenik meg. Ha a beállítás OFFSET 2, akkor a szövegdoboz legfelső sorában az aktuális szöveg második sora látható stb. Az OFFSET -1 érték azt jelenti, hogy a szövegdoboz legalsó sorában az aktuális szöveg utolsó sorát láthatjuk Ha az
OFFSET -2 adjuk meg, akkor a szövegdoboz legutolsó sorában az aktuális szöveg utolsó előtti sora jelenik meg stb. Az OFFSET lehetőség hatása csak abban az esetben észlelhető, ha maga a szöveg nagyobb, mint amekkora a szövegdobozban elférne. A Margó beállítása: A MARGIN kulcsszó értéke a -99 és 99 közé eső tetszőleges egész szám lehet, az alapérték 0. A MARGIN 1 beállítás esetén a szövegdoboz első oszlopa üres marad, és ennek megfelelően a teljes szöveg egy karakterrel jobbra tolódik el. Tetszőleges más pozitív szám alkalmazása esetén az adott számnak megfelelő számú oszloppal tolódik el a szöveg jobbra. Ha negatív számot adunk meg, akkor a szöveg elmozdítása bal felé történik A Szerkesztés beállítása: Az EDIT kulcsszó értéke 0 vagy 1 lehet, az alapérték 1 (kivéve a sliders esetén, ugyanis ekkor az alapérték 0). Ha egy X szövegdobozteknőc esetén az EDIT opciót 1 értékre állítjuk (vagy egyáltalán nem
használjuk), akkor a szövegdoboz szerkeszthető lesz, s ezzel módosíthatjuk a megfelelő változó aktuális tartalmát, méghozzá a következőképpen: vagy dupla egérkattintással a szövegdobozra akár a program futása alatt is. Ekkor az OLVASKÓD függvény eredményeként -3 értéket kapunk (de CSAK akkor, ha a szövegdoboz tartalmát módosítottuk is!), a RÁKATTINTOTT függvény eredménye a megfelelő teknőcváltozó neve lesz, és az EGÉRHELY függvény a szövegdoboz aktuális pozícióját adja értékül. Az OLVASKÓD függvény eredménye -3 lesz abban az esetben is, ha vontatjuk a slider görgető dobozát, vagy az EDIT ":X parancs kiadásával akár a program futása alatt is. A SZÖVEGDOBOZ! [EDIT 0] parancs használata esetén letiltjuk a szövegdoboz tartalmának szerkesztését. SZÖVEGDOBOZMÓD! SZÖVEGDOBOZMÓD! --- utasítás 1 bemenő adattal SZÖVEGDOBOZMÓD! logikai IGAZ logikai értékű bemenet esetén a parancs hatására az összes aktív
teknőc szövegdobozzá válik. Ha a bemenő érték HAMIS, akkor az aktuálisan aktív teknőcök hagyományos teknőccé változnak vissza. A megfelelő változók értékére nem hat ez a parancs, de a továbbiak folyamán nem jelennek meg vizuálisan a képernyőn a szövegdobozokban. A teknőcök alakja az alapalakot veszi fel (a kis háromszög).Szövegdobozteknőc létrehozása TAKART TAKART --- függvény 1 bemenő adattal vagy bemenő adat nélkül TAKART (TAKART pont ) Ha nem adunk bemenő adatot, akkor a TAKART függvény eredményeként azon teknőcök listáját kapjuk meg, melyeket pillanatnyilag az első aktív teknőc takar. 92 Egy teknőc sohasem takarja önmagát. Ha egy teknőc nem LÁTHATÓ? soha nem takarhat más teknőcöt, és őt sem takarhatja másik teknőc A teknőcök sorrendje a MIND eredménylistájában semmiféle szerepet nem játszik itt: a takarás nincs figyelemmel a teknőcök „korára. Tehát a függvény eredménye szempontjából nem
lényeges az, hogy egy adott teknőc egy másik alatt vagy felett helyezkedik el a képernyőn. ? NÉV "L BETÖLTKÉPSOR "ABC [1 4] ? ÚJTEKNŐC "A (M -57 121 ELEM 1 :L) ? ÚJTEKNŐC "B (M -24 93 ELEM 2 :L) ? ÚJTEKNŐC "C (M 4 131 ELEM 3 :L) ? ÚJTEKNŐC "D (M 25 82 ELEM 4 :L) ? FIGYELJ [A B C D] ? LÁTHATÓ ? EGYMÁSUTÁN [ (KI KIFIGYEL "eltakarja: TAKART) ] A eltakarja: [B] B eltakarja: [A C] C eltakarja: [B] D eltakarja: [ ] Ha a függvénynek van paramétere, akkor eredménylistájában az összes olyan teknőc szerepel, amelynek alakja pillanatnyilag takarja az adott pontot. TAKAR? TAKAR? --- függvény 1 bemenő adattal TAKAR? teknőc TAKAR? teknőcök listája Eredménye IGAZ, ha az első aktív teknőc pillanatnyilag takarja a bemenetként megadott teknőcöt. Takarásról akkor beszélünk, ha az első aktív teknőc alakjának (illetve ennek aktuális fázisának) és az adott teknőc alakjának legalább egy közös pontja van. Ne
felejtsük el, hogy minden egyes fázis minden esetben azt a téglalapot határozza meg, mely az adott képet tartalmazza tehát ez az esetleg láthatatlan környezet is a fázishoz tartozik. Ha a bemenet teknőclista, akkor a függvény eredménye akkor IGAZ, ha az első aktív teknőc a listában felsorolt teknőcök közül legalább egyet takar. Különben a függvény eredménye HAMIS. Egy teknőc sohasem takarja önmagát. Ha egy teknőc nem LÁTHATÓ?, akkor nem takarhat más teknőcöt, s őt sem takarhatja egyetlen más teknőc sem A teknőcök sorrendje a MIND eredménylistájában, semmiféle szerepet nem játszik itt: a takarás nincs tekintettel a teknőcök „korára. Tehát a függvény eredménye szempontjából nem lényeges az, hogy egy adott teknőc egy másik alatt, vagy felett helyezkedik el a képernyőn. ? FIGYELJ 0 ? KI TAKAR? 0 HAMIS ; egy teknőc sem takarja önmagát TEKNŐCOLVASLISTA; TOL TEKNŐCOLVASLISTA; TOL --- bemenő adat nélküli függvény
TEKNŐCOLVASLISTA Egy szerkeszthető sor jelenik meg az első aktív teknőc aktuális pozíciójában (a teknőc pozíciójában lesz a vezérlő közepe). A Logo ekkor addig vár, amíg a felhasználó beír 93 valami szöveget a szerkesztő-vezérlőbe, és lenyomja az Enter billentyűt. A szerkesztővezérlő ekkor bezáródik, és a begépelt szöveg adja a TEKNŐCOLVASLISTA függvény eredményét. A szerkesztő-vezérlőnek mindig egyszerű kerete van, és színe az első aktív teknőc aktuális tollszínétől és kitöltőszínétől függ. (Ha ezek a színek különbözőek, akkor a szöveg a vezérlőben a tollszínnel fog megegyezni, és háttérszíne lesz a kitöltőszínnel megegyező. Ha ezek azonosak, akkor a háttérszín az alapértelmezett Windows háttérszín lesz [általában fehér] és a szöveg színe lesz az aktuális tollszín.) TERÜLET TERÜLET --- bemenő adat nélküli függvény TERÜLET Eredménye üres lista [ ], ha az első aktív teknőc által
felhasználható terület, (melyen mozoghat, rajzolhat és írhat) pillanatnyilag azonos a rajzlappal. Ha már előzőleg módosítottuk az adott teknőc által használható területet, akár a KÖRKÖRÖSEN, akár az ABLAK utasítással, a TERÜLET függvény eredménye egy olyan lista [X Y sz m], mely meghatározza az aktuális elérhető területet ennek bal felső sarkával [X Y], szélességével sz és magasságával m. TF TOLLATFEL; TF --- bemenő adat nélküli utasítás TOLLATFEL Az utasítás hatására az összes aktív teknőc tolla felemelkedik a rajzlapról. Ezután az aktív teknőcök a rajzlapon való mozgás során nem jelölik útjukat vonallal Az aktív teknőcök tollának állapotát a TOLL! utasítással változtathatjuk meg, igény szerint a TL, TRD vagy TVT bemenő paramétert használva. Ugyanez a hatás érhető el közvetlenül a TOLLATFEL, TOLLRADÍR vagy TOLLVÁLTÓ utasítások kiadásával Az ÚJTEKNŐC utasítással létrehozott új teknőc tolla lent
van, de a teknőc nem aktív. Az első aktív teknőc tollának állapotát a TOLL függvény eredménye adja meg. A TÖRÖLRAJZLAP utasítás nem változtatja meg a teknőcök tollának állapotát. TANULD VÁLTOZÓ.TOLL HA TOLL = "TL [TOLLATFEL] [TOLLATLE] VÉGE ; különben tegye le ; ha lent van, emelje fel, TANULD ÚJ.SOKSZÖG :N :OLDAL :SZÖG ISMÉTLÉS :N [VÁLTOZÓ.TOLL E :OLDAL J :SZÖG] VÉGE ? ÚJ.SOKSZÖG 180 150 142 A teknőcök tollának összes jellemzőjét egyetlen lépésben is beállíthatjuk, ha a TOLLÁLLAPOT! utasítást használjuk. Ha ezen jellemzők aktuális beállításait szeretnénk egyetlen függvény eredményeként megkapni, akkor érdemes a TOLLÁLLAPOT eljárást használni. TL TOLLATLE; TL --- bemenő adat nélküli utasítás 94 TOLLATLE Az összes aktív teknőc tollát leteszi az utasítás. Ettől kezdve minden egyes aktív teknőc vonalat húz (az aktuális színével, vonalvastagságával és mintájával), amikor a rajzlapon mozog.
Az aktív teknőcök tollának állapota a TOLL! utasítással változtatható meg, ha a megfelelő paraméterrel használjuk a következők közül TF, TRD vagy TVT. Hasonló eredmény érhető el közvetlenül a TOLLATFEL, TOLLRADÍR vagy TOLLVÁLTÓ utasítások használatával is Amikor új teknőcöt hozunk létre az ÚJTEKNŐC utasítással, akkor ennek tolla lent van, de a teknőc nem aktív. Az első aktív teknőc tollának aktuális állapotát a TOLL függvény eredménye mutatja meg. A TÖRÖLRAJZLAP utasítás nem változtatja meg a teknőcök tollának állapotát. ? TL ; a 0 nevű teknőc letette a tollát ? KI TOLL TL ? ÚJTEKNŐC "LIZA [ ] ? FIGYELJ MIND ? TF ; minden teknőc felemelte a tollát A teknőcök tollának összes jellemzőjét egyetlen lépésben is beállíthatjuk, ha a TOLLÁLLAPOT! utasítást használjuk. Ha ezen jellemzők aktuális beállításait szeretnénk egyszerre lekérdezni, akkor érdemes a TOLLÁLLAPOT eljárást használni TLM
TÖLTŐMINTA; TM --- bemenő adat nélküli függvény TÖLTŐMINTA Eredménye az a töltőminta, amit előzőleg az első aktív teknőcnek beállítottunk. Ha nem határoztunk meg eddig kitöltőmintát az adott teknőcnek, akkor alapértelmezésben ez a teljes szín, melyet a 0 érték jelez. Ennek a függvénynek az eredményeként kapott mintát használja a TÖLT és a SOKSZÖG utasítás is a kitöltés során. Az aktív teknőcök aktuális kitöltőmintája a TÖLTŐMINTA! utasítással állítható be. TLM! TÖLTŐMINTA!; TLM! --- utasítás 1 bemenő adattal TÖLTŐMINTA! töltőminta Az aktív teknőcök aktuális kitöltő mintáját definiálja, melyet később a TÖLT és a SOKSZÖG utasítások kiadása esetén lálthatunk a képernyőn. Ha eddig még nem használtuk ezt az utasítást, akkor az aktuális kitöltő minta a 0 ? ÚJTEKNŐC "PISTI [ 100 100 90 ] ? FIGYELJ "PISTI ? KI TLM 0 ? TLM! 4 ? KI TLM 4 95 Az első aktív teknőc aktuális kitöltő
mintáját a TÖLTŐMINTA függvény eredményéből olvashatjuk le. TLSZ TÖLTŐSZÍN; TLSZ --- bemenő adat nélküli függvény TÖLTŐSZÍN Eredménye az a szín, melyet előzőleg az első aktív teknőc aktuális töltőszínének állítottunk be. Ha eddig semmilyen töltőszínt nem határoztunk meg a teknőcnek, akkor alapértelmezésben a toll színével egyezik meg A TÖLTŐSZÍN függvény eredményeként kapott színt használja a TÖLT és a SOKSZÖG utasítás is a kitöltés során. Egy aktív teknőc aktuális töltőszíne a következőképpen állítható be: a TÖLTŐSZÍN! utasítással, vagy a teknőc tollszínének meghatározásával, akár az ÚJTEKNŐC ekkor a töltőszín fekete , akár közvetlenül a TOLLSZÍN! utasítás használatával. ? ÚJTEKNŐC "PÉTER [ 0 0 0 ] ? FIGYELJ "PÉTER ? KI TÖLTŐSZÍN 0 ? TOLLSZÍN! 7 ? KI TOLLSZÍN 7 ? KI TÖLTŐSZÍN 7 ? TÖLTŐSZÍN! 11 ? KI TOLLSZÍN 7 ? KI TÖLTŐSZÍN 11 TLSZ! TÖLTŐSZÍN!; TLSZ! ---
utasítás 1 bemenő adattal TÖLTŐSZÍN! szín Meghatározza az összes aktív teknőc aktuális kitöltőszínét, melyet ezek később a TÖLT és a SOKSZÖG utasítások alkalmazása esetén használnak. Ha egy teknőc számára eddig még nem adtunk meg töltőszínt, akkor ez azonos lesz a teknőc tollszínével. Ezen utasítás azonban lehetővé teszi, hogy különböző színeket használjunk az alakzatok körvonalához, illetve ennek kitöltéséhez. Vigyázzunk arra, hogy valahányszor beállítjuk a teknőc tollszínét a TOLLSZÍN! utasítással, az aktuális kitöltőszín ugyanerre a színre változik. Az első aktív teknőc aktuális töltőszínét a TÖLTŐSZÍN függvény eredményéből tudhatjuk meg. ? ÚJTEKNŐC 22 [ 100 100 180 ] ? FIGYELJ 22 ? (KI TSZ TLSZ) 00 ? TLSZ! 7 96 ? KI TLSZ 7 ? TSZ! 11 ? (KI TSZ TLSZ) 11 11 A kitöltés mintájának meghatározása a TÖLTŐMINTA! utasítással lehetséges. TM TOLLMINTA; TM --- bemenő adat nélküli függvény
TOLLMINTA Eredménye az első aktív teknőc aktuális tollmintájának megfelelő szám. Az összes aktív teknőc tollmintáját a TOLLMINTA! utasítással változtathatjuk meg. Ha az ÚJTEKNŐC paranccsal létrehozott új teknőc esetén nem határozzuk meg a tollmintát, akkor a folytonos vonalt állítja be a rendszer. ? KI TOLLMINTA ; ez az alapértelmezett beállítás 0 ? NÉV "P 0 ? ISMÉTLÉS 5 [ISMÉTLÉS 36 [E 170 B 10] NÖVEL "P TOLLMINTA! :P] TM! TOLLMINTA!; TM! --- utasítás 1 bemenő adattal TOLLMINTA! tollminta Az utasítás az összes aktív teknőc tollmintáját állítja be, mellyel ezek TOLLATLE állapotban rajzolnak a következőkben. Az első aktív teknőc pillanatnyi tollmintáját a TOLLMINTA függvény eredményéből tudhatjuk meg. Ha az ÚJTEKNŐC eljárással létrehozott új teknőc számára nem határozunk meg tollmintát, akkor a rendszer a folytonos vonalat állítja be ? TOLLMINTA! 3 ? KI TOLLMINTA 3 ; csak a 0 nevű teknőcünk legyen
TOL TEKNŐCOLVASLISTA; TOL --- bemenő adat nélküli függvény TEKNŐCOLVASLISTA Egy szerkeszthető sor jelenik meg az első aktív teknőc aktuális pozíciójában (a teknőc pozíciójában lesz a vezérlő közepe). A Logo ekkor addig vár, amíg a felhasználó beír valami szöveget a szerkesztő-vezérlőbe, és lenyomja az Enter billentyűt. A szerkesztővezérlő ekkor bezáródik, és a begépelt szöveg adja a TEKNŐCOLVASLISTA függvény eredményét. A szerkesztő-vezérlőnek mindig egyszerű kerete van, és színe az első aktív teknőc aktuális tollszínétől és kitöltőszínétől függ. (Ha ezek a színek különbözőek, akkor a szöveg a vezérlőben a tollszínnel fog megegyezni, és háttérszíne lesz a kitöltőszínnel megegyező. Ha ezek azonosak, akkor a háttérszín az alapértelmezett Windows háttérszín lesz [általában fehér] és a szöveg színe lesz az aktuális tollszín.) TOLL 97 TOLL --- bemenő adat nélküli függvény TOLL
Eredményül a következő szavak egyikét kapjuk: TF, TL, TRD vagy TVT az első aktív teknőc tollának állapotától függően, azaz annak megfelelően, hogy ennek tolla TOLLATLE, TOLLATFEL, TOLLRADÍR vagy TOLLVÁLTÓ módban van. Egy aktív teknőc tollának állapotát a TOLL! utasítással változtathatjuk meg, ha a következő bemenetek valamelyikét használjuk TF, TL, TRD vagy TVT. Ugyanez a hatás érhető el közvetlenül a TOLLATFEL, TOLLATLE, TOLLRADÍR vagy TOLLVÁLTÓ utasítások használatával is. ? KI KIFIGYEL 0 ? TVT ; azaz TOLLVÁLTÓ ; a 0 nevű teknőc tollának állapota megváltozott ? KI TOLL TVT ? ÚJTEKNŐC "JÚLIA [40 -20 115] ? KÉREM "JÚLIA [TOLL! KÉREM 0 [TOLL] ] ; mint a 0 nevű teknőcé ; legyen JÚLIA tolla ugyanolyan, ? KÉREM "JÚLIA [KI TOLL] TVT Ha az első aktív teknőc tollának összes jellemzőjét egyetlen lépésben szeretnénk megkapni, akkor használjuk a TOLLÁLLAPOT eljárást. Érdemes megvizsgálni a
TOLLÁLLAPOT! utasítást is. TOLL! TOLL! --- utasítás 1 bemenő adattal TOLL! szó ahol a szó a következők egyike: TF, TL, TRD vagy TVT Az összes aktív teknőc tollának állapotát TOLLATFEL, TOLLATLE, TOLLRADÍR vagy TOLLVÁLTÓ állapotúra változtatja. Például a TOLL! "TL egyenértékű a TOLLATLE, illetve egyszerűen a TL utasítással. Az első aktív teknőc tollának aktuális állapotát a TOLL függvény eredményéből olvashatjuk ki. ? ÚJTEKNŐC "KATI [-20 20 90] ? KÉREM "KATI [KI TOLL] TL ; az új teknőc tollának állapota mindig TL ? FIGYELJ "KATI ? TOLL! "TRD ; vagyis egyszerűen TRD A teknőcök tollának összes jellemzője egyetlen lépésben is beállítható a TOLLÁLLAPOT! utasítás alkalmazásával. Az első aktív teknőc tollának állapotáról 98 összetett információ nyerhető egyetlen mozdulattal, ha a TOLLÁLLAPOT eljárást használjuk. TOLLATFEL; TF TOLLATLE; TL TOLLÁLLAPOT TOLLÁLLAPOT --- bemenő adat
nélküli függvény TOLLÁLLAPOT Eredményeként az első aktív teknőc tollának 4 aktuális beállítását tartalmazó listát kapunk. A lista első eleme TL, TF, TRD vagy TVT, attól függően, hogy a teknőc tolla TOLLATLE, TOLLATFEL, TOLLRADÍR vagy TOLLVÁLTÓ állapotban van. A második tag a toll pillanatnyi színét. A harmadik a toll pillanatnyi vonalvastagságát, A negyedik pedig aktuális mintáját ábrázolja. Ez a függvény lényegében a TOLL, TOLLSZÍN, TOLLVASTAGSÁG és TOLLMINTA függvények egy lépésben történő végrehajtásaként szerepelhet. Az összes fenti jellemző beállítása a TOLLÁLLAPOT! utasítással lehetséges. ? TOLLÁLLAPOT! [TF 10 6 1] ? KI TOLLÁLLAPOT [TF 10 6 1] ? KIÍR TOLL TF ? KIÍR TSZ 10 ? KIÍR TV 6 ? KIÍR TM 1 TOLLÁLLAPOT! TOLLÁLLAPOT --- bemenő adat nélküli függvény TOLLÁLLAPOT Eredményeként az első aktív teknőc tollának 4 aktuális beállítását tartalmazó listát kapunk. A lista első eleme TL, TF, TRD vagy
TVT, attól függően, hogy a teknőc tolla TOLLATLE, TOLLATFEL, TOLLRADÍR vagy TOLLVÁLTÓ állapotban van. A második tag a toll pillanatnyi színét. A harmadik a toll pillanatnyi vonalvastagságát, A negyedik pedig aktuális mintáját ábrázolja. Ez a függvény lényegében a TOLL, TOLLSZÍN, TOLLVASTAGSÁG és TOLLMINTA függvények egy lépésben történő végrehajtásaként szerepelhet. Az összes fenti jellemző beállítása a TOLLÁLLAPOT! utasítással lehetséges. ? TOLLÁLLAPOT! [TF 10 6 1] 99 ? KI TOLLÁLLAPOT [TF 10 6 1] ? KIÍR TOLL TF ? KIÍR TSZ 10 ? KIÍR TV 6 ? KIÍR TM 1 TOLLMINTA; TM TOLLMINTA!; TM! TOLLRADÍR; TRD TOLLRADÍR; TRD --- bemenő adat nélküli utasítás TOLLRADÍR Az összes aktív teknőc tollállapotát megváltoztatja úgy, hogy ha ezek a rajzlapon mozognak, akkor letörlik (az aktuális vonalvastagságuknak megfelelő méretben) azokat a pontokat, melyeken áthaladnak. Egy adott pont törlése azt jelenti, hogy színe az aktuális
háttérszínre változik. Az aktív teknőcök tollának állapota a TOLL! utasítással változtatható meg, ha a TF, TL vagy TVT bemenő adatok valamelyikével használjuk. Ugyanez a hatás érhető el közvetlenül a TOLLATFEL, TOLLATLE vagy TOLLVÁLTÓ utasítás kiadásával Az első aktív teknőc tollának aktuális állapotát a TOLL függvény eredménye mutatja meg Az aktuális háttérszín beállítására a RAJZLAPSZÍN! utasítás szolgál ? ISMÉTLÉS 4 [E 50 J 90] ? TOLLRADÍR ? ISMÉTLÉS 4 [E 50 J 90] ? KI TOLL TOLLRADÍR ? TOLLATLE A teknőcök tollának összes jellemzőjét egyetlen eljárás segítségével is beállíthatjuk, ha a TOLLÁLLAPOT! utasítást használjuk. Ha ezen jellemzők aktuális beállításaira vagyunk kíváncsiak egyetlen lépésben, akkor érdemes a TOLLÁLLAPOT függvényt használni TOLLSZÍN; TSZ TOLLSZÍN; TSZ --- bemenő adat nélküli függvény TOLLSZÍN Eredménye az első aktív teknőc tollának aktuális színe. Az összes
aktív teknőc tollszínét a TOLLSZÍN! utasítással állíthatjuk be. Ha az ÚJTEKNŐC utasítással egy új teknőcöt hozunk létre, akkor ennek alapértelmezett tollszíne fekete, amit a 0 érték jelöl. Figyeljünk arra, hogy ha egy teknőc tollszíne RGB kevert szín, akkor csak abban az esetben látjuk a rajzot ennek megfelelő színben, ha a vonalvastagsága 1-nél nagyobb, lásd a TOLLVASTAGSÁG! utasítást is. 100 ? KI TSZ 0 ? ÚJTEKNŐC 1 [-10 0 0] ? FIGYELJ [0 1] ? TSZ! 7 ? EGYMÁSUTÁN [KIÍR TSZ] 7 7 A teknőcök tollának összes jellemzőjét egyetlen lépésben is beállíthatjuk, ha a TOLLÁLLAPOT! utasítást használjuk. Ha ezen jellemzők aktuális beállításait szeretnénk egyszerre megtudni, akkor érdemes a TOLLÁLLAPOT eljárást használni TOLLSZÍN!; TSZ! TOLLSZÍN!; TSZ! --- utasítás 1 bemenő adattal TOLLSZÍN! szín A bemenetnek megfelelően definiálja az összes aktív teknőc aktuális tollszínét. Az első aktív teknőc tollának
aktuális színét a TOLLSZÍN függvény eredményeként kapjuk meg. A teknőcök csak abban az esetben rajzolnak a rajzlapon (az aktuálisan beállított színnel, mintával és vonalvastagsággal), ha aktívak, és tolluk TOLLATLE módban van (illetve TOLLVÁLTÓ módban, melyben különleges hatások érhetők el) Jegyezzük meg, hogy ha a teknőc tollszíne RGB kevert szín, akkor a teknőc által rajzolt vonalak csak akkor jelennek meg valóban RGB színű vonalakként a rajzlapon, ha a toll vonalvastagsága nagyobb 1-nél. A teknőcök tollának összes jellemzőjét egyetlen lépésben is meghatározhatjuk a TOLLÁLLAPOT! utasítás alkalmazásával. Az első aktív teknőc tollának összes jellemzőjét egyetlen mozdulattal megkapjuk, ha a TOLLÁLLAPOT eljárást használjuk TOLLVASTAGSÁG; TV TOLLVASTAGSÁG!; TV! --- utasítás 1 bemenő adattal TOLLVASTAGSÁG! tollvastagság A bemenetnek megfelelően definiálja az összes aktív teknőc aktuális tollvastagságát. Az
első aktív teknőc aktuális tollvastagságát a TOLLVASTAGSÁG függvény eredményeként kapjuk meg. A teknőcök csak abban az esetben rajzolnak a rajzlapra (a pillanatnyilag beállított színnel, mintával és vonalvastagsággal), ha éppen aktívak és tolluk TOLLATLE állapotban van (illetve TOLLVÁLTÓ állapotban, melyben különleges hatások érhetők el). Az ÚJTEKNŐC utasítással újonnan létrehozott teknőcök tollvastagsága 1 ? KI TV 1 ? ISMÉTLÉS 5 [E 30 TV! TV * 3] TOLLVASTAGSÁG!; TV! TOLLVASTAGSÁG!; TV! --- utasítás 1 bemenő adattal TOLLVASTAGSÁG! tollvastagság A bemenetnek megfelelően definiálja az összes aktív teknőc aktuális tollvastagságát. Az első aktív teknőc aktuális tollvastagságát a TOLLVASTAGSÁG függvény eredményeként kapjuk meg. A teknőcök csak abban az esetben rajzolnak a rajzlapra (a pillanat101 nyilag beállított színnel, mintával és vonalvastagsággal), ha éppen aktívak és tolluk TOLLATLE állapotban van
(illetve TOLLVÁLTÓ állapotban, melyben különleges hatások érhetők el). Az ÚJTEKNŐC utasítással újonnan létrehozott teknőcök tollvastagsága 1 ? KI TV 1 ? ISMÉTLÉS 5 [E 30 TV! TV * 3] TOLLVÁLTÓ; TVT TOLLVÁLTÓ; TVT --- bemenő adat nélküli utasítás TOLLVÁLTÓ Az összes aktív teknőc tollának működését megváltoztatja. Miközben a rajzlapon mozog a teknőc, invertálja (az aktuális vonalvastagság méretének megfelelően) azon pontok színét, melyeken áthalad Az invertálás alatt az a folyamat értendő, melyben a pontok színe az eredeti pontszínnek, valamint a toll és a háttér színének megfelelően megváltozik A tollnak ez az állapota igen érdekes hatást okoz, a toll és a háttér pillanatnyi színkombinációjától függően. Legyen a RAJZLAPSZÍN, vagyis a háttér színe fehér, és a teknőc tollszíne fekete. Rajzoljunk először TOLLATLE módban, majd változtassuk a toll állapotát TOLLVÁLTÓ módra, a toll színét fehérre
és folytassuk a rajzolást: ? TR RA TL ? TV! 15 TSZ! 0 ? ISMÉTLÉS 300 [E VSZ 130 J VSZ 360] ; összefirkálja a képernyőt ? TV! 20 TSZ! 15 ; fehérre állítjuk a toll színét ? TVT ? ISMÉTLÉS 300 [E VSZ 130 J VSZ 360] Az aktív teknőcök tollának állapota a TOLL! utasítás alkalmazásával változtatható meg a megfelelő paramétert használva. Ugyanez a hatás érhető el közvetlenül a TOLLATFEL, TOLLATLE vagy TOLLRADÍR utasítások használatával is. Az első aktív teknőc tollának pillanatnyi állapotát a TOLL függvény eredménye mutatja. A teknőcök tollának összes jellemzőjét egyetlen lépésben is beállíthatjuk, ha a TOLLÁLLAPOT! utasítást használjuk. Ha ezen jellemzők aktuális beállításait szeretnénk egyszerre lekérdezni, akkor érdemes a TOLLÁLLAPOT eljárást használni TÖLT TÖLT --- bemenő adat nélküli utasítás TÖLT Az összes aktív teknőc kitölti az őt körülvevő környezetet az aktuális töltőszínével és
töltőmintájával, a pillanatnyi kitöltő stratégiát alkalmazva. 102 Az aktív teknőcök mindegyikénél a TÖLTŐSZÍN! utasítás használatával állíthatjuk be a kitöltés színét. Amíg ezt az utasítást nem használjuk, a töltőszín mindig az aktuális tollszínnel egyezik meg Az első aktív teknőc aktuális töltőszínét a TÖLTŐSZÍN függvény eredményéből olvashatjuk ki. Az összes aktív teknőc kitöltőmintájának beállítására a TÖLTŐMINTA! utasítás szolgál. Az első aktív teknőc töltőmintáját a TÖLTŐMINTA függvénnyel kérdezhetjük le. A kitöltési stratégia beállítására a TÖLTŐMÓD! utasítás ad lehetőséget. A kitöltőminta és -szín fenti beállításait használja a SOKSZÖG utasítás is. TÖLTŐMÓD! TÖLTŐMÓD! --- utasítás 1 bemenő adattal TÖLTŐMÓD bemenet ahol a bemenet vagy 0, vagy 1 Az aktív teknőcök kitöltési stratégiáját határozza meg: a TÖLTŐMÓD 0 azt a stratégiát állítja be,
amely esetén az aktív teknőc az adott terület (vagyis saját környezete) színétől különböző színnel vagy színekkel határolt területet tölti ki. (Pontosabban: a környező terület definíciója ebben az esetben nem más, mint a teknőcöt körülvevő folyamatos, homogén terület, melyen belül az összes pont színe megegyezik a teknőc aktuális pozíciójában lévő pont színével, amit a PONTSZÍN függvény eredményeként kaphatunk meg.) Használjuk gondosan ezt a függvényt, ugyanis ha a terület határán „rés van, akkor a szín ezen keresztül „kifolyhat a külső környezetbe is, és így nagyobb területet, vagy akár az egész rajzlapot is kitölthetjük véletlenül. A Comenius Logóban az összes teknőc számára ez a stratégia az alapbeállítás, a TÖLTŐMÓD 1 azt a stratégiát állítja be, amely esetén az aktív teknőc azt a területet (vagyis saját környezetét) tölti ki, amely határvonalának színe valamely aktív teknőc
tollszínével egyezik meg. Ebben a stratégiában a terület tetszőleges számú más színt is tartalmazhat, mégis az egész területet ki fogja tölteni. Ha pillanatnyilag nincs ilyen határ a rajzlapon, akkor az egész lapot kifesti az adott színnel. Bármely teknőc használhatja akár a 0, akár az 1 stratégiát. Ha nem használjuk a TÖLTŐMÓD utasítást, akkor az összes teknőc a szélesebb körben elterjedt 0 stratégiával tölti ki a területeket. (Ezt használja például a Paintbrush alkalmazás is) A kiválasztott töltőmód nem befolyásolja a SOKSZÖG utasítást TÖLTŐMINTA; TLM TÖLTŐMINTA!; TLM! TÖLTŐSZÍN; TLSZ TÖLTŐSZÍN!; TLSZ! TÖRÖLMUNKA TÖRÖLMUNKA --- bemenő adat nélküli utasítás mindent töröl TÖRÖLMUNKA 103 Törli az összes memóriaobjektumot és az összes teknőcöt, lefuttatja az új SLOGO.INI fájlt ha ez létezik a Logo alapkönyvtárában. Letörli a rajzlapot is, és alapállapotba hozza az egész Logót (ennek ablakát
is, a LOGOABLAK! [ ] utasítás végrehajtásával), pontosan úgy, mintha kiléptünk volna a Logóból, és újra elindítottuk volna. Miután minden objektumot letörölt, minden beállítást az eredeti értékére változtat: egyetlen teknőc lesz, melynek neve 0, alapkoordinátái [0 0], iránya észak, LÁTHATATLAN, és tolla lent van. A Fő-ablak OSZTOTTABLAK módban lesz, az íróablakban 6 sor látszik, és a Memóriában egyetlen saját objektum sem található (azaz a TÖRÖLMUNKA még az ELFED utasítással rejtetté tett objektumokat is törli). TÖRÖLRAJZ TÖRÖLRAJZ --- bemenő adat nélküli utasítás TÖRÖLRAJZ Törli a rajzlap tartalmát, vagyis lefedi az aktuális háttérszínnel. Ellentétben a TÖRÖLRAJZLAP utasítással, a TÖRÖLRAJZ nem változtatja meg az aktív teknőcök aktuális irányát, koordinátáit, illetve tollának állapotát. Az aktuális háttérszín lekérdezése a RAJZLAPSZÍN függvény, megváltoztatása pedig a RAJZLAPSZÍN!
utasítással lehetséges. TÖRÖLRAJZLAP; TR TÖRÖLRAJZLAP; TR --- bemenő adat nélküli utasítás TÖRÖLRAJZLAP Törli a rajzlap tartalmát, vagyis lefedi azt az aktuális RAJZLAPSZÍN-nel. Minden teknőcöt az alapkoordinátáiba visz (anélkül, hogy vonalat húznának), és az alapirányába állít be, annak megfelelően, ahogy ezeket az ÚJTEKNŐC utasítással megadtuk. Az aktív teknőcök listáját nem módosítja A teknőcök látható, illetve láthatatlan állapotát nem változtatja meg lásd a LÁTHATATLAN és LÁTHATÓ utasításokat. Ugyancsak nem módosítja a teknőcök tollának színét, mintáját, vonalvastagságát és állapotát (ez utóbbi alatt a toll lent/toll fent állapot értendő). Vizsgáljuk figyelmesen a TÖRÖLRAJZ, az ALAPHELYZET és a TÖRÖLRAJZLAP utasítások közötti különbségeket. Más lehetőségek: az Ablak menü Rajzlapot töröl utasítása a Fő-ablakban, a jobb egérgomb lenyomása a rajzlap területén, majd a felbukkanó
helyi menüből a Rajzlapot töröl utasítás kiválasztása. TÖRÖLTEKNŐC TÖRÖLTEKNŐC --- utasítás 1 bemenő adattal TÖRÖLTEKNŐC teknőc TÖRÖLTEKNŐC teknőcök listája Törli az adott teknőcöt, illetve teknőcöket, ha azok léteznek. Legyünk óvatosak: a 0 nevű teknőc is törölhető! A teknőcök törlése azt jelenti, hogy eltávolítja őket a MIND listájából Ahhoz, hogy csak az aktív teknőcök listájából távolítsuk el, használjuk a FIGYELJ utasítást. Ha a 0 teknőcöt töröljük, akkor a következő ALAPHELYZET vagy TÖRÖLMUNKA utasítás végrehajtásával újra létrehozzuk, ennek alapkoordinátáiban, a [0 0] -ban és az 104 alapirányával, ami 0 fok, azaz egyenesen észak felé néz. Új teknőc létrehozásához használjuk az ÚJTEKNŐC utasítást TR TRD TSZ TSZ! TV TV! TVT ÚJRASOROL ÚJRASOROL --- utasítás 1 bemenő adattal ÚJRASOROL teknőcök listája A MIND eredménylistájaként megkapható, az összes teknőcöt tartalmazó
listának egy új sorrendjét határozhatjuk meg a függvény segítségével. A sorrend változása hatással van a pillanatnyilag aktív teknőcök listájára is, amit a KIFIGYEL eredménylistájaként kapunk. Ha a bemenet a [teknőc1 teknőc2 teknőcN] lista és ennek minden eleme vagy aktív, vagy passzív teknőc, akkor a teknőc1 lesz a MIND lista első eleme, teknőc2 a második eleme stb. Az első teknőc, ami pillanatnyilag aktív a teknőc1, teknőcN közül, lesz a KIFIGYEL lista első eleme, vagyis ez lesz az első aktív teknőc. Ha az ÚJRASOROL bemenő listája nem tartalmazza az összes létező teknőc nevét, akkor a fel nem sorolt teknőcök közötti sorrend változatlan marad a MIND és a KIFIGYEL listákon belül, csak jobbra tolódnak el. Emlékezzünk, hogy: sok Logo-utasításban találkozunk az első aktív teknőc fogalmával, a RÁKATTINTOTT függvény a legifjabb teknőc fogalmát használja. A teknőcök „kora határozza meg a „teknőcalakok
sorrendjét is, amikor fedik egymást a képernyőn, tehát ettől függ, hogy melyik teknőc lesz a másik mögött. A szép animációs hatások eléréséhez érdemes megváltoztatni az ÚJRASOROL utasítással a teknőcök sorrendjét. Ezzel mi magunk határozhatjuk meg azt, hogy melyik teknőc legyen látható a többi felett, amikor ezek a rajzlapon mozognak. Legyen 5 teknőcünk, s ezek közül 2 aktív. Ekkor: ? KI MIND [0 1 2 3 4] ; az összes teknőc ? KI KIFIGYEL [1 3] ; az aktív teknőcök ? ÚJRASOROL [3 4 2] ? KI MIND [3 4 2 0 1] ; most az 1 nevű a legifjabb teknőc ? KI KIFIGYEL 105 [3 1] ; most a 3 nevű az első aktív teknőc ÚJTEKNŐC ÚJTEKNŐC --- utasítás 2 bemenő adattal ÚJTEKNŐC szó [ ] ÚJTEKNŐC szó [ szám1 szám2 szám3 ] ÚJTEKNŐC szó [ szám1 szám2 szám3 . szavak alak ] ahola . szavak tetszőleges szavak a következők közül: TF, TL, TRD, TVT, TOLLATFEL, TOLLATLE, TOLLRADÍR, TOLLVÁLTÓ, LÁTHATÓ, LÁTHATATLAN, FIGYELJ, vagy
ANIMÁCIÓSMÓD!, ésaz alak képsor, "LGW fájl, vagy képsor értékű :változó Egy olyan új teknőcöt hoz létre, melynek az adott szó lesz a neve, és minden további bemenő adat az aktuális beállításait határozza meg. Ha a második bemenet üres lista [ ], akkor az utasítás a következővel egyenértékű: ÚJTEKNŐC szó [0 0 0]. Ha a második paraméter nem üres, akkor az első két szám [szám1 szám2 ] a teknőc új alapkoordinátáit, a szám3 új alapirányát határozza meg. Ha a második paraméternek nincs több eleme, akkor a teknőc minden további beállítása az alapértékét veszi fel, azaz: tollának színe 0, tollának vonalvastagsága 1, tollának állapota TOLLATLE, a teknőc LÁTHATATLAN, a teknőc alakja az alapalak, későbbi megváltoztatása az ALAK! utasítással lehetséges, a teknőc írásmódja az alapértelmezett, megváltoztatásához az ÍRÁS! utasítás használható. Ha a második paraméterben további szavak szerepelnek,
illetve megadjuk az alakot is, akkor ezek segítségével azonnal meghatározhatunk néhány alapbeállítást: a toll állapotát a TF, TL, TRD és TVT rövidítésekkel, illetve a megfelelő teljes szavakkal, a teknőc megjelenítését a LÁTHATÓ vagy a LÁTHATATLAN szavakkal, aktívvá tehető a teknőc a FIGYELJ szó használatával, a teknőc aktuális alakja, ha az alakot is meghatározzuk. Lehetőségünk van arra, hogy a rendszer által beállított alapalakot megváltoztassuk, ha az alábbiak közül valamelyik sort beszúrjuk az SLOGO.INI fájlba Ebben az esetben minden újonnan létrehozott teknőc akármilyen alakot kapja aktuális alakjaként, ha mi másként nem határozunk: KÉREM [ ] [ALAK! . akármi alak ] vagy FIGYELJ [ ] ALAK . akármi alak FIGYELJ 0 Amikor a Logo elindul, akkor egyetlen teknőc létezik, a 0 nevű (s ez aktív, lásd a KIFIGYEL és a FIGYELJ eljárásokat). Ennek alapkoordinátái [0 0] és alapiránya 0, azaz északra néz Ha a teknőc szó már
létezik, akkor az ÚJTEKNŐC utasítás csak azokat a beállításokat definiálja újra, melyek a bemenetben szerepelnek. Az egyetlen kivétel ez alól a szabály alól az, hogy ha nem adjuk meg az alapkoordinátákat és az alapirányt meghatározó 3 számot, akkor ezen beállítások mindig a következő értékeket veszik fel: az alapkoordináták a [0 0], vagyis a teknőc az origóban lesz, és alapiránya 0, vagyis észak felé fog nézni. 106 A teknőcök maximális száma 4000. A teknőcök a TÖRÖLTEKNŐC vagy a TÖRÖLMUNKA utasításokkal törölhetők. X XHELY X --- bemenő adat nélküli függvény XHELY Eredményeként az első aktív teknőc aktuális pozíciójának X koordinátáját kapjuk. Az aktív teknőcök pillanatnyi X koordinátáját az XHELY! utasítással változtathatjuk meg. Ezek pozíciója az ELŐRE, a HÁTRA, a HELY!, az XYHELY!, az YHELY! , a TÖRÖLRAJZLAP, az ALAPHELYZET és a HAZA utasításokkal is megváltoztatható. ? ÚJTEKNŐC
"PETRA [100 -50 135] ? KÉREM "PETRA [KI XHELY] 100 Figyeljük meg, hogy az XHELY egyenértékű az ELSŐ HELY függvénnyel. X! XHELY!; X! --- utasítás 1 bemenő adattal XHELY! szám Vízszintesen elmozdítja az aktív teknőcöket a szám által meghatározott új X koordinátába. Az XHELY! sem a teknőc aktuális irányát, sem ennek Y koordinátáját nem változtatja meg Ha a teknőc tolla TOLLATLE állapotban van, akkor eredeti és új pozícióját vonallal köti össze. Az első aktív teknőc aktuális X koordinátáját az XHELY függvény eredményéből tudhatjuk meg. Ennek pillanatnyi pozícióját a HELY függvény eredménye adja meg Az XHELY!, az XYHELY!, az YHELY! és a HELY! utasítások mellett az ELŐRE, a HÁTRA a TÖRÖLRAJZLAP, az ALAPHELYZET és a HAZA utasítások hatására is megváltozik az aktív teknőcök helyzete. Jegyezzük meg, hogy az XHELY! szám egyenértékű a HELY! M szám YHELY utasítással. ? ÚJTEKNŐC 1 [ ] ; itt az [ ]
jelentése [0 0 0] ? ÚJTEKNŐC 2 [ ] ? FIGYELJ [0 1 2] ? EGYMÁSUTÁN [XHELY! 30*KIFIGYEL-30] ? EGYMÁSUTÁN [KI HELY] [-30 0] [0 0] [30 0] XHELY; X XHELY!; X! XY! XYHELY!; XY! --- utasítás 2 bemenő adattal 107 XYHELY! szám1 szám2 Elmozdítja az aktív teknőcöket a szám1 és szám2 által meghatározott X Y koordinátájú pontba. Az XYHELY! nem változtatja meg a teknőcök aktuális irányát Ha a teknőc tolla TOLLATLE állapotú, akkor eredeti és új pozícióját vonallal köti össze Az első aktív teknőc pillanatnyi pozícióját a HELY függvény eredménye adja meg. Az XHELY!, az XYHELY!, az YHELY! és a HELY! utasítások mellett az ELŐRE, a HÁTRA, a TÖRÖLRAJZLAP, az ALAPHELYZET és a HAZA utasítások hatására is megváltozik az aktív teknőcök pozíciója. Jegyezzük meg, hogy az XYHELY! szám1 szám2 egyenértékű a HELY! M szám1 szám2 utasítással. ? ÚJTEKNŐC 1 [ ] ; itt az [ ] jelentése [0 0 0] ? ÚJTEKNŐC 2 [ ] ? FIGYELJ [0 1 2] ?
EGYMÁSUTÁN [XYHELY! 30 * KIFIGYEL 30 KIFIGYEL] ? EGYMÁSUTÁN [KI HELY] [0 0] [30 30] [60 60] XYHELY!; XY! Y YHELY Y --- bemenő adat nélküli függvény YHELY Eredményeként az első aktív teknőc aktuális pozíciójának Y koordinátáját kapjuk. Az aktív teknőcök aktuális Y koordinátáját az YHELY! utasítással változtathatjuk meg. Ezek pozíciója az ELŐRE, a HÁTRA, a HELY! az XYHELY!, az XHELY!, a TÖRÖLRAJZLAP, az ALAPHELYZET és a HAZA utasításokkal is megváltoztatható. ? ÚJTEKNŐC "PETRA [100 -50 135] ? KÉREM "PETRA [KI YHELY] -50 Jegyezzük meg, hogy az YHELY egyenértékű az UTOLSÓ HELY függvénnyel. Y! YHELY! --- utasítás 1 bemenő adattal YHELY! szám Függőlegesen elmozdítja az aktív teknőcöket a szám által meghatározott új Y koordinátába. Az YHELY! sem a teknőc aktuális irányát, sem ennek X koordinátáját nem változtatja meg Ha a teknőc tolla TOLLATLE állapotban van, akkor eredeti és új pozícióját vonallal
köti össze. Az első aktív teknőc aktuális Y koordinátáját az YHELY függvény eredményéből ismerhetjük meg. Ennek aktuális pozícióját a HELY függvény adja értékül Az XHELY!, az XYHELY!, az YHELY!, és a HELY! utasítások mellett az ELŐRE, a HÁTRA, a TÖRÖLRAJZLAP, az ALAPHELYZET és a HAZA utasítások hatására is megváltozik az aktív teknőcök helyzete. 108 Jegyezzük meg, hogy az YHELY! szám és a HELY! M XHELY szám eljárások eredménye azonos. ? ÚJTEKNŐC 1 [ ] ; itt az [ ] jelentése [0 0 0] ? ÚJTEKNŐC 2 [ ] ? FIGYELJ [0 1 2] ? EGYMÁSUTÁN [YHELY! 30 * KIFIGYEL - 30] ? EGYMÁSUTÁN [KI HELY] [0 -30] [0 0] [0 30] YHELY; Y 109 Képsorok feldolgozása ALAK ALAK --- bemenő adat nélküli függvény ALAK Eredménye az a képsor, mely pillanatnyilag az első aktív teknőc alakjaként használatos. Ha ennek aktuális alakja több, mint 1 fázisból áll, akkor az összes fázis, azaz a teljes képsor a függvény eredménye. Ahhoz, hogy
az összes aktív teknőc alakját megváltoztassuk, használjuk az ALAK! utasítást. ? KI KIFIGYEL [0 1 2] ? KI KÉPSOR? ALAK IGAZ ? NÉV "ALAKOM ALAK ; a 0 nevű teknőc alakja ? KÉREM 2 [ALAK! :ALAKOM] ; legyen a 2 teknőc alakja ; ugyanaz, mint a 0-é ? TÖRÖLTEKNŐC MIND ? NÉV "ÚJ ALAK KÉREM 2 [ALAK] HIBA: A(z) kérem eljárás nem ismeri a(z) 2 nevű teknőcöt. ALAK! ALAK! --- utasítás 1 bemenő adattal ALAK! képsor ALAK! LGW fájl ALAK! [ ] A továbbiakban az összes pillanatnyilag aktív teknőc alakjaként az adott képsort fogja használni. Fázisok használata Ha a bemenet egy LGW fájl neve, akkor az utasítássor a következővel egyenértékű: ? ALAK! BETÖLTKÉPSOR "LGW fájl [ ] tehát magában foglalja a BETÖLTKÉPSOR függvény végrehajtását is. Ha a fájlnévben nem szerepel kiterjesztés, akkor a rendszer automatikusan az .LGW kiterjesztést csatolja a fájlnévhez. Ha csak részleges útvonal szerepel az adott fájlnévben, vagy
egyáltalán nem szerepel útvonal, akkor az alapkönyvtár KÉPSOR alkönyvtárában keresi a megfelelő fájlt. Ennek a beállításnak a megváltoztatására szolgál az ÚT! utasítás a "KÉPSOR első bemenettel. Az a képsor, melyet rendes körülmények között a Logo teknőcök alapalakjaként használunk (a 24 fázist tartalmazó kis háromszög), a "TEKNOC.LGW fájlban van elmentve Tehát az ÚJTEKNŐC utasítással létrehozott teknőcöket ezzel az alakkal ábrázolja a rendszer, ha máshogy nem rendelkezünk. 110 A teknőcök alapalakjának átdefiniálásához az SLOGO.INI fájlba kell a következő sorokat beírnunk: FIGYELJ [ ] ALAK! új alapalak ÚJTEKNŐC 0 . FIGYELJ 0 ; stb. Ha a bemenet egy [ ] üres lista, akkor az összes aktív teknőc aktuális alakja az alapalakot veszi fel (mely vagy a Logo által meghatározott kis háromszög, vagy az SLOGO.INI fájlban meghatározott új alapalak). ALAKSZÍN ALAKSZÍN --- bemenő adat nélküli függvény
ALAKSZÍN Eredménye az első aktív teknőc aktuális aktív alakszíne, vagyis egy 0 és 15 közé eső egész szám, vagy az üres lista [ ], ha az első aktív teknőc számára nem határoztunk meg aktív alakszínt. Új teknőc létrehozásakor (az ÚJTEKNŐC utasítással vagy a jobb egérgombbal való kattintással a rajzlapon) a teknőcnek nem lesz aktív alakszíne, amíg mi meg nem határozzuk azt az ALAKSZÍN! utasítással. ALAKSZÍN! ALAKSZÍN! --- utasítás 1 bemenő adattal ALAKSZÍN! szín ALAKSZÍN! [ ] Az aktív teknőcök aktív alakszínét határozza meg. A bemenő színnek a 16 alapszín egyikének kell lennie. Ha a bemenet [ ] üres lista, akkor az összes aktív teknőc aktív alakszínét „Nem-re állítja be, tehát ettől kezdve ezen teknőcök számára nem lesz aktív alakszín meghatározva. Ebben az esetben az ALAKSZÍN függvény eredménye szintén [ ] lesz. Jegyezzük meg, hogy bár az aktív alakszínnek a 16 alapszín egyikének kell lennie, az
alakon belül helyettesíthető (a TOLLSZÍN! utasítással) bármilyen RGB színnel. ANIMÁCIÓSMÓD! ANIMÁCIÓSMÓD! --- utasítás 1 bemenő adattal ANIMÁCIÓSMÓD! logikai Azt a módot határozza meg, hogy az aktív teknőcök alakja, illetve ezek fázisai milyen stratégiának megfelelően jelölik a teknőcöt. Az alapbeállítás mindig az ANIMÁCIÓSMÓD! HAMIS. Ebben az esetben a teknőc aktuális alakjaként használt képsor fázisait a teknőc aktuális irányának ábrázolására használja. (Ekkor tehát, ha LÁTHATÓ? a teknőc, akkor mindig az irányának megfelelő fázis jelöli őt.) Fázisok használata 111 Az ANIMÁCIÓSMÓD! IGAZ beállítást akkor használjuk, amikor a képernyőn animációt szeretnénk létrehozni. Ebben a módban a fázisok függetlenek a teknőcök aktuális irányától, mi magunk határozhatjuk meg a FÁZIS! utasítás segítségével, hogy a teknőcöt mikor melyik fázis jelölje rajzlapon. Az ANIMÁCIÓSMÓD! (egy bemenet
nélküli szó) az ÚJTEKNŐC utasítás második paraméterén belül közvetlenül is használható, például: ÚJTEKNŐC "TEKI [0 0 180 TF ANIMÁCIÓSMÓD! LÁTHATÓ] A fenti sor szerint a TEKI nevű új teknőc animálható teknőc lesz, azaz a teknőc ANIMÁCIÓSMÓD! IGAZ állapotú lesz. Hasonlítsuk össze ezt az eljárást a SZÖVEGDOBOZMÓD! utasítással. BETOLDKÉP BETOLDKÉP --- utasítás 1 bemenő adattal BETOLDKÉP képsor BETOLDKÉP LGW fájl Minden egyes aktív teknőc kinyomtatja a rajzlapra a bemenetként szereplő képsor, illetve a bemenő LGW fájlban tárolt képsor első fázisát. A képsor első fázisának tollpontja az aktív teknőc aktuális pozíciójában lesz, melyet a HELY utasítás eredményeként tudhatunk meg, így tehát meghatározhatjuk a fázis pontos elhelyezkedését a rajzlapon. Amikor a képsort kirajzoltuk a BETOLDKÉP utasítással, akkor ez a rajzlap részévé válik, és nem lehet eltávolítani róla többé, csak magának a
lapnak a törlésével. Az aktív teknőcök aktuális alakját is kirajzolhatjuk a rajzlapra a LENYOMAT utasítás alkalmazásával. Az aktív teknőcök aktuális iránya itt nem játszik szerepet: a képsort mindig a normális, „talpon álló helyzetben rajzolják ki a teknőcök. ? ÚJTEKNŐC 0 [-20 0 0] ? ÚJTEKNŐC 1 [20 0 0] ? FIGYELJ MIND ? TF ? LÁTHATÓ ? NÉV "AUTÓ BETÖLTKÉPSOR "AUTO [ ] ? ISMÉTLÉS 5 [E VSZ 100 J VSZ 180 BETOLDKÉP :AUTÓ] BETÖLTKÉPSOR BETÖLTKÉPSOR --- függvény 2 bemenő adattal BETÖLTKÉPSOR LGW fájl [ ] BETÖLTKÉPSOR LGW fájl intervallum Eredménye az adott fájl által tartalmazott képsor. Ha nem akarjuk az egész LGW fájlt betölteni, és így a BETÖLTKÉPSOR eredményeként látni, az intervallum, konkrétan a [szám1 szám2] paraméter segítségével meghatározhatjuk a fájl megfelelő részét. Az intervallumbeli szám1-gyel megadható, hogy a lemezen levő fájl hányadik fázisa legyen első- 112 ként betöltve;
a szám2 pedig az egymást követő fázisok számát írja elő. Az üres [ ] bemenet azt jelenti, hogy a fájlban elmentett képsor egészét be kell tölteni Ha a fájlnév csak részleges útvonalat tartalmaz, vagy egyáltalán nem tartalmaz útvonalat, akkor az alapkönyvtár KEPSOR alkönyvtárában keresi a rendszer az adott fájlt. Ennek a beállításnak a megváltoztatása az ÚT! utasítás használatával lehetséges, ha első bemeneteként a "KEPSOR szót adjuk. Az aktuális beállítást az ÚT függvény eredményéből olvashatjuk ki, ha bemenetként szintén a "KEPSOR szót használjuk Ha a fájlnévben nem szerepel kiterjesztés, akkor a BETÖLTKÉPSOR automatikusan az .LGW-t adja hozzá Egy képsor fájlba mentésére szolgál a MENTKÉPSOR utasítás Egy adott képsort egy teknőc új alakjának adhatjuk, ha az ALAK! utasítást használjuk. ? NÉV "ÚJ BETÖLTKÉPSOR "AUTO [1 2] ? KI :ÚJ {képsor2} ? ALAK! :ÚJ Színmódosulások grafika
kimentésénél és betöltésénél BETÖLTRAJZ BETÖLTRAJZ --- függvény 1 bemenő adattal BETÖLTRAJZ BMP fájl Eredménye egy képsor, melyet a bemenő rajzból alakít át. Az eredményképsor mindig egyetlen fázisból áll. A BETÖLTRAJZ függvény bármilyen (például a Paintbrush-ban készült) rajz képsorrá való átalakítását lehetővé teszi, mely a transzformáció után elhelyezhető a rajzlapon a BETOLDKÉP utasítással, vagy megjelölhető egy változó értékeként a NÉV utasítással, illetve egy teknőc alakjaként alkalmazható az ALAK! utasítás használatával. Ha az eredeti rajz nagyobb, mint a maximális képsorméret, akkor ennek csak 255 x 255 képpontját veszi figyelembe a rendszer a bal felső sarkától kezdődően Ez a pont válik az eredményképsor tollhelyévé is, lásd a KIHASÍTKÉP függvényt. Az egész képsor nemátlátszó lesz. Ennek megváltoztatása a Logo Képsorszerkesztőjének alkalmazásával lehetséges. ? NÉV "VALAMI
BETÖLTRAJZ "%KEPSOR\CICA.BMP ? KIÍR KÉPSOR? :VALAMI IGAZ ? KIÍR :VALAMI {képsor1} Ha a fájlnévben nem adunk meg kiterjesztést, akkor automatikusan a .BMP kiterjesztést használja a rendszer. Ha a fájlnév csak részleges útvonalat tartalmaz, vagy egyáltalán nem tartalmaz útvonalat, akkor a munkakönyvtárban keresi a rendszer. A keresés és a munkakönyvtár beállítás szabályainak megértése az ÚT és ÚT! utasítások, valamint a LOGO! utasítás "ALAPÚT bemenettel való használatának tanulmányozása alapján lehetséges. Egy képsor első fázisának rajzként való fájlba mentése a MENTRAJZ utasítással lehetséges Színmódosulások grafika kimentésénél és betöltésénél 113 ÁTLÁTSZÓMÓD! ÁTLÁTSZÓMÓD! --- utasítás 1 bemenő adattal ÁTLÁTSZÓMÓD! bemenet ahol a bemenet 0, 1 vagy 2 Meghatározza a képsorok létrehozásánál használatos átlátszóság fogalmának definícióját. Az alapbeállítás az ÁTLÁTSZÓMÓD!
0. Ha ebben a módban a KIHASÍTKÉP függvénnyel egy képsort hozunk létre, akkor a képsor összes olyan pontja, melynek színe a háttérszínnel megegyező, átlátszó lesz, amikor a BETOLDKÉP, a LENYOMAT vagy az ALAK! utasítással letesszük a rajzlapra. Amikor a MENTRAJZ utasítással elmentjük egy BMP fájlba, akkor a kép összes átlátszó része fekete lesz. Az ÁTLÁTSZÓMÓD! 1 módban a KIHASÍTKÉP eljárással létrehozott képsor egyetlen pontja sem lesz átlátszó. Amikor az ÁTLÁTSZÓMÓD! 2 módot választjuk, akkor a képsornak csak azon külső pontjai lesznek átlátszóak, melyek színe megegyezik az aktuális háttérszínnel. A belső részek, vagyis azok a pontok, melyeket más színek teljesen körülvesznek, nem lesznek átlátszók. FÁZIS FÁZIS --- bemenő adat nélküli függvény FÁZIS Eredményül annak a fázisnak a sorszámát kapjuk, mely az első aktív teknőc alakját éppen ábrázolja. Ha a teknőcöt alakjának első fázisával
ábrázoljuk, akkor a FÁZIS függvény eredménye 1; ha az 5 fázissal, akkor az eredmény 5 Ha a teknőc aktuális alakja üres képsor, akkor a FÁZIS függvény eredménye 0. A FÁZIS függvény akkor is működik, ha a teknőc a képernyőn LÁTHATÓ, illetve akkor is, ha a teknőc alakját nem látjuk a rajzlapon, mert a LÁTHATATLAN utasítással eltüntettük onnan. How to Use Phases of an Image ? J 50 ; használjuk az alapalakot (kis háromszög) ? KIÍR FÁZIS 4 FÁZIS! FÁZIS! --- utasítás 1 bemenő adattal FÁZIS! szám ahol a szám egy a -32767 és 32767 közé eső egész szám A továbbiakban az aktív teknőcök alakjának adott sorszámú fázisával ábrázolja a teknőcöket. Az utasítás hatása csak azoknál a teknőcöknél mutatkozik meg, melyeknél az ANIMÁCIÓSMÓD! értéke IGAZ. Ha egy teknőc pillanatnyi alakja N fázisból áll, akkor a FÁZIS! 1 hatásaként a teknőcöt az első fázissal ábrázoljuk, a FÁZIS! 2 esetén a második fázissal stb. A
bemenő számot 114 a rendszer először modulo N-re redukálja, tehát a FÁZIS! N+1 és a FÁZIS! 1 egyenértékű, csakúgy, mint a FÁZIS! 0 és a FÁZIS! N stb. ? FÁZIS! 4 ? FÁZIS! FÁZIS+1 FÁZISPONT FÁZISPONT --- bemenő adat nélküli függvény FÁZISPONT Eredménye a rajzlap területének azon [X Y szélesség magasság ] téglalapnyi területe, melyet az első aktív teknőc alakjának pillanatnyilag használt fázisa takar le. Az első két szám, X és Y az első aktív teknőc aktuális pozícióját ábrázolja. Ha az első aktív teknőc pillanatnyilag nem látható (mert előzőleg a LÁTHATATLAN utasítással elrejtettük alakját), akkor a FÁZISPONT függvény eredménye az [X Y 0 0] lista lesz. Ugyanezt az eredményt kapjuk akkor is, ha a teknőc nem láthatatlan, de jelenlegi alakja üres képsor, lásd az ÜRESKÉPSOR utasítást is. KÉPSOR KÉPSOR --- függvény 2 vagy N bemenő adattal KÉPSOR képsor1 képsor2 (KÉPSOR képsor1 . ) Eredményül egy
olyan képsort kapunk, mely a bemenetként szereplő képsorok összefűzéseként adódik. Az új képsor az összes bemenő képsor összes fázisából áll A bemenő képsorok üresek is lehetnek. ? NÉV "X ALAK ; legyen X a 24 fázisból álló alapalak ? KI :X {képsor24} ? KI KÉPSOR ELEM [1 3] :X ELEM [22 3] :X {képsor6} ? KI KÉPSOR ÜRESKÉPSOR ÜRESKÉPSOR {képsor0} ? KI :X = KÉPSOR :X ÜRESKÉPSOR IGAZ KÉPSOR? KÉPSOR? --- függvény 1 bemenő adattal KÉPSOR? akármi Eredménye IGAZ, ha a bemenő adat képsor. Különben a visszaadott érték HAMIS ? BETÖLTRAJZLAP "%DEMO\TOPART.BMP ; a rajzlapnak új hátteret tölt be ? NÉV "VALAMI KIHASÍTKÉP [30 30 30 30] ; létrehoz egy képsort a rajzlap egy darabjának ; kimásolásával ? KI KÉPSOR? :VALAMI IGAZ 115 ? KI SZÓ? :VALAMI HAMIS Egy teknőc tetszőleges képsort helyezhet el a rajzlapon, a BETOLDKÉP utasítás alkalmazásával. Ha egy teknőc saját alakját szeretnénk a rajzlapra tenni,
akkor a LENYOMAT utasítást használjuk. Egy képsor fájlban való tárolását teszi lehetővé a MENTKÉPSOR és a MENTRAJZ utasítás. KÉPSORMÉRET KÉPSORMÉRET --- függvény 1 bemenő adattal KÉPSORMÉRET képsor Eredménye egy két számból álló lista [X Y], mely az adott képsor első fázisának méretét ábrázolja, ahol az X a szélessége (képpontokban) és Y a magassága. Ha a KÉPSOR függvény üres képsort kap bemenetként, akkor a visszaadott érték a [0 0] lesz. Legyen az "ARCKÉP egy 5 különböző méretű fázisból álló képsor: ? KIÍR :ARCKÉP {képsor5} ? KI KÉPSORMÉRET :ARCKÉP [51 62] ? KIÍR KÉPSORMÉRET EN :ARCKÉP [40 57] KIHASÍTKÉP KIHASÍTKÉP --- függvény 1 bemenő adattal KIHASÍTKÉP [ szám1 szám2 szám3 szám4 ] Eredményeként egy egyetlen fázisból álló képsort kapunk. Ezt a képsort az első aktív teknőc készíti (mintha fényképezőgépet használna), a rajzlapon őt körülvelő pillanatnyi környezetről. A 4
számból álló lista [szám1 szám2 szám3 szám4] határozza meg azt a téglalap alakú területet a rajzlapon az első aktív teknőc aktuális pozíciójához képest relatívan amelyiket az új képsorba kell másolni. A lista elemei határozzák meg a kép széleit (képpontokban) az első aktív teknőc aktuális pozíciójához képest: szám1 távolság a terület bal határáig szám2 távolság a terület felső határáig szám3 távolság a terület jobb határáig szám4 távolság a terület alsó határáig Ennek a területnek teljes egészében a rajzlapon kell lennie. A bemenő lista két első száma határozza meg az új képsor tollpontját [szám1 szám2] is. Az eredményként kapott képsor valódi szélességét és magasságát a következőképpen kapjuk meg: szám1+szám3+1 és szám2+num4+1, melyek egyike sem lehet 255-nél nagyobb. A tollpont helyzete (a képsor bal felső sarkához képest relatívan) nem szükséges, hogy a képsoron belül legyen. Így,
például, a [-100 -100 140 160] bemenet megfelelő területet határoz meg a KIHASÍTKÉP utasítás számára, s az eredményképsor mérete [41 61], tollpontjának helye [-100 -100] lesz. A KIHASÍTKÉP [0 10 0 5] egy [1 16] méretű, és [0 10] tollpontú képsort készít el. 116 Jegyezzük meg, hogy egyetlen teknőc alakja sem az első aktív teknőcé, sem másiké sem része az eredményképsornak, hacsak először nem készítünk róla egy másolatot a rajzlapra a LENYOMAT utasítással. ? TV! 3 TSZ! 12 ? ISMÉTLÉS 4 [E 10 J 90] ; kis piros négyzet ? NÉV "ÚJ.ALAK KIHASÍTKÉP [1 11 11 1] ? KI :ÚJ.ALAK {képsor1} ; használjuk a Memóriaablakot ; ellenőrzésre Ahhoz, hogy egy teknőc aktuális alakját megváltoztassuk, használjuk az ALAK! utasítást: ? ALAK! :ÚJ.ALAK ? TR ? TV! 1 TSZ! 0 LÁTHATÓ ? E 50 ? ISMÉTLÉS 4 [E 50 J 90] Az eredményképsor átlátszóságának tetszőleges fajtáját az ÁTLÁTSZÓMÓD! utasítás alkalmazásával határozhatjuk
meg. MENTKÉPSOR MENTKÉPSOR --- utasítás 2 vagy N bemenő adattal MENTKÉPSOR LGW fájl képsor (MENTKÉPSOR LGW fájl képsor1 képsor2. ) A bemeneteként szereplő képsort menti el az adott fájlba. Ha több képsor követi a fájlnevet, akkor ezeket egyetlen képsorrá fűzi össze a KÉPSOR függvénnyel Így a (MENTKÉPSOR fájl képsor1 képsor2 . ) és a MENTKÉPSOR fájl (KÉPSOR képsor1 képsor2 . ) parancsok hatása megegyezik. (Az egyetlen eltérés az, hogy a KÉPSOR függvény által összefűzhető fázisok maximális száma 252, míg a MENTKÉPSOR sok bemenő adattal túllépheti ezt a határt.) Ha csak részleges útvonal szerepel az adott fájlnévben, vagy egyáltalán nem szerepel útvonal, akkor az alapkönyvtár KEPSOR alkönyvtárában helyezi el a rendszer a fájlt. Ennek a beállításnak a megváltoztatására szolgál az ÚT! utasítás a "KEPSOR első bemenő paraméterrel. A pillanatnyi beállítást az ÚT függvény eredményéből tudhatjuk meg,
ha a "KEPSOR bemenettel használjuk. Ha nem adunk meg kiterjesztést, akkor a MENTKÉPSOR automatikusan az .LGW kiterjesztést csatolja a fájlnévhez Egy képsor fájlból való betöltésére a BETÖLTKÉPSOR utasítás alkalmazható. Legyen az AUTÓ1, AUTÓ2, AUTÓ3 és AUTÓ4 változók értéke egyfázisú képsor: ? (MENTKÉPSOR "AUTO.LGW : AUTÓ1 : AUTÓ2 : AUTÓ3 : AUTÓ4) ? ALAK! BETÖLTKÉPSOR "AUTO [1 3] 117 Ha létezik már azonos nevű fájl, akkor először ezt törli. Színmódosulások grafika kimentésekor és betöltésekor MENTRAJZ MENTRAJZ --- utasítás 2 bemenő adattal MENTRAJZ BMP fájl képsor Az adott képsor első fázisát egyszerű rajzként a fájlba menti. Csak a képsor első fázisát alakítja rajz formátumúvá, és ezt menti a fájlba, melyet így később egyszerű rajzként felhasználhatunk a Logóban, a Paintbrushban vagy bármely más bitmapek feldolgozására szolgáló grafikus alkalmazásban. Ha a fázis átlátszó
színt is tartalmaz, akkor ezt a mentés előtt fehérre cseréli a rendszer. Mivel egy képsor maximális mérete 255 x 255 képpont, az eredményrajz sem lépheti túl ezt a méretet A létrehozott, illetve elmentett fájlt a fájlnévben foglalt teljes útvonalnak megfelelő könyvtárban, vagy ha ilyen nem szerepel, akkor az aktuális munkakönyvtárban helyezi el a Logo. A keresés és a munkakönyvtár beállítása szabályainak megértése érdekében tanulmányozzuk az ÚT és az ÚT! eljárásokat, és a LOGO! utasítást az "ALAPÚT bemenő paraméterrel. Ha nem adunk meg a fájlnévben kiterjesztést, akkor a rendszer automatikusan a .BMP kiterjesztést csatolja a fájlnévhez. Ha már létezik azonos nevű fájl, akkor először ezt törli a rendszer Színmódosulások grafika kimentésekor és betöltésekor TOLLPONT TOLLPONT --- függvény 1 bemenő adattal TOLLPONT képsor Eredménye tollpontok listája, [pont1 pont2 . ], ahol pont1 a képsor első fázisának
tollpontja, pont2 a képsor második fázisának tollpontja stb Ha a bemenő képsor üres, akkor a TOLLPONT függvény üres listát eredményez: [ ]. ? FIGYELJ 0 ? NÉV "X ALAK ; tartalmazza X a 0 nevű teknőc alapalakját ; (a 24 fázisból álló háromszög) ? KI TOLLPONT :X [[7 17][6 16][6 15][4 12][3 9][1 6][0 7][1 6][3 6][4 4][6 3][6 1][7 0][6 1][9 3][12 4][15 6][17 6][17 7][17 6][15 9][12 12][9 15][6 17]] TOLLPONT! TOLLPONT! --- függvény 2 bemenő adattal TOLLPONT! képsor tollpont TOLLPONT! képsor [bemenet1 bemenet2 . ] ahol a bemenet1, . vagy tollpont, vagy szám Eredményeként egy olyan képsort kapunk, melynek fázisszáma és tartalma megegyezik a bemenő képsoréval. Azonban néhány, esetleg az összes fázis tollpontját a második bemenetnek megfelelően módosítja a Logo. 118 Ha a második paraméter tollpont, akkor csak a képsor első fázisának tollpontja változik meg, a többi fázis változatlanul kerül az eredményképsorba. Ha a második
bemenet több tollpontból álló lista, akkor ezek közül az első a képsor első fázisának aktuális tollpontjává válik, a második a második fázis tollpontja lesz stb. (Azonban ekkor elkerülhetetlen megadni a képsor összes, N tollpontját ezek közül jó néhány fázis módosítatlan maradhat.) Ha szám is szerepel a második bemenetben, például [tollpont1 . M tollpont2 ], akkor a tollpont2 az M-edik fázis új tollpontja lesz. Ha a tollpont2-t egy újabb tollpont követi, akkor ez az M +1-edik fázist módosítja stb. Például: [1 5] csak az első fázis tollpontját változtatja meg, [ [1 2] [3 4] ] csak az első és a második fázis tollpontját módosítja, [ [1 4] 4 [3 5] [4 6] ] az első, a negyedik és az ötödik fázis tollpontját módosítja. ? NÉV "X ELEM [1 5] ALAK ; vegyük az alapalak első 5 fázisát ? KI TOLLPONT :X [ [7 17] [6 16] [6 15] [4 12] [3 9] ] ? NÉV "X TOLLPONT! :X [ [10 20] [9 19] [12 30] [8 24] ] ; az 5. fázist nem
módosítottuk ? KI :X = TOLLPONT! :X [4 4] HAMIS ? KI :X = TOLLPONT! :X [ ] IGAZ ÚT ÚT --- függvény 1 bemenő adattal vagy bemenő adat nélkül ÚT (ÚT Logo alkönyvtár ) Ha bemenő adat nélkül használjuk a függvényt, akkor eredményeként az aktuális munkakönyvtár teljes útvonalát kapjuk, melyet előzőleg az (ÚT! "PROJEKT) utasítással állítottunk be, vagy a Fájl menü Megnyitás. utasításának legutóbbi alkalmazása során használtunk. Az ÚT bemenet nélküli használata azonos az (ÚT "PROJEKT) függvénynyel A bemenetek és eredmények lehetséges értékei: bemenet eredmény "PROJEKT "DEMO az aktuális PROJEKT alkönyvtár elérési útja az aktuális DEMO alkönyvtár elérési útja (vagy a PROJEKT alkönyvtáré, ha a DEMO alkönyvtár nem létezik). "KEPSOR az aktuális KEPSOR alkönyvtár elérési útja "HANG az aktuális HANG alkönyvtára elérési útja "FELADAT az aktuális FELADAT alkönyvtára elérési
útja "RAJZLAP az aktuális RAJZLAP alkönyvtára elérési útja Más lehetőség: 119 az Elérési út megadása. párbeszédablakban az aktuális útvonal is látható az Elérési út címszó alatt. ÚT! ÚT! --- utasítás 1 vagy 2 bemenő adattal ÚT! útvonal (ÚT! Logo alkönyvtár útvonal ) Ha egyetlen bemenettel használjuk, akkor az ÚT! utasítás útvonala az új munkakönyvtárat állítja be. Az ÚT! útvonal egyenértékű az (ÚT! "PROJEKT útvonal) paranccsal A munkakönyvtárat a Logo minden egyes alkalommal beállítja, amikor a Fő-ablakban a Megnyitás. utasítást alkalmazzuk, amennyiben az ALAPÚT opció értékét 1-re állítjuk a LOGO! utasítással. Ebben az esetben a munkakönyvtár azt a könyvtárat határozza meg, ahonnan a legutóbbi projekt betöltése történt. Ha első paraméterként a "DEMO szót adjuk meg, akkor az utasítás az aktuális DEMO könyvtárat állítja be. Ha a "KÉPSOR szóval használjuk, akkor az
aktuális KÉPSOR könyvtárat határozhatjuk meg. Az aktuális HANG könyvtár beállításához a "HANG paramétert kell megadnunk Ha a paraméter a "FELADAT szó, akkor az aktuális FELADAT könyvtárat állítja be. Az aktuális RAJZLAP könyvtárat a "RAJZLAP bemenő adattal határozhatjuk meg Ha az adott útvonal nem létezik, akkor hiba következik be. Más lehetőség: a Fő-ablak Fájl menüjének Útvonalmegadása. utasítása ÜRESKÉPSOR ÜRESKÉPSOR --- bemenő adat nélküli függvény ÜRESKÉPSOR Eredményeként egy üres képsort kapunk, azaz egy olyan képsort, mely egyetlen fázist sem tartalmaz. Az üres képsor, mint bármely más képsor, egy teknőc új alakja lehet, ha az ALAK! utasítást erre alkalmazzuk. Az üres képsor mérete [0 0] Jegyezzük meg, hogy az üres képsor, az üres lista és az üres szó páronként különböző objektumok ? NÉV "X ÜRESKÉPSOR ? KI KÉPSORMÉRET :X [0 0] ? KI ELEMSZÁM :X 0 ? KI ELEMSZÁM KÉPSOR :X :X
; az üres képsor önmagával való összefűzése ; még mindig üres képsort eredményez ? FIGYELJ 0 ; legyen a 0 teknőcnek az alapalakja 24 fázissal ? KI ALAK = KÉPSOR :X ALAK IGAZ 0 120 A következő eljárások melyek a Szó- és Listafüggvények kategóriában is szerepelnek képsor értékű bemenő adattal is helyesen működnek: = CSERE ELEMSZÁM; ESZ EGYENLŐ? ELEM ELSŐ ELSŐNEK ELSŐNÉLKÜLI; EN EN ESZ FORDÍT KIVÁLASZT LISTA LISTA? M MONDAT; M ÖSSZEKEVER UN UTOLSÓ UTOLSÓNAK UTOLSÓNÉLKÜLI; UN ÜRES? 121 A Képernyő beállításai .PONTHELY! .PONTHELY--- függvény 1 bemenő adattal .PONTHELY pont .PONTHELY [ ] A bemenő pont a teknőc geometriában használatos, origó középpontú rajzlap egy pontja. A .PONTHELY függvény ennek a pontnak a Windows koordináta-rendszerében vett koordinátáit határozza meg (ahol a [0 0] koordinátájú pont a képernyő bal felső sarka). Ha a bemenő adat üres lista [ ], akkor eredményként a rajzlap bal
felső sarkának abszolút koordinátáit kapjuk meg. ALAPHELYZET ALAPHELYZET --- bemenő adat nélküli utasítás ALAPHELYZET Előkészíti a rajzlapot az új rajzoláshoz úgy, hogy letörli a képernyőt, törli az összes teknőcöt, és a 0 nevű teknőcöt ismét létrehozza (eredeti állapotában lásd az ÚJTEKNŐC utasítást), valamint aktívvá és láthatóvá teszi, lásd a LÁTHATÓ utasítást. Az ALAPHELYZET hatása a következő utasítássorozatéval azonos: ? TR ? RAJZLAPSZÍN! 15 ? TÖRÖLTEKNŐC MIND ? ÚJTEKNŐC 0 [ ] ? FIGYELJ 0 ? KÖRKÖRÖSEN ? LÁTHATÓ ALAPPALETTA ALAPPALETTA --- bemenő adat nélküli utasítás ALAPPALETTA Ha 256 színt alkalmazó módban dolgozunk, és 256 színt tartalmazó képeket töltünk be, akkor ezt az utasítást kell használnunk minden egyes betöltendő rajz előtt, ha tudjuk, hogy az aktuálisan betöltendő rajz esetleg ettől a 256 színűtől eltérő palettát használ. Akárhányszor kiadjuk a Logóban a TÖRÖLMUNKA
utasítást, illetve akárhányszor kiválasztjuk a Fájl menü Új projekt utasítását, a rendszer először az ALAPPALETTA eljárást hajtja végre. BETÖLTRAJZLAP BETÖLTRAJZLAP --- utasítás 1 bemenő adattal BETÖLTRAJZLAP BMP fájl Betölti a fájl tartalmát a rajzlapra. Szükséges, hogy az adott fájl bármilyen méretű, standard rajz formátumú legyen A rajzlap aktuális szélessége és magassága a betöltött rajz megfelelő méreteitől függ. Ha ennek mérete kisebb, mint a Logo Fő-ablakának lehetséges beállításai, a betöltött rajz a Fő-ablak bal felső sarkában lesz elhelyezve, vagy pedig a képernyő közepén, az éppen érvényben lévő RAJZLAP! opciónak megfelelően. 122 A BETÖLTRAJZLAP nem változtatja meg az aktív teknőcök listáját, sem az állapotukat. Azonban szükség esetén az összes olyan teknőcöt, mely KÖRKÖRÖSEN módban volt, elmozgatja úgy, hogy az aktuális rajzlapon belül álljon. A rajzlap aktuális tartalmának
elmentésére szolgál a MENTRAJZLAP utasítás. Ha csak részleges útvonal szerepel a fájlnévben, vagy egyáltalán nem szerepel útvonal, akkor a rendszer az alapkönyvtár RAJZLAP alkönyvtárában keresi a megfelelő fájlt. Ha ez a könyvtár nem létezik, akkor a KEPSOR alkönyvtárat használja helyette. Ennek a beállításnak a megváltoztatására szolgál az ÚT! utasítás, ha a "RAJZLAP szóval, mint első paraméterrel használjuk. Az aktuális beállítást az ÚT függvény eredményeként kapjuk, ha bemenő adatnak a "RAJZLAP szót adjuk. Ha nem adunk meg kiterjesztést a fájlnévben, akkor a BETÖLTRAJZLAP alapértelmezésben a .BMP kiterjesztést használja Színmódosulások grafika kimentésénél és betöltésénél Más lehetőségek: a Fő-ablak Fájl menüjének Rajzlapbetöltés. utasítása, a fentinek megfelelő utasítás a felbukkanó menüben, melyet a rajzlapon a jobb egér gombbal való kattintással hívhatunk elő. EGÉRALAK! EGÉRALAK!
--- utasítás 1 bemenő adattal EGÉRALAK! képsor EGÉRALAK! LGW fájl EGÉRALAK! szám EGÉRALAK! [ ] ahol a szám egy a 0 és 15 közé eső egész szám Hatásaként az egérkurzor aktuális alakja az a képsor lesz, melyet közvetlenül a bemenő képsor, vagy az LGW fájlban tárolt képsor határoz meg. Azaz az: ? EGÉRALAK! "NYIL2 egyenértékű a következő paranccsal: ? EGÉRALAK! BETÖLTKÉPSOR "NYIL2 Ha a bemenet egy a 0 és 15 közé eső szám, akkor az egér formája egy standard Windows-kurzor alakját veszi fel a következő táblázatnak megfelelően: Az egérkurzor mindig fekete-fehér. Ha az adott képsor színes, akkor a fehértől különböző színeket a rendszer feketére redukálja Az egérkurzor maximális mérete 32 x 32 képpont A nagyobb képsorokat erre a méretre csökkenti (ami részben megváltoztathatja eredeti kinézetü-ket). Ha több fázisból áll az adott képsor, akkor ennek második fázisa ábrázolja az egeret, mikor annak bal
gombját lenyomjuk. Az egérkurzor eredeti alakját a következő utasítással állíthatjuk vissza: ? EGÉRALAK! [ ] EGÉRHELY! EGÉRHELY! --- utasítás 1 bemenő adattal egérhely! pont 123 A bemenő adat által meghatározott pontba helyezi az egérkurzort. Ha ez a pont a képernyőn (vagyis a rajzlapon és az írólapon) kívül helyezkedik el, akkor a kurzort a képernyő megfelelő határára teszi Emellett arra is lehetőség van, hogy a kurzort a Logo ablakán kívülre helyezzük, ha az ablakban nem látható a rajzlap és az írólap egésze ÍA ÍRÓABLAK; ÍA --- bemenő adat nélküli utasítás ÍRÓABLAK A teljes Fő-ablakot szövegesre állítja be. A rajzlap pillanatnyi tartalma nem vész el, csak egy részét ideiglenesen lefedi az íróablak, és aktív is marad, azaz a teknőcök továbbra is rajzolhatnak rá, és mozoghatnak, még az íróablak alatt is. A teljes Fő-ablakban csak a rajzlap fog megjelenni, ha a RAJZABLAK utasítást alkalmazzuk. Mind a
grafikus, mind a szöveges képernyő megjelenik, ha az OSZTOTTABLAK utasítást adjuk ki Más lehetőségek: a Fő-ablak Ablak menüjének Íróablak utasítása, az F7 funkcióbillentyű, ha a Fő-ablak aktív, vagy a Fő-ablak Eszközsorának Íróablak piktogramja. ÍRÓABLAK; ÍA ÍRÓLAP ÍRÓLAPABLAK --- bemenő adat nélküli függvény az írólap jellemzői ÍRÓLAP Eredménye az íróablakban pillanatnyilag megjelenő sorok száma, amikor a Logo OSZTOTTABLAK módban van, vagyis amikor mindkét ablak látható. Ez a szám mindig egy 2 és 25 közé eső egész szám Megváltoztatására az ÍRÓLAPABLAK! utasítás szolgál. Más lehetőségek: nyissuk meg a Képablak beállítása párbeszédablakot a Beállítások menü Ablakok beállítása. utasításának kiválasztásával a Fő-ablakban A párbeszédablakban láthatjuk mindkét képernyő aktuális beállításait, ugyanez a párbeszédablak nyílik ki akkor is, ha a jobb egérgombbal kattintunk a rajzlap területén
bárhol, és a felbukkanó menüben az Ablakok állítása. utasítást választjuk ki ÍRÓLAP! ÍRÓLAPABLAK! --- utasítás 1 bemenő adattal az íróablak méretének beállításaÍRÓLAP! szám ahol a szám egy 2 és 25 közé eső egész szám Az írólapon megjelenő sorok számát határozza meg, amikor a Logo Fő-ablaka OSZTOTTABLAK módban van. Ennek a számnak a megváltoztatásával megváltoztatjuk a rajzlap képernyőn megjelenő részét (vagyis a rajzablak méretét), de sem a rajzlap aktuális méretét (melyet a RAJZLAPABLAK! utasítással állíthatunk be), sem ennek aktuális tartalmát nem módosítja. A pillanatnyilag kijelzett sorok számát az ÍRÓLAPABLAK függvény eredménye mutatja meg. 124 Más lehetőségek: a sorok számát szintén beállíthatjuk a Képablak beállítása párbeszédablakban, melyet a Fő-ablak Beállítások menüjének Ablakok beállítása. utasításának kiválasztásával nyithatunk ki, ugyanez a párbeszédablak nyílik
ki, ha a jobb egérgombbal kattintunk valahol a rajzlap területén és a felbukkanó menüből az Ablakok állítása. utasítást választjuk ki ÍRÓSZÍN! ÍRÓSZÍN! --- utasítás 1 bemenő adattal az írólap színeinek beállítása ÍRÓSZÍN! szám ahol a szám egy a 0 és 255 közé eső egész szám Az írólap hátterének és magának a szövegnek a színét állítja be. Ha a bemenő számot a következő formában írjuk le, 16*X + Y (ahol az X és Y is 0 és 15 közé eső számok), akkor az X szám jelöli az írólap hátterének színét, az Y pedig a szöveg színét. Az írólap alapbeállítása 240, azaz 16 * 15 + 0. ? ÍRÓSZÍN! 16 * 8 + 7 ; azaz a háttér színe 8, a szövegé 7 A továbbiakban egy a sötétszürke háttérre világosszürke szöveget írunk. A teljes írólapon mindkét szín megváltoztatása a TÖRÖLÍRÓLAP utasítással lehetséges, ha az ÍRÓSZÍN! eljárással előzőleg beállítottuk a megfelelő színeket. (Ekkor természetesen
az írólap eddigi tartalma elvész.) KURZORHELY KURZORHELY --- bemenő adat nélküli függvény KURZORHELY Eredménye egy kételemű, pozitív egész számokat tartalmazó lista [oszlop sor], ami a kurzor jelenlegi helyzetét adja meg az írólapon. Az [1 1] kurzorelhelyezkedés azt jelenti, hogy az írólap bal felső sarkában van a kurzor, amikor ÍRÓABLAK módban vagyunk. Ahhoz, hogy a kurzor aktuális helyzetét megváltoztassuk, használjuk a KURZORHELY! utasítást. A rajzlapon található első aktív teknőc aktuális pozíciójának megismerésére a HELY függvény ad lehetőséget A szöveg színének megváltoztatására (mind az írólap hátterének, mind magának a szövegnek a színéről szó van), az ÍRÓSZÍN utasítást kell kiadni. ? TÍ ÍA ? ISMÉTLÉS 200 [KURZORHELY! M 1 + VÉLETLENSZÁM 80 1 + ~ VÉLETLENSZÁM 26 KIÍRBELSŐ "HŰHA!] KURZORHELY! KURZORHELY! --- utasítás 1 bemenő adattal KURZORHELY! [szám1 szám2 ] ahola szám1 egy, az 1 és 80
közé eső egész szám,és a szám2 egy, az 1 és 26 közé eső egész szám 125 Kiteszi az írólap aktuális parancsjelét a [szám1 szám2] által meghatározott pozícióba, és mellette megjeleníti a kurzort is. Az új elhelyezkedést a következőképpen értelmezi: az írólap oszlopait a szám1 jelöli, sorait a szám2. ? TÍ ÍA ? ISM 200 [KURZORHELY! M 1 + VSZ 80 1 + VSZ 26 KIÍRBELSŐ "HŰHA!] Amikor a KURZORHELY! utasítást közvetlenül az utasítássorba gépeljük be (és nem követi ebben a sorban másik utasítás), akkor a Logo a kurzort a megadott helyre viszi, és kiírja az írólap parancsjelét (alapállapotban ? egy szóközzel követve). Ezzel jelzi számunkra azt, hogy a Logo készen áll a következő utasítás végrehajtására Az [1 1] elhelyezkedés ábrázolja az írólap bal felső sarkát, ha a Logo ÍRÓABLAK módban van. A kurzor aktuális pozícióját a KURZORHELY függvény eredményéből olvashatjuk ki. Az aktuális parancsjel
megváltoztatása a PARANCSJEL! utasítással lehetséges LOGOABLAK LOGOABLAK --- bemenő adat nélküli függvény LOGOABLAK Eredménye egy hatelemű lista [X Y sz m szám szöveg ]: mely a Logo Fő-ablakának aktuális abszolút koordinátái, X és Y mellett az ablak pillanatnyi szélességét, magasságát, állapotát és címsorát tartalmazza. Ezen jellemzők módosítása a LOGOABLAK! utasítás alkalmazásával érhető el. LOGOABLAK! LOGOABLAK! --- utasítás 1 bemenő adattal LOGOABLAK! [X Y sz m ] LOGOABLAK! [X Y sz m szám ] LOGOABLAK! [X Y sz m szám szöveg ] LOGOABLAK! [ ] ahol X, Y, sz és m számok A Logo Fő-ablakának pozícióját, a méretét és feliratát definiálja. A bemenő lista első két eleme, X és Y a Fő-ablak bal felső sarkának abszolút koordinátáit határozza meg. Az sz és m számok az ablak szélességét és magasságát jelölik Ha létezik ötödik elem, akkor ez az ablak új állapotát határozza meg, az alábbiaknak megfelelően: 0
normál ablak, mely aktívvá válik, 1 minimalizált (ikonként megjelenő) ablak, mely aktívvá válik, 2 maximalizált ablak, mely aktívvá válik, 3 normál ablak, de a Logo marad aktív, 4 minimalizált ablak, de a Logo marad aktív. Az ötödik paraméter elhagyása esetén a feltételezett értéke 0. Ezen ötödik elem értéke az X, Y, sz és m értékek jelentését is befolyásolhatja a következők szerint. Ha az ötödik szám: 0 vagy 3 akkor az X, Y, sz és m az ablak aktuális pozícióját és méretét definiálja, mely ennek megfelelően azonnal átméreteződik,1 vagy 4 akkor az X és Y az ikon elhelyezkedését definiálja a képernyőn, és az sz és m értékeknek nem lesz hatásuk (de nem lehet őket elhagyni), 126 2 az ablak maximalizált, tehát az egész képernyőt lefedi, az X, Y, sz és m értékeket akkor használja, amikor az ablakot a legközelebb normál méretűre állítjuk (a Vezérlő menü Előző méret utasításával vagy a címsor
Előző méret gombjával), 5 az X, Y, sz és m értékeknek nincs jelentősége, az ablak a teljes képernyőt betölti. A lehetséges hatodik bemenet az ablak új feliratát adja meg. Ha a bemenet [ ] üres lista, akkor a Fő-ablak maximális méretű lesz anélkül, hogy mérete és felirata megváltozna. MENTRAJZLAP MENTRAJZLAP --- utasítás 1 vagy 2 bemenő adattal MENTRAJZLAP BMP fájl (MENTRAJZLAP BMP fájl pont ) (MENTRAJZLAP BMP fájl téglalapnyi terület ) Elmenti a rajzlap aktuális tartalmát a fájlba. A fájl a rajzlap aktuális méretének megfelelő méretű standard rajzot fog tartalmazni, ha nem adunk második paramétert A teknőcök alakja nem jelenik meg a fenti rajzon, mivel ezek nem képezik a rajzlap tartalmának részét. (Tetszőleges teknőc alakja a rajzlap tartalmához tartozóvá tehető a LENYOMAT utasítás alkalmazásával.) Ha adunk második bemenő adatot is, akkor csak a rajzlap ennek megfelelő részét menti el a rendszer: ha a második
paraméter egy pont, azt a téglalapot menti el a rendszer, melynek az adott pont a bal felső sarka, és a rajzlap jobb alsó sarkával egyezik meg a jobb alsó sarka, ha a második paraméter egy téglalapnyi terület, akkor ennek aktuális tartalmát menti el a rendszer. A rajzlap új háttere a BETÖLTRAJZLAP utasítással tölthető be. Ha csak részleges útvonal szerepel, vagy egyáltalán nem szerepel útvonal az adott fájlnévben, akkor az alapkönyvtár RAJZLAP alkönyvtárában helyezi el a fájl Ha ez a könyvtár nem létezik, akkor a KEPSOR alkönyvtárat használja helyette Ennek a beállításnak a megváltoztatására szolgál az ÚT! utasítás a "RAJZLAP első paraméterrel Az aktuális beállítást az ÚT "RAJZLAP függvénysor eredményéből olvashatjuk ki. Ha nem adunk meg kiterjesztést, akkor a MENTRAJZLAP automatikusan a .BMP kiterjesztést csatolja a fájlnévhez Ha már létezik ezen a néven fájl, akkor ezt először törli a rendszer.
Színmódosulások grafika kimentésekor és betöltésekor Más lehetőség: a Fő-ablak Fájl menüjének Rajzlapmentés. utasítása MI MUTATIKONSOR; MI --- bemenő adat nélküli utasítás MUTATIKONSOR Megjeleníti az Ikonsort a képernyőn. Amikor az Ikonosor nem látható, akkor a rajzlap egy kicsit nagyobb lehet (ez az Alapértelmezés gomb lenyomásával ellenőrizhető a Képablak beállítása párbeszédablakban, lásd a RAJZLAP! vagy az ÍRÓLAP! utasítást). A Logo Fő-ablakának pontos méretét a LOGOABLAK! utasítás alkalmazásával határozhatjuk meg. Az Ikonsort a képernyőről eltüntetni a REJTIKONSOR utasítással lehetséges. Más lehetőség: a Fő-ablak Ablak menüjének Eszközsort mutat utasítása. 127 MUTATIKONSOR; MI NYOMTATÍRÓLAP NYOMTATÍRÓLAP --- utasítás 1 bemenő adattal NYOMTATÍRÓLAP nyomtatójelző Kinyomtatja az írólap aktuális tartalmát. A nyomtatás aktuális beállításait a nyomtatójelző határozza meg a Fő-ablak Fájl
menüjének Írólapnyomtatás utasítása. NYOMTATRAJZLAP NYOMTATRAJZLAP --- utasítás 1 vagy 2 bemenő adattal NYOMTATRAJZLAP nyomtatójelző (NYOMTATRAJZLAP nyomtatójelző téglalapnyi terület ) Kinyomtatja a rajzlap aktuális tartalmát. A nyomtatás aktuális beállításait a nyomtatójelző határozza meg Ha az utasításnak csak egyetlen bemenete van, akkor a teljes rajzlapot fogja kinyomtatni. Ha második bemenetet is adunk, akkor csak a rajzlap meghatározott téglalapnyi területe nyomtatódik ki Más lehetőség: a Fő-ablak Fájl menüjében a Rajzlapnyomtatás utasítás. OA OSZTOTTABLAK; OA --- bemenő adat nélküli utasítás OSZTOTTABLAK Beállítja a Fő-ablakot rajz- és írólapra. Az íróablakban látható sorok száma az ÍRÓLAPABLAK! utasítás alkalmazásával változtatható meg, és az ÍRÓLAPABLAK függvénnyel kérdezhető le. A rajzlap aktuális tartalmára nincs hatással az OSZTOTTABLAK utasítás, csak ideiglenesen fedi le egy részét az
íróablak, amíg ez a mód aktív. Tehát a teknőcök továbbra is rajzolhatnak és mozoghatnak a Fő-ablak azon részén is, melyen az írólap látható. Az egész Fő-ablakot grafikusra állítjuk be a RAJZABLAK utasítással. Az írólap pillanatnyi tartalmára sincs hatással az OSZTOTTABLAK utasítás, csak a néhány legfrissebb sorát láthatjuk. Az egész Fő-ablakot szövegesre állíthatjuk az ÍRÓABLAK utasítással Más lehetőségek: a Fő-ablak Ablak menüjének Osztottablak utasítása, az F6 funkcióbillentyű, ha a Fő-ablak aktív, vagy a Fő-ablak Eszközsorának Osztottablak piktogramja. OLPARANCSJEL! OLVASLISTAPARANCSJEL!; OLPARANCSJEL! --- utasítás 1 bemenő adattal OLVASLISTAPARANCSJEL! listaolvasás parancsjele Az utasítás segítségével meghatározhatjuk azt a szöveget, amit a listaolvasás új parancsjeleként szeretnénk használni az írólapon. A listaolvasás parancsjelének az alapbeállítása egy kettőspont (:), melyet egy szóköz követ
(tehát az alapértelmezésben a parancsjel két karakterből áll). ? OLPARANCSJEL! "Amit gépelsz: ? KI OL Amit gépelsz: A B C ; az A B C betűket írtuk be 128 [A B C] OLVASLISTAPARANCSJEL!; OLVASLISTAPARANCSJEL!; OLPARANCSJEL! --- utasítás 1 bemenő adattal OLVASLISTAPARANCSJEL! listaolvasás parancsjele Az utasítás segítségével meghatározhatjuk azt a szöveget, amit a listaolvasás új parancsjeleként szeretnénk használni az írólapon. A listaolvasás parancsjelének az alapbeállítása egy kettőspont (:), melyet egy szóköz követ (tehát az alapértelmezésben a parancsjel két karakterből áll). ? OLPARANCSJEL! "Amit gépelsz: ? KI OL Amit gépelsz: A B C ; az A B C betűket írtuk be [A B C] PONTSZÍN PONTSZÍN --- bemenő adat nélküli függvény PONTSZÍN Eredménye egy 0 és 15 közé eső szám, attól függően, hogy a rajzlapon az első aktív teknőc aktuális pozíciójában levő pontnak milyen színe van. Az első aktív teknőc
koordinátáinak megismeréséhez használjuk a HELY függvényt. A rajzlap teljes hátterének színét a RAJZLAPSZÍN! utasítással változtathatjuk meg. A teljes háttér jelenlegi színét (mely bármelyik pont aktuális színétől különbözhet) a RAJZLAPSZÍN függvény eredményéből olvashatjuk le. ? RAJZLAPSZÍN! 7 ? TR ? KI PONTSZÍN 7 ; most a rajzlap minden egyes pontja szürke OSZTOTTABLAK; OA PARANCSJEL! PARANCSJEL! --- utasítás 1 bemenő adattal PARANCSJEL! szó ahol a szó legfeljebb 16 karakterből állhat. Az írólapon az írólap parancsjeleként használandó szöveget határozhatjuk meg az utasítás segítségével (mint DOS-ban a prompt) Az írólap parancsjelének alapbeállítása a ? egy szóközzel követve (tehát az alapértelmezett parancsjel két karakterből áll). ? PARANCSJEL! "Amit gépelsz: Amit gépelsz: KIÍR "SZIA SZIA Amit gépelsz: KIÍR 5 5 Amit gépelsz: PARANCSJEL! "? ? 129 Hol használjuk az Escape karaktert Más
lehetőség: az írólap parancsjelét a Képablak beállítása párbeszédablakban is beállíthatjuk, mely akkor tűnik fel, ha a Fő-ablak Beállítások menüjének Ablakok beállítása. utasítását választjuk ki RA RAJZABLAK; RA --- bemenő adat nélküli utasítás RAJZABLAK A Fő-ablakban a grafikus képernyő lesz látható. Az írólapot egyáltalán nem jeleníti meg, bár ennek tartalma nem veszik el. Sőt az írólap aktív is, azaz a Logo minden parancsot végrehajt, amit a billentyűzeten begépelünk. Ahhoz, hogy az írólapot újra láthatóvá tegyük az aktuális tartalommal együtt, használjuk az ÍRÓABLAK vagy az OSZTOTTABLAK utasítást. Más lehetőségek: az Ablak menü Rajzablak utasítása a Fő-ablakban, vagy az F5 funkcióbillentyű, ha a Fő-ablak aktív, vagy a Fő-ablak Ikonsorának Rajzablak piktogramja. RAJZABLAK; RA RAJZLAP RAJZLAP --- bemenő adat nélküli függvény a rajzlap jellemzői RAJZLAP Eredménye egy négy számból álló lista [sz1
sz2 egész3 egész4 ], mely a rajzlap aktuális beállításait írja le. Az sz1 és sz2 számok mindig nagyobbak 7-nél sz1 a rajzlap szélessége (képpontokban mérve) sz2 a rajzlap magassága (képpontokban mérve). egész3 1, ha a rajzlap a Fő-ablakban középre igazított 0, ha bal felső sarka a Fő-ablak munkaterületének bal felső sarkában van elhelyezve egész4 1, ha görgetősávok láthatók a rajzablak jobb és alsó szélein 0, ha nincsenek görgetősávok Más lehetőségek: nyissuk meg a Képablak beállítása párbeszédablakot a Beállítások menü Ablakok beállítása. utasításának kiválasztásával a Fő-ablakban A párbeszédablakban láthatjuk mindkét képernyő aktuális beállításait, ugyanez a párbeszédablak nyílik ki akkor is, ha a jobb egérgombbal kattintunk a rajzlap területén bárhol, és a felbukkanó menüben az Ablakok állítása. utasítást választjuk ki RAJZLAP! RAJZLAPABLAK! --- utasítás 1 bemenő adattal a rajzlap
jellemzőinek beállítása RAJZLAPABLAK! [szám1 szám2 ] ahol a szám1, és a szám2 8 és 2048 közé eső egész számok A rajzlap pillanatnyi beállításait definiálja. A szám1 és a szám2 ennek szélességét és magasságát ábrázolja (képpontokban mérve). 130 A rajzlap méretének megváltoztatásával az írólapon megjelenő sorok száma nem változik. A rajzlap aktuális beállításait a RAJZLAPABLAK függvény eredményéből ismerhetjük meg Más lehetőségek: a Fő-ablak Beállítások menüjének Ablakok beállítása. utasításának kiválasztásával nyissuk ki a Képablak beállítása párbeszédablakot. Ebben mindkét ablak aktuális beállításait láthatjuk és módosíthatjuk, ugyanez a párbeszédablak nyílik ki akkor is, ha a jobb egérgombbal kattintunk valahol a rajzlapon, és a felbukkanó menüből az Ablakok állítása. utasítást választjuk ki RAJZLAPSZÍN; RSZ RAJZLAPSZÍN; RSZ --- bemenő adat nélküli függvény RAJZLAPSZÍN
Eredményeként a rajzlap hátterének aktuális színét kapjuk meg. Ennek megváltoztatására a RAJZLAPSZÍN! utasítás használható A Logo indításakor a rajzlap háttérszíne fehér, amit a 15-ös kód jelez. RAJZLAPSZÍN!; RSZ! RAJZLAPSZÍN!; RSZ! --- utasítás 1 bemenő adattal RAJZLAPSZÍN! szín A bemenetben meghatározott színre állítja be a rajzlap hátterének színét. Az egész rajzlapot letörli, és lefedi az adott színnel, vagyis a lap tartalmát elvesztjük. Azonban a teknőcök állapota nem változik meg, vagyis mindegyikük a pozíciójában marad, látható, illetve láthatatlan marad addigi állapotának megfelelően stb. Hasonlítsuk össze figyelmesen a TÖRÖLRAJZ, az ALAPHELYZET és a TÖRÖLRAJZLAP utasításokat. A pillanatnyi háttérszínt a RAJZLAPSZÍN függvény eredményéből olvashatjuk ki. REJTIKONSOR; RI REJTIKONSOR; RI --- bemenő adat nélküli utasítás REJTIKONSOR Eltünteti a Fő-ablak Ikonsorát a képernyőről. Amikor az Ikonsor
nem látható, akkor a rajzablak egy kicsivel nagyobbá válik (amiről a Képablak beállítása párbeszédablakban az Alapértelmezés gomb lenyomásával győződhetünk meg, lásd a RAJZLAP! vagy az ÍRÓLAP! utasításokat). A Logo Fő-ablakának pontos méretét a LOGOABLAK! utasítás segítségével állíthatjuk be. Ha újra láthatóvá szeretnénk tenni az Ikonsort a képernyőn, használjuk a MUTATIKONSOR utasítást. Más lehetőség: a Fő-ablak Ablak menüjében az Eszközsort elrejt utasítás. RI RSZ RSZ! 131 TÍ TÖRÖLÍRÓLAP; TÍ --- bemenő adat nélküli utasítás TÖRÖLÍRÓLAP Törli az írólap tartalmát, vagyis lefedi az írólap aktuális háttérszínével, és kiteszi az aktuális parancsjelet az írólap bal felső sarkába, és emellé elhelyezi a kurzort. Eredetileg, ha a PARANCSJEL! utasítással újra nem definiáltuk, a parancsjel egy kérdőjel, melyet egy szóköz követ (? ). Az írólap hátterének aktuális színét az ÍRÓSZÍN!
utasítással állíthatjuk be. Az íróablakban látható sorok számát a ÍRÓLAP! parancs segítségével határozhatjuk meg Más lehetőség: az Ablak menü Írólapot töröl utasítása a Fő-ablakban. TÖRÖLÍRÓLAP; TÍ TÖRÖLRAJZ TÖRÖLRAJZ --- bemenő adat nélküli utasítás TÖRÖLRAJZ Törli a rajzlap tartalmát, vagyis lefedi az aktuális háttérszínnel. Ellentétben a TÖRÖLRAJZLAP utasítással, a TÖRÖLRAJZ nem változtatja meg az aktív teknőcök aktuális irányát, koordinátáit, illetve tollának állapotát. Az aktuális háttérszín lekérdezése a RAJZLAPSZÍN függvény, megváltoztatása pedig a RAJZLAPSZÍN! utasítással lehetséges. TÖRÖLRAJZLAP; TR TR 132 Gombok és paraméterbeállítók BEÁLLÍTÓ BEÁLLÍTÓ --- függvény 1 bemenő adattal BEÁLLÍTÓ Logo-eljárás Ez a függvény lehetővé teszi, hogy bármelyik saját eljárásból meghívjuk valamelyik Logo paraméterbeállítót (és hogy ennek segítségével vizuálisan
választhassuk ki a felhasználó által definiált eljárás bemenő adatát). Bemenetként csak paraméterbeállítóval rendelkező Logo alapszó szerepelhet. A BEÁLLÍTÓ függvény a Beállító ablak megjelenítésével lehetővé teszi a felhasználó számára, hogy a felajánlott lehetőségek közül kiválassza a megfelelőt Ezután a következő történhet: miután választottunk Becsukjuk a Beállító ablakot az Enter billentyű lenyomásával, vagy az Írd! gombra való kattintással. Ebben az esetben a BEÁLLÍTÓ függvény eredménye egy teljes Logo-utasítást tartalmazó lista, vagyis a Logo-eljárás neve az előbbiekben kiválasztott bemenő adattal, illetve adatokkal kiegészítve; vagy az Esc billentyűt, vagy a Cancel gombot nyomjuk le. Ebben az esetben a visszaadott érték üres lista ? KI BEÁLLÍTÓ "B [B 90] ; ha a felhasználó 90-t választott és a CSINÁLD! gombra ; kattintott ? KI BEÁLLÍTÓ "TSZ! [TSZ! [35 105 125] ] ? NÉV "SZÍN
UTOLSÓ BEÁLLÍTÓ "TSZ! ; a felhasználó kiválaszt egy színt, és ennek kódja ; lesz a SZÍN változó értéke. Például: ? KI :SZÍN [35 105 125] ? NÉV "SZÍN BEÁLLÍTÓ "TSZ! ? HA NEM ÜRES? :SZÍN [NÉV "SZÍN UTOLSÓ :SZÍN] ; hatása ugyanaz, mint fent, de azt is figyelembe veszi, ; hogy elképzelhető, hogy a felhasználó nem választott ki ; színt, csak a Beállító ablak MÉGSEM gombját vagy az Esc ; billentyűt nyomta le. Ebben az esetben a BEÁLLÍTÓ függvény ; eredménye üres lista. BETÖLTFELADAT BETÖLTFELADAT --- utasítás 1 vagy 2 bemenő adattal BETÖLTFELADAT TXT fájl Megnyitja a Feladat-ablakot és megjeleníti benne az adott TXT fájl által tartalmazott feladatot. Ha csak részleges útvonal szerepel az adott fájlnévben, vagy egyáltalán nem szerepel útvonal, akkor az alapkönyvtár FELADAT alkönyvtárában keresi a megfelelő fájlt. Ennek a beállításnak megváltoztatására ad lehetőséget az ÚT! utasítás a
"FELADAT szóval, mint első paraméterével. Az aktuális beállítást az ÚT függvény eredményéből olvashatjuk ki, ha bemenő adatként szintén a "FELADAT szó szerepel 133 Jegyezzük meg, hogy a BETÖLTFELADAT utasítás azonnal megnyitja a Feladatablakot, még akkor is, ha a LOGO! utasítás ZÁRTFELADAT beállítása 1 értékkel rendelkezik. BEZÁRFELADAT BEZÁRFELADAT --- utasítás 1 bemenő adattal BEZÁRFELADAT TXT fájl A TXT fájl tartalma által meghatározott Feladat ablakot zárja be. Ha adott nevű fájl nem létezik, vagy az ablak nem látható a képernyőn, akkor semmi sem történik. A feladat képernyőn történő megjelenítéséhez használjuk a BETÖLTFELADAT utasítást. GOMBNÉV GOMBNÉV --- függvény 1 bemenő adattal vagy bemenő adat nélkül GOMBNÉV (GOMBNÉV szám ) ahol a szám egy 1 és 30 közé eső egész szám. Ha nincs bemenő adata, akkor az eredmény a Gombok ablak gombjaihoz kapcsolódó aktuális gombsordefiníciót
tartalmazó lista. Ha a függvénynek van bemenő adata, akkor a megfelelő gombhoz tartozó aktuális gombdefiníciót kapjuk eredményül. Ahhoz, hogy egy a Gombok ablakban szereplő gombhoz szöveget vagy grafikát és utasításokat definiáljunk, használjuk a GOMBNÉV! utasítást. A Gombok ablak képernyőn való megjelenítését a MUTATGOMBSOR utasítás kiadásával érhetjük el, míg ennek elrejtésére szolgál a REJTGOMBSOR utasítás. ? GOMBNÉV! [ ] ? GOMBNÉV! [ [SÉTA] [ [MENJ!] [E 100 J 90] ] [TOLLSZÍN!] ] ? KI GOMBNÉV [ [TR] [ [SÉTA] [E 100 J 90] ] [TOLLSZÍN!] ] ? KI (GOMBNÉV 2) [ [SÉTA] [E 100 J 90] ] ? GOMBNÉV! UTOLSÓNAK [TV!] GOMBNÉV ? KI GOMBNÉV [ [TR] [ [SÉTA] [E 100 J 90] ] [TOLLSZÍN!] [TV!] ] GOMBNÉV! GOMBNÉV! --- utasítás 1 vagy 2 bemenő adattal GOMBNÉV! [definíció . ] (GOMBNÉV! szám definíció ) GOMBNÉV! [ ] ahol a definíció egy gombsordefiníció és a szám egy 1 és 30 közé eső egész szám A Gombok ablak gombjaival
kapcsolatban definiált feliratot/grafikát és a viselkedést határozza meg. Az első definíció az első gombon tűnik fel, a második definíció a második gombon stb. Ha paraméterként szám és definíció szerepel, akkor részleges definícióval 134 egyetlen gombot (a szám-adikat) definiálhatunk. Ha a bemenete üres lista [ ], akkor az összes gomb az alapértelmezett méretre és elhelyezkedésre áll vissza az ablakon belül, és a rendszer törli az összes feliratot/grafikát és viselkedést. Az aktuálisan a gombokhoz tartozó feliratokat és viselkedést a GOMBNÉV függvény eredményeként kapjuk meg. A Gombok ablak látható, illetve nem látható voltától függetlenül használhatjuk a GOMBNÉV! utasítást A Gombok ablak képernyőn való megjelenítésére a MUTATGOMBSOR utasítás szolgál, míg elrejteni REJTGOMBSOR utasítással lehet. ? GOMBNÉV! [ ] ? GOMBNÉV! [ [TR] [ [MENJ] [E 100 J 90] ] [TSZ!] ] ? KI GOMBNÉV [ [TR] [ [MENJ] [E 100 J 90] ]
[TSZ!] ] ? KI (GOMBNÉV 2) [ [MENJ] [E 100 J 90] ] ? GOMBNÉV! UTOLSÓNAK [TV!] GOMBNÉV ? KI GOMBNÉV [ [TR] [ [MENJ] [E 100 J 90] ] [TSZ!] [TV!] ] Más lehetőségek: közvetlenül definiálhatjuk, illetve módosíthatjuk bármelyik gombot, ha ráklikkelünk a jobb egérgombbal, a Gombok ablakon belül bármely gombot elmozgathatjuk, ha lenyomjuk a Shift billentyűt és a jobb egérgombbal vontatjuk. GOMBSOR GOMBSOR --- bemenő adat nélküli függvény GOMBSOR Eredménye egy négy- vagy ötelemű lista, mely a Gombok ablak aktuális pozícióját és méretét írja le, kiegészítve esetleg ennek elnevezésével is. Az eredménylista a következő formátumokat veheti fel: [X Y sz m ] vagy [X Y sz m szöveg ], ahol X és Y az ablak bal felső sarkának abszolút koordinátái, sz és m pedig a gombterület szélessége, illetve magassága. Ha a címsor megváltozik, és így már nem az alapértelmezett Gombok lesz, akkor az új elnevezés a lista ötödik elemeként szerepel. Az
ablak méretét, elhelyezkedését vagy címsorát a GOMBSOR! utasítás segítségével változtathatjuk meg. GOMBSOR! GOMBSOR! --- utasítás 1 bemenő adattal GOMBSOR! [X Y sz m ] GOMBSOR! [X Y sz m szöveg ] GOMBSOR! [X Y sz m [ ]] GOMBSOR! [ ] ahol az X, Y, sz és m számok A Gombok ablak aktuális méretét és elhelyezkedését állítja be. Ha a bemenő lista az [ X Y sz m ] számokat tartalmazza, akkor ezen adatok közül az [X Y] ponttal az ablak bal felső sarkának pozícióját határozza meg, az ablak szélességét az sz, magasságát pedig az m adja meg. Jegyezzük meg, hogy az X, Y abszolút képernyőkoordináták, és az sz és az m az ablak gombterületének szélességét és magasságát jelö135 lik (vagyis az ablak méretébe nem számítjuk bele az azt körülvevő fekete keretet és a címsorát). Ha a lista szöveget is tartalmaz, akkor ez határozza meg a Gombok ablak címsorában olvasható feliratot. Ha ötödik elemként üres listát adunk meg [ ],
akkor nem jelenik meg az ablak címsora, így az ablakot nem mozgathatja a felhasználó az egér segítségével. Ha a GOMBSOR! utasításnak az [ ] üres lista bemenetet adjuk, akkor ez az ablak alapértelmezett pozícióját és méretét állítja be. Ha a GOMBNÉV! [ ] utasítással együtt használjuk, akkor törli az összes gombot, és a Gombok ablak összes gombjának az alapértelmezett (nem definiált) viselkedését állítja be, lásd a GOMBNÉV! eljárást is ? GOMBSOR! [0 0 100 110] ? GOMBSOR! M [535 80] EN EN GOMBSOR ; csak az ablak elhelyezkedését változtatja meg, ; a méretét és a feliratát nem ? GOMBSOR! [485 80 150 110 [Az Utasításaid] ] MG MUTATGOMBSOR; MG --- bemenő adat nélküli utasítás MUTATGOMBSOR Megjeleníti a Gombok ablakot a képernyőn. Ezt a gombokhoz tartozó viselkedésektől függetlenül teszi, vagyis a gombdefiníciókat nem változtatja meg a Gombok ablak megjelenítése, illetve eltüntetése. Az ablakot a képernyőről eltüntetni a
REJTGOMBSOR utasítással lehet. A gombok viselkedését definiálni vagy átdefiniálni (a feliratukat/grafikájukat és a reakciót), a GOMBNÉV! utasítással lehet. A Gombok ablak méretét a GOMBSOR! utasítással állíthatjuk be A gombok aktuális definícióit a GOMBNÉV függvény eredményéből olvashatjuk ki Más lehetőség: nyomjuk meg az F10 funkcióbillentyűt MI MUTATIKONSOR; MI --- bemenő adat nélküli utasítás MUTATIKONSOR Megjeleníti az Ikonsort a képernyőn. Amikor az Ikonosor nem látható, akkor a rajzlap egy kicsit nagyobb lehet (ez az Alapértelmezés gomb lenyomásával ellenőrizhető a Képablak beállítása párbeszédablakban, lásd a RAJZLAP! vagy az ÍRÓLAP! utasítást). A Logo Fő-ablakának pontos méretét a LOGOABLAK! utasítás alkalmazásával határozhatjuk meg. Az Ikonsort a képernyőről eltüntetni a REJTIKONSOR utasítással lehetséges. Más lehetőség: a Fő-ablak Ablak menüjének Eszközsort mutat utasítása. MUTATGOMBSOR; MG
MUTATIKONSOR; MI 136 REJTGOMBSOR; RG REJTGOMBSOR; RG --- bemenő adat nélküli utasítás REJTGOMBSOR Eltünteti a Gombok ablakot a képernyőről. Ezt a gombok viselkedésétől (szöveg/rajz és a reakció) függetlenül teszi, tehát a Gombok ablak láthatóvá tétele, illetve elrejtése a gombdefiníciókat nem változtatja meg. A Gombok ablak képernyőn való megjelenítéséhez használjuk a MUTATGOMBSOR utasítást. A gombok viselkedésének meghatározása, illetve újradefiniálása a GOMBNÉV! utasítás segítségével lehetséges. A Gombok ablak mérete a GOMBSOR! utasítással állítható be. A gombok aktuális definícióit a GOMBNÉV függvény eredménye mutatja meg Más lehetőség: az F10 funkcióbillentyű lenyomása. REJTIKONSOR; RI REJTIKONSOR; RI --- bemenő adat nélküli utasítás REJTIKONSOR Eltünteti a Fő-ablak Ikonsorát a képernyőről. Amikor az Ikonsor nem látható, akkor a rajzablak egy kicsivel nagyobbá válik (amiről a Képablak
beállítása párbeszédablakban az Alapértelmezés gomb lenyomásával győződhetünk meg, lásd a RAJZLAP! vagy az ÍRÓLAP! utasításokat). A Logo Fő-ablakának pontos méretét a LOGOABLAK! utasítás segítségével állíthatjuk be. Ha újra láthatóvá szeretnénk tenni az Ikonsort a képernyőn, használjuk a MUTATIKONSOR utasítást. Más lehetőség: a Fő-ablak Ablak menüjében az Eszközsort elrejt utasítás. RG RI 137 Kommunikáció a Külvilággal" JEL JEL --- függvény 1 bemenő adattal JEL szám ahol a szám egy a 0 és 255 közé eső egész szám Eredményül azt a karaktert kapjuk, melynek ASCII kódja az adott számmal egyenlő. Ahhoz, hogy egy karakter (vagy egy szó első karakterének) ASCII kódját megtudjuk, használjuk a KÓD függvényt. ? KIÍR JEL 122 z ? KI JEL 32 + KÓD "E e GNY? GOMBNYOMÁS?; GNY? --- bemenő adat nélküli függvény GOMBNYOMÁS? Eredménye IGAZ, ha valamely billentyűt lenyomtuk a billentyűzeten vagy a bal
egérgombot lenyomtuk, illetve felengedtük. Ugyancsak IGAZ értéket eredményez a függvény, ha a bal egérgomb lenyomott állapotában vontatjuk az egeret Különben a visszaadott érték HAMIS. Amikor a billentyűzetről egy karaktert olvasunk be, az OLVASKÓD és az OLVASJEL függvények addig várnak, amíg a GOMBNYOMÁS? függvény eredménye IGAZ lesz. TANULD VÁRAKOZÁS HA GOMBNYOMÁS? [ÍRJ VISSZATÉR] VÁRAKOZÁS ; ilyesmi ciklust használ a READCHAR is VÉGE TANULD ÍRJ KIÍRBELSŐ [A LENYOMOTT BILLENTYŰ: ] KIÍR OLVASJEL VÉGE ? VÁRAKOZÁS ; addig vár, míg lenyomunk egy billentyűt A LENYOMOTT BILLENTYŰ: R ? GOMBNYOMÁS?; GNY? KI KIÍRJEL; KI --- utasítás 1 vagy N bemenő adattal KIÍRJEL akármi (KIÍRJEL akármi1 akármi2 . ) Kiírja az adott bemeneteket az írólapra vagy az eredményfájlba, ha a KIÍRÓESZKÖZ utasítással ezt határoztuk meg a kimenő adatok célállomásának. Ha több bemenet szere138 pel, akkor ezeket egymástól szóközzel
elválasztva írja ki. A KIÍRJEL utasítás a kurzort a következő sor elejére helyezi. A KIÍRJEL „technikai kiírást valósít meg, mivel az öszszes zárójelet is változatlanul kiírja, lásd a KIÍR és a KIÍRBELSŐ utasításokat is ? KI "SZÉP SZÉP ? (KI "SZÉP "IDŐ "VAN) SZÉP IDŐ VAN ? KI [RÖVID LISTA] [RÖVID LISTA] ? KI [NAGYON [BONYOLULT [LISTA] ] ] [NAGYON [BONYOLULT [LISTA] ] ] Egy képsor kiírásakor a következő formát láthatjuk: {képsorN}, ahol az N a képsor fázisszáma. A képsor tartalmának megtekintése a Memóriaablakban lehetséges ? NÉV "AUTÓ BETÖLTKÉPSOR "%KEPSOR\AUTO [ ] ? KI :AUTÓ {képsor5} Hol használjuk az Escape karaktert KIÍR KIÍR --- utasítás 1 vagy N bemenő adattal KIÍR akármi (KIÍR akármi1 akármi2 . ) Kiírja az adott bemeneteket az írólapra vagy az eredményfájlba, ha a KIÍRÓESZKÖZ utasítással ezt határoztuk meg a kimenő adatok célállomásának. Ha egynél több bemenet
szerepel, akkor ezeket a kiíráskor egymástól szóközzel választja el. A KIÍR utasítás a kurzort a következő sor elejére helyezi. A KIÍR a KIÍRJELEKET a KIÍRBELSŐ utasításokkal összehasonlítva „ember által olvashatóbb írást valósít meg, hiszen eltávolítja a listák külső zárójeleit, aminek haszna főként akkor mutatkozik meg, amikor mondatokkal dolgozunk: ? KIÍR "SZÉP SZÉP ? (KIÍR "SZÉP "IDŐ "VAN) SZÉP IDŐ VAN ? KIÍR [RÖVID MONDAT] RÖVID MONDAT ? KIÍR [NAGYON [BONYOLULT [LISTA] ] ] NAGYON [BONYOLULT [LISTA] ] Egy képsor kiírásakor a következő formát láthatjuk: {képsorN}, ahol az N a képsor fázisszámának megfelelő szám. A képsor tartalmának megtekintése a Memóriaablakban lehetséges. ? NÉV "AUTÓK BETÖLTKÉPSOR "%KEPSOR\AUTO [ ] ? KIÍR :AUTÓK {képsor5} 139 Hol használjuk az Escape karaktert KIÍRBELSŐ KIÍRBELSŐ --- utasítás 1 vagy N bemenő adattal KIÍRBELSŐ akármi
(KIÍRBELSŐ akármi1 akármi2 . ) Kiírja az adott bemeneteket az írólapra vagy az eredményfájlba, ha a KIÍRÓESZKÖZ utasítással ezt határoztuk meg a kimenő adatok célállomásának. A KIÍRJEL és a KIÍR utasításokkal ellentétben a kiírt bemeneteket nem választja el egymástól szóközzel, és a kurzort sem teszi a következő sor elejére. ? KIÍRBELSŐ "SZIA SZIA? ; a parancsjel az utolsónak kiírt karakter mögött jelenik meg Lista típusú paraméter esetén a KIÍRBELSŐ eljárás eltávolítja a külső zárójeleket. Egy képsor kiírásakor a következő formát láthatjuk: {képsorN}, ahol az N a fázisszáma. A képsor aktuális tartalmát a Memóriaablakban tekinthetjük meg. ? KIÍRBELSŐ [A B [1 2] C D] A B [1 2] C D? ? NÉV "AUTÓ BETÖLTKÉPSOR "%KÉPSOR\AUTÓ [ ] ? KIÍRBELSŐ :AUTÓ {képsor5}? Hol használjuk az Escape karaktert ? KIÍRBELSŐ "C73A-KGB ? CIA-KGB? KIÍRJEL; KI KIÍRÓESZKÖZ KIÍRÓESZKÖZ --- utasítás 1
bemenő adattal KIÍRÓESZKÖZ fájl KIÍRÓESZKÖZ [ ] A standard kimenő adatokat az adott fájlba irányítja át, vagyis azt definiálja, hogy a KIÍR, a KIÍRSOR, a KIÍRJELEKET és a KIÍRBELSŐ utasítások eredményüket az írólap helyett a fenti fájlba írják. Ha nem létezik az adott nevű fájl, akkor a KIÍRÓESZKÖZ létrehozza. Ha létezik, akkor ennek tartalma felülíródik. Ha csak részleges útvonal szerepel az adott fájlnévben, vagy egyáltalán nem szerepel útvonal benne, akkor a Logo az aktuális munkakönyvtárban keresi a megfelelő könyvtárat, azaz abban a könyvtárban, melyet az (ÚT "PROJEKT) kifejezés eredményeként kapunk. Ha nem határozunk meg kiterjesztést, akkor a KIÍRÓESZKÖZ az .LGO kiterjesztést használja. A billentyűzetről begépelt összes utasítás, és minden HIBA-üzenet mindig az írólapon jelenik meg (a HIBA-üzeneteket soha nem lehet átirányítani egy fájlba). Ha képsor nyomtatásával próbálkozunk, akkor csak
a {képsorN} szöveg íródik a fájlba, ahol az N a képsor fázisszámát jelöli. Amikor kiadjuk a KIÍRÓESZKÖZ [ ] utasítást, akkor az aktuális eredményfájl bezáródik, és a kimenő adatok ismét az írólapon fognak megjelenni. 140 Fájlba írás és fájlból olvasás KIÍRSAJÁTSZAVAK KIÍRSAJÁTSZAVAK --- bemenő adat nélküli utasítás saját eljárások címsorának kiírása KIÍRSAJÁTSZAVAK Kiírja az írólapra a saját eljárások címsorát. Az ELFED utasítással fedetté tett eljárások címsorát csak abban az esetben írja ki, ha ideiglenesen láthatóvá tettük őket a FED! "HAMIS paranccsal. TANULD ÖSSZEFŰZ :X :N KIÍR M :X :N VÉGE TANULD ÜDVÖZÖL KIÍR "SZIA VÉGE TANULD FURCSASÁG :A :B :C :D :E :F :G ER (M :A :B :C :D :E :F :G) VÉGE ? KIÍRSAJÁTSZAVAK TANULD ÖSSZEFŰZ :X :N TANULD ÜDVÖZÖL TANULD FURCSASÁG :A :B :C :D :E :F :G KIÍRSOR; KS KIÍRSOR; KS --- utasítás 1 vagy N bemenő adattal KIÍRSOR akármi (KIÍRSOR
akármi1 akármi2 . ) Kiírja az adott bemeneteket az írólapra vagy az eredményfájlba, ha a KIÍRÓESZKÖZ utasítással ezt határoztuk meg a kimenő adatok célállomásának. A KIÍR utasítástól eltérően, a KIÍRSOR minden egyes bemenetét külön sorban írja ki Ha valamely bemenetként lista szerepel, akkor a KIÍRSOR ennek elemeit szintén külön sorban írja ki. Ha a bemenő lista valamely eleme maga is lista, akkor ennek elemei egyetlen sorban láthatóak, a külső zárójelek nélkül: ? KS "HOOOO HOOOO ? KS [KEDVES KIS LOGO] KEDVES KIS LOGO ? KS [ [ELSŐ ALLISTA] [MÁSODIK ALLISTA] ] ELSŐ ALLISTA MÁSODIK ALLISTA 141 A KIÍRSOR utasítás bemeneteinek kiírása után a kurzort a következő sor elejére helyezi. KIÍRTARTALOM; KT KIÍRTARTALOM; KT --- utasítás 1 bemenő adattal tartalom kiírása KIÍRTARTALOM memóriaobjektum KIÍRTARTALOM memóriaobjektumok listája Az írólapra írja a bemeneteként adott objektumok definícióját, illetve
definícióit. A KIÍRTARTALOM kiírja azokat az aktuálisan rejtett objektumokat is, melyekre előzőleg az ELFED utasítást alkalmaztuk. Ha csak a saját eljárások címsorát szeretnénk kiíratni, használjuk a KIÍRSAJÁTSZAVAK utasítást Más lehetőség: a Memóriaablakban lehetőségünk van a saját objektumaink ellenőrzésére, létrehozására, és módosítására. KS KT NYOMTATMEMÓRIA NYOMTATMEMÓRIA --- utasítás 1 vagy N bemenő adattal NYOMTATMEMÓRIA nyomtatójelző (NYOMTATMEMÓRIA nyomtatójelző bemenet1 bemenet2 . ) ahol minden egyes bemenet vagy memóriaobjektum vagy memóriaobjektumok listája Kinyomtatja a Memóriaablak aktuális tartalmát hasonló módon, mint azt a Fő-ablak Fájl menüjének Memórianyomtatás utasításának választásával kapnánk. Ha az utasításnak csak egyetlen bemenete van, akkor az összes memóriaobjektumot kinyomtatja, és a nyomtatás aktuális beállításait a nyomtatójelző határozza meg. Ha további bemeneteket is
tartalmaz, akkor csak a konkrétan megadott memóriaobjektumokat nyomtatja ki. A SAJÁTNEVEK, a NEVEK és a REKORDNEVEK eredménylistáit gyakran használjuk a NYOMTATMEMÓRIA utasítás bemenő paramétereként. A pillanatnyilag rejtett objektumok nem elemei ezen listáknak, hacsak ideiglenesen láthatóvá nem tettük őket a FED! "HAMIS paranccsal vagy a Memóriaablak Elemek menüjének Elfedett is látszik utasításával. SAJÁTNEVEK, NEVEK és REKORDNEVEK listák. NYOMTATMEMÓRIA [ ] (NYOMTATMEMÓRIA "IGAZ "X "Y ":V ":P ""Q) ; kinyomtatja az X, Y utasításokat, a V, P változókat ; és a Q szó összes mezőjét (NYOMTATMEMÓRIA "IGAZ [X Y :V :P "Q]) ; a fentivel egyenértékű, de a bemenet egy lista Más lehetőségek: a Fő-ablak Fájl menüjének Memórianyomtatás utasítása, a Memóriaablak Fájl menüjének Nyomtatás a memóriából utasítása. 142 NYOMTATÍRÓLAP NYOMTATÍRÓLAP --- utasítás 1 bemenő adattal
NYOMTATÍRÓLAP nyomtatójelző Kinyomtatja az írólap aktuális tartalmát. A nyomtatás aktuális beállításait a nyomtatójelző határozza meg a Fő-ablak Fájl menüjének Írólapnyomtatás utasítása. NYOMTATRAJZLAP NYOMTATRAJZLAP --- utasítás 1 vagy 2 bemenő adattal NYOMTATRAJZLAP nyomtatójelző (NYOMTATRAJZLAP nyomtatójelző téglalapnyi terület ) Kinyomtatja a rajzlap aktuális tartalmát. A nyomtatás aktuális beállításait a nyomtatójelző határozza meg Ha az utasításnak csak egyetlen bemenete van, akkor a teljes rajzlapot fogja kinyomtatni. Ha második bemenetet is adunk, akkor csak a rajzlap meghatározott téglalapnyi területe nyomtatódik ki Más lehetőség: a Fő-ablak Fájl menüjében a Rajzlapnyomtatás utasítás. OJ OLVASJEL; OJ --- bemenő adat nélküli függvény OLVASJEL Eredménye a billentyűzetről begépelt karakter. Ha semmiféle karaktert nem gépeltünk be (vagyis, ha nem nyomtunk le billentyűt), az OLVASJEL várakozik.
(Technikailag: addig vár, amíg a GOMBNYOMÁS? feltétel IGAZ értéket eredményez). A begépelt karakter nem jelenik meg a képernyőn Ha a bemenő adatokat egy fájlból várja a rendszer, mert az OLVASÓESZKÖZ utasítás ezt határozta meg, akkor az OLVASJEL függvény eredménye az adott fájl aktuális sorának következő karaktere lesz. ; nyomjuk le az A billentyűt ; az A-t a KI tette láthatóvá, nem az ; OLVASJEL ? KI (M OJ OJ OJ OJ OJ) ; gépeljük be: H, E, L, L, O ? KI OJ A [H E L L O] Ha bármelyik vezérlőfunkcióval rendelkező billentyűt lenyomjuk (a nyilak, az Insert, a Delete, a Home, az End, a PgUp vagy a PgDn), akkor az OLVASJEL eredménye JEL 0 lesz, és ekkor egy további OLVASJEL parancs, eredményéből olvashatjuk ki magát a kódot. Gondosan hasonlítsuk össze az eljárást az OLVASKÓD függvénnyel! ? HA OJ = JEL 0 [KI KÓD OJ] ; nyomjuk le a Delete-et 83 Fájlba írás és fájlból olvasás OK OLVASKÓD OK --- bemenő adat nélküli függvény 143
OLVASKÓD Eredménye a lenyomott billentyűnek megfelelő karakter numerikus ASCII kódja. Ha nem nyomtunk le billentyűt, akkor az OLVASKÓD várakozik. (Technikailag: addig vár, amíg a GOMBNYOMÁS? feltétel eredménye IGAZ lesz.) A begépelt karakter jelenik meg a képernyőn. ? KI M OLVASKÓD OLVASKÓD ; nyomjuk le a b-t és a B-t [98 66] Az OLVASKÓD eredményeként „speciális értéket kapunk, ha valamely vezérlőfunkcióval rendelkező billentyűt nyomjuk le, vagy a bal egérgombbal klikkelünk. A pontos értékeket a következő felsorolás mutatja: a 9, 27, 13, 8 eredmények a Tab, az Esc, az Enter, illetve a BackSpace billentyűknek felelnek meg, a -72, -75, -77, -80 értékekhez a nyilak lenyomásával jutunk (a megfelelő sorrendben a fel, a balra, a jobbra, és a le nyíl), eredményül -115, -116, -117, -118 értékeket kapunk, ha a Ctrl+bal nyíl, a Ctrl+jobb nyíl, a Ctrl+fel nyíl, a Ctrl+le nyíl billentyűkombinációt érzékeli a rendszer, az eredmény
-71, -79, -73, -81, -82, -83 lesz, ha a Home, az End, a PgUp, a PgDn, az Insert és a Delete billentyűk egyikét nyomjuk le,az 1, 2, . 26, eredmények a Ctrl+A, Ctrl+B, Ctrl+Z billentyűkombinációknak felelnek meg (kivéve a Ctrl+C, Ctrl+V, Ctrl+X, Ctrl+K kombinációkat), ha a LOGO! utasítás FGOMBOK opcióját 0 értékűre állítjuk be, akkor az OLVASKÓD eredményeként a 59, -60, . -69 értékeket kapjuk, ha az F1, F2, , F11 funkcióbillentyűket nyomjuk le Ha a fenti FGOMBOK opciót a 12 értékre állítjuk be, akkor az F12 billentyű lenyomása esetén az OLVASKÓD függvénytől a -70-es értéket kapjuk vissza, eredményként 0-t kapunk, ha lenyomtuk a bal egérgombot, (ez csak akkor érvényes, ha ez a rajzlapon belül történt) és -2-t, ha felengedtük a bal egérgombot. Így az egérrel való kattintás nem más, mint az OLVASKÓD függvény eredményeként kapott 0 vagy -2 érték. Ezeken kívül az OLVASKÓD eredménye -1 lesz, ha lenyomtuk a bal egérgombot, és
még így tartva mozgatjuk, röviden: ha vontatjuk az egeret. Ezekben az esetekben használhatjuk az EGÉRHELY függvényt is: amikor az OLVASKÓD 0-t, ill. -2-t ad, akkor az EGÉRHELY eredménye az a pozíció, melyben az egér állt abban a pillanatban, amikor a gombot lenyomtuk, illetve felengedtük. Amikor az OLVASKÓD -1-et ad, akkor az EGÉRHELY eredménye az egér aktuális pozíciója lesz. az OLVASKÓD függvényt használhatjuk az ÉRZÉKENYTERÜLET speciális jelentésű szóval együtt is, melynek eredményeként az ÉRZÉKENYTERÜLET mezői által meghatározott kódokat kapjuk. ? HA OLVASKÓD = -79 [KIÍR [Ez az END billentyű] ] ; nyomjuk le az End-et Ez az END billentyű Az OLVASKÓD az OLVASJEL függvénytől eltérően soha nem irányítható át az OLVASÓESZKÖZ utasítással fájlból való olvasásra. Ez teszi lehetővé, hogy még akkor is, amikor fájlból olvasunk, a billentyűzetről is olvashatunk be adatokat az OLVASKÓD függvénnyel. OL OLVASLISTA; OL ---
bemenő adat nélküli függvény OLVASLISTA 144 A Logo először kiteszi az írólapra a listaolvasás parancsjelét egy szóközzel követve, és addig vár, amíg begépelünk valamit és lenyomjuk az Entert. Az OLVASLISTA az általunk begépelt adatokat zárójelbe teszi, és listaként adja eredményül: ? KI OLVASLISTA : CSAK KÉT SZÓ [CSAK KÉT SZÓ] ; ezt gépeltük be ; ez az eredmény ? KI OLVASLISTA : NAGYON [FURCSA [SZERKEZET] ] ; ezt gépeltük be [NAGYON [FURCSA [SZERKEZET] ] ] ; ez az eredmény (Győződjünk meg arról, hogy tisztában vagyunk a KI és a KIÍR utasítások közötti különbséggel.) ? NÉV "P OLVASLISTA : KIÍR "HELLO ; ezt gépeltük be ? KI :P [KIÍR "HELLO] ? VÉGREHAJT :P HELLO ; lásd a VÉGREHAJT eljárást is Ha a bemenő adatokat az OLVASÓESZKÖZ utasítás hatásaként egy fájlból várja a rendszer, akkor az OLVASLISTA függvény eredménye az aktuális sor hátra lévő része lesz, egy listába foglalva.
Legyünk óvatosak: ha az egész Fő-ablak „csak grafikus képernyő módban van, és az OLVASLISTA függvény hajtódik végre, akkor a listaolvasás parancsjele nem látható, de a Logo még mindig a bemenő adatunkra vár Fájlba írás és fájlból olvasás OLPARANCSJEL! OLVASLISTAPARANCSJEL!; OLPARANCSJEL! --- utasítás 1 bemenő adattal OLVASLISTAPARANCSJEL! listaolvasás parancsjele Az utasítás segítségével meghatározhatjuk azt a szöveget, amit a listaolvasás új parancsjeleként szeretnénk használni az írólapon. A listaolvasás parancsjelének az alapbeállítása egy kettőspont (:), melyet egy szóköz követ (tehát az alapértelmezésben a parancsjel két karakterből áll). ? OLPARANCSJEL! "Amit gépelsz: ? KI OL Amit gépelsz: A B C ; az A B C betűket írtuk be [A B C] 145 OLVASJEL; OJ OLVASKÓD; OK OLVASLISTA; OL OLVASÓESZKÖZ OLVASÓESZKÖZ --- utasítás 1 bemenő adattal OLVASÓESZKÖZ fájl OLVASÓESZKÖZ [ ] Megváltoztatja a standard
bemenő adatok forrását, hogy a rendszer a meghatározott fájlból várja ezeket. Konkrétan azt definiálja, hogy az OLVASJEL, az OLVASSZÓ és az OLVASLISTA függvények a fenti fájlból olvassanak be a billentyűzet helyett. Ha nem létezik az adott nevű fájl, akkor HIBA következik be. ? OLVASÓESZKÖZ "FAJL55 HIBA: Gondjaim vannak a(z) FILE55-val. Ha csak részleges útvonal szerepel az adott fájlnévben, illetve egyáltalán nem szerepel útvonal, akkor az aktuális munkakönyvtárban keresi a rendszer a fájlt, azaz az ÚT "PROJEKT kifejezés eredménye hozzáadódik a keresendő könyvtár útvonalához. Ha nem határozzuk meg a fájl kiterjesztését, akkor az OLVASÓESZKÖZ az .LGO kiterjesztéssel bővíti a fájlnevet Ha már a fájl utolsó információját olvastuk be (azaz az OLVASLISTA utasítással az utolsó sorát, az OLVASSZÓ eljárással utolsó szavát, vagy az OLVASJEL paranccsal utolsó karakterét), akkor a FÁJLVÉGE? feltétel eredménye
IGAZ lesz. Ha az OLVASÓESZKÖZ [ ] utasítást gépeljük be, akkor a továbbiakban a rendszer ismét a billentyűzetről várja a bemenő adatokat. Fájlba írás és fájlból olvasás OLVASLISTAPARANCSJEL!; OLPARANCSJEL! OLVASLISTAPARANCSJEL!; OLPARANCSJEL! --- utasítás 1 bemenő adattal OLVASLISTAPARANCSJEL! listaolvasás parancsjele Az utasítás segítségével meghatározhatjuk azt a szöveget, amit a listaolvasás új parancsjeleként szeretnénk használni az írólapon. A listaolvasás parancsjelének az alapbeállítása egy kettőspont (:), melyet egy szóköz követ (tehát az alapértelmezésben a parancsjel két karakterből áll). ? OLPARANCSJEL! "Amit gépelsz: ? KI OL Amit gépelsz: A B C ; az A B C betűket írtuk be [A B C] OLVASSZÓ; OSZ OLVASSZÓ; OSZ --- bemenő adat nélküli függvény 146 OLVASSZÓ A Logo először kiírja az írólapra a listaolvasás parancsjelét egy szóközzel követve, és addig vár, amíg beírunk egy szót és lenyomjuk
az Enter billentyűt. Az OLVASSZÓ függvény eredménye ez a szó lesz. Ha több szót gépelünk be (az Enter lenyomása előtt), akkor az OLVASSZÓ csak a legelsőt fogja figyelembe venni. ? NÉV "NEVED OSZ : RÉKA ? KI :NEVED RÉKA Ha a bemenő adatokat az OLVASÓESZKÖZ utasítás hatásaként fájlból várja a rendszer, akkor az OLVASSZÓ függvény eredménye az adott fájl aktuális sorának következő szava lesz. Ha a bemenő adat első karaktere a bal szögletes zárójel [, akkor az OLVASSZÓ függvény eredménye az egész lista lesz. Legyünk óvatosak: ha az egész Fő-ablak „csak grafikus képernyő módban van, és az OLVASSZÓ függvény fut, akkor a listaolvasás parancsjele nem látható, de a Logo a bemenő adatunkra vár. Fájlba írás és fájlból olvasás OLVASÜZENŐ OLVASÜZENŐ --- függvény 1 vagy 2 bemenő adattal, vagy bemenő adat nélkül OLVASÜZENŐ (OLVASÜZENŐ szöveg1 ) (OLVASÜZENŐ szöveg1 szöveg2 ) Egy (esetleg kérdést és
címsort tartalmazó) párbeszédablak tűnik fel a képernyőn. A párbeszédablak belsejében egy szerkeszthető sor és egy OK gomb látható. A felhasználó beírhat valamit a szerkeszthető sorba, és megnyomhatja az Entert vagy az OK gombot. A szöveg, amit a szerkesztő-vezérlőbe írunk, egy listaként adódik át a Logónak, és az OLVASÜZENŐ függvény eredményévé válik. Ha a függvénynek nincs bemenő adata, akkor nem szerepel kérdés (illetve szöveg) az ablakon belül. Egyébként a szöveg1 határozza meg a kérdést Ha a függvénynek csak 1 paramétere van, akkor a párbeszédablak neve Comenius Logo lesz. Különben a szöveg2 adja meg a címsor szövegét. Az üres lista- bemenet az üres szöveget tartalmazó címsort definiálja. Ha a szerkeszthető sorba gépelt bemenet hibás lista (például több bezárójelet tartalmaz, mint nyitót, mint például az [a] ]), akkor a párbeszédablak nem záródik be. E helyett csipog, és a bemenet kijavítását
kívánja meg. Például a ? KI (OLVASÜZENŐ [ ] [Kérdés1] ) kinyit egy párbeszédablakot, melyben nem szerepel kérdés. Ennek címsorában a Kérdés1 szöveg lesz olvasható OSZ PARANCSJEL! PARANCSJEL! --- utasítás 1 bemenő adattal PARANCSJEL! szó ahol a szó legfeljebb 16 karakterből állhat 147 Az írólapon az írólap parancsjeleként használandó szöveget határozhatjuk meg az utasítás segítségével (mint DOS-ban a prompt). Az írólap parancsjelének alapbeállítása a ? egy szóközzel követve (tehát az alapértelmezett parancsjel két karakterből áll). ? PARANCSJEL! "Amit gépelsz: Amit gépelsz: KIÍR "SZIA SZIA Amit gépelsz: KIÍR 5 5 Amit gépelsz: PARANCSJEL! "? ? Hol használjuk az Escape karaktert Más lehetőség: az írólap parancsjelét a Képablak beállítása párbeszédablakban is beállíthatjuk, mely akkor tűnik fel, ha a Fő-ablak Beállítások menüjének Ablakok beállítása. utasítását választjuk ki
TEKNŐCOLVASLISTA; TOL TEKNŐCOLVASLISTA; TOL --- bemenő adat nélküli függvény TEKNŐCOLVASLISTA Egy szerkeszthető sor jelenik meg az első aktív teknőc aktuális pozíciójában (a teknőc pozíciójában lesz a vezérlő közepe). A Logo ekkor addig vár, amíg a felhasználó beír valami szöveget a szerkesztő-vezérlőbe, és lenyomja az Enter billentyűt. A szerkesztővezérlő ekkor bezáródik, és a begépelt szöveg adja a TEKNŐCOLVASLISTA függvény eredményét. A szerkesztő-vezérlőnek mindig egyszerű kerete van, és színe az első aktív teknőc aktuális tollszínétől és kitöltőszínétől függ. (Ha ezek a színek különbözőek, akkor a szöveg a vezérlőben a tollszínnel fog megegyezni, és háttérszíne lesz a kitöltőszínnel megegyező. Ha ezek azonosak, akkor a háttérszín az alapértelmezett Windows háttérszín lesz [általában fehér] és a szöveg színe lesz az aktuális tollszín.) TIZEDESJEGY! TIZEDESJEGY! --- utasítás 1
bemenő adattal a tizedestörtek pontosságának beállítása TIZEDESJEGY! szám ahol a szám egy 0 és 18 közé eső egész szám A számok nyomtatása, illetve kiírása esetén kijelzendő tizedesjegyek számát határozhatjuk meg az utasítás segítségével. Ez a beállítás nem befolyásolja a számítások pontosságát, mely változatlan marad (pl:272-t ír ugyan ki, de számolásnál 27182-tal számol) Amikor a Logót elindítjuk, a TIZEDESJEGY! 2 utasítást hajtja végre a program. ? KI HATVÁNY 1 2.72 ? TIZEDESJEGY! 10 ? KI HATVÁNY 1 2.7182818285 Tizedesjegyek száma. 148 TOL ÜZENŐ ÜZENŐ --- utasítás 1 vagy 2 bemenő adattal ÜZENŐ szöveg1 (ÜZENŐ szöveg1 szöveg2 ) Kinyitja azt a párbeszédablakot, melynek címsorában a szöveg2 olvasható, és az ablakon belül a nem szerkeszthető szöveg1 (vagyis a tényleges üzenet), és egy OK gomb található. A Logo felfüggeszti a program végrehajtását, és addig vár, amíg a felhasználó lenyomja az OK
gombot vagy az Enter billentyűt. Ezután az ÜZENŐ utasítást követő eljárással folytatja a végrehajtást. Ha az utasításnak egyetlen bemenete van, akkor a párbeszédablak címsora megegyezik a Logo Fő-ablakának nevével. Ha az utasításnak két bemenő adata van, és a szöveg2 üres lista [ ], akkor az ablaknak nem lesz felirata. VÁGÓLAP VÁGÓLAP --- különleges jelentéssel bíró szó Logo-eljárás "VÁGÓLAP ahol a Logo-eljárás egy fájlkezelő eljárás, mely a fájlok betöltését, illetve elmentését teszi lehetővé. Egy LGO-fájl, képernyő, képsor, projektkötet betöltése vagy egy szövegfájl beolvasása közvetetten is lehetséges, ha a Logo-eljárást a "VÁGÓLAP szó követi a fájlnév helyett. Ha a Windows Vágólapja éppen megfelelő szerkezetű információt tartalmaz, akkor ennek tartalma kerül betöltésre. Hasonló mondható el az LGO-fájl, képernyő stb. elmentéséről is Ha a "VÁGÓLAP szót használjuk a
fájlnév helyett, akkor a kijelölt objektumok közvetlenül a Vágólapra kerülnek. A memóriaobjektumokat a Vágólapra tehetjük a Memóriaablak Szerkesztés menüjének Kivág vagy Másol utasításaival is, vagy kép esetén a Paintbrush vagy hasonló Windowsalkalmazás Kivág vagy Másol parancsával, szöveg esetén a Write vagy hasonló Windows-alkalmazás Kivág vagy Másol parancsával. 149 Fájlkezelő eljárások CSATOL CSATOL --- utasítás 1 vagy N bemenő adattal CSATOL LGO fájl (CSATOL LGO fájl bemenet2 bemenet3 . ) ahol minden bemenet2, bemenet3 . vagy egy memóriaobjektum, vagy memóriaobjektumok listája Az összes felsorolt objektumot egy megadott nevű fájlba menti. Ha ilyen nevű fájl már létezik, akkor a kijelölt objektumokat a fájl végéhez írja (nem úgy, mint a MENT parancs, amely a fenti esetben az új információ elmentése esetén kitörli az azonos nevű fájl korábbi tartalmát). Ha a CSATOL utasításnak csak egy bemenő adata van,
akkor a fájl az összes saját eljárással bővül, ezért a CSATOL fájl és a CSATOL fájl SAJÁTNEVEK parancsok hatása megegyezik. Ennek megértése érdekében érdemes a SAJÁTNEVEK függvényt is tanulmányozni Nem eljárásszerű objektumok elmentése a kívánt objektumok részletes felsorolásával lehetséges, amint azt az alábbi példa is mutatja: ? (CSATOL "FAJL1 SAJÁTNEVEK [:A :B :C]) ; elmenti az összes eljárást és a három változót, ? (CSATOL "FAJL2 [HÓKA MÓKA] NEVEK) ; elmenti a HÓKA és MÓKA nevű eljárásokat, ; és az összes változót About PROCS, NAMES, and PROPS Lists. A csatolt objektumok elmentése ugyanabban a formátumban történik, mint a SAVE utasítás esetében, így amikor a fájlt a LOAD utasítással betöltjük, ugyanazon objektumok létrehozása ismétlődik meg. A fedett objektumokat nem menti el, hacsak nem soroljuk fel őket tételesen. Ha az öszszes fedett objektumot menteni akarjuk, használjuk a CSATOL fájl FEDETT
utasítássort A parancs megértéséhez érdemes megnézni a FEDETT függvény ismertetését is A fájlt az aktuális munkakönyvtárban fogja keresni a rendszer (amelyet az ÚT függvény eredményeként kaphatunk meg, és a ÚT! utasítással állíthatunk be), illetve, ha teljes útvonallal adjuk meg a fájlnevet, akkor az ennek megfelelő könyvtárban. Ha nem használunk kiterjesztést, akkor az alapértelmezett LGO kiterjesztést használja a rendszer Ha a megadott nevű fájl nem létezik, akkor az első lépés ennek létrehozása lesz. ÁTÍRFÁJL ÁTÍRFÁJL --- utasítás 1 bemenő adattal ÁTÍRFÁJL fájl Kinyitja a Fájlszerkesztő ablakot és aktívvá teszi. Ebben a módban a Logo lehetőséget biztosít megfelelő szövegfájlok szerkesztésére, illetve létrehozására. Ha a megadott nevű fájl nem létezik, akkor első lépésként a Logo létrehozza ezt. Azonban, ha semmit nem változtatunk meg a fájl tartalmán, akkor a Szerkesztő ablak bezárása után nem
menti el a fájlt (tehát ha ez egy új üres fájl, akkor még létre sem hozza) 150 Ha csak részleges útvonal szerepel, vagy egyáltalán nem szerepel útvonal az adott fájlnévben, akkor az aktuális munkakönyvtárban keresi a megfelelő alkönyvtárat, illetve fájlt. Ahhoz, hogy megértsük a keresés szabályát, és beállítsuk a munkakönyvtárat, érdemes az ÚT és az ÚT! utasításokat tanulmányozni a "PROJEKT bemenő paraméterrel, illetve a LOGO! utasítást az "ALAPÚT bemenettel. A szövegfájlok olvasásának eltérő módjainak megismerése érdekében lásd az OLVASÓESZKÖZ utasítást. Ha nem adunk meg kiterjesztést a fájlnévben, akkor az ÁTÍRFÁJL automatikusan az .LGO kiterjesztést használja BETÖLT BETÖLT --- utasítás 1 bemenő adattal BETÖLT LGO fájl Betölti és végrehajtja az adott fájlban szereplő parancsokat. A fájl tartalmát úgy kezeli, mintha az összes sorát a billentyűzetről gépelnénk be: a TANULD
utasításokkal eljárásokat definiál, a NÉV utasításokkal változókat hoz létre, a MEZŐ! utasításokkal mezőket definiál, és a további parancsokat a Logóban szokásos módon kezeli. Ha már létezik azonos nevű memóriaobjekum, akkor ennek tartalmát az újéval helyettesíti (kivéve, ha éppen fedett az adott objektum). A fájlt az aktuális munkakönyvtárban fogja keresni a rendszer (amit az ÚT függvény "PROJEKT bemenettel való alkalmazása ad meg), vagy abban a könyvtárban, melyet a teljes fájlnév határoz meg. Ahhoz, hogy a keresés és a munkakönyvtár beállításának szabályát megértsük, vizsgáljuk az ÚT! utasítást és a LOGO! utasítást az "ALAPÚT paraméterrel. A szövegfájlok olvasásának különböző módjait az OLVASÓESZKÖZ utasítás tanulmányozásával ismerhetjük meg. Ha a fájlnévben nem adunk meg kiterjesztést, akkor a Logo értelemszerűen az .LGO kiterjesztést használja Ha nem létezik az adott nevű fájl,
akkor HIBA következik be Ha az éppen betöltött fájl elmentésekor a képsor tartalmú változókat is elmentettük, akkor egy következő formátumú sort is fog tartalmazni: NÉV "NÉV BETÖLTKÉPSOR "* [szám1 szám2] Ezért amikor visszatöltjük, a BETÖLTKÉPSOR függvényt szintén végrehajtja a Logo, s ezzel a megfelelő változók tartalma az eredeti képsor lesz. Színmódosulások grafika kimentésénél és betöltésénél BETÖLTKÉPSOR BETÖLTKÉPSOR --- függvény 2 bemenő adattal BETÖLTKÉPSOR LGW fájl [ ] BETÖLTKÉPSOR LGW fájl intervallum Eredménye az adott fájl által tartalmazott képsor. Ha nem akarjuk az egész LGW fájlt betölteni, és így a BETÖLTKÉPSOR eredményeként látni, az intervallum, konkrétan a [szám1 szám2] paraméter segítségével meghatározhatjuk a fájl megfelelő részét. Az intervallumbeli szám1-gyel megadható, hogy a lemezen levő fájl hányadik fázisa legyen elsőként betöltve; a szám2 pedig az egymást
követő fázisok számát írja elő Az üres [ ] bemenet azt jelenti, hogy a fájlban elmentett képsor egészét be kell tölteni. 151 Ha a fájlnév csak részleges útvonalat tartalmaz, vagy egyáltalán nem tartalmaz útvonalat, akkor az alapkönyvtár KEPSOR alkönyvtárában keresi a rendszer az adott fájlt. Ennek a beállításnak a megváltoztatása az ÚT! utasítás használatával lehetséges, ha első bemeneteként a "KEPSOR szót adjuk. Az aktuális beállítást az ÚT függvény eredményéből olvashatjuk ki, ha bemenetként szintén a "KEPSOR szót használjuk Ha a fájlnévben nem szerepel kiterjesztés, akkor a BETÖLTKÉPSOR automatikusan az .LGW-t adja hozzá Egy képsor fájlba mentésére szolgál a MENTKÉPSOR utasítás Egy adott képsort egy teknőc új alakjának adhatjuk, ha az ALAK! utasítást használjuk. ? NÉV "ÚJ BETÖLTKÉPSOR "AUTO [1 2] ? KI :ÚJ {képsor2} ? ALAK! :ÚJ Színmódosulások grafika kimentésénél és
betöltésénél BETÖLTKÖTET BETÖLTKÖTET --- utasítás 1 bemenő adattal BETÖLTKÖTET projekt-kötet Az adott projektkötetet (tetszőleges érvényes Logo projekt fájl) tölti be, és: a Memória aktuális tartalmát kiegészíti a projektkötetben elmentett összes memóriaobjektummal. Ha létezik azonos nevű memóriaobjektum a Memóriában és a betöltendő kötetben is, akkor előző tartalmát (érték, definíció stb.) elveszti, és újradefiniálódik a kötet tartalmának megfelelően, kiegészíti a teknőcök aktuális listáját az összes olyan teknőccel (az összes beállítással együtt), melyek a köteten belül el vannak mentve. Ha létezik a Logóban és a kötetben azonos nevű teknőc, akkor az eredeti teknőc törlődik, és teljesen újként hozza létre a rendszer a kötetnek megfelelő jellemzőkkel, az összes betöltött memóriaobjektum azonnal fedetté válik. A fedett objektumokról többet megtudhatunk, ha az ELFED, a FELFED, a FEDETT, az
ELFEDMIND és a FED! utasításokat tanulmányozzuk. Ha az adott kötetnévben csak részleges útvonal szerepel, vagy egyáltalán nem szerepel útvonal, akkor az aktuális munkakönyvtárban keresi ezt a fájlt. Ahhoz, hogy a keresés és a munkakönyvtár beállításának szabályát megértsük, tanulmányozzuk az ÚT és az ÚT! utasításokat, valamint a LOGO! utasítást az "ALAPÚT bemenő paraméterrel. Színmódosulások grafika kimentésénél és betöltésénél BETÖLTŐÚT BETÖLTŐÚT --- függvény 1 bemenő adattal vagy bemenő adat nélkül BETÖLTŐÚT szó (BETÖLTŐÚT) Egy bemenő adattal használva, a függvény eredményeként egy teljes elérési útvonalat kapunk, amelynek végén a bemenő szó (leggyakrabban egy fájl neve) áll. A meghajtó és a könyvtár nevét a legutóbb alkalmazott BETÖLT utasítás vagy a Fájl menü Megnyitás. utasításában használt útvonal határoz meg A függvény segítségével leegyszerűsíthető a további
fájlok betöltése, amikor egy kezdőfájlt vagy projektet használunk. Ezután bármikor, amikor ugyanabból a könyvtárból, ahonnan a projektünket betöltöttük, új fájlt (például egy másik képernyőt) szeretnénk betölteni, egyszerűen azt írhatjuk: 152 ? BETÖLTRAJZLAP BETÖLTŐÚT "FAJL A BETÖLTŐÚT függvény alkalmazásának köszönhetően az összefüggő fájlok csoportjait könyvtárból könyvtárba mozgathatjuk anélkül, hogy a későbbiekben a betöltő utasításokban az útvonalakat módosítani kellene. (Azonban felesleges a BETÖLTŐÚT függvényt használni, ha a projekt nem tölt be további fájlokat.) Amikor bemenő adat nélkül használjuk a BETÖLTŐÚT függvényt, akkor eredményeként azt az útvonalat kapjuk meg, amelyik könyvtárból a legutóbb alkalmazott BETÖLT utasítás vagy a Fájl menü Megnyitás. utasítása a beolvasást végezte Ha eddig még nem használtuk a BETÖLT vagy a Megnyitás. utasításokat, akkor a
BETÖLTŐÚT az alapkönyvtár elérési útvonalát adja eredményül. BETÖLTRAJZ BETÖLTRAJZ --- függvény 1 bemenő adattal BETÖLTRAJZ BMP fájl Eredménye egy képsor, melyet a bemenő rajzból alakít át. Az eredményképsor mindig egyetlen fázisból áll. A BETÖLTRAJZ függvény bármilyen (például a Paintbrush-ban készült) rajz képsorrá való átalakítását lehetővé teszi, mely a transzformáció után elhelyezhető a rajzlapon a BETOLDKÉP utasítással, vagy megjelölhető egy változó értékeként a NÉV utasítással, illetve egy teknőc alakjaként alkalmazható az ALAK! utasítás használatával. Ha az eredeti rajz nagyobb, mint a maximális képsorméret, akkor ennek csak 255 x 255 képpontját veszi figyelembe a rendszer a bal felső sarkától kezdődően Ez a pont válik az eredményképsor tollhelyévé is, lásd a KIHASÍTKÉP függvényt. Az egész képsor nemátlátszó lesz. Ennek megváltoztatása a Logo Képsorszerkesztőjének
alkalmazásával lehetséges. ? NÉV "VALAMI BETÖLTRAJZ "%KEPSOR\CICA.BMP ? KIÍR KÉPSOR? :VALAMI IGAZ ? KIÍR :VALAMI {képsor1} Ha a fájlnévben nem adunk meg kiterjesztést, akkor automatikusan a .BMP kiterjesztést használja a rendszer. Ha a fájlnév csak részleges útvonalat tartalmaz, vagy egyáltalán nem tartalmaz útvonalat, akkor a munkakönyvtárban keresi a rendszer. A keresés és a munkakönyvtár beállítás szabályainak megértése az ÚT és ÚT! utasítások, valamint a LOGO! utasítás "ALAPÚT bemenettel való használatának tanulmányozása alapján lehetséges. Egy képsor első fázisának rajzként való fájlba mentése a MENTRAJZ utasítással lehetséges Színmódosulások grafika kimentésénél és betöltésénél BETÖLTRAJZLAP BETÖLTRAJZLAP --- utasítás 1 bemenő adattal BETÖLTRAJZLAP BMP fájl Betölti a fájl tartalmát a rajzlapra. Szükséges, hogy az adott fájl bármilyen méretű, standard rajz formátumú legyen A
rajzlap aktuális szélessége és magassága a betöltött rajz 153 megfelelő méreteitől függ. Ha ennek mérete kisebb, mint a Logo Fő-ablakának lehetséges beállításai, a betöltött rajz a Fő-ablak bal felső sarkában lesz elhelyezve, vagy pedig a képernyő közepén, az éppen érvényben lévő RAJZLAP! opciónak megfelelően. A BETÖLTRAJZLAP nem változtatja meg az aktív teknőcök listáját, sem az állapotukat. Azonban szükség esetén az összes olyan teknőcöt, mely KÖRKÖRÖSEN módban volt, elmozgatja úgy, hogy az aktuális rajzlapon belül álljon. A rajzlap aktuális tartalmának elmentésére szolgál a MENTRAJZLAP utasítás. Ha csak részleges útvonal szerepel a fájlnévben, vagy egyáltalán nem szerepel útvonal, akkor a rendszer az alapkönyvtár RAJZLAP alkönyvtárában keresi a megfelelő fájlt. Ha ez a könyvtár nem létezik, akkor a KEPSOR alkönyvtárat használja helyette. Ennek a beállításnak a megváltoztatására szolgál az
ÚT! utasítás, ha a "RAJZLAP szóval, mint első paraméterrel használjuk. Az aktuális beállítást az ÚT függvény eredményeként kapjuk, ha bemenő adatnak a "RAJZLAP szót adjuk. Ha nem adunk meg kiterjesztést a fájlnévben, akkor a BETÖLTRAJZLAP alapértelmezésben a .BMP kiterjesztést használja Színmódosulások grafika kimentésénél és betöltésénél Más lehetőségek: a Fő-ablak Fájl menüjének Rajzlapbetöltés. utasítása, a fentinek megfelelő utasítás a felbukkanó menüben, melyet a rajzlapon a jobb egér gombbal való kattintással hívhatunk elő. FÁJL? FÁJL? --- függvény 1 bemenő adattal FÁJL? szó Eredménye IGAZ, ha létezik szó nevű fájl. Különben az eredmény HAMIS Ha csak részleges útvonal szerepel, vagy egyáltalán nem szerepel útvonal az adott fájlnévben, akkor a munkakönyvtárban keresi a megfelelő alkönyvtárat. Ahhoz, hogy a keresés és munkakönyvtár beállításának szabályait megértsük, érdemes
az ÚT és az ÚT! utasításokat tanulmányozni a "PROJEKT paraméterrel, illetve a LOGO! utasítást az "ALAPÚT bemenő adattal. Ha nem adunk meg kiterjesztést, akkor a FÁJL? automatikusan .LGP kiterjesztést használ FÁJLVÉGE? FÁJLVÉGE? --- bemenő adat nélküli függvény vége a fájlnak? FÁJLVÉGE? Eredménye HAMIS, ha a megfelelő bemenet a billentyűzetről érkezik (lásd az OLVASÓESZKÖZ utasítást). Ugyancsak HAMIS az eredmény, ha a bemenet egy fájlból érkezik, és ezt a fájlt még nem olvastuk végig (a következő függvények valamelyikével OLVASLISTA , OLVASSZÓ vagy OLVASJEL). A kimenet IGAZ, ha éppen a fájl utolsó sorát (az OLVASLISTA paranccsal), utolsó szavát (az OLVASSZÓ paranccsal) vagy utolsó karakterét (az OLVASJEL függvénnyel) olvastuk be. Fájlba írás és fájlból olovasás KIÍRÓESZKÖZ KIÍRÓESZKÖZ --- utasítás 1 bemenő adattal KIÍRÓESZKÖZ fájl 154 KIÍRÓESZKÖZ [ ] A standard kimenő adatokat az adott
fájlba irányítja át, vagyis azt definiálja, hogy a KIÍR, a KIÍRSOR, a KIÍRJELEKET és a KIÍRBELSŐ utasítások eredményüket az írólap helyett a fenti fájlba írják. Ha nem létezik az adott nevű fájl, akkor a KIÍRÓESZKÖZ létrehozza. Ha létezik, akkor ennek tartalma felülíródik. Ha csak részleges útvonal szerepel az adott fájlnévben, vagy egyáltalán nem szerepel útvonal benne, akkor a Logo az aktuális munkakönyvtárban keresi a megfelelő könyvtárat, azaz abban a könyvtárban, melyet az (ÚT "PROJEKT) kifejezés eredményeként kapunk. Ha nem határozunk meg kiterjesztést, akkor a KIÍRÓESZKÖZ az .LGO kiterjesztést használja. A billentyűzetről begépelt összes utasítás, és minden HIBA-üzenet mindig az írólapon jelenik meg (a HIBA-üzeneteket soha nem lehet átirányítani egy fájlba). Ha képsor nyomtatásával próbálkozunk, akkor csak a {képsorN} szöveg íródik a fájlba, ahol az N a képsor fázisszámát jelöli. Amikor
kiadjuk a KIÍRÓESZKÖZ [ ] utasítást, akkor az aktuális eredményfájl bezáródik, és a kimenő adatok ismét az írólapon fognak megjelenni. Fájlba írás és fájlból olvasás MENT MENT --- utasítás 1 vagy N bemenő adattal MENT LGO fájl (MENT LGO fájl bemenet1 . ) ahol a bemenet1, . vagy memóriaobjektum, vagy memóriaobjektumok listája Az összes bemenetként szereplő objektumot az adott nevű fájlba menti el. Ha a MENT eljárásnak csak egyetlen paramétere van, akkor az összes saját eljárást menti, ezért a MENT fájl és a MENT fájl SAJÁTNEVEK utasítássorok egyenértékűek, lásd a SAJÁTNEVEK eljárást is. Más objektumok elmentése azok konkrét felsorolásával lehetséges: ? (MENT "FAJL1 SAJÁTNEVEK [:A :B :C]) ; elmenti az összes saját eljárást, és a három változót ? (MENT "FAJL2 [HÓKA MÓKA] NEVEK) ; elmenti a HÓKA és a MÓKA nevű eljárásokat ; és az összes változót ? (MENT "FAJL3 "HÓKA ":A REKORDNEVEK)
; elmenti a HÓKA eljárást, az :A változót ; és az összes rekord nevét SAJÁTNEVEK, NEVEK és REKORDNEVEK listák. Amikor a BETÖLT utasítással visszatöltjük a fájlt, akkor pontosan az eredetivel megegyező objektumokat kell létrehoznia a Logo rendszerének. Emiatt az eredményfájl formátumára a következők jellemzők: az eljárások teljes definícióját elmenti, a következő formában: TANULD . VÉGE, a változókat a NÉV név érték formában menti el, a rekordok neveit a MEZŐ! szó név érték formában tárolja. 155 Az ELFED utasítással rejtetté tett objektumok közül csak azokat menti el, melyeket bemenetként konkrétan felsorolunk. Az összes fedett objektum mentése a MENT fájl FEDETT parancs alkalmazásával történhet, lásd a FEDETT utasítást is. Ha képsor értékű változót is elmentünk, akkor az utasítás két fájlt hoz létre egy helyett. Az eredeti mellett egy ugyanazt a nevet viselő, .LGW kiterjesztésű fájl tartalmazza azt
a képsort, melyet az összes elmentendő képsor összefűzésével kaptunk. Az összes képsor értékű változónév helyett az alábbi szerkezetet szúrja be az eredeti fájlba: NÉV "név BETÖLTKÉPSOR "* [szám1 szám2] Ennek segítségével a fájl betöltése során ezen változók értékét is pontosan vissza tudja állítani. Ha egy képsor egy összetett adatstruktúra részeként szerepel, akkor a rendszer nem menti el. A létrehozott, illetve elmentett fájlt a fájlnévben megadott útvonalnak megfelelő könyvtárban, illetve ha ilyen nem szerepel, akkor a munkakönyvtárban helyezi el a Logo (vagyis az ÚT függvény eredményeként kapott könyvtárban). A munkakönyvtár beállításának szabályát az ÚT! utasítás és a LOGO! "ALAPÚT parancs tanulmányozásával érthetjük meg. Ha a fájlnévben nem szerepel kiterjesztés, akkor a rendszer automatikusan az .LGO kiterjesztést csatolja a névhez Ha már létezik azonos nevű fájl, akkor
először ezt törli Színmódosulások grafika kimentésekor és betöltésekor MENTKÉPSOR MENTKÉPSOR --- utasítás 2 vagy N bemenő adattal MENTKÉPSOR LGW fájl képsor (MENTKÉPSOR LGW fájl képsor1 képsor2. ) A bemeneteként szereplő képsort menti el az adott fájlba. Ha több képsor követi a fájlnevet, akkor ezeket egyetlen képsorrá fűzi össze a KÉPSOR függvénnyel Így a (MENTKÉPSOR fájl képsor1 képsor2 . ) és a MENTKÉPSOR fájl (KÉPSOR képsor1 képsor2 . ) parancsok hatása megegyezik. (Az egyetlen eltérés az, hogy a KÉPSOR függvény által összefűzhető fázisok maximális száma 252, míg a MENTKÉPSOR sok bemenő adattal túllépheti ezt a határt.) Ha csak részleges útvonal szerepel az adott fájlnévben, vagy egyáltalán nem szerepel útvonal, akkor az alapkönyvtár KEPSOR alkönyvtárában helyezi el a rendszer a fájlt. Ennek a beállításnak a megváltoztatására szolgál az ÚT! utasítás a "KEPSOR első bemenő paraméterrel.
A pillanatnyi beállítást az ÚT függvény eredményéből tudhatjuk meg, ha a "KEPSOR bemenettel használjuk. Ha nem adunk meg kiterjesztést, akkor a MENTKÉPSOR automatikusan az .LGW kiterjesztést csatolja a fájlnévhez Egy képsor fájlból való betöltésére a BETÖLTKÉPSOR utasítás alkalmazható. Legyen az AUTÓ1, AUTÓ2, AUTÓ3 és AUTÓ4 változók értéke egyfázisú képsor: ? (MENTKÉPSOR "AUTO.LGW : AUTÓ1 : AUTÓ2 : AUTÓ3 : AUTÓ4) ? ALAK! BETÖLTKÉPSOR "AUTO [1 3] 156 Ha létezik már azonos nevű fájl, akkor először ezt törli. Színmódosulások grafika kimentésekor és betöltésekor MENTKÖTET MENTKÖTET --- utasítás 1 vagy N bemenő adattal MENTKÖTET projektkötet (MENTKÖTET projektkötet bemenet1 . ) ahol a bemenet1 . memóriaobjektum vagy memóriaobjektumok listája Ha az utasításnak csak egyetlen paramétere van, akkor egy olyan projektkötetet hoz létre, mely a következőket tartalmazza: az összes pillanatnyilag
létező teknőcöt a teljes beállításukkal együtt, az összes, pillanatnyilag épp nem fedett memóriaobjektumot. A fedett objektumokat csak akkor menthetjük a projektkötetbe, ha ideiglenesen láthatóvá tesszük őket a FED! "HAMIS Logo utasítással. További lehetőség, hogy konkrétan felsoroljuk azokat a memóriaobjektumokat, melyeket a projektkötetbe akarunk elmenteni. Azonban, nem áll módunkban az elmentendő teknőcök listáját meghatározni ugyanis minden esetben elmenti az összes teknőcöt a beállításaikkal együtt. Fedett objektumokat is menthetünk név szerinti felsorolással Ha az összes fedett objektumot kívánjuk menteni, akkor a MENTKÖTET projektkötet FEDETT utasítást alkalmazzuk, lásd a FEDETT függvényt. A létrehozott, illetve elmentett fájlt a kötetnévben szereplő teljes útvonalnak megfelelő könyvtárban, vagy ha ilyen nem szerepel, akkor az aktuális munkakönyvtárban helyezi el a Logo (mely az ÚT függvény eredményeként
kapható). A munkakönyvtár beállításának szabályát az ÚT! utasítás és a LOGO! "ALAPÚT parancs tanulmányozásával érthetjük meg Ha nem szerepel kiterjesztés, akkor a rendszer automatikusan .LGP kiterjesztést csatol a fájlnévhez. Bár az eredményfájl belső szerkezete mindig az LGP-fájloknak megfelelő lesz, bármilyen érvényes fájlkiterjesztés elfogadható. Ha már létezik azonos nevű fájl, akkor ez először törlődik. Például a: ? MENTKÖTET "KOT1 SAJÁTNEVEK NEVEK elmenti az összes saját eljárást és változót az összes teknőccel egy projektkötetbe, melynek neve KOT1.LGP A fedett eljárásokat és változókat csak akkor fogja elmenteni, ha a FED! éppen HAMIS értékre van beállítva, lásd még a SAJÁTNEVEK és NEVEK függvényeket. Színmódosulások grafika kimentésekor és betöltésekor MENTRAJZ MENTRAJZ --- utasítás 2 bemenő adattal MENTRAJZ BMP fájl képsor Az adott képsor első fázisát egyszerű rajzként a
fájlba menti. Csak a képsor első fázisát alakítja rajz formátumúvá, és ezt menti a fájlba, melyet így később egyszerű rajzként felhasználhatunk a Logóban, a Paintbrushban vagy bármely más bitmapek feldolgozására szolgáló grafikus alkalmazásban. Ha a fázis átlátszó színt is tartalmaz, akkor ezt a mentés előtt fehérre cseréli a rendszer. Mivel egy képsor maximális mérete 255 x 255 képpont, az eredményrajz sem lépheti túl ezt a méretet A létrehozott, illetve elmentett fájlt a fájlnévben foglalt teljes útvonalnak megfelelő könyvtárban, vagy ha ilyen nem szerepel, akkor az aktuális munkakönyvtárban helyezi 157 el a Logo. A keresés és a munkakönyvtár beállítása szabályainak megértése érdekében tanulmányozzuk az ÚT és az ÚT! eljárásokat, és a LOGO! utasítást az "ALAPÚT bemenő paraméterrel. Ha nem adunk meg a fájlnévben kiterjesztést, akkor a rendszer automatikusan a .BMP kiterjesztést csatolja a
fájlnévhez. Ha már létezik azonos nevű fájl, akkor először ezt törli a rendszer Színmódosulások grafika kimentésekor és betöltésekor MENTRAJZLAP MENTRAJZLAP --- utasítás 1 vagy 2 bemenő adattal MENTRAJZLAP BMP fájl (MENTRAJZLAP BMP fájl pont ) (MENTRAJZLAP BMP fájl téglalapnyi terület ) Elmenti a rajzlap aktuális tartalmát a fájlba. A fájl a rajzlap aktuális méretének megfelelő méretű standard rajzot fog tartalmazni, ha nem adunk második paramétert A teknőcök alakja nem jelenik meg a fenti rajzon, mivel ezek nem képezik a rajzlap tartalmának részét. (Tetszőleges teknőc alakja a rajzlap tartalmához tartozóvá tehető a LENYOMAT utasítás alkalmazásával.) Ha adunk második bemenő adatot is, akkor csak a rajzlap ennek megfelelő részét menti el a rendszer: ha a második paraméter egy pont, azt a téglalapot menti el a rendszer, melynek az adott pont a bal felső sarka, és a rajzlap jobb alsó sarkával egyezik meg a jobb alsó sarka,
ha a második paraméter egy téglalapnyi terület, akkor ennek aktuális tartalmát menti el a rendszer. A rajzlap új háttere a BETÖLTRAJZLAP utasítással tölthető be. Ha csak részleges útvonal szerepel, vagy egyáltalán nem szerepel útvonal az adott fájlnévben, akkor az alapkönyvtár RAJZLAP alkönyvtárában helyezi el a fájl Ha ez a könyvtár nem létezik, akkor a KEPSOR alkönyvtárat használja helyette Ennek a beállításnak a megváltoztatására szolgál az ÚT! utasítás a "RAJZLAP első paraméterrel Az aktuális beállítást az ÚT "RAJZLAP függvénysor eredményéből olvashatjuk ki. Ha nem adunk meg kiterjesztést, akkor a MENTRAJZLAP automatikusan a .BMP kiterjesztést csatolja a fájlnévhez Ha már létezik ezen a néven fájl, akkor ezt először törli a rendszer. Színmódosulások grafika kimentésekor és betöltésekor Más lehetőség: a Fő-ablak Fájl menüjének Rajzlapmentés. utasítása OLVASÓESZKÖZ OLVASÓESZKÖZ ---
utasítás 1 bemenő adattal OLVASÓESZKÖZ fájl OLVASÓESZKÖZ [ ] Megváltoztatja a standard bemenő adatok forrását, hogy a rendszer a meghatározott fájlból várja ezeket. Konkrétan azt definiálja, hogy az OLVASJEL, az OLVASSZÓ és az OLVASLISTA függvények a fenti fájlból olvassanak be a billentyűzet helyett. Ha nem létezik az adott nevű fájl, akkor HIBA következik be. ? OLVASÓESZKÖZ "FAJL55 HIBA: Gondjaim vannak a(z) FILE55-val. 158 Ha csak részleges útvonal szerepel az adott fájlnévben, illetve egyáltalán nem szerepel útvonal, akkor az aktuális munkakönyvtárban keresi a rendszer a fájlt, azaz az ÚT "PROJEKT kifejezés eredménye hozzáadódik a keresendő könyvtár útvonalához. Ha nem határozzuk meg a fájl kiterjesztését, akkor az OLVASÓESZKÖZ az .LGO kiterjesztéssel bővíti a fájlnevet Ha már a fájl utolsó információját olvastuk be (azaz az OLVASLISTA utasítással az utolsó sorát, az OLVASSZÓ eljárással
utolsó szavát, vagy az OLVASJEL paranccsal utolsó karakterét), akkor a FÁJLVÉGE? feltétel eredménye IGAZ lesz. Ha az OLVASÓESZKÖZ [ ] utasítást gépeljük be, akkor a továbbiakban a rendszer ismét a billentyűzetről várja a bemenő adatokat. Fájlba írás és fájlból olvasás TART TARTALOMJEGYZÉK; TART --- függvény 1 vagy N bemenő adattal, vagy bemenő adat nélkül (TARTALOMJEGYZÉK) TARTALOMJEGYZÉK szűrő (TARTALOMJEGYZÉK szűrő1 szűrő2 . ) Ha egyetlen paramétere sincs, akkor az eredménye a munkakönyvtárban található összes fájlt tartalmazó lista. Ha van bemenő adat, akkor csak azokat a fájlokat listázza ki, amelyek valamely, a paraméterek által adott követelménynek (szűrő1, szűrő2) megfelelnek, így hát a TARTALOMJEGYZÉK bemenő adat nélkül megegyezik a TARTALOMJEGYZÉK "*.* paranccsal. Például, ha csak a munkakönyvtárban lévő képekről szeretnénk listát kapni, írjuk be ezt: ? KI TARTALOMJEGYZÉK "*.BMP [
[BUDAPEST.BMP 128758] [POSTAS BMP 128758] ] Minden egyes fájl egy további listaként jelenik meg: [a.fájlneve afájlmérete] Ha azt szeretnénk, hogy a TARTALOMJEGYZÉK függvény eredménye könnyen olvasható legyen, akkor használjuk a KIÍRSOR utasítást: ? KS TART "*.LGP UTCA.LGP 1560 MALACKA.LGP 780 TENGER.LGP 5 TARTALOMJEGYZÉK; TART TÖRÖLFÁJL TÖRÖLFÁJL --- utasítás 1 bemenő adattal TÖRÖLFÁJL fájl Törli a bemeneteként szereplő fájlt. Ha csak részleges útvonal szerepel, vagy egyáltalán nem szerepel útvonal az adott fájlnévben, akkor az aktuális munkakönyvtárban keresi a megfelelő alkönyvtárat, illetve 159 fájlt. Ahhoz, hogy megértsük a keresés szabályát, és beállítsuk a munkakönyvtárat, érdemes az ÚT és az ÚT! utasításokat tanulmányozni a "PROJEKT bemenő paraméterrel, illetve a LOGO! utasítást az "ALAPÚT bemenettel. Ha nem adunk meg kiterjesztést, akkor a TÖRÖLFÁJL automatikusan az .LGO
kiterjesztést használja ? KS TARTALOMJEGYZÉK UTCA.LGP 134276 MALACKA.LGP 70723 VALAMI.LGP 2025 ? TÖRÖLFÁJL "VALAMI.LGP ? KS TARTALOMJEGYZÉK UTCA.LGP 134276 MALACKA.LGP 70723 ÚT ÚT --- függvény 1 bemenő adattal vagy bemenő adat nélkül ÚT (ÚT Logo alkönyvtár ) Ha bemenő adat nélkül használjuk a függvényt, akkor eredményeként az aktuális munkakönyvtár teljes útvonalát kapjuk, melyet előzőleg az (ÚT! "PROJEKT) utasítással állítottunk be, vagy a Fájl menü Megnyitás. utasításának legutóbbi alkalmazása során használtunk. Az ÚT bemenet nélküli használata azonos az (ÚT "PROJEKT) függvénynyel A bemenetek és eredmények lehetséges értékei: bemenet eredmény "PROJEKT az aktuális PROJEKT alkönyvtár elérési útja "DEMO az aktuális DEMO alkönyvtár elérési útja (vagy a PROJEKT alkönyvtáré, ha a DEMO alkönyvtár nem létezik). "KEPSOR az aktuális KEPSOR alkönyvtár elérési útja "HANG az
aktuális HANG alkönyvtára elérési útja "FELADAT az aktuális FELADAT alkönyvtára elérési útja "RAJZLAP az aktuális RAJZLAP alkönyvtára elérési útja Más lehetőség: az Elérési út megadása. párbeszédablakban az aktuális útvonal is látható az Elérési út címszó alatt. ÚT! ÚT! --- utasítás 1 vagy 2 bemenő adattal ÚT! útvonal (ÚT! Logo alkönyvtár útvonal ) Ha egyetlen bemenettel használjuk, akkor az ÚT! utasítás útvonala az új munkakönyvtárat állítja be. Az ÚT! útvonal egyenértékű az (ÚT! "PROJEKT útvonal) paranccsal A munkakönyvtárat a Logo minden egyes alkalommal beállítja, amikor a Fő-ablakban a Megnyitás. utasítást alkalmazzuk, amennyiben az ALAPÚT opció értékét 1-re állítjuk a LOGO! utasítással. Ebben az esetben a munkakönyvtár azt a könyvtárat határozza meg, ahonnan a legutóbbi projekt betöltése történt. 160 Ha első paraméterként a "DEMO szót adjuk meg, akkor az
utasítás az aktuális DEMO könyvtárat állítja be. Ha a "KÉPSOR szóval használjuk, akkor az aktuális KÉPSOR könyvtárat határozhatjuk meg. Az aktuális HANG könyvtár beállításához a "HANG paramétert kell megadnunk. Ha a paraméter a "FELADAT szó, akkor az aktuális FELADAT könyvtárat állítja be. Az aktuális RAJZLAP könyvtárat a "RAJZLAP bemenő adattal határozhatjuk meg Ha az adott útvonal nem létezik, akkor hiba következik be. Más lehetőség: a Fő-ablak Fájl menüjének Útvonalmegadása. utasítása VÁGÓLAP VÁGÓLAP --- különleges jelentéssel bíró szó Logo-eljárás "VÁGÓLAP ahol a Logo-eljárás egy fájlkezelő eljárás, mely a fájlok betöltését, illetve elmentését teszi lehetővé. Egy LGO-fájl, képernyő, képsor, projektkötet betöltése vagy egy szövegfájl beolvasása közvetetten is lehetséges, ha a Logo-eljárást a "VÁGÓLAP szó követi a fájlnév helyett. Ha a Windows Vágólapja
éppen megfelelő szerkezetű információt tartalmaz, akkor ennek tartalma kerül betöltésre Hasonló mondható el az LGO-fájl, képernyő stb. elmentéséről is Ha a "VÁGÓLAP szót használjuk a fájlnév helyett, akkor a kijelölt objektumok közvetlenül a Vágólapra kerülnek. A memóriaobjektumokat a Vágólapra tehetjük a Memóriaablak Szerkesztés menüjének Kivág vagy Másol utasításaival is, vagy kép esetén a Paintbrush vagy hasonló Windows-alkalmazás Kivág vagy Másol parancsával, szöveg esetén a Write vagy hasonló Windows-alkalmazás Kivág vagy Másol parancsával. 161 Kommunikáció az egér segítségével EGÉRALAK! EGÉRALAK! --- utasítás 1 bemenő adattal EGÉRALAK! képsor EGÉRALAK! LGW fájl EGÉRALAK! szám EGÉRALAK! [ ] ahol a szám egy a 0 és 15 közé eső egész szám Hatásaként az egérkurzor aktuális alakja az a képsor lesz, melyet közvetlenül a bemenő képsor, vagy az LGW fájlban tárolt képsor határoz meg. Azaz
az: ? EGÉRALAK! "NYIL2 egyenértékű a következő paranccsal: ? EGÉRALAK! BETÖLTKÉPSOR "NYIL2 Ha a bemenet egy a 0 és 15 közé eső szám, akkor az egér formája egy standard Windows-kurzor alakját veszi fel a következő táblázatnak megfelelően: 162 Az egérkurzor mindig fekete-fehér. Ha az adott képsor színes, akkor a fehértől különböző színeket a rendszer feketére redukálja Az egérkurzor maximális mérete 32 x 32 képpont A nagyobb képsorokat erre a méretre csökkenti (ami részben megváltoztathatja eredeti kinézetüket). Ha több fázisból áll az adott képsor, akkor ennek második fázisa ábrázolja az egeret, mikor annak bal gombját lenyomjuk. Az egérkurzor eredeti alakját a következő utasítással állíthatjuk vissza: ? EGÉRALAK! [ ] EGÉRÁLLAPOT EGÉRÁLLAPOT --- bemenő adat nélküli függvény EGÉRÁLLAPOT Eredménye a [Gombok Billentyűk [X Y] ] háromelemű lista, ahol a Gombok egy 0 és 7 közé eső egész szám.
Az érték magyarázata a következő: 0 a felhasználó nem nyomott le egérgombot, 1 a felhasználó csak a bal egérgombot nyomta le, 2 a felhasználó csak a jobb egérgombot nyomta le, 3 a felhasználó a bal és jobb egérgombot is lenyomta, 163 4 5 6 7 a felhasználó csak a középső egérgombot nyomta le, a felhasználó a bal és a középső egérgombot is lenyomta, a felhasználó a jobb és a középső egérgombot is lenyomta, a felhasználó mindhárom egérgombot lenyomta. A lista második eleme, a Billentyűk egy 0 és 3 közé eső egész szám, ami: 0 ha a felhasználó nem nyomott le egyetlen speciális billentyűt sem, 1 ha a felhasználó csak a Control billentyűt nyomta le, 2 ha a felhasználó csak a Shift billentyűt nyomta le, 3 ha a felhasználó a Control és a Shift billentyűket egyszerre nyomta le. A lista harmadik eleme [X Y], azt az X és Y koordinátát határozza meg, melyben aktuálisan az egérkurzor található (még abban az esetben is,
ha ez a Logo rajzlapján kívül helyezkedik el), mindig a rajzlap origójától, vagyis középpontjából számítva. EGÉRHELY EGÉRHELY --- bemenő adat nélküli függvény EGÉRHELY Az OLVASKÓD függvény után használva, az EGÉRHELY eredményeként egy [X Y] koordinátapárt kapunk, mely a rajzlap területén belül bekövetkezett, a bal egérgombbal legutoljára végzett tevékenység (lenyomás, felengedés vagy vontatás) helyét jelöli. Az EGÉRHELY függvényt általában az OLVASKÓD függvényt követően használjuk, melynek eredménye 0, ha lenyomjuk a bal egérgombot, és -2, ha felengedjük a bal egérgombot. Így az egérgombbal való kattintás akkor realizálódik, ha az OLVASKÓD 0-t vagy -2-t ad vissza. Ezeken kívül az OLVASKÓD -1 értéket eredményez, ha a bal egérgombot lenyomva tartva mozgatjuk az egeret, amit röviden vontatásnak mondunk Amikor az OLVASKÓD 0-t, vagy -2-t eredményez, az EGÉRHELY az aktuális pozíciót adja meg, ahol lenyomtuk,
illetve felengedtük a gombot Amikor az OLVASKÓD -1 értéket ad, akkor az EGÉRHELY eredménye az egér pillanatnyi helye lesz EGÉRHELY! EGÉRHELY! --- utasítás 1 bemenő adattal egérhely! pont A bemenő adat által meghatározott pontba helyezi az egérkurzort. Ha ez a pont a képernyőn (vagyis a rajzlapon és az írólapon) kívül helyezkedik el, akkor a kurzort a képernyő megfelelő határára teszi Emellett arra is lehetőség van, hogy a kurzort a Logo ablakán kívülre helyezzük, ha az ablakban nem látható a rajzlap és az írólap egésze ÉRZÉKENYTERÜLET ÉRZÉKENYTERÜLET --- különleges jelentéssel bíró szó Egy mező névvel ellátott téglalap alakú terület a rajzlapon, amely az egérrel való interaktivitást lehetővé teszi. Az ÉRZÉKENYTERÜLET szó definiálja azokat a mezőket, melyek a fenti téglalapok jellemzőit és a nekik megfelelő kódokat tartalmazzák. Ezen kódok szerepe az OLVASKÓD függvény használata esetén tűnik ki, ugyanis
ennek eredményeként mindig az adott kódot kapjuk, valahányszor a megfelelő területen belül kattintunk az egér bal gombjával. Ha például a következőt definiáljuk: ? MEZŐ! "ÉRZÉKENYTERÜLET 113 [30 100 70 60] 164 akkor meghatároztunk egy téglalapot a [30 100] ponttal, mint ennek bal felső sarkával, és a [70 60] ponttal, mint jobb alsó sarokkal. Ettől kezdve valahányszor klikkelünk a terület belsejében, az OLVASKÓD függvény a 113 kódot adja vissza eredményként. Kódként bármelyik egész számot használhatjuk (vagyis nem korlátozódik az ASCII kódokra). Az ÉRZÉKENYTERÜLET szóval tetszőleges számú mezőt definiálhatunk (különböző kódokkal, ami egyben a nevük is) tehát akárhány ilyen téglalap szerepelhet egy-egy képernyőn. ? MEZŐ! "ÉRZÉKENYTERÜLET 1000 [-210 100 -180 80] ? MEZŐ! "ÉRZÉKENYTERÜLET 1001 [-210 70 -180 50] ? MEZŐ! "ÉRZÉKENYTERÜLET 1002 [-210 40 -180 20] Vizsgáljuk figyelmesen az
ÉRZÉKENYTERÜLET és a RÁKATTINTOTT függvény közti különbségeket! GOMBNYOMÁS?; GNY? GOMBNYOMÁS?; GNY? --- bemenő adat nélküli függvény GOMBNYOMÁS? Eredménye IGAZ, ha valamely billentyűt lenyomtuk a billentyűzeten vagy a bal egérgombot lenyomtuk, illetve felengedtük. Ugyancsak IGAZ értéket eredményez a függvény, ha a bal egérgomb lenyomott állapotában vontatjuk az egeret Különben a visszaadott érték HAMIS. Amikor a billentyűzetről egy karaktert olvasunk be, az OLVASKÓD és az OLVASJEL függvények addig várnak, amíg a GOMBNYOMÁS? függvény eredménye IGAZ lesz. TANULD VÁRAKOZÁS HA GOMBNYOMÁS? [ÍRJ VISSZATÉR] VÁRAKOZÁS ; ilyesmi ciklust használ a READCHAR is VÉGE TANULD ÍRJ KIÍRBELSŐ [A LENYOMOTT BILLENTYŰ: ] KIÍR OLVASJEL VÉGE ? VÁRAKOZÁS ; addig vár, míg lenyomunk egy billentyűt A LENYOMOTT BILLENTYŰ: R ? GNY? OK OLVASKÓD OK --- bemenő adat nélküli függvény OLVASKÓD 165 Eredménye a lenyomott billentyűnek
megfelelő karakter numerikus ASCII kódja. Ha nem nyomtunk le billentyűt, akkor az OLVASKÓD várakozik. (Technikailag: addig vár, amíg a GOMBNYOMÁS? feltétel eredménye IGAZ lesz.) A begépelt karakter jelenik meg a képernyőn. ? KI M OLVASKÓD OLVASKÓD ; nyomjuk le a b-t és a B-t [98 66] Az OLVASKÓD eredményeként „speciális értéket kapunk, ha valamely vezérlőfunkcióval rendelkező billentyűt nyomjuk le, vagy a bal egérgombbal klikkelünk. A pontos értékeket a következő felsorolás mutatja: a 9, 27, 13, 8 eredmények a Tab, az Esc, az Enter, illetve a BackSpace billentyűknek felelnek meg, a -72, -75, -77, -80 értékekhez a nyilak lenyomásával jutunk (a megfelelő sorrendben a fel, a balra, a jobbra, és a le nyíl), eredményül -115, -116, -117, -118 értékeket kapunk, ha a Ctrl+bal nyíl, a Ctrl+jobb nyíl, a Ctrl+fel nyíl, a Ctrl+le nyíl billentyűkombinációt érzékeli a rendszer, az eredmény -71, -79, -73, -81, -82, -83 lesz, ha a Home, az End,
a PgUp, a PgDn, az Insert és a Delete billentyűk egyikét nyomjuk le,az 1, 2, . 26, eredmények a Ctrl+A, Ctrl+B, Ctrl+Z billentyűkombinációknak felelnek meg (kivéve a Ctrl+C, Ctrl+V, Ctrl+X, Ctrl+K kombinációkat), ha a LOGO! utasítás FGOMBOK opcióját 0 értékűre állítjuk be, akkor az OLVASKÓD eredményeként a 59, -60, . -69 értékeket kapjuk, ha az F1, F2, , F11 funkcióbillentyűket nyomjuk le Ha a fenti FGOMBOK opciót a 12 értékre állítjuk be, akkor az F12 billentyű lenyomása esetén az OLVASKÓD függvénytől a -70-es értéket kapjuk vissza, eredményként 0-t kapunk, ha lenyomtuk a bal egérgombot, (ez csak akkor érvényes, ha ez a rajzlapon belül történt) és -2-t, ha felengedtük a bal egérgombot. Így az egérrel való kattintás nem más, mint az OLVASKÓD függvény eredményeként kapott 0 vagy -2 érték Ezeken kívül az OLVASKÓD eredménye -1 lesz, ha lenyomtuk a bal egérgombot, és még így tartva mozgatjuk, röviden: ha vontatjuk az
egeret Ezekben az esetekben használhatjuk az EGÉRHELY függvényt is: amikor az OLVASKÓD 0-t, ill. -2-t ad, akkor az EGÉRHELY eredménye az a pozíció, melyben az egér állt abban a pillanatban, amikor a gombot lenyomtuk, illetve felengedtük. Amikor az OLVASKÓD -1-et ad, akkor az EGÉRHELY eredménye az egér aktuális pozíciója lesz. az OLVASKÓD függvényt használhatjuk az ÉRZÉKENYTERÜLET speciális jelentésű szóval együtt is, melynek eredményeként az ÉRZÉKENYTERÜLET mezői által meghatározott kódokat kapjuk. ? HA OLVASKÓD = -79 [KIÍR [Ez az END billentyű] ] ; nyomjuk le az End-et Ez az END billentyű Az OLVASKÓD az OLVASJEL függvénytől eltérően soha nem irányítható át az OLVASÓESZKÖZ utasítással fájlból való olvasásra. Ez teszi lehetővé, hogy még akkor is, amikor fájlból olvasunk, a billentyűzetről is olvashatunk be adatokat az OLVASKÓD függvénnyel. OLVASKÓD; OK RÁKATTINTOTT RÁKATTINTOTT --- bemenő adat nélküli
függvény melyik teknőcöt „érintettük meg az egérrel 166 RÁKATTINTOTT Amikor az OLVASKÓD függvény után használjuk, akkor a RÁKATTINTOTT eredménye annak a teknőcnek a neve, amelyikre legkésőbb klikkeltünk rá az egér bal gombjával. A LÁTHATATLAN utasítással pillanatnyilag rejtetté tett teknőcök nem jöhetnek számításba. Azonban az összes látható teknőc, azaz az aktívak és passzívak egyaránt reagálnak a RÁKATTINTOTT függvényre A „megérintve lenni egy teknőc esetén azt jelenti, hogy az a pozíció, ahol a bal egérgombot lenyomtuk, a teknőc alakján belül található. Ha a legkésőbbi bal gombbal történt egérkattintás az összes teknőc alakján kívül történt, akkor az eredmény üres lista [ ]. Ha pillanatnyilag több teknőc alakja fedi egymást, akkor a RÁKATTINTOTT eredményeként a közülük legifjabb teknőc nevét kapjuk Ez a teknőc mindig a többi fölött helyezkedik el (ami az animáció szempontjából igen
fontos információ ennek megváltoztatása az ÚJRASOROL utasítással lehetséges). 167 Zenei alapszavak és multimédia BEZÁRVIDEÓ BEZÁRVIDEO --- utasítás 1 bemenő adattal BEZÁRVIDEO szó ahola szó egy olyan „hivatkozási név, melyet a megfelelő NYITVIDEO függvény második paramétere határoz meg. Bizonyos értelemben a BEZÁRVIDEO eljárás bemeneteként szolgáló szó egy videoablak neve (mely általában nem egyezik meg a feliratával). Az utasítás az adott ablakkal kapcsolatban lévő videofájlt zárja be, valamint bezárja az ablakot is HANG HANG --- utasítás 1 vagy N bemenő adattal HANG lista1 (HANG lista1 lista2 . ) ahol a lista1, lista2 . páros elemszámú listák, s elemeik 65 000-nél kisebb nem negatív számok. A számok listája által meghatározott hangsorozatot játssza le. A bemenő lista két egymást követő száma mindig egyetlen hangot ábrázol: az első szám ennek frekvenciáját, a második a hosszát határozza meg. Az
időtartam esetén használt mértékegységben 1000, kb. 1 másodpercig tart HANGH HANGHULLÁM; HANGH --- utasítás 1 vagy N bemenő adattal HANGHULLÁM WAV fájl (HANGHULLÁM WAV fájl1 WAV fájl2 . ) HANGHULLÁM [ WAV fájl1 WAV fájl2 . ] (HANGHULLÁM WAV fájl1 WAV fájl2 . [ ] ) (HANGHULLÁM WAV fájl1 WAV fájl2 . " ) Ha hangkártyát installáltunk a számítógépre (vagy legalábbis a SPEAKER.DRV programmal szimuláljuk azt), akkor a HANGHULLÁM utasítás lejátssza az adott fájlban vagy fájlokban meghatározott dallamot. Habár néhány fontos különbség fellelhető a hangkártya és a belső hangszóró viselkedése között, itt csak a hangkártya viselkedésével foglalkozunk. Ha az utasítás egyetlen WAV fájlt kap bemenetként, akkor ezt elkezdi lejátszani, és azonnal folytatja a program további végrehajtását (miközben a zene szól). Ez azonban nem így történik, ha a Logo másik HANGHULLÁM utasítást talál, és ennek bemenetét, illetve
bemeneteit kellene lejátszania. Ha az első dallam még hallatszik, akkor ez hirtelen leáll, és a második HANGHULLÁM bemenetének megfelelő dallam csendül fel Ezért ebben az esetben a következő utasítások HANGHULLÁM "X --- valamit.csinálj --- HANGHULLÁM "Y problémát okozhatnak. Ha először be akarjuk fejezni az első dallamot, és csak ezután lejátszani a másodikat, és esetleg a harmadikat., akkor ez megtehető egyetlen HANGHULLÁM utasítással is, ha a bemeneteket a következő formában adjuk meg: (HANGH "X "Y "Z . ) Ebben az esetben a Logo lejátssza a teljes X fájlt (addig a to- 168 vábbi végrehajtás szünetel), aztán az Y-t stb. Csak amikor a Logo az utolsó WAV bemenetet kezdi játszani, akkor folytatódik a program végrehajtása Figyeljük meg, hogy a (HANGH "X "Y "Z . ) és a HANGH [X Y Z ] utasítássorok megegyeznek. Ha azt szeretnénk, hogy amíg a HANGHULLÁM az utolsó fájl lejátszását be nem
fejezte, a Logo ne folytassa a végrehajtást az üres hullám egy fajtájaként , beszúrhatunk egy üres szót vagy egy üres listát mint az utolsó lejátszandó wave fájlt. Például (HANGH "X "Y "Z " ), vagy HANGH [X Y Z [ ]] utasítások először teljes egészében lejátsszák az összes adott dallamot, s csak ezután folytatódik a Logo program futása. HANGHULLÁM; HANGH HANGSOR HANGSOR --- utasítás 1 vagy N bemenő adattal HANGSOR lista (HANGSOR lista1 lista2 . ) A számítógép beépített hangszóróján lejátssza a bemenő listában, illetve listákban meghatározott hangjegyeket. Ezen listák a zenei hangokat jelképező betűk (c d e f g a h) és a szünet jelölésére szolgáló P betű mellett néhány más szimbólumot tartalmaznak, melyek jelentése az alábbiakban olvasható: a hangjegy előtt szereplő 1, 2, 4, 8 stb. számok jelzik ennek időtartamát Például, 1c egy egész hanghosszúságú c hangjegyet jelez, 2d jelent egy fél
hanghosszúságú d-t, 4f jelent egy negyed hanghosszúságú f-et stb., a hangjegyet követő # felemelt hangjegyet jelent, illetve a hangjegyet követő b leszállított hangjegyet jelöl. Ha egy (pont) áll egy hangjegy után, akkor az adott hangjegy időtartamának 3/2-ével hosszabb ideig hallható, a T betű, ha egy egész szám követi, akkor a tempót jelzi, vagyis a percenkénti negyedhangjegyek számát. Az alapbeállítás T120, egy 0 és 6 közé eső egész számot megelőző O betű az oktávot jelzi Az alapbeállítás O3 Amikor O# szerepel egy listában, akkor ez az összes ezt követő hangjegyet felemeli egy oktávval, amikor Ob szerepel, akkor az összes későbbi hangjegy le lesz szállítva egy oktávval, az L betű, ha az 1, 2, 4, 8, 16 stb. számok valamelyike követi, az alap hangjegyhosszúságot állítja be az összes őt követő hangjegyre. Ha egy hangjegynek külön megelőző száma van, akkor az alapbeállítás nem érvényes erre a hangjegyre. Az
eredeti alapbeállítás L4, az I betű, ha 0 és 128 közötti számok valamelyike követi, azt a zenei hangszert állítja be, amelyen a hangsor lejátszása kívánatos. I0 az Acoustic Grand Pianot jelöli, I1 a Bright Acoustic Pianot jelöli stb egészen I128, amely PC Beeper. A hangszerek teljes repertoárja megtekinthető a HANGSOR-beállító segítségével. az R betű törli az L, T és O összes aktuális beállítását, és visszaállítja őket az eredetire: O3, T120 és L4-re. Az L, T, O, I és R által eszközölt beállítások érvényesek maradnak a következő HANGSOR- utasításokra is, ha ezek nem állítják át őket egy új értékkel vagy az R betű szerepeltetésével. MCI MCI --- utasítás (vagy függvény) 1 bemenő adattal Media Control Interface MCI mci lista 169 (MCI mci lista lista ) Ez az eljárás az mci lista aktuális tartalmának megfelelően függvényként vagy utasításként szerepelhet. A bemenet a Windows MCI-felület követelményeinek
megfelelő szavak listája, melyet „MCI string utasításként értelmez a fenti felület Az MCI strings nyelve lehetővé teszi a Windows alá installált multimédia-meghajtók kezelését. Ezek az utasítások a Microsoft Multimédia Kézikönyvében, illetve más, a windowsos multimédiás alkalmazásokról szóló könyvekben találhatók. A lehetséges második paraméter Logo-utasítások listája, melyet azalatt kell végrehajtani, amíg az MCI-utasítás befejezi működését. Ez csak akkor érvényes, amikor az mci lista tartalmaz NOTIFY lehetőséget. NYITVIDEÓ NYITVIDEO --- függvény 3 bemenő adattal NYITVIDEO szó1 szó2 lista3 NYITVIDEO lista1 szó2 lista3 ahol a szó2 nem üres Ezt a függvényt akkor használjuk, ha valamilyen videofájlt vagy -fájlokat akarunk lejátszani (például .AVI fájlok) A NYITVIDEO speciális MCI-eljárást készít, mely azonnal végrehajtódik. A következők egyenértékűek az MCI-eljárással: (M "NYIT :szó1 "ALIAS :
szó2 ) vagy (M "NYIT :list1 "ALIAS :szó2 ). Ha ezt az MCI-függvényt sikeresen végrehajtja, akkor ennek értéke lesz magának a NYITVIDEO parancsnak is a kimenete Ha a lista3 nem üres lista [ ], akkor a listában foglaltaknak megfelelően egy új ablakot hoz létre. Jelöljük az új ablak kezelőjét H-val Ekkor egy másik MCI-utasítást fog végrehajtani konkrétan az (M "WINDOW :szó2 "HANDLE :H) Az új ablak jellemzőit a lista3 elemei tartalmazzák. Ez a [stílus szöveg lista] háromelemű lista, ahol a stílus az ablak stílusát leíró szó, mely a következők valamelyike: CHILD az ablak a rajzablak egy címsor és keret nélküli al-ablaka, CHILDBORDER az ablak a rajzablak egy kerettel rendelkező al-ablaka (a keret jelen esetben az ablakot körülvevő fekete vonal), CHILDCAP az ablak a rajzablak egy kerettel és címsorral rendelkező al-ablaka (a keret fekete vonal az ablak körül, a címsorban az ablak neve olvasható) és a felhasználó
elmozdíthatja az ablakot, OVERLAP az ablak egy a Logo Főablakához tartozó, lefedhető, kerettel és címsorral rendelkező ablak. A felhasználó elvontathatja az ablakot, illetve az Alt+F4 billentyűkombinációval be is zárhatja, OVERSIZE az ablak egy a Logo Fő-ablakához tartozó, méretezhető kerettel és címsorral rendelkező lefedhető ablak. A felhasználó elvontathatja az ablakot, megváltoztathatja annak méretét, illetve az Alt+F4 billentyűkombinációval bezárhatja, OVERALL az ablak egy a Logo Fő-ablakához tartozó, méretezhető kerettel, címsorral, rendszermenüvel, valamint minimalizáló és maximalizáló gombokkal rendelkező lefedhető ablak. A felhasználó vontathatja, átméretezheti, minimalizálhatja, maximalizálhatja és bezárhatja az ablakot. Ha a fenti, előre definiált stílusokon kívül további is létezik, akkor a Windows SDK referencia kézikönyvére kell hivatkoznunk. Jegyezzük meg, hogy ha a stílus al-ablak, akkor ennek őse a
rajzablak lesz, különben az ős a Logo Fő-ablaka Figyeljük meg azt is, hogy a Logo mindig WS visible és ws clipsiblings tulajdonságúvá teszi a meghatározott stílust. Ha a felhasználó bezárhatja az ablakot, akkor ez a lépés egyben a vele kapcsolatban lévő videofájlt is bezárja A második paraméter, a szöveg határozza meg a videoablak feliratát (ha az ablaknak van címsora). A harmadik bemenet, a lista határozza meg a videoablak elhelyezkedését 170 és méretét. Vagy üres lista, vagy egy téglalapnyi terület lehet Ha az ablak méretét nem adjuk meg (például csak az [X Y] koordinátákat tartalmazó listát használjuk), akkor az aktuális méretét magának a videónak a mérete határozza meg. Ezen lehetőség kihasználása melegen ajánlott, mert ezt a méretet használva sokkal gyorsabban fut, mint más méretek esetén Ha semmit sem adunk meg, akkor az ablak a [0 0] pontban kezdődik, és maximális méretű lesz. Ha az ablak stílusa valamelyik
al-ablak, akkor a koordinátákat a rajzablakon belül a teknőcgeometria szerint értelmezi. Ha nem valamelyik al-ablakról van szó, akkor a koordináták az egész képernyő abszolút koordinátái. Ha az sz szélesség és az m magasság adott, akkor ezek az ablak munkaterületét definiálják (mely nem tartalmazza a címsort, keretet stb.) ? ELFELEJT NYITVIDEO "C:\AVI\VIDEO.AVI ~ "BÉKA ~ [CHILD [ ] [100 100] ] ? ELFELEJT NYITVIDEO [C:\AVI\VIDEO.AVI TYPE AVIVIDEO] ~ "BÉKA ~ [CHILDCAP BÉKA [100 100] ] A NYITVIDEO függvény használa után a megnyitott videofájl lejátszható, leállítható, tekerhető stb. a szokásos MCI-utasítások használatával, melyeket az alias szó ad meg (ha bemenetként szöveget kap). A videofájl bezárásához ne használjuk az MCI CLOSE utasítását, különben a videoablak nem tűnik el. Ehelyett inkább a BEZÁRVIDEO parancsot használjuk ÚT ÚT --- függvény 1 bemenő adattal vagy bemenő adat nélkül ÚT (ÚT Logo
alkönyvtár ) Ha bemenő adat nélkül használjuk a függvényt, akkor eredményeként az aktuális munkakönyvtár teljes útvonalát kapjuk, melyet előzőleg az (ÚT! "PROJEKT) utasítással állítottunk be, vagy a Fájl menü Megnyitás. utasításának legutóbbi alkalmazása során használtunk. Az ÚT bemenet nélküli használata azonos az (ÚT "PROJEKT) függvénynyel A bemenetek és eredmények lehetséges értékei: bemenet eredmény "PROJEKT az aktuális PROJEKT alkönyvtár elérési útja "DEMO az aktuális DEMO alkönyvtár elérési útja (vagy a PROJEKT alkönyvtáré, ha a DEMO alkönyvtár nem létezik). "KEPSOR az aktuális KEPSOR alkönyvtár elérési útja "HANG az aktuális HANG alkönyvtára elérési útja "FELADAT az aktuális FELADAT alkönyvtára elérési útja "RAJZLAP az aktuális RAJZLAP alkönyvtára elérési útja Más lehetőség: az Elérési út megadása. párbeszédablakban az aktuális útvonal is
látható az Elérési út címszó alatt. ÚT! ÚT! --- utasítás 1 vagy 2 bemenő adattal 171 ÚT! útvonal (ÚT! Logo alkönyvtár útvonal ) Ha egyetlen bemenettel használjuk, akkor az ÚT! utasítás útvonala az új munkakönyvtárat állítja be. Az ÚT! útvonal egyenértékű az (ÚT! "PROJEKT útvonal) paranccsal A munkakönyvtárat a Logo minden egyes alkalommal beállítja, amikor a Fő-ablakban a Megnyitás. utasítást alkalmazzuk, amennyiben az ALAPÚT opció értékét 1-re állítjuk a LOGO! utasítással. Ebben az esetben a munkakönyvtár azt a könyvtárat határozza meg, ahonnan a legutóbbi projekt betöltése történt. Ha első paraméterként a "DEMO szót adjuk meg, akkor az utasítás az aktuális DEMO könyvtárat állítja be. Ha a "KÉPSOR szóval használjuk, akkor az aktuális KÉPSOR könyvtárat határozhatjuk meg. Az aktuális HANG könyvtár beállításához a "HANG paramétert kell megadnunk Ha a paraméter a "FELADAT
szó, akkor az aktuális FELADAT könyvtárat állítja e. Az aktuális RAJZLAP könyvtárat a "RAJZLAP bemenő adattal határozhatjuk meg. Ha az adott útvonal nem létezik, akkor hiba következik be. Más lehetőség: a Fő-ablak Fájl menüjének Útvonalmegadása. utasítása 172 A Munkaterület kezelése .GYŰJTMEM .GYŰJTMEM --- bemenő adat nélküli utasítás .GYŰJTMEM Általános hulladékgyűjtési folyamatot indít el, a felhasználatlan memóriaterületek újrahasznosításával. Mikor munkánk során listákat és más adatokat használunk, akkor a Logo memóriaterületet foglal le ezen objektumok számára. Amikor ezekre a struktúrákra nincs többé szükségünk (vagyis hulladékká váltak a memóriában), a Logo felszabadítja, és ezzel üressé és újra felhasználhatóvá teszi a számukra lefoglalt memóriaterületet. Ez a folyamat automatikusan és folyamatosan biztosítja az optimális memóriagazdálkodást anélkül, hogy ebből a Logo
felhasználója bármit is észrevenne. Ezen kívül létezik egy általánosabb hulladékgyűjtés is, amely egy kis időt vesz igénybe. Emiatt, ha nagyon nagy méretű adatszerkezetekkel dolgozunk, akkor ésszerű a .GYŰJTMEM eljárást bizonyos időközönként futtatni Ezzel megakadályozhatjuk, hogy a Logo esetleg számunkra nem megfelelő időben kezdjen hulladékgyűjtési folyamatba 173 Egyéb DÁTUM DÁTUM --- bemenő adat nélküli függvény DÁTUM A függvény eredményeként egy négytagú listát kapunk, melynek formátuma a következő: [nap hónap év hét mely napja] A hét mely napja egy 0 és 6 közé eső egész szám: 0 vasárnap 1 hétfő 2 kedd 3 szerda 4 csütörtök 5 péntek 6 szombat DÁTUMSZÓ DÁTUMSZÓ --- bemenő adat nélküli függvény DÁTUMSZÓ A függvény átveszi a számítógép rendszerétől az aktuális dátumot, és ezt a Windows Vezérlőpult Nemzetközi beállításának megfelelő szó formájában eredményül adja. ? KIÍR
DÁTUMSZÓ 21. December 1994 ; az eredmény a Windows-beli beállítástól függ ? KI SZÓ? DÁTUMSZÓ IGAZ FUTTAT FUTTAT --- függvény 1 vagy 2 bemenő adattal FUTTAT szó (FUTTAT szó szám ) Más Windows-, illetve nemWindows-alkalmazásokat indíthatunk el az eljárás segítségével. A FUTTAT függvénynek egy vagy két bemenő adatot adhatunk: az első bemenetként szereplő szó a program neve, melynek mindig tartalmaznia kell a kiterjesztést is (!), és ha a program nem a DOS útvonalon helyezkedik el, akkor tartalmaznia kell a teljes útvonalat is. A lehetséges második bemenet egy 0 és 4 közé eső szám, ami a program ablakának kezdeti beállításait határozza meg: 0 normál ablak, mely aktívvá válik, 1 minimalizált (ikonként megjelenő) ablak, mely aktívvá válik, 2 maximalizált ablak, mely aktívvá válik, 3 normál ablak, de a Logo marad aktív, 4 minimalizált ablak, de a Logo marad aktív. 174 A FUTTAT függvény eredményeként egy számot
kapunk. Ha ez az érték 32-nél kisebb, akkor ez egy hibakód. A 32 feletti értékek az éppen elindított programot kezelik (és nem érdekesek a Logo számára). A hibakódok a következők: 0 System was out of memory, executable file was corrupted, or relocations were invalid. 2 File was not found. 3 Path was not found. 5 Attempt was made to dynamically link to a task, or there was a sharing or networkprotection error. 6 Library required separate data segments for each task. 8 There was insufficient memory to start the application. 10 Windows version was incorrect. 11 Executable file was invalid. Either it was not a Windows application or there was an error in the .EXE image 12 Application was designed for a different operating system. 13 Application was designed for MS-DOS 4.0 14 Type of executable file was unknown. 15 Attempt was made to load a real-mode application (developed for an earlier version of Windows). 16 Attempt was made to load a second instance of an executable file
containing multiple data segments that were not marked read-only. 19 Attempt was made to load a compressed executable file. The file must be decompressed before it can be loaded. 20 Dynamic-link library (DLL) file was invalid. One of the DLLs required to run this application was corrupt. 21 Application requires 32-bit extensions. Figyeljünk arra, hogy néhány alkalmazás megváltoztathatja a FUTTAT függvénnyel az ablakának beállított kezdeti állapotát. Ebben az esetben úgy tűnhet, hogy a FUTTAT eljárás ezen része nem működik megfelelően NÉV "no FUTTAT "calc.exe ; elindítja a számológépet NÉV "no FUTTAT "utasítás.com ; elindítja az MS-DOS-t NÉV "no (FUTTAT "clock.exe 3) ; elindítja az órát, de a Logo marad ; aktív IDŐ IDŐ --- bemenő adat nélküli függvény IDŐ Eredménye egy négy számból álló lista [óra perc másodperc század másodperc], ami a számítógépben beállított időnek felel meg. IDŐSZÓ IDŐSZÓ
--- bemenő adat nélküli függvény IDŐSZÓ A függvény lekéri az aktuális időt a számítógéptől, és a szokásos módon formázza, a Windows vezérlőpultja International opciójának idő-formátum beállításának megfelelően. Az IDŐSZÓ eredménye ez az információ, egy Logo-szóként, mint például 13:48:50, 1:48:50 175 DU vagy 1ó48p D.U) ? KIÍR IDŐSZÓ 14:23:54 ; a Windows aktuális beállításaitól függ LOGO LOGO --- függvény 1 bemenő adattal LOGO szó ahol szó a következők egyike: ERROR, VERSION, HELP, AUTOPATH, RIGHTCLICKS, STEPPING, DECIMAL, PRINT, SAVE, BEEP és SOUND Eredményül az adott szó aktuális beállítását kapjuk meg. Az alapértelmezett értékek a különböző szavak esetén a következők: a ERROR, a VERSION, a HELP, az AUTOPATH és a STEPPING esetében 0, a RIGHTCLICKS, a PRINT, a SAVE, a BEEP és a SOUND esetén 1, és a DECIMAL esetén vessző (,). Ezen lehetőségek megértése érdekében tanulmányozzuk a LOGO!
utasítást! ? LOGO! [VERZIÓ 1] ? KIÍR LOGO "VERZIÓ 1 LOGO! LOGO! --- utasítás 1 bemenő adattal LOGO! [kulcsszó bemenet1 kulcsszó bemenet2 . ] ahol minden egyes bemenet1, bemenet2, . vagy szó, vagy lista, és a kulcsszó a következők egyike: HIBA, VERZIÓ, SEGÍTSÉG, ALAPÚT, LÉPÉS, DECIMÁLIS, NYOMTAT, MENT, BEEP és SOUND Az utasítás segítségével néhány jellemző megváltoztatásával a Logo környezetét a felhasználó számára előnyösebbé alakíthatjuk át. Elsőként az SLOGOINI kezdőfájlban használjuk, amely a Logo utasításait tartalmazó szokásos szövegfájl. Az ebben található utasításokat minden alkalommal végrehajtja a program, amikor a Logót elindítjuk, vagy amikor a TÖRÖLMUNKA Logo-utasítást kiadjuk. HIBA 0 vagy 1. Ha értéke 0, akkor a Logo az összes hibaüzenetet közvetlenül az írólapra írja ki, és minden üzenet egy egymondatos magyarázat a hiba okáról Ha a HIBA szó értéke 1, akkor a hibaüzenetek egy
különállóan megjelenő ablakban jelennek meg, és a legtöbb esetben 2 mondatban próbálják meg pontosabban meghatározni a hiba bekövetkezésének körülményeit. Az alapérték: 0 VERZIÓ 0 vagy 1. Ha értéke 0, akkor a Logo az alaputasításoknak (úgynevezett primitívek) és speciális szavaknak csak az eredeti angol megfelelőjét fogja felismerni Ha az érték 1, akkor a Logo a fenti utasítások és szavak angol nevei mellett felismeri a nemzeti (esetünkben a magyar) megfelelőit is. Például a FORWARD utasítás helyett használhatjuk a magyar ELŐRE szót, illetve ennek rövidítését, az E-t A LOGO! [VERZIÓ 1], illetve [VERZIÓ 0] végrehajtása esetén elért hatással megegyező a Beállítások menü Magyar alapszavak utasításának be-, illetve kikapcsolása. 176 SEGÍTSÉG 0 vagy 1. Ha ez az érték 0, akkor a Windows Help alkalmazás az SLOGO.HLP fájlt nyitja meg a segítség témáinak megjelenítése esetén Ha az érték 1, akkor a Help az
SLOGO0.HLP fájlt nyitja ki, mely a kisebbeknek szóló „Segítség gyerekeknek segítség-témákat tartalmazza ALAPÚT 0 vagy 1. Az alapértelmezés szerint értéke 0 Ekkor egy projekt vagy képsor betöltése során nem módosítja az aktuális útvonalat. Ha az érték 1, akkor minden egyes Megnyitás. utasításban használt útvonal megváltoztatja az aktuális munkakönyvtárat (mely az ÚT "PROJEKT függvény eredményeként kapható meg), és az összes BETÖLTKÉPSOR függvény módosítja az aktuális képsorútvonalat, vagyis azt az útvonalat, melyet a BETÖLTKÉPSOR utasítás automatikusan használ. Ennek a beállításnak a „kézzel történő megváltoztatására szolgál az ÚT! utasítás a "KEPSOR első paraméterrel, vagy a Fő-ablakban a Útvonal megadása. utasítás Az atkuális beállítást az ÚT "KEPSOR függvény eredményéből olvashatjuk ki. Az útvonal módosítása azt jelenti, hogy a következő Megnyitás. utasítás vagy
BETÖLTKÉPSOR függvény ugyanazt az útvonalat fogja használni, amit a legutóbbi esetben meghatároztunk. LÉPÉS 0 vagy 1. Ha ez az érték 0, akkor a program futása nem lépésenkénti módban történik. Ha ez 1, akkor a lépésenkénti mód érvényes A LOGO! [LÉPÉS 1], illetve [LÉPÉS 0] utasítással elérhető hatással megegyező a Beállítások menü Lépésenkénti végrehajtás utasításának be-, illetve kikapcsolása is. DECIMÁLIS egy egybetűs szó, vagy az üres lista [ ]. Számok esetén az adott szó veszi fel a tizedesjegyeket elválasztó jel szerepét. Ha az érték üres lista, akkor a Windows által alapértelmezett karaktert állítja vissza tizedesjellé A decimális elválasztójel alapértelmezésben a pont () A Comenius Logo indítása során a rendszer elolvassa a tizedesjel értékét, mely a Windows Vezérlőpult Nemzetközi lehetőségében állítható be. A LOGO! utasítással bármelyik, a Comenius Logóban speciális funkcióval nem
rendelkező (tehát a következők között nem szereplő: + - * / ( ) = < > ; [ ] ~ " és a szóköz), a számjegyektől különböző karakter beállítható tizedesjelnek. Jegyezzük meg, hogy: ezt a lehetőséget csak kellő körültekintéssel használjuk, mert olyan projektet hozhatunk létre, mely egyetlen másik számítógépen sem fog futni, ez a beállítás határozza meg, hogy hogyan ismeri fel és hogyan írja ki a Logo a számokat. ? LOGO! [DECIMÁLIS ,] ? KIÍR 1.3 1.3 ; nincs hatása, mert 1.3-at írtunk ? KIÍR 1,3 ; az 1,3-at számként ismeri fel 1,3 ? KIÍR 1.2 + 1,3 ; a tizedespontot mindig használhatjuk 2,5 ; ez a két szám összege ? LOGO! [DECIMÁLIS .] ? KIÍR 1,3 HIBA: Nem tudom, hogyan csináljam a(z) 1,3 - t. ; most már nem ismeri fel számként az 1,3-at ; a Comenius Logo utasításnévként tekint rá NYOMTAT 0 vagy 1. Engedélyezi, illetve letiltja a Logo nyomtatóutasításait Ha értéke 0, akkor a Logo nem nyomtathat. Ha értéke 1, és
legalább egy nyomtatót installáltunk a Windows alá, akkor nyomtathatunk a Logóból. Az alapérték az 1 177 Ha a rendszer felismeri, hogy nem telepítettünk nyomtatót a Windows alá, akkor az alapérték 0. MENT 0 vagy 1. Az 1 az alapérték Ha ez az érték 0, akkor a Logo összes mentés függvénye letiltott. Ezzel a lehetőséggel élve megakadályozhatjuk a felhasználót a lemezre írásban Ha ez az eset áll fenn, akkor a Logo-utasítással való mentési kísérletek hibaüzenetet eredményeznek. Az üzenet tartalma a következő lesz: a Demováltozatban nincs lehetőség a munka mentésére. BEEP 0 vagy 1. Az 1 az alapérték Ha ez az érték 0, akkor a Logo figyelmeztetéseit nem követi hangjel. Nagyon hasznos funkció például számítógéplaborokban való alkalmazásnál SOUND 0 vagy 1. Az 1 az alapérték Ha ez az érték 0, akkor a HANG, a HANGSOR és a HANGHULLÁM utasításokat nem hajtja végre a program, tehát némán fut. Más lehetőségek:
válasszuk a Beállítások menü Hibaüzenet ablakba utasítását, válasszuk a Beállítások menü Segítség gyerekeknek utasítását válasszuk a Beállítások menü Magyar alapszavak utasítását, válasszuk a Beállítások menü Útvonal automatikus utasítását, válasszuk a Fájl menü Útvonal megadása. utasítását, válasszuk a Beállítások menü Lépésenkénti végrehajtás utasítását. RENDSZERMÉRET RENDSZERMÉRET --- függvény 1 bemenő adattal RENDSZERMÉRET szám RENDSZERMÉRET szó A függvény segítségével a képernyő arculatát saját igényeinknek megfelelően alakíthatjuk ki. A gombok, feladatablakok stb megfelelő elrendezését teszi lehetővé az abszolútképernyő koordináták kiszámításával A LOGOABLAK! utasítással együtt is érdemes használni ezt a függvényt. A RENDSZERMÉRET függvényen keresztül a Logo programozója elérheti a GetSystemMetrics Windows API call-t, mely a Windows különböző elemeinek méretéről
tartalmaz pontos adatokat, melyeket a pontos képernyőterv alkotása közben szem előtt kell tartani. A Windows GetSystemMetricsétől eltérően a RENDSZERMÉRET függvény 3 olyan méretet is eredményül adhat, melyet csak a Comenius Logóban használunk. A lehetséges bemenő adatok és az ezeknek megfelelő eredmények leírása: 0 A képernyő szélessége. 1 A képernyő magassága. 2 A függőleges görgetősáv nyilának szélessége. 3 A vízszintes görgetősáv nyilának magassága. 4 Az ablak címsorának magassága. Ez a címsor magassága plusz az ablak kereté nek ma gassága. (Az ablak keretének szélessége nem méretezhető) 6 A nem méretezhető ablak keretének magassága. 7 Egy tipikus párbeszédablak keretének szélessége. 8 Egy tipikus párbeszédablak keretének magassága. 9 A függőleges görgetősávon a görgetődoboz magassága. 10 A vízszintes görgetősávon a görgetődoboz (mutatóujj) szélessége. 11 Az ikonok szélessége. 12 Az ikonok
magassága. 13 A kurzor szélessége. 14 A kurzor magassága. 178 15 17 18 19 20 21 22 23 28 29 30 31 32 33 34 35 36 37 38 39 40 42 Egy egyszerű, egysoros menüsor magassága. Ez a menü magassága mínusz az ablak keretének magassága, mely nem méretezhető (az ablak munkaterületének szélessége egy teljes képernyős ablak esetén). Az ablak munkaterületének magassága egy teljes képernyős ablak esetén (megegyezik a képernyő magasságával, mínusz az ablak címsorának magasságával). A Kanji ablak magassága. Nem nulla, ha egeret installáltunk a Windows alá. A függőleges görgetősáv nyilának magassága. A vízszintes görgetősáv nyilának szélessége. Nem nulla, ha a Windows verziója hibafelderítő verzió. Nem nulla, ha a bal és a jobb egérgombot felcseréltük. Az ablak minimális szélessége. Az ablak minimális magassága. A címsorban szereplő jelek szélessége. A címsorban szereplő jelek magassága. A méretezhető ablakok keretének
szélessége. A méretezhető ablakok keretének magassága. Az ablak minimális nyomának szélessége. Az ablak minimális nyomának magassága. Annak a téglalapnak a szélessége, melyet a rendszer az első egérkattintás pozíciója körül figyelembe vesz dupla kattintás esetén. A második kattintásnak ezen a téglalapon belül kell bekövetkeznie ahhoz, hogy a rendszer a két kattintást dupla kattintásként érzékelje. Annak a téglalapnak a magassága, melyet a rendszer az első egérkattintás pozíciója körül figyelembe vesz dupla kattintás esetén. A második kattintásnak ezen a téglalapon belül kell bekövetkeznie ahhoz, hogy a rendszer a két kattintást dupla kattintásként érzékelje. Annak a téglalapnak a szélessége, melyet a rendszer arra használ, hogy pozicionálja a síkkitöltő ikonokat. Annak a téglalapnak a magassága, melyet a rendszer arra használ, hogy pozicionálja a síkkitöltő ikonokat. Kezeli a Pen Windows DLL könyvtárát, ha a
Pen Windows-t installálták. Nem nulla, ha a pillanatnyi Windows-verzió dupla bájtos karaktereket használ; különben nulla értékkel tér vissza. A Comenius Logóhoz kapcsolódó bemenetek és az ezeknek megfelelő eredmények leírása: CXFONT A system fixed size betűkészlet karaktereinek szélessége. Ezt a betűkészletet használja az írólapon, az összes szöveges szerkesztőben és a feladatablakban (a feladatablak szélessége ennek a számnak a többszöröseként definiált) CYFONT A system fixed size betűkészlet karaktereinek magassága (a feladatablak magassága ennek a számnak a többszöröseként definiált). CYSPEEDBAR A Logo Eszközsorának magassága. Ez nulla, ha az Eszközsor a RENDSZERMÉRET hívásának pillanatában rejtett volt. ? (KIÍR [A képernyő szélessége: ] RENDSZERMÉRET 0 [képpont.]) A képernyő szélessége: 640 képpont. ; szeretnénk egy 100 x 87 képpontnyi gombokat tartalmazó ablakot, ; mely a képernyő jobb alsó sarkában
helyezkedik el, 179 ; tekintet nélkül a Logo-ablak méretére: ? NÉV "SZ 100 ; a szélesség ? NÉV "M 87 ; a magasság ? NÉV "X (RENDSZERMÉRET 0) - :SZ - RENDSZERMÉRET 5 ? NÉV "Y (RENDSZERMÉRET 1) - :M - ~ (RENDSZERMÉRET 4) - RENDSZERMÉRET 6 ? GOMBSOR! (LISTA :X :Y :SZ :M [A gombok]) Kilépés SZIA SZIA --- utasítás 1 bemenő adattal vagy bemenő adat nélkül SZIA (SZIA logikai ) Kilép a Comenius Logo alkalmazásból. Ha az utasításnak nincs bemenő adata, vagy ha a bemenet IGAZ, egy párbeszédablak tűnik fel, amely a munkánk elmentésére hívja fel figyelmünket. Ha HAMIS bemenő adattal hívjuk meg az eljárást, akkor bárminemű kérdés nélkül elhagyjuk a Logot. Más lehetőségek: az Alt+F4 vagy Alt+X billentyűk egyidejű lenyomása, a File menü Kilép almenüje a Fő-ablakban, kétszeres egérkattintás a Logo-alkalmazás vezérlőmenüjére. 180 Alapszavak jegyzéke Az alábbi listában a Logo alapfogalmait, illetve
alapkifejezéseit és ezek rövid definícióját találhatjuk. E kifejezések főként a Logo alapeljárásainak bemeneteit határozzák meg A, Á akármi alakszín alapirány alapkoordináták alapkönyvtár alkönyvtár aktív alakszín aktív eljárás aktív teknőc B betűkészlet C, CS D, DZ, DZS definíciós lista demo projekt E, É eljárás eljárásnév eljárásobjektum F fájlkiterjesztés fájlnév feladat feltételes eljárás 181 G, GY globális változó gombsordefiníció gombsordefiníciók listája H hibaüzenet hosszú sor I, Í igazságérték ikonváltozó irány írólap írólap parancsjele INDÍTÓ eljárás J K karakter kis- és nagybetű kifejezés kiterjesztés képfájlnév képsor képsorfázisok képsorelem tollpontja könyvtár L, LY LGO fájl LGP fájl LGW fájl lista listaolvasás parancsjele Logo alkönyvtár Logo eljárás Logo eljárás bemenő adata Logo utasítás logikai érték lokális változó 182 M memóriaobjektum
memóriaobjektumok listája mondat függvény mező munkakönyvtár N, NY nyomtatójelző O, Ó, Ö, Ő objektum objektumrész P parancsjel pont pontok listája potméter szövegdoboz pozíció predikátum projekt háttere projekt projektkötet Q R rajzlap rajzlap origója rekord rekordmezők listája rövidítés S, SZ saját eljárás saját objektum SLOGO.INI fájl sokszöglista szavak listája szám szín 183 szó szóhossz szög szöveg szövegdobozteknőc szűrő T, TY teknőc azonosítója teknőc neve teknőcök listája teljes hibaüzenet téglalapnyi terület tollminta tollvastagság töltőminta TXT fájlnév U, Ú, Ü, Ű utasítás utasításlista utasítássor útvonal V Vágólap változó (globális) változó (lokális) változó neve változónév vonalvastagság W WAV fájl Windows parancssor X Y Z, ZS 184 A magyar eljárásnevek ABC listája A következő lista tartalmazza az összes Comenius Logo eljárás, függvény és speciális jelentésű szó
nevét. A neveket a magyar helyesírás szerint rendeztük ABC rendbe Néhány eljárásnak rövidítése is van, ezért ezeket a rövidítéseket külön is feltüntettük a listában. - . ALAPSZAVAK .GYÜJTMEM .PONTHELY * + / < <= <> = > >= -AÁABLAK ABSZ ALAK ALAK! ALAKSZÍN ALAKSZÍN! ALAPHELYZET ALAPPALETTA ALAPSZÓ? WINDOW ABS GETSHAPE SETSHAPE SHAPECOLOR SETSHAPECOLOR DRAW RESETPALETTE; RESETPAL PRIMITIVE? AMÍG ANIMÁCIÓSMÓD! ARCTG ÁLLAPOT ÁTDOB ÁTÍR ÁTÍRFÁJL ÁTLÁTSZÓMÓD! WHILE SETPHASEMODE ARCTAN TURTLESTATE THROW EDIT; ED EDITFILE; EDFILE SETIMODE -B- 185 B LEFT; LT BALRA; B LEFT; LT BEÁLLÍTÓ CHOOSER BELÜL? INSIDE? BETOLDKÉP PUTIMAGE BETÖLT LOAD BETÖLTFELADAT LOADPROBLEM BETÖLTKÉPSOR LOADIMAGE BETÖLTKÖTET LOADLIBRARY; LOADLIB BETÖLTŐÚT LOADPATH BETÖLTRAJZ LOADBITMAP BETÖLTRAJZLAP LOADSCREEN BETŰ! SETTTEXT; SETTT BETŰNÉGYZET TEXTSIZE BETŰZD TTEXT; TT BEZÁRFELADAT CLOSEPROBLEM BEZÁRVIDEO CLOSEVIDEO - C CSCIKLUS
CIKLUSCSAK CSATOL CSERE CSÖKKENT FOR FOREACH APPEND REPLACE DEC DÁTUM DÁTUMSZÓ DATE DATEWORD; DATEW E EGÉRALAK! EGÉRÁLLAPOT EGÉRHELY EGÉRHELY! EGÉSZHÁNYADOS; EGÉSZRÉSZ EGYENLŐ? EGYMÁSUTÁN EH ELÁGAZÁS ELEM ELEME ELEME? ELEMNÉLKÜLI ELEMSZÁM; ESZ FORWARD; FD SETMOUSECURSOR MOUSESTATE MOUSE .SETMOUSEPOS EH DIV INT EQUAL? EACH DIV CASE ITEM MEMBER MEMBER? BUTMEMBER COUNT - D DZ DZS- - E É- 186 ELEMTŐL ELFED ELFEDMIND ELFELEJT FROMMEMBER BURY BURYALL IGNORE ELKAP CATCH ELŐRE; E FORWARD; FD ELSŐ FIRST ELSŐNEK FPUT ELSŐNÉLKÜLI; EN BUTFIRST; BF EN BUTFIRST; BF ER OUTPUT; OP EREDMÉNY; ER OUTPUT; OP ESZ COUNT ÉRZÉKENYTERÜLET CODEAREA ÉS AND -FFÁJL? FÁJLVÉGE? FÁZIS FÁZIS! FÁZISPONT FED! FEDETT FELFED FELSŐSZINT FILE? EOF? PHASE SETPHASE SHAPEPOS SETBURY BURIED UNBURY TOPLEVEL FIGYELJ FORDÍT FUTTAT TELL REVERSE RUNPROGRAM; RUNPROG - G GYGENERÁL GENERATE GOMBNÉV BUTTONS GOMBNÉV! SETBUTTONS GOMBNYOMÁS?; GY? KEY? GOMBSOR BUTTONSSIZE
GOMBSOR! SETBUTTONSSIZE GY? KEY? GYÖK SQRT -HH HA BACK; BK IF 187 HAH HAHAMIS; HAH HAI HAIGAZ; HAI HAMIS HANG IFFALSE; IFF IFFALSE; IFF IFTRUE; IFT IFTRUE; IFT FALSE SOUND HANGH HANGHULLÁM; HANGSOR HASZNÁL HATVÁNY HAZA HÁNYADIK HÁNYADOS PLAYWAVE; PLAYW HANGH PLAYWAVE; PLAYW PLAY APPLY EXP HOME REPCOUNT; REPC QUOTIENT HÁTRA; H HELY HELY! HIBA HIBAÜZENET BACK; BK POS SETPOS ERROR MAKEERROR IDŐ IDŐSZÓ IGAZ IRÁNY IRÁNY! IRÁNYSZÖG ISM ISMÉTLÉS; ISM TIME TIMEWORD; TIMEW TRUE HEADING SETHEADING; SETH TOWARDS REPEAT REPEAT ÍA ÍRÓABLAK; ÍA ÍRÓLAPABLAK ÍRÓLAPABLAK! ÍRÓSZÍN! TEXTSCREEN; TS TEXTSCREEN; TS GETTS SETTS SETTC J JEL JOBBRA; J RIGHT; RT CHAR RIGHT; RT KEREKÍT KÉPSOR ROUND IMAGE - I Í- -J- -K- 188 KÉPSOR? KÉPSORMÉRET KÉREM KI KIFIGYEL KIHASÍTKÉP KIÍR IMAGE? IMAGESIZE ASK SHOW; SH WHO GETIMAGE PRINT; PR KIÍRBELSŐ TYPE KIÍRJEL; KI SHOW; SH KIÍRÓESZKÖZ PRINTTO KIÍRSAJÁTSZAVAK POTS KIÍRSOR; KS PRINTLINE; PL
KIÍRTARTALOM; KT PO KISEBB? LESS? KIVÁLASZT KÍVÜL? KOSZ KÓD KÖRKÖRÖSEN KS KT KURZORHELY KURZORHELY! PICK OUTSIDE? COS ASCII WRAP PRINTLINE; PL PO CURSOR SETCURSOR KÜLÖNBSÉG DIFFERENCE LÁTHATATLAN LÁTHATÓ LÁTHATÓ? LEKÉPEZ LENYOMAT LISTA LISTA? LN LOGO HIDETURTLE; HT SHOWTURTLE; ST SHOWN? MAP STAMP LIST LIST? LN LOGO LOGO! LOGOABLAK LOGOABLAK! LOKÁLIS LOKÁLISNÉV SETLOGO LOGOSIZE SETLOGOSIZE LOCAL LET M SENTENCE; SE - L LY- -M- 189 MA MARADÉK; MA MCI MENT MENTKÉPSOR MENTKÖTET MENTRAJZ MENTRAJZLAP MEZŐ MEZŐ! MEZŐK MEZŐK! MG MI MIND MONDAT; M MUTATGOMBSOR; MG MUTATIKONSOR; MI MOD MOD MCI SAVE SAVEIMAGE SAVELIBRARY; SAVELIB SAVEBITMAP SAVESCREEN GPROP PPROP PLIST SETPLIST SHOWBUTTONS SHOWSPEEDBAR ALLTURTLES; ALL SENTENCE; SE SHOWBUTTONS SHOWSPEEDBAR - N NYNAGYOBB? GREATER? NEM NOT NEVEK NAMES NEVEZ NAME NÉV MAKE NÉV? NAME? NÖVEL INC NYITVIDEO OPENVIDEO NYM PRINTMEMORY; PRINTM NYOMOZ DEBUG NYOMOZÓSZÜNET PAUSE NYOMTATÍRÓLAP PRINTTEXT; PRINTT
NYOMTATMEMÓRIA; NYM PRINTMEMORY; PRINTM NYOMTATRAJZLAP PRINTGRAPHICS; PRINTG - O Ó Ö ŐOA SPLITSCREEN; SS OJ READCHAR; RC OK READKEY OL READLIST; RL OLPARANCSJEL! SETRLPROMPT OLVASJEL; OJ READCHAR; RC OLVASKÓD; OK READKEY OLVASLISTA; OL READLIST; RL OLVASLISTAPARANCSJEL!; OLPARANCSJEL! SETRLPROMPT OLVASÓESZKÖZ READFROM 190 OLVASSZÓ; OSZ READWORD; RW OLVASÜZENŐ READLISTDIALOG; RLD OSZ READWORD; RW OSZTOTTABLAK; OA SPLITSCREEN; SS ÖSSZEG SUM ÖSSZEKEVER SHUFFLE -PPARANCSJEL! PONT PONTSZÍN SETPROMPT DOT DOTCOLOR RA RAJZABLAK; RA RAJZLAPABLAK RAJZLAPABLAK! RAJZLAPSZÍN; RSZ RAJZLAPSZÍN!; RSZ! RÁKATTINTOTT REJTGOMBSOR; RG REJTIKONSOR; RI REKORDNEVEK REKORDOK RENDSZERMÉRET RI RG RSZ RSZ! GRAPHICSCREEN; GS GRAPHICSCREEN; GS GETGS SETGS BACKGROUND; BG SETBACKGROUND; SETBG TOUCHED HIDEBUTTONS HIDESPEEDBAR PROPS PPS SYSTEMMETRICS HIDESPEEDBAR HIDEBUTTONS BACKGROUND; BG SETBACKGROUND; SETBG SAJÁTNEVEK SAJÁTSZÓ SAJÁTSZÓ? SOKSZÖG SOKSZÖGVONAL SZÁM? SZIA SZIN SZORZAT
SZÓ SZÓ? SZÓTARTALOM SZÖVEGDOBOZ SZÖVEGDOBOZ! PROCS DEFINE DEFINED? POLYGON POLYGONLINE NUMBER? BYE SIN PRODUCT WORD WORD? TEXT GETBOX SETBOX -Q-R- - S SZ- 191 SZÖVEGDOBOZMÓD! SZŰRŐ SETBOXMODE FILTER - T TYTAKAR? OVERLAP? TAKART OVERLAPPED TANULD TO TART DIR TARTALOM THING TARTALOMJEGYZÉK; TART DIR TEKNŐCOLVASLISTA; TOL TERÜLET TESZT TF TG TIZEDESJEGY! TÍ TL TM TM! TOL TOLL TOLL! TOLLATFEL; TF TOLLATLE; TL TOLLÁLLAPOT TOLLÁLLAPOT! TOLLMINTA; TM TOLLMINTA!; TM! TOLLPONT TOLLPONT! TOLLRADÍR; TRD TOLLSZÍN; TSZ TOLLSZÍN!;TSZ! TOLLVASTAGSÁG; TV TOLLVASTAGSÁG!; TV! TOLLVÁLTÓ; TVT TÖLT TÖLTŐMINTA; TLM TÖLTŐMINTA!; TLM! TÖLTŐMÓD! TÖLTŐSZÍN; TLSZ TÖLTŐSZÍN!; TLSZ! TÖRÖL TÖRÖLFÁJL TÖRÖLÍRÓLAP; TÍ 192 READLISTTURTLE; RLT GETWINDOW TEST PENUP; PU TAN SETFORMAT CLEARTEXT; CT PENDOWN; PD PATTERN SETPATTERN READLISTTURTLE; RLT PEN SETPEN PENUP; PU PENDOWN; PD PENSTATE SETPENSTATE PATTERN SETPATTERN HOTSPOT SETHOTSPOT PENERASE; PE PENCOLOR; PC
SETPENCOLOR; SETPC PENWIDTH; PW SETPENWIDTH; SETPW PENREVERSE; PX FILL FILLPATTERN; FP SETFILLPATTERN; SETFP SETFILLMODE FILLCOLOR; FC SETFILLCOLOR; ERASE; ER ERASEFILE; ERFILE CLEARTEXT; CT TÖRÖLMEZŐ TÖRÖLMUNKA TÖRÖLRAJZ TÖRÖLRAJZLAP; TR TÖRÖLTEKNŐC TL TLM TLM! TLSZ TLSZ! TM TM! TR TRD TSZ TSZ! TV TV! TVT REMPROP ERALL CLEAN CLEARSCREEN; CS ERASETURTLE; ERTURTLE PENDOWN; PD FILLPATTERN; FP SETFILLPATTERN; SETFP FILLCOLOR; FC SETFILLCOLOR; SETFC PATTERN SETPATTERN CLEARSCREEN; CS PENERASE; PE PENCOLOR; PC SETPENCOLOR; SETPC PENWIDTH; SETPW SETPENWIDTH; PWS PENREVERSE; PX UN UTOLSÓ UTOLSÓNAK UTOLSÓNÉLKÜLI; UN ÚJRASOROL ÚJTEKNŐC ÚT ÚT! ÜRES? ÜRESKÉPSOR ÜZENŐ BUTLAST; BL LAST LPUT BUTLAST; BL REORDER MAKETURTLE PATH SETPATH EMPTY? EMPTYIMAGE MESSAGEBOX VAGY OR VÁGÓLAP VÁRJ VÁRJAMÍG VÉGE VÉGREHAJT VÉLETLEN VÉLETLENSZÁM; VSZ VISSZATÉR CLIPBOARD WAIT WAITUNTIL END RUN RANDOMIZE RANDOM STOP - U Ú Ü Ű- -V- VSZ RANDOM -W- 193 -XX X!
XHELY; X XHELY!; X! XY! XYHELY!; XY! XCOR SETX XCOR SETX SETXY SETXY Y Y! YHELY; Y YHELY!; Y! YCOR SETY YCOR SETY -Y- - Z ZS- 194 Az angol eljárásnevek ábécérendbeli listája A következő lista a Comenius Logo összes eljárásának, függvényének és speciális jelentésű szavának neveit tartalmazza. A nevek az angol nevek szerint lettek ábécérendbe rendezve. . * + / .SETMOUSEPOS .CLEANMEM .PRIMITIVES .WINDOWSPOS < <= EGÉRHELY .GYÜJTMEM .ALAPSZAVAK .PONTHELY <> = > >= A ABS ALL ALLTURTLES; ALL AND APPEND APPLY ARCTAN ASCII ASK ABSZ MIND MIND ÉS CSATOL HASZNÁL ARCTG KÓD KÉREM BACK; BK BACKGROUND; BG BF BG BL BURIED BURY BURYALL BUTFIRST; BF BUTLAST; BL BUTMEMBER HÁTRA; H RAJZLAPSZÍN; RSZ ELSŐNÉLKÜLI; EN RAJZLAPSZÍN; RSZ UTOLSÓNÉLKÜLI; UN FEDETT ELFED ELFEDMIND ELSŐNÉLKÜL; EN UTOLSÓNÉLKÜLI; UN ELEMNÉLKÜLI B 195 BUTTONS BUTTONSSIZE BYE GOMBNÉV GOMBSOR SZIA CASE CATCH CHAR CHOOSER CLEAN CLEARSCREEN; CS
CLEARTEXT; CT CLIPBOARD CLOSEPROBLEM CLOSEVIDEO CODEAREA COS COUNT CS CT CURSOR ELÁGAZÁS ELKAP JEL BEÁLLÍTÓ TÖRÖLRAJZ TÖRÖLRAJZLAP; TR TÖRÖLÍRÓLAP; TÍ VÁGÓLAP BEZÁRFELADAT BEZÁRVIDEO ÉRZÉKENYTERÜLET KOSZ ELEMSZÁM; ESZ TÖRÖLRAJZLAP; TR TÖRÖLÍRÓLAP KURZORHELY DATE DATEW DATEWORD; DATEW DEBUG DEC DEFINE DEFINED? DIFFERENCE DIR DIV DOT DOTCOLOR DRAW DÁTUM DÁTUMSZÓ DÁTUMSZÓ NYOMOZ CSÖKKENT SAJÁTSZÓ SAJÁTSZÓ? KÜLÖNBSÉG TARTALOMJEGYZÉK; TART EGÉSZHÁNYADOS; EH PONT PONTSZÍN ALAPHELYZET EACH ED EDFILE EDIT; ED EDITFILE; EDFILE EMPTY? EMPTYIMAGE END EGYMÁSUTÁN ÁTÍR ÁTÍRFÁJL ÁTÍR ÁTÍRFÁJL ÜRES? ÜRESKÉPSOR VÉGE C D E 196 EOF? FÁJLVÉGE? EQUAL? EGYENLŐ? ER TÖRÖL ERALL TÖRÖLMUNKA ERASE; ER TÖRÖL ERASEFILE; ERFILE TÖRÖLFÁJL ERASETURTLE; ERTURTLE TÖRÖLTEKNŐC ERFILE TÖRÖLFÁJL ERROR HIBA ERTURTLE TÖRÖLTEKNŐC EXP HATVÁNY F FALSE FC FD FILE? FILL FILLCOLOR; FC FILLPATTERN; FP FILTER FIRST FOR FOREACH FORWARD; FD
FP FPUT FROMMEMBER HAMIS TÖLTŐSZÍN; TLSZ ELŐRE; E FÁJL? TÖLT TÖLTŐSZÍN; TLSZ TÖLTŐMINTA; TLM SZŰRŐ ELSŐ CIKLUS CIKLUSCSAK ELŐRE; E TÖLTŐMINTA; TLM ELSŐNEK ELEMTŐL GENERATE GETBOX GETGS GETIMAGE GETSHAPE GETTS GETWINDOW GPROP GRAPHICSCREEN; GS GREATER? GS GENERÁL SZÖVEGDOBOZ RAJZLAPABLAK KIHASÍTKÉP ALAK ÍRÓLAPABLAK TERÜLET MEZŐ RAJZABLAK; RA NAGYOBB? RAJZABLAK; RA HEADING HIDEBUTTONS HIDESPEEDBAR IRÁNY REJTGOMBSOR; RG REJTIKONSOR; RI G H 197 HIDETURTLE; HT HOME HOTSPOT HT LÁTHATATLAN HAZA TOLLPONT LÁTHATATLAN IF IFF IFFALSE; IFF IFT IFTRUE; IFT IGNORE IMAGE IMAGE? IMAGESIZE INC INSIDE? INT ITEM HA HAHAMIS; HAH HAHAMIS; HAH HAIGAZ; HAI HAIGAZ; HAI ELFELEJT KÉPSOR KÉPSOR? KÉPSORMÉRET NÖVEL BELÜL? EGÉSZRÉSZ ELEM KEY? GOMBNYOMÁS?; GNY? LAST LEFT; LT LESS? LET LIST LIST? LN LOAD LOADBITMAP LOADIMAGE LOADLIB LOADLIBRARY; LOADLIB LOADPATH LOADPROBLEM LOADSCREEN LOCAL LOGO LOGOSIZE LPUT LT UTOLSÓ BALRA; B KISEBB? LOKÁLISNÉV LISTA
LISTA? LN BETÖLT BETÖLTRAJZ BETÖLTKÉPSOR BETÖLTKÖTET BETÖLTKÖTET BETÖLTŐÚT BETÖLTFELADAT BETÖLTRAJZLAP LOKÁLIS LOGO LOGOABLAK UTOLSÓNAK BALRA; B I J K L 198 M MAKE MAKEERROR MAKETURTLE MAP MCI MEMBER MEMBER? MESSAGEBOX MOD MOUSE MOUSESTATE NÉV HIBAÜZENET ÚJTEKNŐC LEKÉPEZ MCI ELEME ELEME? ÜZENŐ MARADÉK; MA EGÉRHELY EGÉRÁLLAPOT NAME NAME? NAMES NOT NUMBER? NEVEZ NÉV? NEVEK NEM SZÁM? OP OPENVIDEO OR OUTPUT; OP OUTSIDE? OVERLAP? OVERLAPPED EREDMÉNY; ER NYITVIDEO VAGY EREDMÉNY; ER KÍVÜL? TAKAR? TAKART PATH PATTERN PAUSE PC PD PE PEN PENCOLOR; PC PENDOWN; PD PENERASE; PE PENREVERSE; PX PENSTATE PENUP; PU PENWIDTH; PW PHASE ÚT TOLLMINTA; TM NYOMOZÓSZÜNET TOLLSZÍN; TSZ TOLLATLE; TL TOLLRADÍR; TRD TOLL TOLLSZÍN; TSZ TOLLATLE; TL TOLLRADÍR; TRD TOLLVÁLTÓ; TVT TOLLÁLLAPOT TOLLATFEL; TF TOLLVASTAGSÁG; TV FÁZIS N O P 199 PICK PL PLAY PLAYW PLAYWAVE; PLAYW PLIST PO POLYGON POLYGONLINE POS POTS PPROP PPS PRIMITIVE? PR PRINT; PR PRINTG
PRINTGRAPHICS; PRINTG PRINTLINE; PL PRINTM PRINTMEMORY; PRINTM PRINTT PRINTTEXT; PRINTT PRINTTO PROCS PRODUCT PROPS PU PUTIMAGE PW PX KIVÁLASZT KIÍRSOR; KS HANGSOR HANGHULLÁM; HANGH HANGHULLÁM; HANGH MEZŐK KIÍRTARTALOM; KT SOKSZÖG SOKSZÖGVONAL HELY KIÍRSAJÁTSZAVAK MEZŐ! REKORDOK ALAPSZÓ? KIÍR KIÍR NYOMTATRAJZLAP NYOMTATRAJZLAP KIÍRSOR; KS NYOMTATMEMÓRIA; NYM NYOMTATMEMÓRIA; NYM NYOMTATÍRÓLAP NYOMTATÍRÓLAP KIÍRÓESZKÖZ SAJÁTNEKEV SZORZAT REKORDNEVEK TOLLATFEL; TF BETOLDKÉP TOLLVASTAGSÁG; TV TOLLVÁLTÓ; TVT QUOTIENT HÁNYADOS RANDOM RANDOMIZE RC READCHAR; RC READFROM READKEY READLIST; RL READLISTDIALOG; RLD READLISTTURTLE; RLT READWORD; RW REMPROP VÉLETLENSZÁM; VSZ VÉLETLEN OLVASJEL; OJ OLVASJEL; OJ OLVASÓESZKÖZ OLVASKÓD; OK OLVASLISTA; OL OLVASÜZENŐ TEKNŐCOLVASLISTA; TOL OLVASSZÓ; OSZ TÖRÖLMEZŐ Q R 200 REORDER REP REPCOUNT; REPC REPEAT REPLACE ÚJRASOROL HÁNYADIK HÁNYADIK ISMÉTLÉS; ISM CSERE RESETPAL RESETPALETTE; RESETPAL
REVERSE RIGHT; RT RL RLD RLT ROUND RT RUN RUNPROG RUNPROGRAM; RUNPROG RW ALAPPALETTA ALAPPALETTA FORDÍT JOBBRA; J OLVASLISTA; OL OLVASÜZENŐ TEKNŐCOLVASLISTA; TOL KEREKÍT JOBBRA VÉGREHAJT FUTTAT FUTTAT OLVASSZÓ SAVE SAVEBITMAP SAVEIMAGE SAVELIB SAVELIBRARY; SAVELIB SAVESCREEN SE SENTENCE; SE SETBACKGROUND; SETBG SETBG SETBOX SETBOZMODE SETBURY SETBUTTONS SETBUTTONSSIZE SETCURSOR SETFC SETFILLCOLOR; SETFC SETFILLMODE SETFILLPATTERN; SETFP SETFORMAT SETFP SETGS SETH SETHEADING; SETH SETHOTSPOT SETIMODE MENT MENTRAJZ MENTKÉPSOR MENTKÖTET MENTKÖTET MENTRAJZLAP MONDAT; M MONDAT; M RAJZLAPSZÍN! RSZ! RAJZLAPSZÍN! RSZ! SZÖVEGDOBOZ! SZÉVEGDOBOZMÓD! FED! GOMBNÉV! GOMBSOR! KURZORHELY! TÖLTŐSZÍN!; TLSZ! TÖLTŐSZÍN!; TLSZ! TÖLTŐMÓD! TÖLTŐMINTA!; TLM! TIZEDESJEGY! TÖLTŐMINTA!; TLM! RAJZLAPABLAK! IRÁNY! IRÁNY! TOLLPONT! ÁTLÁTSZÓMÓD! S 201 SETLOGO SETLOGOSIZE SETMC SETMOUSECURSOR; SETMC SETPATH SETPATTERN SETPC SETPEN SETPENCOLOR; SETPC SETPENSTATE
SETPENWIDTH; SETPW SETPHASE SETPHASEMODE SETPLIST SETPOS SETPROMPT SETPW SETREADLISTPROMPT; SETRLPROMPT SETSHAPE SETSHAPECOLOR SETTC SETTS SETTT SETTTEXT; SETTT SETX SETXY SETY SH SHAPECOLOR SHAPEPOS SHOW; SH SHOWBUTTONS SHOWN? SHOWSPEEDBAR SHOWTURTLE; ST SHUFFLE SIN SOUND SPLITSCREEN; SS SQRT SS ST STAMP STOP SUM SYSTEMMETRICS 202 LOGO! LOGOABLAK! EGÉRALAK! EGÉRALAK! ÚT! TOLLMINTA!; TM! TOLLSZÍN; TSZ! TOLL! TOLLSZÍN!; TSZ! TOLLÁLLAPOT! TOLLVASTAGSÁG!; TV! FÁZIS! ANIMÁCIÓSMÓD! MEZŐK! HELY! PARANCSJEL! TOLLVASTAGSÁG!; TV! OLVASLISTAPARANCSJEL! ALAK! ALAKSZÍN! ÍRÓSZÍN! ÍRÓLAPABLAK! BETŰ! BETŰ! XHELY!; X! XYHELY!; XY! YHELY!; Y! KIÍRJEL; KI ALAKSZÍN FÁZISPONT KIÍRJEL; KI MUTATGOMBSOR; MG LÁTHATÓ? MUTATIKONSOR; MI LÁTHATÓ ÖSSZEKEVER SZIN HANG OSZTOTTABLAK; OA GYÖK OSZTOTTABLAK; OA LÁTHATÓ LENYOMAT VISSZATÉR ÖSSZEG RENDSZERMÉRET T TAN TELL TEST TEXT TEXTSCREEN; TS TEXTSIZE THING THROW TIME TIMEW TIMEWORD; TIMEW TO TOPLEVEL TOUCHED TOWARDS TRUE TS TT
TTEXT; TT TURTLESTATE TYPE TG FIGYELJ TESZT SZÓTARTALOM ÍRÓABLAK; ÍA BETŰNÉGYZET TARTALOM ÁTDOB IDŐ IDŐSZÓ IDŐSZÓ TANULD FELSŐSZINT RÁKATTINTOTT IRÁNYSZÖG IGAZ ÍRÓABLAK; ÍA BETŐZD BETŐZD ÁLLAPOT KIÍRBELSŐ UNBURY FELFED WAIT WAITUNTIL WHILE WHO WINDOW WORD WORD? WRAP VÁRJ VÁRJAMÍG AMÍG KIFIGYEL ABLAK SZÓ SZÓ? KÖRKÖRÖSEN XCOR XHELY; X YCOR YHELY; Y U V W X Y Z 203 Tartalomjegyzék A COMENIUS LOGO FELÜLETE:. 2 NUMERIKUS FÜGGVÉNYEK . 3 *. 3 + . 3 - . 3 /. 4 ABSZ. 4 ARCTG . 4 EGÉSZHÁNYADOS; EH . 4 EGÉSZRÉSZ . 5 EH . 5 GYÖK . 5 HATVÁNY . 6 HÁNYADOS. 6 KEREKÍT . 6 COS . 7 KÜLÖNBSÉG . 7 LN . 7 MA . 7 MARADÉK; MA. 8 ÖSSZEG . 8 SIN . 8 SZORZAT . 8 TG . 8 VÉLETLEN . 9 VÉLETLENSZÁM; VSZ . 9 VSZ . 9 NUMERIKUS PREDIKÁTUMOK . 10 < . 10 <= . 10 > . 10 >= . 11 <> . 11 = . 11 EGYENLŐ? . 12 KISEBB? . 13 NAGYOBB? . 13 SZÓ- ÉS LISTAFÜGGVÉNYEK . 14 < . 14 <= . 14 > . 14 >= . 15 <> . 15 = . 15
CSERE . 16 EGYENLŐ? . 17 ELEM . 18 ELEME . 19 ELEME? . 19 ELEMNÉLKÜLI . 20 ELEMSZÁM; ESZ . 20 ELEMTŐL . 20 ELSŐ . 21 204 ELSŐNEK . 22 ELSŐNÉLKÜLI; EN . 22 EN . 23 ESZ . 23 FORDÍT . 23 JEL . 23 KISEBB? . 24 KIVÁLASZT . 24 KÓD . 24 LISTA . 25 LISTA? . 25 M . 26 MONDAT; M . 26 NAGYOBB? . 26 ÖSSZEKEVER . 27 SZÁM? . 27 SZÓ . 27 SZÓ? . 28 UN . 28 UTOLSÓ . 29 UTOLSÓNAK . 29 UTOLSÓNÉLKÜLI; UN . 30 ÜRES? . 30 REKORDOKRA VONATKOZÓ ELJÁRÁSOK. 31 ÁTÍR . 31 ELFED . 31 ELFEDMIND. 32 FED!. 32 FEDETT. 32 FELFED . 33 MEZŐ . 33 MEZŐ! . 34 MEZŐK . 35 MEZŐK! . 35 REKORDNEVEK . 36 REKORDOK . 36 TÖRÖL . 37 TÖRÖLMEZŐ . 37 TÖRÖLMUNKA . 38 LOGIKAI FÜGGVÉNYEK ÉS IGAZSÁGÉRTÉKEK . 39 ÉS . 39 HAMIS . 39 IGAZ . 39 NEM. 39 VAGY . 40 VÁLTOZÓK LÉTREHOZÁSA ÉS FELHASZNÁLÁSA . 41 ÁTÍR . 41 CSÖKKENT . 41 ELFED . 42 ELFEDMIND. 42 FED!. 42 FEDETT. 43 FELFED . 43 LOKÁLIS. 44 LOKÁLISNÉV . 44 NÉV . 44 205 NÉV? . 45 NEVEK . 45 NEVEZ. 46 NÖVEL . 46 TARTALOM
. 47 TÖRÖL . 47 TÖRÖLMUNKA. 48 VEZÉRLŐ ÉS FELTÉTELES ELJÁRÁSOK. 49 AMÍG . 49 ÁTDOB . 49 CIKLUS . 49 CIKLUSCSAK . 50 ELÁGAZÁS . 51 ELFELEJT . 52 ELKAP . 52 ER. 53 EREDMÉNY; ER . 53 FELSŐSZINT . 53 GENERÁL . 53 HA . 54 HAH . 55 HAHAMIS; HAH . 55 HAI. 55 HAIGAZ; HAI . 56 HASZNÁL . 56 HÁNYADIK . 56 HIBA . 57 HIBAÜZENET. 57 ISM. 58 ISMÉTLÉS; ISM . 58 LEKÉPEZ . 58 NYOMOZ . 59 NYOMOZÓSZÜNET . 59 SZŰRŐ . 60 TESZT . 60 VÉGREHAJT . 60 VISSZATÉR . 61 VÁRJ . 61 VÁRJAMÍG . 62 ELJÁRÁSOK DEFINIÁLÁSA, SZERKESZTÉSE ÉS FELDOLGOZÁSA . 63 .ALAPSZAVAK 63 ALAPSZÓ? . 63 ÁTÍR . 63 ELFED . 64 ELFEDMIND . 64 FEDETT . 65 KIÍRSAJÁTSZAVAK . 65 KIÍRTARTALOM; KT . 66 KT . 66 SAJÁTNEVEK . 66 SAJÁTSZÓ . 66 SAJÁTSZÓ?. 67 SZÓTARTALOM . 67 TANULD . 68 TÖRÖL . 68 TÖRÖLMUNKA. 69 VÉGE . 69 206 TEKNŐCMŰVELETEK . 70 ABLAK . 70 ALAK. 70 ALAK! . 71 ALAKSZÍN . 71 ALAKSZÍN! . 72 ALAPHELYZET . 72 ÁLLAPOT . 72 ANIMÁCIÓSMÓD!. 73 B . 73 BALRA; B . 73 BELÜL? . 73
BETOLDKÉP . 74 BETŰ!. 74 BETŰZD . 75 BETŰNÉGYZET . 76 E . 76 EGYMÁSUTÁN . 77 ELŐRE; E. 77 FÁZIS . 77 FÁZIS! . 78 FÁZISPONT . 78 FIGYELJ . 78 H. 78 HAZA. 79 HÁTRA; H . 79 HELY . 79 HELY!. 79 IRÁNY . 80 IRÁNY!. 80 IRÁNYSZÖG. 81 J . 81 JOBBRA; J . 81 KÉREM. 81 KIFIGYEL . 82 KIHASÍTKÉP . 82 KÍVÜL? . 83 KÖRKÖRÖSEN . 84 LÁTHATÓ . 84 LÁTHATÓ? . 85 LÁTHATATLAN . 85 LENYOMAT . 86 MIND . 86 PONT . 87 PONTSZÍN . 87 SOKSZÖG . 87 SOKSZÖGVONAL . 88 SZÖVEGDOBOZ . 89 SZÖVEGDOBOZ! . 90 SZÖVEGDOBOZMÓD!. 92 TAKART . 92 TAKAR? . 93 TEKNŐCOLVASLISTA; TOL. 93 TERÜLET . 94 TF . 94 TL. 94 TLM . 95 TLM! . 95 TLSZ . 96 207 TLSZ! . 96 TM. 97 TM! . 97 TOL . 97 TOLL. 97 TOLL! . 98 TOLLATFEL; TF . 99 TOLLATLE; TL . 99 TOLLÁLLAPOT. 99 TOLLÁLLAPOT! . 99 TOLLMINTA; TM . 100 TOLLMINTA!; TM! . 100 TOLLRADÍR; TRD. 100 TOLLSZÍN; TSZ . 100 TOLLSZÍN!; TSZ! . 101 TOLLVASTAGSÁG; TV. 101 TOLLVASTAGSÁG!; TV! . 101 TOLLVÁLTÓ; TVT . 102 TÖLT . 102 TÖLTŐMÓD! . 103
TÖLTŐMINTA; TLM . 103 TÖLTŐMINTA!; TLM! . 103 TÖLTŐSZÍN; TLSZ. 103 TÖLTŐSZÍN!; TLSZ! . 103 TÖRÖLMUNKA. 103 TÖRÖLRAJZ . 104 TÖRÖLRAJZLAP; TR . 104 TÖRÖLTEKNŐC . 104 TR. 105 TRD . 105 TSZ. 105 TSZ! . 105 TV . 105 TV! . 105 TVT . 105 ÚJRASOROL . 105 ÚJTEKNŐC . 106 X . 107 X! . 107 XHELY; X . 107 XHELY!; X! . 107 XY!. 107 XYHELY!; XY! . 108 Y . 108 Y! . 108 YHELY; Y . 109 KÉPSOROK FELDOLGOZÁSA . 110 ALAK . 110 ALAK! . 110 ALAKSZÍN . 111 ALAKSZÍN! . 111 ANIMÁCIÓSMÓD! . 111 BETOLDKÉP . 112 BETÖLTKÉPSOR . 112 BETÖLTRAJZ . 113 ÁTLÁTSZÓMÓD! . 114 FÁZIS . 114 FÁZIS! . 114 208 FÁZISPONT . 115 KÉPSOR . 115 KÉPSOR? . 115 KÉPSORMÉRET . 116 KIHASÍTKÉP . 116 MENTKÉPSOR . 117 MENTRAJZ . 118 TOLLPONT . 118 TOLLPONT!. 118 ÚT . 119 ÚT! . 120 ÜRESKÉPSOR . 120 A KÉPERNYŐ BEÁLLÍTÁSAI . 122 .PONTHELY! 122 ALAPHELYZET . 122 ALAPPALETTA. 122 BETÖLTRAJZLAP . 122 EGÉRALAK! . 123 EGÉRHELY! . 123 ÍA . 124 ÍRÓABLAK; ÍA . 124 ÍRÓLAP . 124
ÍRÓLAP! . 124 ÍRÓSZÍN!. 125 KURZORHELY . 125 KURZORHELY! . 125 LOGOABLAK . 126 LOGOABLAK!. 126 MENTRAJZLAP . 127 MI. 127 MUTATIKONSOR; MI . 128 NYOMTATÍRÓLAP . 128 NYOMTATRAJZLAP . 128 OA . 128 OLPARANCSJEL! . 128 OLVASLISTAPARANCSJEL!; . 129 PONTSZÍN . 129 OSZTOTTABLAK; OA . 129 PARANCSJEL!. 129 RA . 130 RAJZABLAK; RA . 130 RAJZLAP. 130 RAJZLAP! . 130 RAJZLAPSZÍN; RSZ . 131 RAJZLAPSZÍN!; RSZ! . 131 REJTIKONSOR; RI . 131 RI . 131 RSZ . 131 RSZ! . 131 TÍ. 132 TÖRÖLÍRÓLAP; TÍ . 132 TÖRÖLRAJZ . 132 TÖRÖLRAJZLAP; TR. 132 TR . 132 GOMBOK ÉS PARAMÉTERBEÁLLÍTÓK . 133 BEÁLLÍTÓ . 133 BETÖLTFELADAT . 133 209 BEZÁRFELADAT . 134 GOMBNÉV. 134 GOMBNÉV! . 134 GOMBSOR . 135 GOMBSOR! . 135 MG . 136 MI . 136 MUTATGOMBSOR; MG . 136 MUTATIKONSOR; MI . 136 REJTGOMBSOR; RG . 137 REJTIKONSOR; RI . 137 RG . 137 RI . 137 KOMMUNIKÁCIÓ A KÜLVILÁGGAL" . 138 JEL . 138 GNY? . 138 GOMBNYOMÁS?; GNY? . 138 KI . 138 KIÍR . 139 KIÍRBELSŐ . 140 KIÍRJEL; KI . 140
KIÍRÓESZKÖZ. 140 KIÍRSAJÁTSZAVAK . 141 KIÍRSOR; KS . 141 KIÍRTARTALOM; KT . 142 KS. 142 KT . 142 NYOMTATMEMÓRIA. 142 NYOMTATÍRÓLAP. 143 NYOMTATRAJZLAP . 143 OJ . 143 OK . 143 OL . 144 OLPARANCSJEL!. 145 OLVASJEL; OJ . 146 OLVASKÓD; OK. 146 OLVASLISTA; OL . 146 OLVASÓESZKÖZ. 146 OLVASLISTAPARANCSJEL!; OLPARANCSJEL! . 146 OLVASSZÓ; OSZ . 146 OLVASÜZENŐ . 147 OSZ . 147 PARANCSJEL! . 147 TEKNŐCOLVASLISTA; TOL . 148 TIZEDESJEGY!. 148 TOL . 149 ÜZENŐ . 149 VÁGÓLAP . 149 FÁJLKEZELŐ ELJÁRÁSOK . 150 CSATOL . 150 ÁTÍRFÁJL . 150 BETÖLT . 151 BETÖLTKÉPSOR . 151 BETÖLTKÖTET . 152 BETÖLTŐÚT . 152 BETÖLTRAJZ . 153 BETÖLTRAJZLAP. 153 210 FÁJL? . 154 FÁJLVÉGE? . 154 KIÍRÓESZKÖZ . 154 MENT . 155 MENTKÉPSOR . 156 MENTKÖTET . 157 MENTRAJZ . 157 MENTRAJZLAP . 158 OLVASÓESZKÖZ . 158 TART . 159 TARTALOMJEGYZÉK; TART . 159 TÖRÖLFÁJL . 159 ÚT . 160 ÚT! . 160 VÁGÓLAP. 161 KOMMUNIKÁCIÓ AZ EGÉR SEGÍTSÉGÉVEL. 162 EGÉRALAK! . 162 EGÉRÁLLAPOT .
163 EGÉRHELY. 164 EGÉRHELY! . 164 ÉRZÉKENYTERÜLET . 164 GOMBNYOMÁS?; GNY? . 165 GNY? . 165 OK . 165 OLVASKÓD; OK . 166 RÁKATTINTOTT . 166 ZENEI ALAPSZAVAK ÉS MULTIMÉDIA . 168 BEZÁRVIDEÓ . 168 HANG . 168 HANGH . 168 HANGHULLÁM; HANGH . 169 HANGSOR . 169 MCI . 169 NYITVIDEÓ. 170 ÚT . 171 ÚT! . 171 A MUNKATERÜLET KEZELÉSE . 173 .GYŰJTMEM 173 EGYÉB . 174 DÁTUM . 174 DÁTUMSZÓ . 174 FUTTAT . 174 IDŐ . 175 IDŐSZÓ . 175 LOGO . 176 LOGO! . 176 RENDSZERMÉRET. 178 KILÉPÉS . 180 SZIA. 180 ALAPSZAVAK JEGYZÉKE. 181 akármi . 181 alakszín . 181 alapirány . 181 211 alapkoordináták. 181 alapkönyvtár . 181 alkönyvtár . 181 aktív alakszín . 181 aktív eljárás . 181 aktív teknőc . 181 A MAGYAR ELJÁRÁSNEVEK ABC LISTÁJA . 185 AZ ANGOL ELJÁRÁSNEVEK ÁBÉCÉRENDBELI LISTÁJA. 195 212