AZ ALGORITMUSRÓL. (bevezetés a programozáshoz)



Hasonló dokumentumok
SZAKDOLGOZAT. Kiss Albert

Algoritmusok. Hogyan csináljam?

Programozás elmélet tananyag

hatására hátra lép x egységgel a toll

Nemzeti alaptanterv 2012 MATEMATIKA

Informatika 5 8. évfolyama számára heti 1 óra. Óraterv 5 8. évfolyam 5. évf. 6. évf. 7. évf. 8. évf. Informatika heti 1 óra

Széchenyi István Szakképző Iskola

Informatikus informatikus Térinformatikus Informatikus T 1/9

Helyi tanterv. Informatika évfolyam. Helyi tervezésű +órakeret Évi órakeret

1. Az informatikai eszközök használata

HELYI TANTERV MATEMATIKA (emelt szintű csoportoknak) Alapelvek, célok

EMMI kerettanterv 51/2012. (XII. 21.) EMMI rendelet 2. sz. melléklet Matematika az általános iskolák 5 8.

Matematika. Padányi Katolikus Gyakorlóiskola 1

MATEMATIKA TAGOZAT 5-8. BEVEZETŐ. 5. évfolyam

A bemeneti mérés eredménye az 1. évfolyamon

A FOGLAKOZÁS ADATAI: SZERZŐ. Vindics Dóra. Vezérelj robotot! A FOGLALKOZÁS CÍME A FOGLALKOZÁS RÖVID

különösen a média közleményeiben való reális tájékozódást. Mindehhez elengedhetetlen egyszerű matematikai szövegek értelmezése, elemzése.

MATEMATIKA 1-2.osztály

képességgel és készséggel, hogy alkalmazni tudják matematikai tudásukat, és felismerjék, hogy a megismert fogalmakat és tételeket változatos

különösen a média közleményeiben való reális tájékozódást. Mindehhez elengedhetetlen egyszerű matematikai szövegek értelmezése, elemzése.

reális tájékozódást. Mindehhez elengedhetetlen egyszerű matematikai szövegek értelmezése, elemzése. A tanulóktól megkívánjuk a szaknyelv életkornak

különösen a média közleményeiben való reális tájékozódást. Mindehhez elengedhetetlen egyszerű matematikai szövegek értelmezése, elemzése.

MATEMATIKA 5 8. ALAPELVEK, CÉLOK

Apor Vilmos Katolikus Iskolaközpont. Helyi tanterv. Matematika. készült. a 51/2012. (XII. 21.) EMMI rendelet 1. sz. melléklet 1-4./1.2.3.

INFORMATIKA. 6 évfolyamos osztály

Matematika helyi tanterv 5 8. évfolyam számára Alapelvek, célok

Útmutató a Matematika 1. tankönyv használatához

Számsorozatok Sorozat fogalma, példák sorozatokra, rekurzív sorozatokra, sorozat megadása Számtani sorozat Mértani sorozat Kamatszámítás

Matematika évfolyam. tantárgy 2013.

Az áprilisi vizsga anyaga a fekete betűkkel írott szöveg! A zölddel írott rész az érettségi vizsgáig még megtanulandó anyag!

Régi, statikus adatok élővé tétele és vizsgálata

A tananyag. Témakörök. Optimum. Tudja meghatározni a numerikus, és karakteres adtok tárolt alakját.

Történeti áttekintés

EMMI kerettanterv 51/2012. (XII. 21.) EMMI rendelet 1. sz. melléklet Matematika az általános iskolák 1 4. évfolyama számára

MATEMATIKA TANTERV Bevezetés Összesen: 432 óra Célok és feladatok

INFORMATIKA Helyi tantárgyi tanterv

Széchenyi István Szakképző Iskola

A Szekszárdi I. Béla Gimnázium Helyi Tanterve


Idősoros elemző. Budapest, április

Multimédiás alkalmazások

Gyarmati Dezső Sport Általános Iskola MATEMATIKA HELYI TANTERV 1-4. OSZTÁLY

2.2 Logisztorik (Gindilla Orsolya) szeptember 2.3 Barangolás a nagyotmondók földjén (Gindilla Orsolya) 3. Halmazelmélet

