2018. október 24., szerda

2018.10.24. Elmélet: Ciklusok

Feladat: mindenki ossza meg velem a digifüzetét, aki még nem tette. Továbbá csinálj a Drive-odon egy Programozás házi mappát (ha eddig nem volt) és oszd meg velem azt is.

A gyakorlati számonkérés beadásának ellenőrzése.
Megbeszéljük, mi lesz a szünet után két hétig, amíg helyettesítés lesz.

Ma vesszük a ciklusos elméleti lecke elejét (számlálós ciklusokig). Pénteken megbeszéltük, hogy végig kell tudni.

Pénteken elmélet röpdolgozat.

----------------------------------------------------------------------------------------------------------

Ismétlődő utasítások – feltételes ciklusok

A feladatok megoldása során találkozhatunk olyan utasításokkal, melyeket ismételten, többször is végrehajtunk. SMS küldésénél például egymás után írjuk be a mobiltelefonba a karaktereket.
Ciklus (iteráció): egymás után többször végrehajtásra kerülő, ismétlődő utasításcsoport.

Ismétlődő utasítások:
ISMÉTLÉS AMÍG nincs vége az üzenetnek
            írd be a következő karaktert
ISMÉTLÉS VÉGE

Az algoritmusokban az ismétlés szó helyett általában a ciklus szót használjuk.
Ha előre nem fogalmaztuk meg az üzenetet, akkor nem tudjuk a karakterek számát. Az ismétlés egy feltétel bekövetkezésétől függ: egymás után írjuk be a karaktereket addig, amíg nincs vége az üzenetnek.

Ritkán szoktunk olyan üzenetet küldeni, amely egyetlen karakterből sem áll. Ezért az ismétlés feltételét megvizsgálhatjuk a tevékenység (az első betű beírása) után. Lehetséges, hogy a feltételt az utasítások végrehajtása előtt nem is tudjuk kiértékelni. (Kiértékelés: eldönteni a feltételről, hogy igaz, vagy sem).

A feltétel kiértékelésének helyétől függően a ciklus lehet:
a, elöltesztelő ciklus: a feltételt az utasítások végrehajtása előtt értékeljük ki;
b, hátultesztelő ciklus: a feltételt az utasítások végrehajtása után értékeljük ki;

Hátultesztelő ciklus:
CIKLUS
            írd be a következő karaktert
AMÍG nincs vége az üzenetnek
CIKLUS VÉGE

Vegyük észre, hogy ha eleve nem teljesül a feltétel, akkor az elöltesztelő ciklus egyszer sem kerül végrehajtásra. Ha a telefonhívásnál foglalt a vonal, akkor várunk egy kicsit, majd újra tárcsázunk. Nincs szükség a várakozásra, és az ismételt hívásra, amikor ismerősünk egyből felveszi a telefont.

A hátultesztelő ciklus utasításait viszont legalább egyszer végrehajtjuk. Egy magasugró versenyen a sportoló annyiszor ismételhet, ahányszor átugorja a lécet. Ha átugrotta, magasabbra emelik, és megint ugorhat. Amíg nem ugrott, nem tudjuk megmondani, hogy ismételhet-e. A magasugrás a hátultesztelő ciklus példája.

Hátultesztelő ciklust általában akkor alkalmazunk, ha a ciklus kezdetén még nem tudjuk ellenőrizni az ismétlés feltételét.

Ismétlési és kilépési feltételek

Az SMS küldésére vonatkozó példánkban egy feltétel tagadása szerepelt:
CIKLUS AMÍG nincs vége az üzenetnek
A feltétel tagadása megnehezíti az algoritmusok értelmezését. Célszerű bevezetnünk olyan ciklustípust, amelyben az ismétlés feltétele helyett a kilépés feltételét adjuk meg.
Ismétlési feltétel: teljesülése esetén ismétlődik a ciklus utasításainak végrehajtása.
Kilépési feltétel: teljesülése esetén kilépünk a ciklusból (abbahagyjuk az utasítások ismétlését).

Ciklus kilépési feltétellel:
CIKLUS MÍGNEM vége van az üzenetnek
            írd be a következő karaktert
CIKLUS VÉGE

A kilépési feltételre a MÍGNEM szóval utalhatunk. Addig jár a korsó a kútra, amíg el nem törik – tartja a közmondás. Kilépési feltétellel így fogalmazhatjuk meg: addig jár a korsó a kútra, mígnem eltörik.
A programozási nyelvekben az ismétlési feltételre általában a WHILE, a kilépési feltételre az UNTIL szó utal.

Vegyük észre, hogy a kilépési feltétel éppen tagadása az ismétlési feltételnek. Azt választjuk közülük, amelyikkel egyszerűbben írhatjuk le az algoritmust.
A feltételes ciklusok tehát lehetnek elöl-, illetve hátultesztelőek. A feltétel mindkét típusnál vonatkozhat az ismétlésre vagy a kilépésre.

