Vissza az előzőleg látogatott oldalra (nem elérhető funkció)Vissza a tananyag kezdőlapjára (P)Ugrás a tananyag előző oldalára (E)Ugrás a tananyag következő oldalára (V)Fogalom megjelenítés (nem elérhető funkció)Fogalmak listája (nem elérhető funkció)Oldal nyomtatása (nem elérhető funkció)Oldaltérkép megtekintése (D)Keresés az oldalon (nem elérhető funkció)Súgó megtekintése (S)

Informatika oktatása / Programozási modellek /2. Karesz a robot

Programozási modellek

2. Karesz a robot

Az algoritmikus gondolkodás elmélyítéséhez sokan programozási nyelvektől független fejlesztő eszközöket dolgoznak ki. Egyik ilyen legkorábbi eszköz volt Karesz, a robot [HP,KC, PR].

Karesz egy „utcagyerek”, aki egy négyzetrácsos úthálózat utcasarkain lépdelve mozog. Egyes utcasarkokon falak vannak, amelyeken Karesz nem tud átmászni. Más sarkokon kavicsok találhatók (egy helyen csak egy), amiket Karesz tetszőleges számban felvehet, majd újra letehet. Karesz mint algoritmus végrehajtó az alábbi nyelvet érti:

Karesz tevékenységei

Amit Kareszről kérdezhetünk

♦ Indulj Karesz

♦ északra néz

♦ Fordulj jobbra

♦ délre néz

♦ Fordulj balra

♦ keletre néz

♦ Lépj

♦ nyugatra néz

♦ Vedd fel a kavicsot

♦ fal előtt áll

♦ Dobj el egy kavicsot

♦ van itt kavics

♦ Állj

Példák:

Fordulj északra:

AMÍG NEM északra néz

ISMÉTELD

Fordulj jobba

ISMÉTLÉS VÉGE.

Menj a falhoz:

HA NEM fal van előtte

AKKOR Lépj; Menj a falhoz

HA VÉGE.

Menj előre 10-et:

ISMÉTELD 10-szer

Lépj

ISMÉTLÉS VÉGE.

Cserélget:

ISMÉTELD 10-szer

HA van itt kavics

AKKOR Vedd fel a kavicsot

KÜLÖNBEN Dobj el egy kavicsot

HA VÉGE

ISMÉTLÉS VÉGE.

Karesz, a robot lényege:

Nézzünk három komolyabb, versenyfeladatot Karesz programozására a 2013-as Nemes Tihamér, illetve Informatika OKTV versenyekről!

Karesz programozása – 5-8. osztályosok