I. Gondolkodási módszerek: (6 óra) 1. Gondolkodási módszerek, a halmazelmélet elemei, a logika elemei. 1. Számfogalom, műveletek (4 óra)

Buzsáki Gábor: Az életed kiszámolható!

Biológia 7 8. évfolyam számára

A Szekszárdi I. Béla Gimnázium Helyi Tanterve

Az MS Access adatbázis-kezelő program

Helyi tanterv. Batthyány Kázmér Gimnázium Matematika emelt ( óra/hét) 9-12 évfolyam Készült: 2013 február

Helyi tanterv Német nyelvű matematika érettségi előkészítő. 11. évfolyam

Matematika évfolyam. Vass Lajos Általános Iskola Helyi tanterv Matematika 1 4. osztály

4. Programozási nyelvek osztályozása. Amatőr és professzionális

Matematika évfolyam

SZÁMOLÁSTECHNIKAI ISMERETEK

Minden jog fenntartva, beleértve bárminemű sokszorosítás, másolás és közlés jogát is.

Pályázati kézikönyv. az Interreg V-A Ausztria-Magyarország Program pályázói és kedvezményezettjei számára

Programozható logikai vezérlõk

MATEMATIKA Kiss Árpád Országos Közoktatási Szolgáltató Intézmény Vizsgafejlesztő Központ

I. Az üzemeltető adatai: Név: Meskete2015 Kft. továbbiakban üzemeltető. Székhely: 8174, Balatonkenese, Arany János utca 13

részvétel a kulturális, társadalmi és/vagy szakmai célokat szolgáló közösségekben és hálózatokban. Az informatika tantárgy fejlesztési feladatait a

A Batthyány Általános Iskola és Sportiskola félévi/év végi beszámolója

OKTATÁSI FORGATÓKÖNYV az Életünk fordulópontjai című adatfelvétel kérdezőbiztosi oktatásához az igazgatóságokon

Tehetséggondozás az iskolában 2011/ félév

MATEMATIKA I. RÉSZLETES ÉRETTSÉGI VIZSGAKÖVETELMÉNY A) KOMPETENCIÁK

A változat (1,5+1,5 óra)

5. évfolyam. Gondolkodási módszerek. Számelmélet, algebra 65. Függvények, analízis 12. Geometria 47. Statisztika, valószínűség 5

A követő mérés eredménye a 2. évfolyamon

SSADM. Az SSADM (Structured System Analysis and Desing Method) egy rendszerelemzési módszertan.

9. ÉVFOLYAM. Tájékozottság a racionális számkörben. Az azonosságok ismerete és alkalmazásuk. Számok abszolútértéke, normál alakja.

VIZUÁLIS KULTÚRA. Célok és feladatok

Rajz és vizuális kultúra érettségi vizsga Középszint

IFJÚSÁG-NEVELÉS. Nevelés, gondolkodás, matematika

Az enyhe értelmi fogyatékos fővárosi tanulók 2009/2010. tanévi kompetenciaalapú matematika- és szövegértés-mérés eredményeinek elemzése

Ismétlődő műveletek elvégzésének automatizálása

Azonosító jel: INFORMATIKA EMELT SZINTŰ GYAKORLATI VIZSGA május 19. 8:00. A gyakorlati vizsga időtartama: 240 perc

Teszt generálás webes alkalmazásokhoz

NIKerettanterv MATEMATIKA 1. évfolyan Éves óraszám: 180 óra, heti 5 óra

Dr. Pétery Kristóf: Word 2003 magyar nyelvű változat

értelmezéséhez, leírásához és kezeléséhez. Ezért a tanulóknak rendelkezniük kell azzal a képességgel és készséggel, hogy alkalmazni tudják

LOGISZTIKAI KÖLTSÉGELEMZÉS. Mi a kontrolling? Mutatószámok

INFORMATIKAI ALAPISMERETEK

Bánsághi Anna 1 of 67

SZÉCHENYI ISTVÁN EGYETEM

