0. lecke

1. lecke

2. lecke

3. lecke

4. lecke

5. lecke

6. lecke

7. lecke

8. lecke

9. lecke

1. lecke - Sokszögminták

Sokszögminta Sokszögminta Sokszögminta Sokszögminta

SZABÁLYOS SOKSZÖGEK

Azt már tudjuk, hogy négyzetet a következő utasítássorozattal rajzolhatunk (négyszer egymás után kell előre menni és fordulni).


előre 100
jobbra 90
előre 100
jobbra 90
előre 100
jobbra 90
előre 100
jobbra 90



Akár így is írhatnánk:


előre 100 jobbra 90
előre 100 jobbra 90
előre 100 jobbra 90
előre 100 jobbra 90



Most pedig rajzoljunk szabályos háromszöget! De hogyan?
Itt is mindig előre kell menni 100-at, és utána fordulni (pl. jobbra), de mennyit? Az is biztos, hogy nem 4, hanem már 3 mendegélés-fordulással célba érünk, hiszen a háromszögnek csak 3 oldala van. Próbáld ki, mi történik, ha háromszor egymás után beírod:


előre 100
jobbra 90



Ebből bizony nem lesz háromszög! És 90 helyett 60-nal? Még rosszabb! Ezek szerint 90-nél nagyobb szöget kell választanunk a forduláshoz. Legyen például 120! Ez az! Tehát a háromszög rajzolása:


előre 100 jobbra 120
előre 100 jobbra 120
előre 100 jobbra 120



Mi történik, ha minden előre parancs után nem 100-at, hanem másik számot írunk?

Tudnál ezek után ötszöget rajzolni? Honnan tudjuk, mekkora számot kell a jobbra parancs után írni? Mi lehet a szabály? A négyzetnél 4-szer mendegéltünk-fordultunk, a szög pedig 90 fok volt. A háromszögnél 3-szor, és 120 fok volt. Elárulom, hogy az ötszögnél 5-ször mendegélünk-fordulunk, a szög pedig 72 fok lesz. Ki tudnád tölteni a táblázatot?

Oldalak száma:

3

4

5

6

8

9

10

36

Szög:

120

90

72

 

 

 

 

 


Tehát a szabály az, hogy ha megszorozzuk az oldalak számát a szöggel, mindig 360 fokot kapunk. Vagyis a szög, amit a teknőcnek egy-egy oldal megrajzolása után fordulnia kell, megkapható, ha elosztjuk a 360-at az oldalak számával.

Most már könnyedén rajzolhatsz szabályos ötszöget, hatszöget vagy akár tízszöget!

Az egyes oldalak megrajzolása között színt is válthatsz, így gyönyörű, színes szabályos sokszögeket is tudsz rajzolni.

AZ ISMÉTLÉS PARANCS

Csak az a baj, hogy nagyon sok utasítást kell beírni hozzájuk. Még ha nem is változtatunk közben színt, akkor is egy négyzet megrajzolásához 8 sort kell beírnunk, ráadásul mindig ugyanazokat, vagyis az első két sor (a mendegélés-fordulás) ismétlődik négyszer. Minél több oldala van a sokszögnek, annál többször kell ezt az első két sort ismételni. Hogyan spórolhatnánk meg ezt a sok gépelést?

A teknőc megérti azt a parancsot, hogy ismétlés, ha helyesen használjuk. Próbáld ki például a következőket:


ismétlés 4 [előre 100 jobbra 90]




ismétlés 3 [előre 100 jobbra 120]



Tehát az ismétlés parancs után megadjuk, hogy hányszor ismételjen, utána pedig szögletes zárójelben, hogy mit. Rajzolj egymás mellé szabályos ötszöget, hatszöget, nyolcszöget, tízszöget és harminchatszöget! Legyen mindegyik más színű! (Használd a tollatfel és tollatle parancsokat ahhoz, hogy a teknőc anélkül menjen arrébb két rajz között, hogy közben vonalat húzna.)

