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).
![]() ![]() |
![]() |
![]() |
A tananyag az ELTESCORM keretrendszerrel készült