Az informatika tantárgy fejlesztési feladatait a Nemzeti alaptanterv hat részterületen írja elő, melyek szervesen kapcsolódnak egymáshoz.

Kiegészítő melléklet (elektronikus beszámoló)

MATEMATIKA. Tildy Zoltán Általános Iskola és Alapfokú Művészeti Iskola Helyi tanterv 1-4. évfolyam 2013.

Dr. Pétery Kristóf: Adobe Photoshop Elements 3

NEMZETI IFJÚSÁGI STRATÉGIA

INFORMATIKA 5-8. évfolyam

Kerettanterv Alapfokú nevelés-oktatás szakasza, alsó tagozat, 1 4. évfolyam

Szakmai program 2015

Egyszerű szabályos forduló a hátúszásban, és annak oktatása

Pedagógiai Program. Győri Móra Ferenc Általános Iskola és Szakközépiskola

1. Vásárlás regisztrációval a regisztrációs űrlap kitöltésével: felhasználónév, és cím megadásával, amiről ban visszaigazolást kap.

SZOFTVER = a számítógépet működtető és az azon futó programok összessége.

AJÁNLÓ évfolyam Számtan, algebra... 24

Követelmény, projekt, funkcionalitás 41 CSK 1

A hierarchikus adatbázis struktúra jellemzői

Az informatika tantárgy fejlesztési feladatait a Nemzeti alaptanterv hat részterületen írja elő, melyek szervesen kapcsolódnak egymáshoz.

INFORMATIKA HELYI TANTERV

Átírás:

AZ ALGORITMUSRÓL (bevezetés a programozáshoz) A bemutató készítéséhez felhasznált tartalmi forrás: (Sz)ámítástechnika 1.4, Budapest, Kvassay Jenő Műszaki Szakközépiskola és TIKETT Nyomdaipari Kft. 1994. [írták és szerkesztették Hubert Tibor, Mód Géza, Pfeiffer Ferenc a Kvassay Jenő MSZKI tanárai, korábbi és az 1993-94. tanév diákjai] A 6. és 8. diák piktogram képei Dancsó Tünde-Végh András: Számítástechnika 10-11 éveseknek (Műszaki Könyvkiadó, Budapest, 1997) tankönyvből származnak 1

Az algoritmus fogalma I. Mielőtt meghatároznánk az algoritmus fogalmát, tisztáznunk kell néhány félreértést ami abból fakadhat, hogy az algoritmus kifejezés olyan idegen szó, ami köznapi nyelvünknek nem a sajátja. Először tehát nézzük meg azt, mi nem jellemző az algoritmusra? Remélhetően ez is közelebb visz a fogalom pontos megértéséhez. 2

Mi nem jellemző az algoritmusra? Nincs kapcsolatban az algákkal (moszatokkal) Nincs semmi köze a szív ritmusos mozgásához Semmi köze a biológiai teljesítőképesség jellemzésére használt bioritmus fogalmához Nincs kapcsolatban a nappalok és éjszakák változásának ritmusával És nincs köze a zenéből és táncból ismert ritmus kifejezéshez sem 3

Egy kis szaknyelv történet... Hol volt, hol nem volt, élt egyszer - méghozzá Kr.u. a IX. században - egy arab matematikus, akinek a neve Muhammed ibu Muza al-khvarizmi volt 825-ben könyvet írt a fontosabb számolási módszerekről és eljárásokról Az Ő nevéből származtatják az algoritmus és az algebra szavakat (lásd nevének vastagon és dőlten szedett részét!) 4

Az algoritmus fogalma II. Avagy: Mi az algoritmus? Az algoritmus elemi lépésekből álló utasításokat tartalmaz Tevékenységek műveletek olyan sorozata, amely biztosan elvezet az adott feladat, probléma megoldásához Tartalmazza a megoldás pontos leírását, a megoldáshoz vezető műveletek milyenségét, sorrendjét ÖSSZEGEZVE: Az algoritmus egy feladattípus véges számú lépésre bontott Ez utóbbit kell megtanulnod! 5 megoldása

