|
||||||||||||||||||||||||||||
2. lecke - Koncentrikus körökKONCENTRIKUS KÖRÖK - 1. PRÓBÁLKOZÁSAz olyan köröket, amelyeknek ugyanott van a középpontjuk (azaz úgy néznek ki, mint a céltábla), koncentrikus köröknek hívjuk. Ilyeneket fogunk most rajzolni. Próbáld ki a következő utasítást: ismétlés 30 [tollszín! véletlenszám 16 pont tollvastagság! véletlenszám 200 várj 1000] Ezzel a paranccsal az alábbiakhoz hasonló ábrákat kaphatsz: Sikerült? Ha nem, mert a teknőc olyasmit üzent, hogy "Nem tudom, hogy csináljam: ...", akkor nem pontosan gépelted be a parancsot. Próbáld újra, és figyelj a szóközökre is! Mi is történt valójában? Tulajdonképpen majdnem az összes parancs jelentését ismerjük már, de ismételjük át, mit is jelentenek: ismétlés 30 - az utána, szögletes zárójelben lévő parancsokat 30-szor egymás után végrehajtja. Tehát mit csinált a teknőc ennek a parancsnak a hatására? 30-szor egymás után rajzolt egy-egy pontot, véletlenszerűen választott színnel és vastagsággal. Azaz a körök, amiket látsz, tulajdonképpen nem is körök, hanem különböző méretű, egymásra rajzolt nagyon vastag pontok. Az előző utasítás rövidítésekkel leírva a következő: ism 30 [tsz! vsz 16 pont tv! vsz 200 várj 1000] PARAMÉTERES KONCENTRIKUS KÖRÖKMost olyan eljárást szeretnénk írni, amely többféle méretű "céltábla" rajzolására is jó lesz majd, tehát az eljárások írásánál paraméterekkel (betűkkel) fogjuk megadni a körök méretét, valamint a körök számát is. A legnagyobb kör átmérőjét fogjuk megadni az eljárás meghívásakor, majd a további körök átmérője folyamatosan csökken, az előzőnek a fele, azaz 0,5-szerese lesz (az átmérőt az eljárásban d-vel jelöljük majd). A körök számát pedig n-nel helyettesítjük. tanuld koncentrikus :n :d Nos, ez már egészen komoly, hosszú eljárás, jobb, ha átnézzük lépésenként, hogy mit is csinál: tanuld koncentrikus :n :d - jelzi a teknőcnek, hogy most egy eljárást fogunk írni, melynek neve koncentrikus, és két paramétere van, n (körök száma) és d (kör átmérője). Hogyan is kell meghívni ezt az eljárást? Be kell írni a parancssorba a nevét és utána két számot, melyek közül az első a körök száma, második a legnagyobb kör átmérője. Mivel a teknőc véletlenszerűen válogatja a színeket, még ha ugyanazt a parancsot írod be többször egymás után, akkor is más-más ábrát kapsz. Például:
Próbáld ki, mi történik, ha változtatsz a paramétereken! MEGLÉVŐ ELJÁRÁS VÁLTOZTATÁSAAz eljárást is átírhatod, szebb ábrát kapsz például, ha 0,5 helyett 0,7-et vagy 0,8-at írsz az utolsó előtti sorba. Hogyan tudunk már meglévő eljáráson változtatni? A legegyszerűbb, ha nem is változtatunk rajta, hanem új névvel létrehozunk egy új eljárást (a javítottat), és ezentúl azt használjuk a régi helyett (pl. lehet a neve koncentrikus2). De ha mindenképpen a régit szeretnéd megváltoztatni, akkor kattints a képernyő tetején, a menüsor alatt található ikonsor negyedik gombjára: , ekkor egy új ablakban megjelenik az összes eddig írt eljárásod neve. Ezek közül kattints kettőt annak a nevére, amelyiket meg szeretnéd változtatni, ekkor a jobb oldali ablakban megjelenik az eljárás maga. Erre is kattints kettőt, ekkor egy nagyobb ablakban is megjelenik, ahol már könnyedén változtathatsz rajta. Ha kész, csukd be ezt az ablakot (jobb felső sarok), ekkor megkérdezi a program, hogy meg akarod-e tartani az eljárás új szövegét. Válaszold azt, hogy igen, és az eljárást sikeresen megváltoztattad. Zárd be az összes, eljárást tartalmazó ablakot, és már rajzolhatsz is tovább. A megváltoztatott eljárással én ilyen ábrákat rajzoltam: És Te? KITÉRŐ - ELÁGAZÁSAz előbbi, koncentrikus köröket rajzoló eljárásban két nagyon fontos újdonság is található. Az egyik az elágazás, vagy feltételes elágazás, amikor a teknőcöt egy döntés elé állítjuk: el kell döntenie, hogy egy adott kijelentés igaz vagy hamis, és ettől fog függni, hogy mit csináljon a továbbiakban. A másik a rekurzió, amikor egy eljáráson belül meghívjuk ugyanazt az eljárást más paraméterekkel. A rekurziót később tárgyaljuk részletesen, ott, ahol a későbbi feladatok során újra előjön, nézzük meg tehát az elágazást egy kicsit közelebbről. Az első példában megkérjük a teknőcöt, hogy ha 10-nél kisebb vagy egyenlő számot adunk meg neki, akkor piros, ha 10-nél nagyobbat, akkor kék vonalat húzzon. tanuld pirosvagykék :szám Próbáld ki: pirosvagykék 3 pirosvagykék 13 pirosvagykék 300 pirosvagykék 10 pirosvagykék 0 stb. Tehát az eljárás neve pirosvagykék, egyetlen paramétere pedig a szám. Újdonság csak az eljárás második sorában található, ez az elágazás: ha :szám <= 10 [tollszín! 12 előre 20][tollszín! 9 előre 20] A sor elején megadjuk a feltételt (kijelentést), amiről a teknőcnek el kell döntenie, hogy igaz vagy hamis. Most éppen meg kell vizsgálnia, hogy a szám<=10, vagy nem. Ha igaz a kijelentés, akkor az első szögletes zárójelben lévő parancsokat hajtja végre, ha hamis, akkor a másodikban lévőket. Vagyis most, ha a szám<=10, akkor a tollszínt pirosra váltja (12) és előre megy 20 egységet, ha pedig nagyobb, akkor kékre (9) és úgy megy előre 20 egységet. Tehát pl. a pirosvagykék 5 rövidke piros vonalat fog eredményezni, míg a pirosvagykék 15 kéket. Vigyáznunk kell arra, hogy a feltételt és az utána következő mindkét szögletes zárójeles parancssort egyetlen sorba kell írnunk ahhoz, hogy a teknőc megértse. Ha a sor már nagyon hosszú lenne, és nem férne ki egy sorban, akkor eltörhető, de a sor végén egy ~ jellel jelezni kell a teknőcnek, hogy ez a sor még folytatódik. (Természetesen csak a parancsok között lehet a sorokat eltörni, nem egy parancs közepén.) A teknőc úgy jelzi, hogy ezt megértette, hogy a következő sor elején > helyett >> jelenik meg. A fenti eljárásban ugyan nincsen túlságosan hosszú sor, de azért így is írhattuk volna: tanuld pirosvagykék :szám Vagy akár így: tanuld pirosvagykék :szám Látszik, hogy az eljárásban az előre 20 parancsot kétszer is be kellett írnunk, hiszen ezt a teknőcnek akkor is végre kell hajtania, ha piros színnel rajzol, és akkor is, ha kékkel. Szerencsére megoldható, hogy ne kelljen kétszer leírni. Az olyan parancsokat, amit mindenképpen végre kell hajtani a feltételtől függetlenül, a szögletes zárójeles parancsok után, új sorba is írhatjuk. Így: tanuld pirosvagykék :szám Gyakorlásképpen írd meg a következő eljárásokat:
ALAKZATOK KISZÍNEZÉSEMost pedig nézzük, hogyan tudnánk sokszögeket színezni. A színező parancsok használatához a sokszög belsejébe kell állni, nem elég a körvonalára, ahogyan eddig. A sokszög körvonalának megrajzolásához használhatjuk az eddigi sokszögrajzoló eljárásainkat, de a körvonal megrajzolása után a teknőcnek fel kell emelnie a tollát, bemerészkedni az alakzat belsejébe, kiszínezni az alakzatot, majd visszamenni a körvonalra és letenni a tollat, hogy legközelebb rajzolhasson. A színezéssel kapcsolatos parancsok: töltőszín! - ezzel az utasítással adható meg, milyen színnel színezzen majd a teknőc. A parancs után természetesen egy számot kell megadni 0 és 15 között. Tehát Te is tudnál az alábbiakhoz hasonló sokszögeket rajzolni? Ha nincs kedved magadnak kitalálni a színt és a mintát, véletlenszám parancs segítségével is megadhatod. BEKÜLDENDŐ FELADATOK1. FELADATHozz létre egy új eljárást, melynek neve és paraméterei: négyzetek :n :oldal, mely a képen láthatóhoz hasonló ábrát varázsol a képernyőre. Az:n paraméter a négyzetek számát, az :oldal paraméter pedig a legnagyobb oldal hosszát jelöli. Segítség: a négyzeteket középről kezdve és oda érkezve kell megrajzolnod a legnagyobbtól a legkisebbig, egyenként kiszínezve őket. Most a fenti minta alapján készítsünk más síkidomokat használó ábrákat is!2. FELADATHozz létre egy új eljárást, melynek neve és paraméterei: háromszögek :n :oldal, mely az előzőhöz hasonló, de háromszögekből álló ábrát varázsol a képernyőre. Az :n paraméter a szabályos háromszögek számát, az :oldal paraméter pedig a legnagyobb oldal hosszát jelöli. 3. FELADATMost készíts a fentiekhez hasonló ábrát, de általad választott szabályos sokszöget használva. Pl.: Hozz létre egy új eljárást, melynek neve és paraméterei: hatszögek :n :oldal. Az :n paraméter a hatszögek számát, az :oldal paraméter pedig a legnagyobb oldal hosszát jelöli. 4. FELADATMost készíts a fentiekhez hasonló színes ábrát, de általad kitalált és megrajzolt tetszőleges (nem szabályos) síkidomot használva. 5. FELADATHozz létre egy új eljárást, melynek neve és paraméterei: forgónégyzetek :n :oldal :szög. Az eljárás eredményeképpen a teknőc :n db elforgatott négyzetet rajzol, mint a képen. A legnagyobb négyzet oldala :oldal hosszúságú, és két négyzet megrajzolása között a teknőc elfordulásának a szöge megegyezik a :szög paraméter nagyságával. Most a fenti minta alapján készítsünk más síkidomokat használó ábrákat is!6. FELADATHozz létre egy új eljárást, melynek neve és paraméterei: forgóháromszögek :n :oldal :szög. Az eljárás eredményeképpen a teknőc :n db elforgatott szabályos háromszöget rajzol. A legnagyobb szabályos háromszög oldala :oldal hosszúságú, és két háromszög megrajzolása között a teknőc elfordulásának a szöge megegyezik a :szög paraméter nagyságával. 7. FELADATMost készíts a fentiekhez hasonló ábrát, de általad választott szabályos sokszöget használva. Pl.: Hozz létre egy új eljárást, melynek neve és paraméterei: forgóötszögek :n :oldal :szög. Az eljárás eredményeképpen a teknőc :n db elforgatott szabályos ötszöget rajzol. A legnagyobb szabályos ötszög oldala :oldal hosszúságú, és két háromszög megrajzolása között a teknőc elfordulásának a szöge megegyezik a :szög paraméter nagyságával. 8. FELADATMost készíts a fentiekhez hasonló színes ábrát, de általad kitalált és megrajzolt tetszőleges (nem szabályos) síkidomot használva. Mely ábrák "szebbek" a szemünknek? Milyen szerepe van a szimmetriának? A szimmetria szerepéről a művészeti alkotásokban az érdekességek között olvashatsz.
|