ELJÁRÁS ÍRÁSA

Most pedig egészen új dologra fogjuk tanítani a teknőcöt. Az lesz a célunk, hogy ha háromszöget szeretnénk rajzolni, ne kelljen mindig ilyen hosszú utasítássort beírni, csak egy szót, mondjuk, hogy "háromszög", és a teknőc rajzoljon háromszöget. A teknőcnek ugyanis nemcsak egyetlen utasítást lehet írni, hanem egész utasítás-sorozatot is, amit eljárásnak hívunk. Ez azért jó, mert az eljárást a sok-sok utasítással egyszer kell csak megírni, ekkor elnevezzük, és legközelebb, ha ugyanezeket az utasításokat szeretnénk végrehajtatni a teknőccel, nem kell újra beírni a sok-sok utasítást, csak az eljárás nevét. Olyan ez, mintha az utasításokat nem egyenként adnánk a teknőcnek, hanem először egy nagy dobozba összegyűjtjük őket, és magát a dobozt adjuk neki. Ha van már több dobozunk (eljárásunk), már csak azt kell megmondanunk a teknőcnek, hogy melyik doboz utasításait (azaz melyik eljárást) hajtsa végre.

A következő a teendőd: írd be a parancssorba:


tanuld háromsz



Így mondjuk meg a teknőcnek, hogy egy új eljárást szeretnénk neki tanítani, melynek neve háromsz.

Onnan tudod, hogy a teknőc megértette, hogy mit szeretnél, hogy a parancsod alatt az új sorban kérdőjel helyett > jelenik meg. A teknőc várja az eljárás parancsait. Írd be:


ismétlés 3 [előre 100 jobbra 120]



Ha leütöd az ENTER-t, új sort kapsz. Írd be, hogy vége, hiszen az eljárásunk ilyen rövid volt.

Ha jól csináltad, a teknőc megértette, hogy vége az eljárásnak, kiírta, hogy Új eljárás háromsz, és újra kérdőjelet írt a parancssorba. Töröld le a rajzlapot, majd írd be a parancssorba:


háromsz



(Ezt úgy mondjuk, hogy meghívtad az eljárást.) Ugye, milyen egyszerű? Írd meg a négyz, ötsz és hatsz eljárásokat is! Próbáld ki őket! Mielőtt meghívsz egy eljárást, természetesen változtathatsz a tollszínen vagy tollvastagságon.

FÁJL MENTÉSE, BETÖLTÉSE

Ha szeretnéd, hogy az eljárásokat a teknőc megjegyezze, és ne kelljen legközelebb újra beírni őket, akkor el kell mentened eddigi munkádat: válaszd a Fájl menüpont Mentés funkcióját. Add meg a fájl nevét és helyét, majd kattints az OK gombra. Ha egyszer már így elnevezted a fájlt, a legközelebbi mentésnél elég a Fájl menüpont Ment funkcióját választani. Ha legközelebb szeretnéd ezeket az eljárásokat használni, akkor a LOGO megnyitása után be kell tölteni ezt a fájlt: válaszd a Fájl menüpont Megnyitás funkcióját, és keresd meg a fájlnevet, amit meg szeretnél nyitni.

PARAMÉTERES ELJÁRÁSOK

Most már csak az a baj, hogy eljárások nélkül tudtuk változtatni, hogy mekkora legyen például a négyzet, amit rajzolni szeretnénk (az előre parancs után beírt szám segítségével), most azonban akárhányszor meghívjuk a négyz eljárást, az mindig ugyanakkora négyzetet fog rajzolni. Hogyan lehetne ezen segíteni?

Az lenne jó, ha nemcsak az eljárás nevét lehetne a teknőcnek megadni, hanem azt a számot is, hogy mennyit menjen mindig előre egy-egy oldal rajzolásánál, és így is tudná használni az eljárást. Ekkor más-más számokkal meghívva az eljárást különböző méretű négyzeteket is rajzolhatnánk. Szerencsére ez lehetséges, csak egy kicsit változtatni kell az eljáráson. Legegyszerűbb, ha új eljárást írunk, melynek valamilyen más nevet adunk, például azt, hogy négyzet. Próbáld ki a következőt:


tanuld négyzet :hossz
ismétlés 4 [előre :hossz jobbra 90]
vége



Most próbáld ki, hogy működik-e:


négyzet 50




négyzet 150




négyzet 20



Látod, hogy mit csináltunk? A teknőcnek jeleztük az eljárás neve mellett, hogy a hosszt, amit előre kell majd mindig mennie, azt nem most adjuk meg, hanem csak akkor, amikor az eljárást meghívjuk. Ezt jelenti a :hossz, és paraméternek hívjuk (a paraméter neve hossz, az előtte lévő kettőspont pedig jelzi, hogy ő egy paraméter). A második sorban ezzel a névvel helyettesítettük a számot, ami eddig ott volt. Az eljárás meghívásánál pedig ezentúl be kell írnunk egy számot is az eljárás neve mögé, különben a teknőc nem tudja, hogy mekkora négyzetet rajzoljon.

A paramétereket bárhogy el lehet nevezni, akár egyetlen betűvel is. Az előbbi eljárás helyett például a következőket is írhattuk volna, mind ugyanazt jelenti:


tanuld négyzet :táv
ismétlés 4 [előre :táv jobbra 90]
vége




tanuld négyzet :h
ismétlés 4 [előre :h jobbra 90]
vége



Írd meg a háromszög, ötszög, hatszög eljárásokat ugyanígy!

A VÉLETLENSZÁM PARANCS

Ha az eljárások meghívásánál lusta vagy Magad kitalálni a számokat, mekkora háromszöget, négyzetet, ötszöget, stb. rajzoljon a teknőc, rá is bízhatjuk, hogy ő találjon ki véletlenszerűen számokat. Próbáld ki a következőt:


négyzet véletlenszám 150




négyzet véletlenszám 150




négyzet véletlenszám 150



Ugyanakkora négyzeteket kaptál? Ugye nem? A véletlenszám parancs hatására a teknőc választ egy számot 0 és a parancs után lévő szám között. Egészen pontosan a véletlenszám 150 parancs hatására 0-tól 149-ig kaphatunk egy számot, teljesen véletlenül választva. Ha egymás után többször használod ezt a parancsot, akkor a teknőc valószínűleg mindig más számokat fog választani.

Mi történik a következő parancsok hatására?


ismétlés 3 [négyzet véletlenszám 150]



vagy:


ismétlés 30 [ötszög véletlenszám 150]



AZ ÁLTALÁNOS SOKSZÖG-ELJÁRÁS

Az is nagyon jó lenne, ha nem kellene ennyi eljárás ahhoz, hogy különböző sokszögeket rajzoljunk. Mi lenne, ha nem lenne külön háromszög, négyzet, ötszög, stb. eljárásunk, hanem csak egyetlen egy, sokszög nevű, mellyel az összes sokszöget meg lehetne rajzolni? Olyanokat is, amire eddig még nem is írtunk eljárást.

Ez sem nehéz feladat, hiszen ha meg tudjuk adni a teknőcnek külön, hogy mennyit menjen majd előre az eljárásban, akkor miért ne tudnánk azt is külön megadni, hogy hány szögű sokszöget rajzoljon? Csak azt kell megfigyelni, hogy mi változik az eljárásokban attól, hogy változik a szögek száma. Ide írok néhány eljárást, hogy megfigyelhesd, mi a különbség köztük:


tanuld háromszög :hossz
ismétlés 3 [előre :hossz jobbra 120]
vége




tanuld négyzet :hossz
ismétlés 4 [előre :hossz jobbra 90]
vége




tanuld ötszög :hossz
ismétlés 5 [előre :hossz jobbra 72]
vége




tanuld hatszög :hossz
ismétlés 6 [előre :hossz jobbra 60]
vége