A telefonálás algoritmusa... Ez ábrás algoritmus leírás Lássunk egy példát! Emeld fel a helyéről a telefonkagylót! Helyezd be a nyílásba a telefonkártyát! Várd meg a tárcsahang búgását! Üsd be a számot! Ha a kicsengetés után fölveszik a telefont, akkor kezdj el beszélni! Tedd le a telefont! Vedd ki a kártyát! A jobbra olvasható pedig mondatokkal való algoritmus leírás 6

Az algoritmusok leírása Az algoritmus leírás eszközei a következők: mondatokkal való (hosszadalmas és pontatlan; ezt láthattad az előző dián) ábrás, rajzos leírás (piktogram, folyamatábra, struktogram) mondatszerű leírás (rövidített formalizált nyelv) kódolás (az algoritmus leírása egy adott programozási nyelv szabályai szerint [pl. Blockly, Logo, FreePascal, Visual Basic, Delphi, Lazarus, Java, AppInventor, stb.]) 7

1. Algoritmus leírása mondatokkal Emeld fel a helyéről a telefonkagylót! Helyezd be a nyílásba a telefonkártyát! Várd meg a búgó tárcsahangot! Üsd be a számot! Ha a kicsengetés után fölveszik a telefont, kezdj el beszélni! Tedd le a telefonkagylót! Vedd ki a kártyát! Algoritmus eleje A mondatokkal való algoritmus leírás hosszadalmas, pontatlan Algoritmus vége Ezek piktogramok, nem mondatok 8

2. A folyamatábra A teakészítés algoritmusának folyamatábrája Jelmagyarázat: Start ellipszis: algoritmus eleje, vége téglalap: utasítás rombusz: döntés, elágazás Főzz teát! paralelogramma: input, output adatok (a jelzett folyamatábra ilyet nem tartalmaz) Jó ízű? IGEN NEM Ízesítsd! Idd meg! A folyamatábrát főleg a BASIC alapú programozás előkészítésénél lehet igen jól használni Vége 9

3.1. A struktogram* (*szerkezeti diagram) Igen A teakészítés algoritmusának struktogramja Végy egy kanna vizet! Tedd fel melegedni! Várj! Felforrt? Vedd le a gázról! Mártogasd bele a filtert! Kellően elszínezte? Ízesítve szereted? Nem Ízesítsd! Ismétlődés - ciklus - jelölése az L alak. A ciklusnak ez a típusa hátultesztelő Idd meg! (nincs teendő) Elágazás jelölése a struktogramban 10

3.2. Számláló ciklus ábrázolása a struktrogram segítségével Az algoritmusos ismétlődéseket ciklusoknak hívjuk. Típusai: számláló ciklus hátul tesztelő ciklus elől tesztelő ciklus I:=1 I:=1-től 5-ig (ciklusfeltétel vizsgálata) Forgasd meg a kereket! Húzz egy golyót! Mutasd meg a kihúzott számot! I:=I+1 Ez nem matematikai egyenlőség, hanem értékadás A lottóhúzás algoritmusa számláló ciklust tartalmaz 11

3.3. Hátul tesztelő ciklus ábrázolása a struktogrammal Az algoritmusos ismétlődéseket ciklusoknak hívjuk. Típusai: számláló ciklus hátul tesztelő ciklus elől tesztelő ciklus Piócáktól hemzsegő csatornán kell átkelned, de se híd, se csónak nincs a közelben. Viszont cölöpök állnak ki a vízből egymástól lépésnyi távolságra, ezeken átsétálhatsz! Hátul tesztelő ciklus struktogramja. Figyeld meg jellegzetes L alakját! Lépj egyet! (ciklusmag utasítása) Nincs előtted elérhető cölöp? (ciklusfeltétel) Ezzel az algoritmussal szerencsés esetben a túlpartra juthatsz. Viszont, ha a legelső cölöp hiányzik... Akkor bizony a piócák járnak jól... 12

