5. évfolyam

 

Teknőc mozgással kapcsolatos utasításai, és ezek hatása

LÉGY ÖNÁLLÓ!

 

 

 

Így rajzolja Teknőc a sokszögeket
 
A betűk után készítsünk néhány ábrát Teknőccel! Például rajzoljunk egy 20 egység oldalú négyzetet! Gondolom, már mondod is:
 
előre 20 jobbra 90 előre 20 jobbra 90 
előre 20 jobbra 90 előre 20 jobbra 90
 
Az utolsó jobbra fordulást már nem kellett volna megadnom? Igazad van, de az igazi Teknőc mesterek azt szokták tanácsolni, hogy ha valamit rajzolunk, akkor ott és úgy célszerű a rajz készítését befejezni, ahogy elkezdtük. Ez a szokás bonyolultabb ábrák készítésénél nagyon hasznos lesz.
 
Sikerünkön felbuzdulva rajzoljunk hatszöget!
 
Kis gondolkodás után te is rájöhettél, hogy ekkor is körbe kell menni, azaz összesen 360 fokot kell fordulni. Hatszögnél 60 fokot kell hatszor, a négyzetnél 90 fokot négyszer fordulni. Tehát a következő utasítássor kell:
 
előre 20 jobbra 60 előre 20 jobbra 60 előre 20 jobbra 60 
előre 20 jobbra 60 előre 20 jobbra 60 előre 20 jobbra 60
 
Hogyan rajzolnál szabályos nyolc- és tizenkétszöget?
 
Megoldás »
 
Még végigolvasni is sok, nemhogy leírni!
 
 
A java viszont most jön! Rajzoljunk kört! Mi is a kör? Egy kicsit előre, egy kicsit fordulni, egy kicsit előre, egy kicsit fordulni... úgy, hogy kijöjjön a 360 fok a fordulásokból!
 
 
Igazad van! Teljesen felesleges ennyit írni. Éppen erre találták ki Teknőc kiagyalói azt, hogy képes legyen egy utasítássort megismételni előre megadott alkalommal is. Fenti példáinkat így lehet rövidebben leírni:
 
 
ismétlés 40 [ előre 20 jobbra 90 ] 
ismétlés 60 [ előre 20 jobbra 60 ] 
ismétlés 80 [ előre 20 jobbra 45 ] 
ismétlés 12 [ előre 20 jobbra 30 ]
 
 
Sokkal kényelmesebb, nem? Ezt az utasítást úgy nevezték el, hogy ismétlési szerkezet. Általában oly módon kell használni, hogy leírjuk az ismétlés kulcsszót, mögé az ismétlés számát, majd szögletes zárójelek közé, amit meg kell ismételni. A rövidítéseként az ism használható.
 
 
KÉRDÉSEK, FELADATOK
1.
Mit jelent az ismétlés 1 [ előre 10 ] utasítás?
 
2.
Tudnád-e egyszerűbben írni az ismétlés 3 [balra 30] programrészletet?
 
TANÍTSUK MEG ÚJ DOLGOKRA!
Készítsünk egy olyan ábrát, amely 20, 30, 40, 50, 60 oldalhosszúságú négyzetekből áll!
 
A korábban tanultakon felbuzdulva ez lenne a sor:
 
ismétlés 4 [ előre 20 jobbra 90 ] 
ismétlés 4 [ előre 30 jobbra 90 ] 
ismétlés 4 [ előre 40 jobbra 90 ] 
ismétlés 4 [ előre 50 jobbra 90 ] 
ismétlés 4 [ előre 60 jobbra 90 ]
 
Gondolom, számodra is kényelmetlenné vált, hogy mindig le kell írni hasonló műveletsorokat, illetve egy, már begépelt sor legkisebb módosításához újra kell írni az egészet.
 
 
 
 
A felfelé  és lefelé  mutató kurzor billentyűkkel lapozgathatsz a korábban beírt utasítások között.
 
 
 
 
Az előző órán kiadott utasításokat persze ez sem hozza vissza.
 
Jól sejted, a megoldást már erre is kitalálták: megtaníthatjuk Teknőcöt új dolgokra, azaz készíthetünk eljárásokat, új, külön névvel rendelkező utasítássorokat!
 
 
 
 
Új eljárás készítésére Teknőc memóriáját kell használnod. Ez az  lenyomásával megnyitható és be is zárható.
 
 
 
 
Új eljárás készítésére a Teknőc memóriáját kell használnod. Ezt a szerkeszt eljárásnév parancs beírásával, vagy az Intézőben az objektum ELJÁRÁSOK ágára kattintva tudod kezdeményezni.
 
