A LOGO PROGRAMOZÁSI NYELV

Download Report

Transcript A LOGO PROGRAMOZÁSI NYELV

A
LOGO
PROGRAMOZÁSI NYELV
Mielőtt a teknőc rajzolni kezdene…
Bevezetés
 A Logo a görög „logosz” szóból származik, amely
értelmet, tudományt jelent .
 A Logo egy programozási nyelv. A hozzá kapcsolódó
pedagógiai elvek kidolgozása és elterjesztése Seymour
Papert amerikai professzor nevéhez fűződik, aki Piaget
munkatársaként dolgozott az 1950-es években.
(Piaget a XX. század egyik legnevesebb fejlődéslélektani kutatója, a
gyermeki megismerés, a kognitív ismeretszerzés vizsgálója)
 A Logo filozófiája a modulszerűen felépített
programozás; az egyes elemekből épül fel a végső
program
A Logo népszerűsége:
 Sikerét és nemzetközi népszerűségét a teknőcgrafika,
és a mindenki által hozzáférhető mikroszámítógépek
elterjedése hozta meg.
Comenius Logo:
 A pozsonyi Comenius Egyetem Informatika Oktatási
Tanszékének 1992 óta fejlesztett terméke
 Windows környezetben fut
 Minden ország ellátta anyanyelvi szókészlettel
írólap
rajzlap
A Comenius Logo alkalmazásablakának két fő része:
az írólap és a rajzlap területe.
Mit is tud a teknőc?
Comenius Logo alapok
Van egy teknőcünk, amelynek sok mindent
megtaníthatunk. Azokat a szavakat, amelyeket
megért, kulcsszavaknak nevezzük. A tudása
jobbára a mozgásával kapcsolatos:
 Tud adott távolsággal előre és hátra menni
például: ha azt az utasítást adjuk a teknőcnek, hogy előre 20, akkor
előrelép 20 egységet; ha azt, hogy hátra 50, akkor hátralép 50 egységet.
 Tud adott szöggel balra vagy jobbra elfordulni
például: ha azt az utasítást adjuk a teknőcnek, hogy balra 90, akkor balra
fordul 90 fokot; ha azt, hogy jobbra 120, akkor jobbra fordul 120 fokot.
 A tollát (amely a hasára van erősítve) képes felemelni, leereszteni,