A nevükön kívül két fontos dolog változik bennük: az egyik, hogy hányszor kell ismételni, a másik pedig a szög, amivel a teknőc jobbra fordul egy-egy oldal megrajzolása után. Ez a két adat viszont összefügg; láttuk, hogy a szöget megkapjuk, ha 360-at elosztjuk az ismétlések számával (ami a sokszög szögeinek száma). Tehát, ha szögszám-nak hívjuk a szögek számát, akkor szögszám-nyiszor kell ismételni, és 360/szögszám-nyit kell fordulni. Ezek után már meg tudjuk írni az eljárásunkat, melynek most már két paramétere lesz:


tanuld soksz :hossz :szögszám
ismétlés :szögszám [előre :hossz jobbra 360/:szögszám]
vége



Az eljárást azért neveztem soksz-nek, és nem sokszög-nek, mert sajnos nem minden szót használhatunk eljárás neveként. Vannak olyan szavak ugyanis, amelyek a teknős számára már eleve jelentenek valamit, ezeket alapszavaknak hívjuk, és nem használhatók saját eljárás elnevezésére. Ilyen a sokszög is. Ha eljárás neveként szeretném használni, a teknőc azt üzeni, hogy "Hiba. A sokszög egy Logo alapszó." Ilyen hibaüzenet esetén kénytelenek vagyunk átnevezni a saját eljárásunkat. Alapszónak számít természetesen az összes eddig megismert parancs is, pl. nem hozhatunk létre olyan eljárást, aminek a neve előre, balra, törölrajzlap, stb.

Próbáld ki az eljárást!


soksz 100 6
soksz 50 12
soksz 30 36



Ne felejtsd el, hogy most már két számot is meg kell adni az eljárás neve után: az első a hossz, a második az, hogy hány szögű sokszöget szeretnél rajzolni. Hogyan lehetne kört létrehozni ezzel az eljárással?

SOKSZÖGMINTÁK

Ugye, így már igazán könnyű szabályos sokszögeket rajzolni? És most nézzük, hogyan lehet ezekhez hasonló sokszögmintákat létrehozni:

Sokszögminta Sokszögminta Sokszögminta

Válaszd ki a kedvenc tollszínedet! A fentihez hasonló ábrákat úgy kaphatod meg, ha egy bizonyos sokszögből sokat rajzolsz úgy, hogy két rajz között mindig fordulsz egy picit a teknőccel. Az első ábra például egyszerű szabályos háromszögekből áll, ezek vannak egy kicsit elforgatva egymásra rajzolva. Természetesen az ismétlés parancsot használtam a rajzoláshoz. Az én utasításom a következő volt:


ismétlés 10 [soksz 100 3 jobbra 36]



Akkor érsz pont körbe a rajzolással, ha a számnak, ahányszor ismételsz, és az elfordulás szögének a szorzata pont 360. (Az én utasításomban 10 * 36 = 360.)

Mit gondolsz, hogyan rajzoltam ezeket a sokszínű ábrákat?

Sokszögminta Sokszögminta Sokszögminta

Az alakjuk hasonlít az előzőekhez, látszik, hogy ugyanolyan módszerrel készültek. De hogyan lesznek ilyen sokszínűek? A színeket véletlenszerűen válogattattam a teknőccel (a véletlenszám parancs segítségével, hiszen a színeket is számként kell megadni), ugyanúgy, mint korábban a sokszögek méretét. Csak az a kérdés, hogy az előbbi utasításba hova kell beírni a tollszínváltó parancsot. Mi a különbség az alábbi két utasítás között?


tollszín! véletlenszám 16 ismétlés 10 [soksz 100 3 jobbra 36]




ismétlés 10 [tollszín! véletlenszám 16 soksz 100 3 jobbra 36]



Ha megfejted a különbséget, Te is hasonlóan gyönyörű mintákat tudsz rajzolni. Ne felejtsd el a legszebbeket elmenteni!




Vissza az oldal tetejére
Az érdekességekhez
Előző lecke
Következő lecke