Figyelj arra, hogy az új eljárást nem minden objektum ismeri majd fel, ha nem a főablakban készíted el!
 
eljárás négyzet 
ismétlés 4 [ előre 20 jobbra 90 ] 
vége
 
Ha kész, akkor nyomj  -t, vagy kattints a Vége menüre!
 
A négyzet eljárás most már használható, írd be:
 
négyzet
 
Azért még mindig van egy kis gond! Ez csak 20 egység oldalú négyzetet rajzol. Kell akkor egy 30, 40 stb. oldalt rajzoló is? Nem!
 
Egy eljárás használhatóságához szükséges, hogy az eljárásban szereplő értékek módosíthatók legyenek. Ezek röviden a változók.
 
 
Változó megadása
A változókat, amelyeknek nincs rögzített értékük, az utasításokhoz hasonlóan szintén egy névvel azonosítjuk: a név egy kettősponttal kezdődik – ebből tudjuk, hogy változóról lesz szó – és betűket, számokat tartalmazhat, egymás után, szóköz használata nélkül.
 
A változó értékének megadásáról nekünk kell majd gondoskodni a program elkészítésekor. Ha ezt elfelejtjük, a futtató rendszerprogram figyelmeztetni fog bennünket.
 
A dolog kivitelezése sokkal egyszerűbb, mint ahogy ez a hosszú bevezető sejteti. Nézzük is meg rögtön, hogyan történik! A négyzet rajzolását már láttuk:
 
ismétlés 4 [ előre 20 jobbra 90 ]
 
Ha a négyzet oldalának hosszát szeretnénk változóként megadni, akkor a 20 helyett egy változót kell írni. A neve legyen :oldalhossz. Ugyanezt kell írni az eljárás neve mögé is.
 
 
 
Egy, már létező eljárást a memória megnyitása után kiválasztva az  vagy az Elemek menü Szerkeszt pontját választva tudsz alakítani.
 
 
Milyen utasításokkal rajzolnád meg ezt az alakzatot?

Milyen utasításokkal rajzolnád meg ezt az alakzatot?

Ezt írd be:
 
eljárás négyzet :oldalhossz 
ismétlés 4 [ előre :oldalhossz jobbra 90 ] 
vége
 
A négyzet rajzolása most már így történik:
 
négyzet 20
 
Figyeled? Az :oldalhossz nevű változót írtuk a eljárás szó mögé az utasítás megadásánál, míg itt már a 20 érték szerepel! Teknőc számára a szám azt jelenti, hogy ahol az :oldalhossz változónév szerepelt, oda helyettesítse be, adja értékül ezt a számot. Ezt nevezzük röviden értékadásnak.
 
Láttunk már hasonlót? Igen! Például az előre vagy jobbrautasítás esetén is így adtuk meg a változók értékét.
 
A gyulai vár egyszerűsített rajzát is könnyen elkészítheted Teknőc segítségével
 

 

 

Az eljárás meghívásakor megadott változókat paraméternek nevezzük. Egy új eljárás elkészítéséhez tehát általában az alábbi szerkezet szolgál:
 
eljárás eljárásnév paraméterek 
utasítások 
vége
 
Az új utasítást felhasználva így kell elkészíteni az ábrasort:
 
négyzet 20 
négyzet 30 
négyzet 40 
négyzet 50 
négyzet 60
 
 
 
 
A kész munkádat a legközelebbi használatig el lehet mentened. Ezt a lehetőséget az  gomb, vagy a Fájl menüpont Mentés pontja használatával választhatod ki.
 
 
Teknőc ilyennek ismeri a házat

Teknőc ilyennek ismeri a házat

TEGYÜK MÉG ÁLTALÁNOSABBÁ!
Készítsünk házat! A ház nem más, mint egy négyzet, rajta egy háromszög. Kezdjük az aljával:
 
négyzet 80
 
Ez eddig nem volt nehéz. Nem fogadta el a gép? Pedig már korábban ezt az eljárást megírtuk és el is tároltuk! Igen ám, de kikapcsolás után a gép elfelejtette, ezért újra be kell tölteni a memóriájába.
 
 
 
 
A korábban elmentett munkádat újra beolvastathatod. Ezt a lehetőséget az  gomb, vagy a Fájl menüpont Megnyitás pontja használatával választhatod ki.
 
 
Ezután már működik a dolog. Az alja már megvan, csak vissza kellett hívni a négyzet eljárást.
 
Ez lesz a tető:
 
