A programozási környezet A felhasználói környezet „Az érzékek elé kell tárni mindent, mégpedig a láthatókat a látás elé, a hallhatókat a hallás elé, a szagolhatókat a szaglás elé, az ízelhetőket az ízlelőszerv elé, a tapinthatókat a tapintás elé. És ami több érzékszerv által egyszerre érzékelhető, azt több érzékszerv útján kell érzékelni." Comenius - (Jan Amos Komensky, 1592-1670) Comenius Logo A programozási környezet A felhasználói környezet
Számítógépes problémamegoldás Feladat megfogalmazása 2. Elemzés, tervezés, szervezés 3. Programtervezés, algoritmuskészítés 4. Programozás, kódolás 5. A programok tesztelése, hangolása 6. Dokumentálás 7. Bevezetés
Programozási nyelvek (Az utasítás szintje szerint) gépi kódú programozás alacsony szintű (assembly) programozási nyelvek forráskód > compiler > tárgykód (gépi kód) compiler program: a fordítást végzi ugró utasítás + kezdetleges változó magas szintű programozási nyelvek nagyon magas szintű nyelvek önálló forráskód készítés még nem készült el teljesen (mesterséges intelligencia nyelvek)
Programozási nyelvek (Működési elv szerint ) imperatív utasítások meghatározott sorrendű végrehajtása (neumann-architektúra) pl. ADA, ALGOL, Basic, C, Cobol, Pascal applikatív (függvényorientált, funkcionális) pl. LISP, LOGO predikatív (logikai programnyelv) pl. PROLOG konkurens (több processzor) osztott hálózati programnyelv: OCCAM, SR
A Logo programozási nyelv 1960-as évek: a nyelvet és a hozzá kapcsolódó pedagógiai elveket Seymour Papert amerikai matematikus dolgozta ki a LISP programozási nyelv mellékleteként jött létre. az interpreter (értelmező) nyelvek közé tartozik, tehát az utasítást képes a kiadása után végrehajtatni a funkcionális nyelvek családjába sorolható a szövegkezelő része alapján automata elvű nyelv a grafikai része alapján 1997. magyar változat ELTE
A Logo mint automata nyelv Az automata nyelven írt programok végrehajtója egy vagy több automata. Pl.: rajzoló automata (teknőc) a Logoban. Az automata rendelkezik állapotokkal, valamint állapotok közötti átmenetet leíró függvényekkel. Definiálni kell az automata kezdeti vagy alapállapotát. Pl.: festőkar helye, festék színe. A rögzített nevű állapotkomponensekre általában állapotmódosító, állapotlekérdező utasítások léteznek. Pl.: menjen előre
A Logo mint automata nyelv Nincs hagyományos értelemben vett változó, mert a változók száma, típusa, elnevezése rögzített illetve utasítások paraméterei lehetnek. A paraméterek érték szerinti paraméterek, híváskor kapnak értéket. Eljárások, ciklusok paraméter függőek lehetnek. A paraméterfüggő ciklus csak egy primitív, ciklusváltozó nélküli, adott lépésszámú lehet. Minden más feladatra rekurzív eljárást célszerű írni. Automata elvű nyelvek képesek párhuzamos végrehajtásra. Ez a legtöbb Logo-verzióban még kihasználatlan.
A Logo mint funkcionális nyelv A funkcionális nyelveknél a program egy függvény, így a program futása a függvény kiértékeléséből áll. Nem léteznek változók, csak függvényparaméterekről beszélhetünk. Ezek egyszer, függvényhíváskor kapnak értéket, később csak felhasználjuk őket. Függvényparaméter lehet újabb függvény is. A program egy függvény, a program végrehajtása a függvény kiértékeléséből áll.
A Logo mint funkcionális nyelv A programstruktúrálásra következők állnak rendelkezésre: Összetett függvények Alternatív függvények Rekurzív függvények Konstans függvények A megőrzendő értékeket függvényparaméterként tárolhatjuk, így amire többször van szükség, azt vagy rekurzívan számítjuk ki, vagy pedig újabb függvényhívás paraméterének adjuk.
Teknőcgrafika A Rajzlap egy Descartes-féle derékszögű koordináta-rendszerként fogható fel A Teknőc: egy állapottal rendelkező pont ami képes rajzolás nélkül vagy rajzolással haladni a koordináta-rendszerben A teknőc alaphelyzetben az origóban [0,0] áll felfelé néz (0 fok) ide a programindítás után, a rajzlap törlése után vagy a munka (projekt) törlése után kerül az utasítássorban a teknőc az utasításokat közvetlenül gépelés után végrehajtja
A felhasználói környezet Rajzlap Írólap
Az Ikonsor gombjai Megnyitás Súgó Csak rajzlap Csak írólap Memória-ablak Mentés Rajzlap és írólap Feladatok Gombok Stop Alapszavak Demó játékok
A programozási környzet eljárások és függvények alkalmazása, azaz hívása eljárások és függvények írása eljárás hívása, készítése: utasítás az írólapon (? -> parancssor): gépeléssel előzőek hívása a felfelé kurzormozgató billentyűvel az Ikonsor Alapszavak gombja után kiválasztható a tanuld utasítással új eljárás készíthető a memóriaablakban új eljárásokat készíthetünk: Elemek/Új eljárás
A program kezelése Mentés: Fájl / Mentés -> *.lgp Új projekt létrehozása: Fájl / Új projekt Mentés: Fájl / Mentés -> *.lgp Megnyitás: Fájl / Megnyitás
Comenius Logo Eljárások
A LOGO primitívek a LOGO-val kapott eljárások (kb. 300 db) utasításként használhatók a legismertebbek a teknőc vezérléséhez: utasítás rövidítve előre e hátra h balra b jobbra j tollfel tf tollle tl
Szín- és alakbeállítások utasítás rövidítve tollszín! tsz! tollvastagság! tv! töltőszín! tsz! töltőminta! tlm! rajzlapszín! rsz! utasítás rövidítve törölrajz törölrajzlap tr törölmunka ki irány ki hely irány! 90 xyhely! 100 50
Az eljárások előfordulása az eljárás végrehajtása szerint egyszer hajtandó végre rekurzív paraméterek száma szerint paraméter nélküli paraméteres tanuld eljárás [utasítások] vége tanuld eljárás :paraméter [utasítások] vége
Eljárások felépítése az eljárás feje az eljárás törzse az eljárás vége tanuld egyes :szám név "szum 0 amíg [:szám > 0] ~ [név "szum :szum + ( maradék :szám 10 ) ~ név "szám ( egészhányados :szám 10 )] ha :szum > 9 [egyes :szum] ~ [ha :szum = 1 [kiír "EGYES] ~ [( kiír "NEM "EGYES )]] vége
Megjegyzés, sortörés Bármelyik sorba írhatunk megjegyzést a ; karakter után megjegyzés után utasítás nem írható a sorba az utasítások sora meg törhető a hosszú soroknál a ~ karakter segítségével a karakter utáni sor utasításait még az adott a sorhoz tartozónak tekinti
Vezérlő szerkezetek Változók Comenius Logo Vezérlő szerkezetek Változók
Vezérlő szerkezetek: Feltételes elágazások Egyágú programelágazás: HA [igaz-ág utasításai] Kétágú programelágazás: HA [igaz-ág utasításai ] [hamis-ág utasításai] Kétszeres programelágazások esetében az olvashatóság könnyebb ha TESZT szót használjuk az HA helyett. A TESZT szóval kezdődő sor után az HAIGAZ [igaz-ág] és az HAHAMIS[hamis-ág] utasítássors következik.
Példa
Vezérlő szerkezetek: Ismétlés Két bemenete van, az első az ismétlések száma, a második egy lista különböző utasításokkal: ismétlés <szám> <utasítás> vagy ism
Vezérlő szerkezetek: Rekurzió A rekurziók olyan programok, amelyek önmagukat hívják. Az ismétlés egy speciális lehetősége. Minden rekurzív művelet három részre osztható: Befejezési feltétel Feldolgozó rész Ismételt programhívás (módosított bemenettel) tanuld hatszög e 50 j 60 ha irány <> 0 [hatszög] vége hívása: ? hatszög
Rekurzió változtatott paraméterrel Paraméter változtatása tanuld spirális :hossz :szint e :hossz j 90 spirális :hossz + 5 :szint -1 vége az eljárás hívása: ? spirális 5 15
Változók globális változók lokális változók minden eljárás számára használható memóriablakban is láthatók lokális változók csak az adott eljárásban használható memóriaablakban nem látható
Lokális és globális változók Változók létrehozása: egy szóhoz, azaz a változónévhez konkrét tartalmat rendelünk. A tartalom lehet szám, szöveg, logikai érték stb. globális változót ugyanazzal az értékkel használhatunk több eljárásban a NÉV paranccsal lehet használni Az eljárás paraméterei mindig lokálisak, ami lehetővé teszi, hogy egymás után azonos paraméternévvel rendelkező eljárásokat definiálhassunk
Comenius Logo Függvények
A függvények jellemzése az eljárásokhoz hasonló a kialakításuk a programrész végrehajtása után egy értéket ad a meghívott eljárás számára az EREDMÉNY szó hatására saját függvény készítése: a függvény hívása:
A Comenius Logo indítása Start / Programok / Comenius Logo / Comenius Logo …/ Comlogo / Comlogo.exe
Források A Logo programozási nyelv. Műszaki, Bp., 1986. A Comenius Logo magyar nyelvű változatának Súgója Weigel Szilvia: A Logo programozási nyelv [elektronikus dokumentum] weszil.hu/suli/zv/logo_szilvi_bemutato.ppt Turcsányiné Sz. M. - Zsakó L.: Comenius Logo gyakorlatok. Kossuth, 1997, Bp. Szentpéteriné Király Tünde: Comenius Logo Teknőcgrafika. Kossuth, 2000, Bp.