Kezdetben Karesz a (10,10) koordinátájú ponton áll és felfelé néz (azaz ha lépne egyet, akkor a (10,11) koordinátájú pontra lépne. Kezdetben a (10,10) koordinátájú ponton X darab kavics van, a (11,10) koordinátájún pedig Y darab kavics van, a többi ponton nincs kavics.

  • (A) Melyik mezőn fog állni Karesz az alábbi program végrehajtása után, ha X=1, Y=2?
  • (B) Melyik mezőn fog állni Karesz az alábbi program végrehajtása után, ha X=2, Y=1?
  • (C) Mitől és hogyan függ tetszőleges X és Y esetén, hogy Karesz az alábbi program végrehajtása után melyik mezőn fog állni?
  • (D) Az alábbi program végrehajtása után tetszőleges X és Y esetén melyik mezőkön lesz kavics és mennyi?

Karesz:

Ciklus amíg van itt kavics

Vegyél fel egy kavicsot

Lépj

Tegyél le egy kavicsot

Fordulj jobbra

Lépj

Fordulj jobbra

Lépj

Ciklus vége

Eljárás vége.

Karesz programozása – 9-10. osztályosok

Kezdetben Karesz a (10,10) koordinátájú ponton áll és felfelé néz (azaz ha lépne egyet, akkor a (10,11) koordinátájú pontra lépne. Kezdetben a (10,10) koordinátájú ponton X darab kavics van, a (11,10) koordinátájún pedig Y darab kavics van, a többi ponton nincs kavics.

  • (A) Melyik mezőn fog állni Karesz az alábbi program végrehajtása után, ha X=1, Y=2?
  • (B) Melyik mezőn fog állni Karesz az alábbi program végrehajtása után, ha X=2, Y=1?
  • (C) Mitől és hogyan függ tetszőleges X és Y esetén, hogy Karesz az alábbi program végrehajtása után melyik mezőn fog állni?
  • (D) Az alábbi program végrehajtása után tetszőleges X és Y esetén melyik mezőkön lesz kavics és mennyi?

Karesz:

Ciklus amíg van itt kavics

Vegyél fel egy kavicsot

Lépj

Tegyél le egy kavicsot

Fordulj jobbra

Lépj

Fordulj jobbra

Lépj

Fordulj jobbra

Fordulj jobbra

Ha van itt kavics akkor Vegyél fel egy kavicsot

Lépj

Tegyél le egy kavicsot

Fordulj balra

Lépj

Fordulj balra

Lépj

Fordulj balra

Fordulj balra

Elágazás vége

Ciklus vége

Eljárás vége.

Karesz programozása – 11-12. osztályosok

Kezdetben Karesz a (10,10) koordinátájú ponton áll és felfelé néz (azaz ha lépne egyet, akkor a (10,11) koordinátájú pontra lépne. Kezdetben a (10,x) koordinátájú ponton 1 kavics van, a (10,y) koordinátájún szintén 1 kavics van (10<x<y, x+y páros szám), a többi ponton nincs kavics. Ha Karesz nem tud letenni kavicsot, mert nincs a kezében, akkor hibát jelez és leáll.

  • (A) Karesz az alábbi program végrehajtása után melyik mezőn fog állni, ha X=15, Y=17, Z=0?
  • (B) Karesz az alábbi program végrehajtása után melyik mezőn fog állni, ha X=15, Y=19, Z=0?
  • (C) Karesz az alábbi program végrehajtása után melyik mezőn fog állni tetszőleges X és Y esetén?
  • (D) Az alábbi program végrehajtása után melyik mezőkön lesz kavics és mennyi, illetve hány kavics lesz Karesz kezében tetszőleges X, Y és Z esetén?
  • (E) Milyen X,Y,Z esetén működne hibamentesen a program, ha kivennénk a két „Vegyél fel egy kavicsot” utasítást?
  • (F) Mi változna az E pont szerint módosított algoritmus hibamentes működése esetén?

Karesz:

Ciklus amíg nem van itt kavics

Lépj

Ciklus vége

Vegyél fel egy kavicsot

Lépj

Ciklus amíg nem van itt kavics

Tegyél le egy kavicsot

Lépj

Ciklus amíg nem van itt kavics

Lépj

Ciklus vége

Fordulj jobbra

Fordulj jobbra

Vegyél fel egy kavicsot

Lépj

Ciklus vége

Eljárás vége.

Újabban definiálták Karesz „3 dimenziós testvérét”, Alice-t. [CSDWPR]

Alice is primarily a scripting and prototyping environment that allows the user to build virtual worlds and write simple programs to animate objects (e.g., animals and vehicles) in those worlds. Objects in Alice can move, spin, change color, make sounds, react to the mouse and keyboard, and more. By writing simple scripts, Alice users can control object appearance and behavior. During script execution, objects may respond to user input via mouse and keyboard. Each action is animated smoothly over a specified duration. In the rest of this paper, we will describe the Alice programming environment, and then propose how Alice may also be used to assist in supporting the development of algorithmic thinking for novice programmers.

Vissza a tartalomjegyzékhez

Új Széchenyi terv
A projekt az Európai Unió támogatásával, az Európai Szociális Alap társfinanszirozásával valósul meg.

A tananyag az ELTESCORM keretrendszerrel készült