ismétlés 3 [ előre 80 balra 120 ]
 
Egy kis hiba csúszott a rajzolásba

Egy kis hiba csúszott a rajzolásba

Mentsd el a tetőt elkészítő eljárást háromszög néven! 
Használj változót!
 
Megoldás »
 
A ház tehát ez lesz:
 
 
négyzet 80 
háromszög 80
 
 
Még ez sem az igazi?
 
 
Egészítsd ki a programot úgy, hogy a tető a helyére kerüljön!
 
Megoldás »
 
Nem lehetne esetleg a szabályos sokszögeket egy eljárással elkészíttetni? De! És ez is egyszerű!
 
A kör is egy szabályos sokszög?

A kör is egy szabályos sokszög?

Egyszerű? Emlékezz vissza, és számoljunk! Az oldal hosz-szát meg kell adni. Azt is meg kell adni, hogy hány oldalú legyen a sokszög – görög eredetű szóval a poligon. A fordulás szöge már nem kell, mert azt meghatározza az oldalak száma! Ez lesz az ismétlés száma is!
 
 
A háromszöghöz 120-at, a négyszöghöz 90-et, a hatszöghöz 60-at kellett fordulni. Ezt már kiszámoltuk egyszer.
 
 
Mennyit kell fordulni általában?
 
Megoldás »
 
A teljes szöget, azaz a 360 fokot kell osztani az oldalak számával!
 
 
Az új eljárás elkészítve ez lesz:
 
 
eljárás poligon :oldalszám :oldalhossz 
ismétlés :oldalszám ~ 
[ előre :oldalhossz jobbra 360/:oldalszám ] 
vége
 
 
Az ötszög rajzolása is egyszerű most már:
 
 
poligon 5 40
 
 
És a ház? Itt is szükséges a pontozott részen egy, a korábbihoz hasonló kiegészítés! Készítsd el!
 
 
poligon 4 80 
... 
poligon 3 80
 
 
Mi változott meg? Miért nem jó a kapott ábra? 
Javítsd ki a programot!
 
Megoldás »
KÉRDÉSEK, FELADATOK
 
 
1.
Miért előnyös új eljárást készíteni?
 
2.
Hogyan készíthetsz új eljárást?
 
3.
Készítsd el a gyulai vár egyszerűsített rajzát, ami három téglalapból álljon!
 
4.
Hogyan rajzolnál napot? Gondolj arra, hogy a sugarak szabályosan ismétlődnek!
 
5.
Készíts óra számlapot! A számjegyek helyére csak egy vonást helyezz el!
 
6.
Kísérletezz te is! Készíts hasonlót a jobb oldalon látható sokszög sorozathoz, az ötszögből kiindulva, tízesével növelve az oldalszámot! Hány szögtől tűnik körnek az ábra?
 
7.
Milyen ikonokkal tudod a mentés és a megnyitás műveletét elvégezni az eszköztárból?
 
SZÖVEGELJÜNK!
Teknőc nem csak rajzolni tud, hanem számolni és szöveget kiírni is. Ehhez viszont nem a rajzlapot kell használnunk, hanem egy szöveges területet. Ez az írólapablak (röviden ía ) utasítással érhető el.
 
Ezt már láttad? Hát persze! Ez ugyanaz, mint ha az gombra kattintanál. A visszatérés is elérhető a rajzlapablak(röviden ra ) utasítással vagy az  gombbal. A köztes állapot fogad induláskor, ami újra beállítható az gombbal.
 
Közvetlen módon is adhatunk változóknak értéket. Erre szolgál a globális változó utasítás. Például az :oldalszám változó értékének az 5 számot így adhatjuk meg:
 
globális változó "oldalszám 5
 
Gondolom, rögtön észrevetted, hogy a kettőspont helyett a változó neve elé idézőjel került. Ez jelzi majd a rendszer számára, hogy a változóban lévő korábbi értéket át kell írnia arra, ami a neve után áll.
 
Ezután a poligon eljárás már ismertként kezeli az :oldalszám változót. Vedd észre, hogy nyílt a memóriában egy ilyen nevű rekesz!
 
poligon :oldalszám 20
 
Ha ki szeretnénk íratni egy változó értéket, akkor erre is van egy utasítás, ez a kiír (röviden ki ). Használata így néz ki:
 
kiír :oldalszám
 
A második sorba oda is írtam a kapott választ, amit te is látsz a képernyőn.
 
A kiír utasítás után írhatsz képletet is. Például ha kíváncsi vagy arra, hogy mit számolt ki az előbb a gép, akkor a 360 ötöd részét is kiírathatod:
 