Ismétlődő utasítások – számlálós ciklusok

Az SMS-küldésnél (hagyományos mobiltelefonon) bizonyos betűk beírásához a nekik megfelelő billentyűt többször le kell nyomni. Az S betűt például a 7-es billentyű négyszeri megnyomásával érjük el. Ekkor előre tudjuk az ismétlések számát.

A ciklusok típusai:
a, számlálós ciklus: előre tudjuk az ismétlések számát;
b, feltételes ciklus: az ismétlések száma egy feltétel teljesülésétől függ.

Számlálós ciklus:
CIKLUS 4-szer
            nyomd le a 7-es billentyűt
CIKLUS VÉGE

Ciklusváltozó alkalmazása:
CIKLUS számláló = 1-től 100-ig:
            ugord át a kötelet
CIKLUS VÉGE

Ha sokszor kell végrehajtanunk egy számlálós ciklust, akkor célszerű valamilyen módon nyilvántartanunk az ismétlések számát. Strigulákat húzhatunk papíron, vagy készíthetünk elektronikus számlálót is. Az algoritmusban jelezhetjük a számláló alkalmazását.

Az ugrókötelezésnél 100-szor kell átugornunk a kötelet. A számláló értéke 1-től kezdve minden egyes ismétlésnél eggyel megnő. Amikor túllépte a 100-at, akkor már nem kerül sor az ugrás megismétlésére. A számlálót ciklusváltozónak nevezzük. A számláló értékét felhasználhatjuk a ciklus utasításaiban.


A számlálónak a végértékkel való összehasonlítását elvégezhetjük a ciklusutasítások végrehajtása előtt, illetve után. A számlálós ciklusok általában előre veszik az összehasonlítást (elöltesztelő ciklus). Ha a kezdőérték eleve túllépi a végértéket, akkor a ciklusutasítások egyszer sem kerülnek végrehajtásra.

2018. október 17., szerda

2018.10.17. Gyakorlati számonkérés

Feladat: mindenki ossza meg velem a digifüzetét.
A gyakorlati számonkérést fejezd be péntekig, töltsd föl a drive-ra és oszd meg velem.

Az elmélet házit jövő szerdára kell megcsinálni, mert a pénteki elmélet óra elmarad ünnepség miatt (és a hétfő-kedd szünet). Szerdán elmélet óra lesz.

Jövő pénteken elmélet röpdolgozat.





2018.10.17. Gyakorlat - Számonkérés


A csoport
Rajzolj egy képet, amin egy tó van, rajta egy zsombék, a háttérben a part. Tegyél az égre felhőket és egy napot (ezek vannak készen is). Keress, vagy rajzolj egy hajót is.
A következő történjen:
Egy hajó ringatózik a vízen, balról jobbra halad, kimegy a képből.
Közben a felfelé nyíl megnyomásakor egy hal kiugrik a vízből véletlenszerű helyről véletlenszerű (de azért ésszerű) magasságba, majd visszaesik a vízbe, ahol eltűnik.
3 felhő halad balról jobbra, eltűnnek a jobb oldalon. Haladás közben eltakarják a napot, ha a nap elé érnek.
Egy madár repül át jobbról balra, ha felhőhöz ér, eltűnik benne, és nem is jelenik meg többet.
Egy teknős kimászik a vízből egy zsombékra, „vizes” vonalat húz maga után.
Amikor a madár megjelenik, a teknős „megijed”: behúzza a fejét és a lábait.

B csoport
Rajzolj egy képet, amin egy víz alatti világ van. Alul egy-két vízinövény a homokban.
A következő történjen:
Egy cápa föl-le hullámzó mozgással áthalad a képen, végül kiúszik a képből. Körülötte halak úszkálnak véletlenszerű mozgással, ezeket a cápa megeszi, ha hozzáérnek.
A szóköz megnyomásakor egy újabb, nagyobb cápa jelenik meg vele szemben (ugyanazok a tulajdonságai, ugyanúgy közlekedik,  csak nagyobb hullámokat csinál), és ennek más legyen a színe. Ha összeütköznek, a kisebbik forduljon meg, és ússzon visszafelé.
A homokban egy rák halad hátrafelé. Ha elér egy vízinövényt, mögötte megy tovább, majd megáll a képernyő szélénél. Amikor megállt, jelenjen meg egy polip mellette.
Ha megnyomjuk a le billentyűt, valami általad választott tárgy beleesik a vízbe, és lesüllyed, megáll a homokon. Ettől megijed a polip és lila tintacsíkot húzva maga után kimenekül a képből.

2018. október 16., kedd

2018.10.16. Gyakorlat - Listák