3.4. Elől tesztelő ciklus ábrázolása a struktogrammal Az algoritmusos ismétlődéseket ciklusoknak hívjuk. Típusai: számláló ciklus hátul tesztelő ciklus elől tesztelő ciklus Mi lenne tehát a megoldás? Az ilyen és hasonló esetekben (piócák, kezdő cölöp hiányzik, stb...) javaslom, hogy előbb vizsgálódj és csak azután cselekedj! Vagyis struktogram ábrázolással leírva: Van előtted cölöp? (ciklusfeltétel) Lépj egyet! Elől tesztelő ciklus struktogramja. Figyeld meg fejre állított L alakját! (ciklusmag utasítása) Elől tesztelő ciklusnál a feltételt mindig úgy fogalmazd meg, hogy nemleges válasz esetén kelljen a ciklusból kilépni, tehát a ciklusba lépés feltételét add meg! 13

3.5. Mi a teendő, ha a struktogram áttekinthetetlenül hosszú lenne? A vastag vonal utal rá: a részletek valahol máshol ki vannak dolgozva! Végy egy kanna vizet! MELEGÍTÉS Vedd le a gázról! Mártogasd bele a filtert! Várj! Kellően elszínezte? Igen Kihűlt időközben? Nem MELEGÍTÉS A MELEGÍTÉS eljárás tartalma: Idd meg! MELEGÍTÉS Tedd fel melegedni! Várj! Felforrt? (nincs teendő) Ilyenkor alkalmazzunk ELJÁRÁST... Az ELJÁRÁS-ok előnye, hogy akár többször is lehet utalni rájuk az algoritmus leírása során 14