kiír 360/5
 
De írhattál volna változót is az 5 helyére:
 
kiír 360/:oldalszám
 
Kiírathatsz szöveget is. Egy szó esetén ez egyszerű:
 
kiír "helló
 
A szó előtt az " itt is kell! Ha viszont ez több szóból áll, az kicsit bonyolultabb, például így lehetséges:
 
(kiír "Jó "napot "kívánok!)
 
HELYEZKEDJÜNK!
Teknőc helyzete, iránya, tollának színe, vastagsága, helyzete bizonyos feladatokban érdekes lehet. Ezen utóbbi jellemzőket már láttuk, és megismertük azt is, hogy hogyan kell ezeket megváltoztatni. Nézzük most összegyűjtve a helyzetével kapcsolatosakat!
 
Az, hogy Teknőc merre néz, nagyon fontos, ugyanis az „előre” számára mindig a pillanatnyi iránnyal megegyezőt jelenti.
 
Ha azt mondom neki: irány! 180 , akkor az azt jelenti, hogy bármerre is nézett, forduljon a képernyőn lefelé.
 
A képernyő egy adott helyét is meghatározhatjuk. Erre a matematikában már megismert koordináta-rendszert használjuk. A képernyő közepe, a t1 nevű Teknőc háza, a koordináta-rendszer origója. A többi Teknőc háza a születésük helye.
 
Az origón áthaladó, a nyugat-kelet irányú az x , míg dél-észak irányú egyenes az y tengely. Teknőc helyét így egy számpár adja meg: az x és y koordinátája. Az x koordinátát oszlopnak, az y -t sornak is nevezzük.
 
 
 
 
Vigyázz arra, hova helyezed át Teknőcöt! Könnyen eltűnhet, ha a látható területen kívülre helyezed el! Különösen figyelj tollának helyzetére, mert eközben is nyomot hagyhat!
 
 
Egy adott pontba a xypoz! utasítás teszi Teknőcöt, ami mögé a két koordinátát kell odaírnod.
 
haza utasítás hasonlít ehhez, mivel bármerre is járt, oda megy vissza ahol született, és arra néz, amerre születésekor nézett.
 
Azt is jó lenne megállapítani, hogy milyen jellemzőkkel rendelkezik Teknőc. A dolog egyszerű: ezek kulcsszava azonos a beállítóval, csak éppen a végén álló felkiáltójelet kell elhagyni. Próbáljuk ki az irány utasítással! Írd be indítás után:
 
irány 
Hiba: nem tudom mit kezdjek vele: 0.
 
Ezt látod rá válaszul. Miért? A jellemzőit visszaadó utasítások másként viselkednek, mint az eddigiek, mert valamilyen értéket adnak, ez éppen most a 0 volt.
 
Az itt használt irány utasítás egy függvény, Teknőc helyzetétől függő értékkel rendelkezik, egy számértéket határoz meg számunkra: azt, hogy Teknőc mely irányba néz. A függvény legfőbb tulajdonsága az, hogy egy értéket ad meg, ezt hívjuk eredménynek vagy visszatérési értéknek. Ez példánkban egy szám, de lehetne egy szöveg, vagy akár egy logikai érték is. Jól emlékszel: ez utóbbi IGAZ vagy HAMIS lehet.
 
A hibát az okozta, hogy a kapott értékkel a fordító nem tudott mit kezdeni, nem tudta feldolgozni.
 
Ha például egy kiírás használja fel a visszaadott értéket, akkor már nem kapsz hibaüzenetet:
 
kiír irány 
0
 

 

Az irányán kívül még meg tudja mondani, hogy a képernyő melyik sorában, melyik oszlopában áll, milyen színű a tolla, és az ír-e vagy nem.
 
Írasd ki Teknőc jellemzőit!
 

Megoldás »

 
Munkádat az alábbi táblázat segítheti. Rendezzük azokat a függvényeket, amelyek Teknőc állapotát adják meg!
 
 
Teknőc állapotát megadó függvények és visszatérési értékük

Teknőc állapotát megadó függvények és visszatérési értékük

KÉRDÉSEK, FELADATOK
1.
Hogyan módosíthatsz egy régi eljárást?
 
2.
Hogyan lehet kiíratni egy szöveget a képernyőre?
 
3.
Hogyan adható egy változónak kezdőérték?
 
4.
Hogyan lehet megjeleníteni egy művelet eredményét?
 
5.
Hogyan lehet kiíratni egy mondatot a képernyőre?