Ellenőriztük a házi feladatot.
Vettük a Listák leckét, elkezdtük megvalósítani önállóan a mintaprogramot.
Házi feladat befejezni.
Holnap kapsz egy önálló feladatot, aminek megoldásához a szomszédon kívül bármit használhatsz, jegyet fogsz kapni a megoldásra. Ehhez az eddig megoldott feladatokhoz kacsolódó tudást kell tudni felhasználni.

2018. október 12., péntek

2018. október 11., csütörtök

2018. október 9., kedd

2018.10.09. Ismétlés

A rajzolós házit  és a teknőcös házit ellenőriztük.
Aki nem készítette el valamelyiket, még a következő órára hozhatja.

Még egyszer a feladataid:
Házi feladat a teknőcös játék egy egyéni verzióját elkészíteni. Másképp oldd meg a következőket: figura, mozgás, betűk, háttér, és ha elér egy pontra, akkor jelezze a program végét valami feltűnő módon.
Olvasd végig a véletlenszámos leckét.

2018. október 4., csütörtök

2018.10.04. (Helyettesítés) Elmélet: Feltételes elágazások

Sok algoritmusban fordulnak elő olyan utasítások, melyeket csak meghatározott feltételek teljesülése esetén kell végrehajtani. Ha például még nincs Facebook fiókunk, akkor először létrehozunk egyet. Csak utána tudunk bejelentkezni.

Feltételes elágazás:

HA nincs Facebook fiókod AKKOR
       hozz létre egyet
ELÁGAZÁS VÉGE
Jelentkezz be

Feltételes elágazás (szelekció): az utasításoknak egy meghatározott feltételtől függő végrehajtását írja elő.

Kétágú szelekció:

HA a címzett szerepel a címlistában AKKOR
       válaszd ki az e-mail címet a listából
EGYÉBKÉNT
       írd be az e-mail címet a címzett rovatba
ELÁGAZÁS VÉGE


Többágú szelekció:

HA kicsúszott a vezeték a gépből AKKOR
       dugd vissza
EGYÉBKÉNT HA kikapcsolták a főkapcsolót AKKOR
       kapcsold be
EGYÉBKÉNT
       vidd el a szervízbe
ELÁGAZÁS VÉGE

A feltételes elágazás egyes ágaihoz tartozó utasításokat célszerű behúzással leírni az algoritmusban. Így könnyen áttekinthető szerkezetet alakítunk ki.

A feltételes elágazások gyakran arra az esetre is utasítást adnak, amikor nem teljesül a feltétel. Ekkor kétágú szelekcióról beszélünk. E-mail írásánál például beírjuk az ismerősünk címét a Címzett rovatba. De ha szerepel a címlistánkban, akkor a gépelés helyett elegendő onnan kiválasztani.

Bonyolultabb esetben kettőnél több ágra szakadhat az elágazás. Ha például nem indul el a számítógép, akkor ennek többféle oka is lehet.


Feladatok: egészítsük ki a szekvenciális feladatainkat feltételekkel!

1. Alkossuk meg a teafőzés algoritmusát!

2. Alkossuk meg a telefonálás algoritmusát!

3. Alkossuk meg a hétvégi, reggeli felkelés algoritmusát!

Házi feladat: az első feladat mintája alapján a 2.-3. feladatot megírni úgy, hogy feltételek is legyenek benne.
1. feladat egy lehetséges megoldása:

vízforralóban forralok vizet
kiöntöm a forró vizet a bögrébe
beleteszem a filtert
várok 5 percet
HA van itthon méz AKKOR
beleteszem a mézet a teába
EGYÉBKÉNT
cukrot teszek bele
ELÁGAZÁS VÉGE
HA van itthon citrom AKKOR
belefacsarom a citromot a teába
EGYÉBKÉNT
citromsavat teszek bele
ELÁGAZÁS VÉGE

megiszom a teát


-------------------------------------------------------------------------


Forrás: Irány az ECDL! a középszintű érettségi! tankönyv (Nemzeti Tankönyvkiadó)

2018. október 3., szerda

2018.10.03. Gyakorlás

A rajzolós házit ellenőrizzük a következő gyakorlat órán.
Értsük meg a teknőcös játék feladatot a honlap nélkül. Házi feladat ennek egy egyéni verzióját elkészíteni. Másképp oldd meg a következőket: figura, mozgás, betűk, háttér, és ha elér egy pontra, akkor jelezze a program végét valami feltűnő módon.
Olvasd végig a véletlenszámos leckét.

2018. október 2., kedd

2018.10.02. Gyakorlás

Új modul: Üzenetek. A kész programot feltöltötted a Drive-ra.
Elkezdtük a rajzolós leckét. A félkész programot a Drive-ra tetted, otthon be kell fejezni és a kész programot feltölteni ugyanoda.

2018,09.26 Gyakorlás

Feltételek - lecke, labirintusos játék.