vagy más színűre tudja cserélni
például: tollatfel utasítás esetén a tollat felemeli, ezután haladás közben
nem rajzol; tollatle utasítás után a tollat leengedi, ezután haladás közben
rajzol; tollszín! színkód utasítás után a megadott kódú színnel rajzol
Színkódok-színek
Beállíthatjuk a rajzlap és a toll színeit, kiválaszthatjuk a kitöltőszínt. Ez
történhet a 16 alapszín, vagy az RGB komponensek segítségével.
Az alapvető Logo utasítások megadásakor, érdemes a kulcsszavak rövidítését
használni. Alább ezek összefoglaló táblázata látható:
Kulcsszó
Rövidítve
Mi történik az utasítás hatására
előre
e
A teknőc megadott távolsággal előre halad.
hátra
h
A teknőc megadott távolsággal hátra halad.
balra
b
A teknőc megadott szöggel balra fordul.
jobbra
j
A teknőc megadott szöggel jobbra fordul.
törölrajzlap
tr
Rajzlap törlése.
A teknőc a képernyő közepére szalad.
haza
tollatfel
tf
A teknőc, a tollát felemeli a papírról.
tollatle
tl
A teknőc, a tollát a papírra helyezi.
tollradír
trd
A teknőc a tollát radírra cseréli.
tollszín!
tsz!
A rajztoll színének beállítása
rajzlapszín!
rsz!
A rajzlap színének beállítása
A teknőcöt utasíthatjuk parancsmódban (1); úgy, hogy a hosszú
parancssorokat újból és újból leírjuk.
Ezt elkerülendő megtanítjuk a teknőcöt egy új szó jelentésére, új
eljárást (2) készítünk.
Eljárás: a tanuld utasítással kezdődik és a vége utasítással
fejeződik be.
Ismétlés: Bármelyik sokszög rajzolásáról is van szó, mindig
ugyanazt a két lépést kell ismételni: előre lépünk valamennyit, majd
elfordulunk valahány fokot; az ilyen hosszú parancssorok helyett az
ismétlés utasítást használjuk.
Pl.: ism 3 [e 100 j 120] utasítás egy 100 egység oldalhosszúságú
szabályos háromszöget rajzol.
Az ismétlés első paramétere az ismétlésszám, a második paramétere
pedig - szögletes zárójelben- a megismétlendő tevékenységek.
Rajzoljunk például egy 100 egység oldalhosszúságú négyzetet a két módszerrel:
(1)
e 100 j 90 e 100 j 90 e 100 j 90 e 100 j 90
(2)
tanuld négyzet
ism 4 [e 100 j 90]
vége
A (2) eljárás esetén az alkalmazásablak írólap részére elegendő beírni a négyzet
szót.
Paraméteres eljárással is megadható a négyzet mérete, így ugyanazon
eljárással több különböző méretű is rajzolható:
tanuld négyzet :x
ism 4 [e :x j 90]
vége
Paraméteres eljárás definiálása:
tanuld eljárásnév paraméterek
utasítások
vége
A körrajzolás nem más, mint egy szabályos, nagyon sok (360) oldalú sokszög
rajzolása
tanuld poligon :oldal :hossz
ism :oldal [e :hossz b 360/:oldal]
vége
Ha a kört úgy szeretnénk megrajzolni, hogy adott r sugarú legyen, akkor a kör
kerületképletét felhasználva a kővetkező eljárást készíthetjük el:
tanuld kör :r
ism 360 [ e 2*:r*3,14159/360 j 1 ]
vége
Ezen az ábrán látható, hogy a kör egy sok oldalú sokszög!
Ha az utasítások végrehajtása feltételtől függ
FELTÉTELES UTASÍTÁSOK
Választás két utasításcsoport között
ha feltétel
[akkor ág utasításai]
[különben ág utasításai]
Utasítások feltételes végrehajtása
ha feltétel [akkor ág utasításai]
Az ismétlést leíró szerkezet is tartalmazhat feltételt.
Rekurzió
azaz, ha egy eljárás önmagát hívja meg
A rekurzió egyik egyszerű, nevezetes példája a hóember rajzolás:
tanuld kör :átmérő
ism 360 [e :átmérő * 3.14 / 360 j 1]
vége
tanuld hóember :db :átmérő
j 90 kör :átmérő b 90
ha :db > 1 [tf e 2 * :átmérő / 3 tl
hóember :db - 1 2 * :átmérő / 3]
vége
Fa rajzolása rekurzívan:
tanuld fa :db :hossz
e :hossz
ha :db > 1 [b 45 fa :db - 1 :hossz / 2 j 90 fa
:db - 1 :hossz / 2 b 45]
h :hossz
vége
Fraktálok
Nagyon érdekes, látványos alkalmazási terület a fraktáloké. A fraktálok
jellemzője az önhasonlóság, azaz mindegyikben felfedezhetünk olyan
részeket, amelyek hasonlóak az eredeti ábrához.
Az egyik nevezetes fraktál az úgynevezett Koch-görbe, amelynek adott szintű
változatai rajzolhatók meg.
A Koch-görbe logo nyelven:
tanuld Koch :sz :x
ha :sz = 1 [e :x] [Koch :sz - 1 :x / 3 b 60 Koch :sz - 1 :x / 3 j120 ~
~Koch :sz - 1 :x / 3 b 60 Koch :sz - 1 :x / 3]
vége
A Koch-görbe segítségével nagyon szép hópehely illetve kristályszerű
ábrákat rajzolhatunk:
tanuld hópehely :sz :x
ism 3 [Koch :sz :x j 120]
vége
tanuld kristály :sz :x
ism 3 [Koch :sz :x b 120]
vége
Hópehely
Kristály
Elemi szövegkezelés
A Comenius Logo másik fő része nem rajzolással, hanem
szövegmanipulációval, függvényekkel kapcsolatos. A Logo
elemi adatai a karakterek, amelyekből számok, illetve
szavak épülnek fel. A számokból és szavakból mondatokat
képezhetünk, a mondatok bekezdéseket alkothatnak.
A struktúrák:
Szám
számjegyek
Szó
"karakterek
Mondat [szavak és számok]
Bekezdés [[első mondat] ... [utolsó mondat]]
A szövegkezelésre példa a következő mondatfordító
eljárás:
tanuld mondatfordít :mondat
ha üres? :mondat [eredmény :mondat]
eredmény utolsónak szófordít első :mondat
mondatfordít elsőnélküli :mondat
vége
Zárásként két versenyfeladat megoldása 2006-ból
TRAPÉZOK
Az eredmény:
A trapézok megvalósítása Logo nyelven:
tanuld trapéz :sorszám :oldal
alak! "teki tl st tsz! 0 tv! 1 j 30 e :oldal j 60 e :oldal~
~j 60 e :oldal j 120 e :oldal * 2 tf h :oldal j 90 ~
~e :oldal / 2 tl tsz! :sorszám tölt tf h :oldal / 2 b 90~
~e :oldal j 120 b 90
ha :sorszám > 1 [trapéz :sorszám - 1 :oldal / 2 tf~
~j 150 e :oldal b 30 tl trapéz :sorszám - 1 :oldal /2~
~j 150 e :oldal b 30 tl trapéz :sorszám - 1 :oldal /2~
~tf j 150 e :oldal j 120 e :oldal * 2 j 120 b 90 tl]
vége
Végül a kőr Logo nyelven
tanuld kőr :r
b 45 e :r * ( 1 + gyök 2 )
ism 225 [e :r * 3.14159 / 180 j 1] b 180
ism 225 [e :r * 3.14159 / 180 j 1]
e :r * ( 1 + gyök 2 ) j 135 tf e :r / 5 tl tsz! 12
tölt
vége
KŐR
Köszönöm a figyelmüket!