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 /3. Pont mozog a képen

Programozási modellek

3. Pont mozog a képen

A klasszikus programozás oktatásban matematikai feladatokon keresztül vezetjük be az új ismereteket. Mivel a matematikát szerető diákok köre viszonylag szűk, ezért érdemes lehet más feladatcsoportra építeni.

Az alapgondolat: egy pontot mozgatunk a képernyőn. Legyen a képernyő mérete 1920 oszlop, 1080 sor! A pontot kezdetben az (o,s) koordinátájú pontra tesszük.

Első feladatként mozgassuk a pontot jobbra 100 egységgel!

Előre(N):

s:=200; o:=200

Ciklus N-szer

Pont(o,s); o:=o+1

Ciklus vége

Eljárás vége.

Próbáljuk ki a kép jobb széléig mozgatást!

Széléig(s,o):

Ciklus amíg o<1920

Pont(o,s); o:=o+1

Ciklus vége

Eljárás vége.

Megfigyelhetjük, hogy mindkét mozgatással egy vonalat húztunk. A pont rajzolására van azonban egy olyan lehetőségünk, hogy a pontot színe szerinti kizáró vagy művelettel tegyük ki a képernyőre. A kizáró vagy művelet tulajdonsága, hogy valamire kétszer alkalmazva, visszakapjuk az eredetit, azaz A XOR B XOR B=A.

A következő eljárásban – egy lassítást helyezve a programba – láthatjuk a mozgó pontot:

Széléig(s,o):

Ciklus amíg o<1920

Pont(o,s); o:=o+1; Pont(o,s); Várakozás

Ciklus vége

Eljárás vége.

Adjunk a pontnak egy tetszőleges irányt (do,ds), ebbe az irányba mozgassuk a pontot a képernyő széléig – kiválasztás programozási tétel!

Széléig(s,o,ds,do):

Ciklus amíg o>0 és o<1920 és s>0 és s<1080

Pont(o,s); o:=o+do; s:=s+ds; Pont(o,s); Várakozás

Ciklus vége

Eljárás vége.

Ha a képernyőre korábban már rajzoltunk vonalakat (ún. falakat), akkor falnál is álljunk meg, ha falhoz értünk – keresés programozási tétel.

Széléig vagy falig(s,o,ds,do):

Ciklus amíg o>0 és o<1920 és s>0 és s<1080 és

pontszín(o,s)?háttér

Pont(o,s); o:=o+do; s:=s+ds; Pont(o,s); Várakozás

Ciklus vége

Eljárás vége.

A képernyő széléről a pontunk szabályosan verődjön vissza!

Visszaverődve(s,o,ds,do):

Ciklus

Pont(o,s); o:=o+do; s:=s+ds; Pont(o,s); Várakozás

Ha o>1919 akkor o:=1919-(o-1919); do:=-do

Ha o<0 akkor o:=-o; do:=-do

Ha s>1079 akkor s:=1079-(s-1079); ds:=-ds

Ha s<0 akkor s:=-s; ds:=-ds

Ciklus vége

Eljárás vége.

A képernyő széléről a pontunk szabályosan verődjön vissza, de ha belső falat talál el, akkor álljon meg!

Visszaverődve falig(s,o,ds,do):

Ciklus pontszín(o,s)≠háttér

Pont(o,s); o:=o+do; s:=s+ds; Pont(o,s); Várakozás

Ha o>1919 akkor o:=1919-(o-1919); do:=-do

Ha o<0 akkor o:=-o; do:=-do

Ha s>1079 akkor s:=1079-(s-1079); ds:=-ds

Ha s<0 akkor s:=-s; ds:=-ds

Ciklus vége

Eljárás vége.

A képernyő széléről a pontunk szabályosan verődjön vissza, a képernyőn haladás közben fokozatosan lassuljon!

Visszaverődve lassulva(s,o,ds,do,c):

Ciklus

Pont(o,s); o:=o+do; s:=s+ds; Pont(o,s); Várakozás

Ha o>1919 akkor o:=1919-(o-1919); do:=-do

Ha o<0 akkor o:=-o; do:=-do

Ha s>1079 akkor s:=1079-(s-1079); ds:=-ds

Ha s<0 akkor s:=-s; ds:=-ds

ds:=c*ds; do:=c*do

Ciklus vége

Eljárás vége.

A képernyő széléről a pontunk szabályosan verődjön vissza, lefelé haladva gyorsuljon a mozgása, felfelé haladva pedig lassuljon!

Visszaverődve gyorsulva-lassulva(s,o,ds,do,c):

Ciklus

Pont(o,s); o:=o+do; s:=s+ds; Pont(o,s); Várakozás

Ha o>1919 akkor o:=1919-(o-1919); do:=-do

Ha o<0 akkor o:=-o; do:=-do

Ha s>1079 akkor s:=1079-(s-1079); ds:=-ds

Ha s<0 akkor s:=-s; ds:=-ds

Ha ds≥0 akkor ds:=ds+1 különben ds:=ds-1

Ciklus vége

Eljárás vége.

Megfelelő feladatokat kapunk az algoritmikus struktúrák kialakítására. Látványos feladatok, játékokká fejleszthetők. Kialakíthatók benne akár a programozási tételek is – megszámolás (falakon áthaladás vagy szélekről visszaverődés számlálása), kiválogatás (az elért falak átszínezése).

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