4.1. Mondatszerű algoritmus-leírás A mondatokkal való algoritmus-leírás pontatlan és hosszadalmas, felhasználhatatlan a tényleges programkészítés előtt A bizonyos megkötéseket tartalmazó - formalizált nyelvet használó - leírást mondatszerű algoritmus-leírásnak nevezzük Az így elkészített algoritmus-leírás könnyedén felhasználható a megadott programnyelvre való átíráshoz, az un. kódoláshoz A formalizált nyelv főbb elemei: Algoritmus (program eleje és vége) Értékadás Ciklusok (elől tesztelő, hátul tesztelő, számláló) Elágazás és többirányú elágazás Eljárás definiálása Adat be- vagy kivitel (INPUT, OUTPUT 15

4.2. A formalizált nyelv elemei: a program eleje és vége A formalizált nyelvben a program elejét és végét így add meg: Algoritmus utasítások sorozata Algoritmus vége 16

4.2. A formalizált nyelv elemei: az értékadás A formalizált nyelvben az adatok különböző típusainak - a változóknak - értéket kell adni Értékadás: változó:=értéke vagy változó:=kifejezés értéke Például: x:=5 (az x legyen egyenlő öttel) x:=x+1 (x új értéke legyen x régi értéke +1) t:=a*m/2 17

4.3. A formalizált nyelv elemei: ciklusok Ha egy feladatot sokszor kell egymás után elvégezni a mondatszerű algoritmus-leírásnál (formalizált nyelvben) is ciklust használunk. Fajtái: számláló ciklus Ciklus x:=x1-től x2-ig (lépésköz delta) ciklusmag utasításai (ezek az ismétlődő utasítások) Ciklus vége hátul tesztelő ciklus Ciklus ciklusmag utasításai amíg feltétel Ciklus vége elől tesztelő ciklus Ciklus amíg feltétel ciklusmag utasításai Ciklus vége A lépésközt nem kell feltétlenül megadni, ilyenkor alapértelmezetten értéke 1. 18

4.4. A formalizált nyelv elemei: az elágazások Elágazás Ha feltétel akkor utasítások(1) különben utasítások(2) elágazás vége Többirányú elágazás változó=érték1 esetén utasítások(1) változó=érték2 esetén utasítások(2) változó=érték.. esetén utasítások(..) elágazás vége A mondatszerű leírás formáinak fontos elemei az elágazások 19

4.5. A formalizált nyelv elemei: eljárások definiálása A struktogramoknál már találkoztál az ELJÁRÁS fogalmával. Szerepe, hogy egy - az algoritmus során különböző esetekben - többször végrehajtandó utasítássorozatot nem kell minden alkalommal megírni. Elég egyszer, - nevet adva neki - majd a névvel hivatkozni rá a szükséges helyeken. Eljárás definiálása formalizált nyelven Eljárás eljárásnév utasítás(1), utasítás(2), utasítás(n) Eljárás vége Eljárás hívása Eljárásnév A teakészítésnél megismert MELEGÍTÉS eljárás meghívása a MELEGÍTÉS eljárásnévnek az algoritmus megfelelő helyén való elhelyezésével lehetséges 20

4.6. A formalizált nyelv elemei: adat be- vagy kivitel (INPUT, OUTPUT) Az adat be- vagy kivitel ilyen egyszerű a mondatszerű algoritmus-leírásnál: Be: változók értékei Ki: változók vagy kifejezés értéke Például: Be: a, m t:=a*m/2 Ki: t Ez a sor nem INPUT vagy OUTPUT, hanem ÉRTÉKADÁS 21

5.1. Kódolás Mondatszerűen megfogalmazott, vagy struktogrammal leírt algoritmusainkat valamely programnyelv segítségével tehetjük a számítógép számára is érthetővé. Ezt a folyamatot nevezzük kódolásnak. A legtöbb magas szintű programozási nyelvnek sok utasítása van, az utasítások a legtöbbször angol szavak vagy rövidítések. Minden magas szintű programnyelvhez szükség van fordítóprogramra, amely le tudja fordítani gépi (bináris) kódra az utasításokat. A processzor csak ezeket az utasításokat képes értelmezni, végrehajtani. Szükség van szövegszerkesztőre (editorra), amelyben megírhatjuk a programot. Szükség van - beépített - hibakeresést megkönnyítő szoftvereszközökre (debugger) 22

5.2. A kódolás eszközei a programozási nyelvek A kódolást különböző - karakteres vagy grafikus felületű - fejlesztő rendszerek (programozási nyelvek) segítségével végezhetjük el Például: TURBO PASCAL, FREE PASCAL SCRATCH, BLOCKLY LOGO, COMENIUS LOGO VISUAL BASIC, DELPHI, LAZARUS App Inventor, stb... 23

5.3. A Pascal programnyelv története... Niklaus Wirth professzor 1968-ban rakta le a Pascal nyelv alapjait azzal a céllal, hogy a nyelvvel a programozást okítsák, de a nyelv túl jól sikerült, így óriási karriert futott be... 1970-ben készült el első fordító programja (compiler) Nincs köze a zuglói Paskál területhez, nevét Blaise Pascal híres matematikus (XVII. sz.) iránti tiszteletből kapta A Turbo Pascal (TP) egyike az első PC-re készült programnyelveknek, a TP 1.0 1984-ben jelent meg. Az ingyenes FreePascal alkalmas matematikai számításokra, adatfeldolgozásra, grafikus megjelenítésre stb... A FP-hoz hasonlóan ingyenes az objektumorientált programozáshoz könnyedén használható Pascal alapú nyelv a LAZARUS Gyors fordítóprogramjuk, jól használható hibakeresőjük van 24

5.4. Pascal karakteres editora A háromszög területét számoló program kódja 25

5.5. Példa a kódolásra grafikus felületen: VISUAL BASIC Windows-os grafikus felület a kódoláshoz Windows-os jelleget viselő új szoftverek hozhatók létre Objektumorientált és eseményorientált programozás jellemzi Egérrel létrehozható grafikus elemek 26

5.6. Példa a kódolásra online vizuális felületen: BLOCKLY Online - böngészőben megnyíló - grafikus felület a kódoláshoz Puzzle szerű blokkokkal dolgozhatunk Grafikus rajzolója a Teknőc Interaktív felülete a Kódszerkesztő Megtekinthető, és esetenként szerkeszthető forráskód 27

Mi az algoritmus? Ellenőrző kérdések Mi az összefüggés az algoritmus és a program között? Milyen általános algoritmus-leíró formákat, eszközöket ismersz? Mi a folyamatábra és a struktogram? Mi a ciklus és milyen fajtái vannak? Milyen elágazási formákat ismersz? Mikor írunk ELJÁRÁS-t? Mit nevezünk kódolásnak? Milyen fejlesztőrendszerekről tudsz? 28