>

Scratch programozás


Forrás (medium.com)

Scratch programozási nyelv

A Scratch egy kifejezetten gyerekek (8-18 éves korosztály) számára fejlesztett programozási környezet. Ingyenesen letölthető Windows és Mac OS X és Linux rendszerekre. Legújabb változatát pedig már webes felületen is használhatjuk. Több mint 40 nyelven, köztük magyarul is használható!

Interpretált, vizuális programozási nyelv. A dinamikus nyelvek csoportjába tartozik – a kód a program futása közben is változtatható. A fejlesztését 2004-ben kezdte a Lifelong Kindergarten csoport az MIT (Massachusetts Institute of Technology) egyetemen, és az első hivatalos verziója 2007-ben jelent meg. Azzal a céllal készült, hogy a programozással még csak ismerkedő gyerekek is könnyedén alkothassanak animációkat, játékokat. A Scratch készítői egy olyan környezet megírására vállalkoztak, amelyben a programozás módja és tárgya a programozással ismerkedők számára érdekes és látványos.

A Scratch-ben való programozás kirakójátékozásra hasonlít: parancsokat és változókat felhasználva úgy lehet algoritmusokat összeépíteni, mint egy kirakót a darabjaiból. Ezek az elemek csak helyes módon illeszkednek egymáshoz. Az objektumorientált (szereplőközpontú) programozás támogatja az interaktív programok (például játékok) készítését, és segítségével kevésbé kell elvonatkoztatni a köznapi valóságtól. A környezet lehetőséget nyújt álló- és mozgóképi, hangi és zenei elemek vegyes használatára, így különböző tartalmakat és gondolatokat változatos médiaelemekkel lehet közvetíteni. Az elkészült programok feltölthetők a nemzetközi oldalra, ahol lehetőség van másoktól tanulni, mások munkáit értékelni, javaslatot tenni és fogadni. A programkódot mindenki a saját nyelvén tekintheti meg (ha a megfelelő fordítás létezik), így a programkódot készítő, és az azt megtekintő személyeknek nem kell érteniük egymás nyelvén.

Rövid története

 

Elmélet és feladatok

S. Utasítássorok (szekvenciák)

Számítsuk ki és írjuk ki egy bekért szám négyzetét!

A szám legyen a "szam", a négyzete a "negyzet" változóban!

  • szám bekérése (válasz)
  • "szam" legyen a "válasz"
  • "negyzet" egyenlő szam*szam
  • kiírni a "negyzet"-et

Rajzoljuk meg kékkel a koordinátarendszer x éx y tengelyét!

  • rajztábla törlése
  • toll beállítása (szín, méret) /két utasítás/
  • toll felemelése
  • ugrás a (-240;0) helyre
  • toll lerakása
  • ugrás a (240;0) helyre
  • toll felemelése
  • ugrás a (0;180) helyre
  • toll lerakása
  • ugrás a (0;-180) helyre

Készítsd el azokat a szekvenciális (soros) programokat, amelyek "összehozzák" a jobboldali ábrát!

Segítségül néhány javaslat:

  • több szereplő legyen (macska, A, B)
  • a macsek szereplő rajzolja ki az x és az y féltengelyeket
  • a látható változók az A és a B koordinátái (véletlenszámok a pozitív negyedben)
  • az A, B szereplők ugorjanak a helyükre, s írják ki koordinátáikat
  • a macsek szereplő rajzolja ki az AB szakaszt (és álljon félre)

A szekvencia egyszerű tevékenységek, utasítások sorozata; egymás után, sorrendben végrehajtható utasításokat jelent.


E. Elágazások/kiválasztások (szelekciók)

Döntsük el, hogy egya bekért háromjegyű szám osztható-e 10-el!

Használjuk a "ha ... akkor ..." elágazást! A program az "e" betű lenyomására induljon!

  • írjuk ki "Kérek egy háromjegyű számot:", és kérjük is be
  • a "válasz"-t tegyük a "szam" változóba
  • egy "ha ... akkor ..." modulban írjuk ki "A szám osztható 10-el"
    a feltétel: a "szam" 3. betűjének vizsgálata

(Ha nem osztható, akkor nem írunk ki semmit.)


Döntsük el, hogy egy bekért háromjegyű szám osztható-e 10-el!

Használjuk a "ha ... akkor ... különben ..." elágazást! A program az "k" betű lenyomására induljon!

  • írjuk ki "Kérek egy háromjegyű számot:", és kérjük is be
  • a "válasz"-t tegyük a "szam" változóba
  • egy "ha ... akkor ... különben ..." modulban írjuk ki: "A szám osztható 10-el" vagy "A szám nem osztható 10-el"
    a feltétel: a "szam" 3. betűjének vizsgálata

Oldjuk meg az előző feladatot úgy, hogy bármilyen pozitív egész számra helyesen működjön!

