>

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

 

Logikai feladatok

 

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