Help (csak tedd ide az egérkurzort)


Kérjünk be egy -99 és 99 közé eső egészet, és írjuk ki hogy milyen előjelű és hányjegyű! ( pl. -99: "A szám negatív, kétjegyű" )

Egy lehetséges megoldás (vázlatosan):

  • írjuk ki: "Kérek egy -99 és 99 közé eső egész számot: ", és kérjük is be
  • a "válasz"-t tegyük a "szam" változóba
  • három "ha ... akkor ..." modulban vizsgáljuk a "szam" előjelét (szam=0, >0 vagy 0<)
  • adjunk ezekben értéket a "szoveg" változónak ("A szám nulla (azaz egyjegyű)", "A szám pozitív, ", "A szám negatív, ")
  • a "ha szam>0 akkor ..." elágazásba tegyünk két újabb elágazást, ezekben a feltétel a "szam hossza = ..."
  • belül a "szoveg"-hez ragasszuk (együtt) még az "egyjegyű" illetve "kétjegyű" szöveget
  • a "ha szam<0 akkor ..." elágazás hasonló felépítésű az előbbihez
  • végül írassuk ki az összegyűjtött "szoveg"-et

Algoritmus (kattints ide)


Az elágazás segítségével valamely utasításcsoport végrehajtását feltétel bekövetkezéséhez köthetjük.    EE   KIE   TIE


C. Ismétlések/ciklusok (iterációk)

Írjuk ki (kis szünettel) az öttel osztható háromjegyű számokat 150-ig (ezt is)!

Használjuk az "ismételd ..." ciklust! A program az "m" betű lenyomására induljon!

  • használjuk a "szam" változót a háromjegyű tárolására
  • állítsuk be a kezdőértékét
  • gondoljuk végig, hogy hányszor ismétlődjön a ciklus
  • a ciklusban írjuk ki (várakozással)
  • a ciklusban növeljük meg (ügyesen)

Írjuk ki (kis szünettel) az öttel osztható háromjegyű számokat 150-ig (ezt is)!

Használjuk az "ismételd eddig: ..." ciklust! A program az "e" betű lenyomására induljon!

Az elöltesztelő ciklusba akkor lép be, ha a feltétel HAMIS.
Az elöltesztelő ciklusból akkor lép ki, ha a feltétel IGAZ.

  • használjuk a "szam" változót a háromjegyű tárolására
  • állítsuk be a kezdőértékét
  • gondoljuk végig, mi legyen a "ciklusfeltétel"
  • a ciklusban írjuk ki (várakozással)
  • a ciklusban növeljük meg (ügyesen)

Írjuk ki (kis szünettel) az öttel osztható háromjegyű számokat 150-ig (ezt is)!

Használjuk a "mindig" ciklust! A program az "o" betű lenyomására induljon!

  • használjuk a "szam" változót a háromjegyű tárolására
  • állítsuk be a kezdőértékét
  • a ciklusban írjuk ki (várakozással)
  • a ciklusban növeljük meg (ügyesen)
  • tegyünk még bele egy "ha" modult, s ebbe egy "ez a feladat álljon le" parancsot, mert valóban örökös ciklus lesz
    gondoljuk végig, mi legyen a "feltétel"

Készítsd el a jobboldali ábrát!

Segítségül csak ennyit:

  • egy számlálós elkészíti a piros háromszöget (oldala 150)
  • a következő a kisebb zöldet (oldala 100)
  • ezeket ismételjük 3-szor

Algoritmus (kattints ide)


Rajzold meg egy-egy programmal a jobboldali négy ábrát!


Rajzold meg egy-egy programmal a jobboldali hat ábrát!


A ciklus ismétlődő tevékenységek megvalósítására szolgál.    SZC   ETC   HTC


F. Eljárások, függvények

Készítsük el a jobboldali ábrát kirajzoló programot!

Először csináljunk egy "négyzet" parancsot (eljárásnak is hívják), benne:

  • tollat le
  • egy 4-es ciklusban: előre 100 pixel, jobbra fordul 90 fok
  • tollat fel

Próbáljuk ki!

Vegyük észre, hogy ha egy négyzet kirajzolása után előre megyünk 100 pixelt és balra fordulunk 120 fokot, akkor a következő négyzethez érkezünk. Tehát csak ezt kell 3-szor ismételni.

A főprogram tehát:

  • beállítások (cica, toll)
  • ciklus 3-szor
         négyzet
         előre 100 pixel
         balra 120 fok

Készítsünk programot, amely egy bekért felső határig kiírja a prímeket!



 

Mintafeladatok

Egyszerűbb mintaprogramok

A *-gal jelzett program kicsit nehezebb! A képaláírásra kattintva a program látható.

Nehezebb mintaprogramok

A *-gal jelzett program kicsit nehezebb! A képaláírásra kattintva a program látható.

Linkek, dokumentumok