Algoritmizálás, adatmodellezés tanítása 1. előadás

Hasonló dokumentumok
Algoritmizálás, adatmodellezés tanítása 1. előadás

Algoritmizálás és adatmodellezés tanítása 2. előadás

Algoritmizálás, adatmodellezés tanítása 2. előadás

Egyszerű programozási tételek

9. előadás. Programozás-elmélet. Programozási tételek Elemi prog. Sorozatszámítás Eldöntés Kiválasztás Lin. keresés Megszámolás Maximum.

Programozás I. Egyszerű programozási tételek. Sergyán Szabolcs

Programozás I. Egyszerű programozási tételek. Sergyán Szabolcs

Programozási alapismeretek 1. előadás

Programozási alapismeretek. 1. előadás. A problémamegoldás lépései. A programkészítés folyamata. Az algoritmus fogalma. Nyelvi szintek.

Algoritmizálás, adatmodellezés 1. előadás

ELEMI PROGRAMOZÁSI TÉTELEK

Rekurzió. (Horváth Gyula és Szlávi Péter előadásai felhasználásával)

Előfeltétel: legalább elégséges jegy Diszkrét matematika II. (GEMAK122B) tárgyból

Informatikai tehetséggondozás:

Összetett programozási tételek

Bánsághi Anna 2014 Bánsághi Anna 1 of 68

Összetett programozási tételek Rendezések Keresések PT egymásra építése. 10. előadás. Programozás-elmélet. Programozás-elmélet 10.

PROGRAMOZÁSI TÉTELEK

Programozási alapismeretek 3. előadás

Programozási tételek. Dr. Iványi Péter

Algoritmizálás és adatmodellezés tanítása 3. előadás

Algoritmizálás és adatmodellezés 2. előadás

Az összetett programozási tételek is egy tőről fakadnak

Algoritmizálás, adatmodellezés tanítása 2. előadás

Készítette: Nagy Tibor István Felhasznált irodalom: Kotsis Domokos: OOP diasor Zsakó L., Szlávi P.: Mikrológia 19.

Algoritmizálás, adatmodellezés 1. előadás

Objektum Orientált Programozás VII.

Információk. Ismétlés II. Ismétlés. Ismétlés III. A PROGRAMOZÁS ALAPJAI 2. Készítette: Vénné Meskó Katalin. Algoritmus. Algoritmus ábrázolása

Pásztor Attila. Algoritmizálás és programozás tankönyv az emeltszintű érettségihez

Bevezetés a programozásba I.

Bevezetés az informatikába

Algoritmizálás, adatmodellezés tanítása 7. előadás

Informatikai tehetséggondozás:

Sorozatok határértéke SOROZAT FOGALMA, MEGADÁSA, ÁBRÁZOLÁSA; KORLÁTOS ÉS MONOTON SOROZATOK

Programozási tételek. PPT 2007/2008 tavasz.

Hatékonyság 1. előadás

Pásztor Attila. Algoritmizálás és programozás tankönyv az emeltszintű érettségihez

Objektumorientált Programozás VI.

Adatszerkezetek II. 10. előadás

Visszalépéses kiválogatás

Algoritmizálás. Horváth Gyula Szegedi Tudományegyetem Természettudományi és Informatikai Kar

Programozás alapjai (ANSI C)

5. előadás. Programozás-elmélet. Programozás-elmélet 5. előadás

Felvételi tematika INFORMATIKA

Programozás I. Sergyán Szabolcs Óbudai Egyetem Neumann János Informatikai Kar szeptember 10.

Informatikai tehetséggondozás:

A 2015/2016 tanévi Országos Középiskolai Tanulmányi Verseny első forduló javítási-értékelési útmutató. INFORMATIKA II. (programozás) kategória

Sorozatok. 5. előadás. Farkas István. DE ATC Gazdaságelemzési és Statisztikai Tanszék. Sorozatok p. 1/2

Informatikai tehetséggondozás:

Programozás I. Metódusok C#-ban Egyszerű programozási tételek. Sergyán Szabolcs

Kombinatorikai algoritmusok. (Horváth Gyula és Szlávi Péter előadásai felhasználásával)

Visszalépéses keresés korlátozással

Egyszerű programozási tételek

Összetett programozási tételek 2.

Bevezetés a programozásba. 5. Előadás: Tömbök

Algoritmizálás és adatmodellezés tanítása 9. előadás

Kombinatorikai algoritmusok

1. Alapfogalmak Algoritmus Számítási probléma Specifikáció Algoritmusok futási ideje

Algoritmizálás és adatmodellezés tanítása 6. előadás

Programozás alapjai 9.Gy: Struktúra 2.

Algoritmizálás, adatmodellezés tanítása 6. előadás

Sorozat érték típusú programozási tételek

10. gyakorlat Tömb, mint függvény argumentum

Láncolt listák Témakörök. Lista alapfogalmak

Térinformatikai algoritmusok Elemi algoritmusok

Bevezetés a programozásba I 3. gyakorlat. PLanG: Programozási tételek. Programozási tételek Algoritmusok

PROGRAMOZÁSMÓDSZERTAN

Adatbázis és szoftverfejlesztés elmélet. Programozási tételek

Algoritmizálás, adatmodellezés tanítása 8. előadás

Változók. Mennyiség, érték (v. objektum) szimbolikus jelölése, jelentése Tulajdonságai (attribútumai):

Egyszerű programozási tételek

Algoritmizálás és adatmodellezés tanítása 1. előadás

Programkonstrukciók A programkonstrukciók programfüggvényei Levezetési szabályok. 6. előadás. Programozás-elmélet. Programozás-elmélet 6.

Programozási segédlet

Programozás II. előadás

Térinformatikai algoritmusok Elemi algoritmusok

Informatikai tehetséggondozás:

Alkalmazott modul: Programozás. Programozási tételek, rendezések. Programozási tételek Algoritmusok és programozási tételek

Kép mátrix. Feladat: Pap Gáborné-Zsakó László: Algoritmizálás, adatmodellezés 2/35

Bevezetés a programozásba I 4. gyakorlat. PLanG: Szekvenciális fájlkezelés. Szekvenciális fájlkezelés Fájlok használata

Informatikai tehetséggondozás:

Bevezetés a programozásba I 4. gyakorlat. PLanG: Szekvenciális fájlkezelés

A 2013/2014 tanévi Országos Középiskolai Tanulmányi Verseny első forduló javítási-értékelési útmutató. INFORMATIKA II. (programozás) kategória

Webprogramozás szakkör

Programozási alapismeretek. Bevezető

Bánsághi Anna 2014 Bánsághi Anna 1 of 33

Pásztor Attila. Algoritmizálás és programozás tankönyv az emeltszintű érettségihez

A 2008/2009 tanévi Országos Középiskolai Tanulmányi Verseny első forduló feladatainak megoldása. INFORMATIKÁBÓL II. (programozás) kategóriában

Bevezetés a programozásba

Bevezetés a matematikába (2009. ősz) 1. röpdolgozat

Algoritmusok és adatszerkezetek I. 3. előadás

Programozás I. Sergyán Szabolcs Óbudai Egyetem Neumann János Informatikai Kar szeptember 10.

1. Feladat: beolvas két számot úgy, hogy a-ba kerüljön a nagyobb

Rekurzív algoritmusok

Bevezetés a programozáshoz I. Feladatok

Megjegyzés: A programnak tartalmaznia kell legalább egy felhasználói alprogramot. Példa:

Algoritmizálás és adatmodellezés tanítása beadandó feladat: Algtan1 tanári beadandó /99 1

A félév során előkerülő témakörök

A sorozat fogalma. függvényeket sorozatoknak nevezzük. Amennyiben az értékkészlet. az értékkészlet a komplex számok halmaza, akkor komplex

Adatszerkezetek I. 1. előadás

Átírás:

Algoritmizálás, adatmodellezés 1. előadás

Az algoritmus fogalma végrehajtható (van hozzá végre-hajtó) lépésenként hajtható végre a lépések maguk is algoritmusok pontosan definiált, adott végre-hajtási sorrenddel egy folyamat véges hosszúságú, időben esetleg végtelen leírása 2010.09.06. 2 Zsakó László: Algoritmizálás, adatmodellezés

Az algoritmus fogalma Az algoritmusok összerakási módjai: Szekvencia (egymás utáni végrehajtás) Elágazás (választás 2 vagy több tevékenységből) Ciklus (ismétlés adott darabszámszor vagy adott feltételtől függően) 2010.09.06. 3 Zsakó László: Algoritmizálás, adatmodellezés

A specifikáció 1. Bemenő adatok (értékhalmaz, mértékegység) 2. Ismeretek a bemenetről (előfeltétel) 3. Eredmények (értékhalmaz, ) 4. Az eredmény kiszámítási szabálya (utófeltétel) 5. A megoldással szembeni követelmények 6. Korlátozó tényezők 7. A használt fogalmak definíciói 2010.09.06. 4 Zsakó László: Algoritmizálás, adatmodellezés

A specifikáció Tulajdonságai 1. Egyértelmű, pontos, teljes 2. Rövid, tömör, formalizált 3. Szemléletes, érthető Specifikációs eszközök 1. Szöveges leírás 2. Matematikai megadás 2010.09.06. 5 Zsakó László: Algoritmizálás, adatmodellezés

Tömb Sorozat: azonos típusú elemek egymásutánja, az elemei sorszámozhatók. Tömb: véges hosszúságú sorozat, a sorozat i-edik tagjával végezhetünk műveleteket; adott a legkisebb és a legnagyobb index. Indexek: sokszor 1..N, máskor a..b. Példa: X: Tömb[1..N: Egész] Szín: Tömb[0..4: Szöveg]= ( zöld, piros, sárga, fehér, fekete ) 6

Programozási tételek Mi van a ciklusokkal? Programozási tételek! Mi az, hogy programozási tétel? Típusfeladat általános megoldása. Sorozat érték Sorozat sorozat Sorozat sorozatok Sorozatok sorozat 7

1. Sorozatszámítás Feladatok: Ismerjük egy ember havi bevételeit és kiadásait. Adjuk meg, hogy év végére mennyivel nőtt a vagyona! Ismerjük egy autóversenyző körönkénti idejét. Adjuk meg az átlagkörének idejét! Adjuk meg az N számhoz az N faktoriális étékét! 8

1. Sorozatszámítás Feladatok: Ismerjük egy iskola szakköreire járók tanulóit szakkörönként. Adjuk meg a szakkörre járó tanulókat! Ismerünk N szót. Adjuk meg a belőlük összeállított mondatot! Mi bennük a közös? N darab valamiből kell kiszámolni egy darab valamit! 9

1. Sorozatszámítás Bemenet: N: Egész, X: Tömb[1..N: Valami] Kimenet: S: Valami Előfeltétel: Utófeltétel: S=F(X[1],,X[N]) Probléma: a programozásban nincs N paraméteres művelet. 10

1. Sorozatszámítás Probléma: a programozásban nincs N paraméteres művelet. Megoldás: visszavezetjük 2-paraméteres műveletre (pl. helyett +) és egy null-elemre (+ esetén a 0). F(X[1],,X[N])= f(f(x[1],,x[n-1]),x[n]) ha N>0 F( )=F0 11

1. Sorozatszámítás Sorozatszámítás: S:=F0 Ciklus i=1-től N-ig S:=f(S,X[i]) Ciklus vége Eljárás vége. 12

1. Sorozatszámítás: vagyon Bemenet: N: Egész, Be,Ki: Tömb[1..N: Egész] Kimenet: S: Egész Előfeltétel: Utófeltétel: i 1 Be[ i] Sorozatszámítás: S:=0 Ciklus i=1-től N-ig S:=S+Be[i]-Ki[i] Ciklus vége Eljárás vége. S N Ki[ i] 13

2. Eldöntés Feladatok: Egy természetes számról döntsük el, hogy prímszám-e! Egy szóról mondjuk meg, hogy egy hónapnak a neve-e! Egy tanuló év végi osztályzatai alapján állapítsuk meg, hogy bukott-e! Egy szóról adjuk meg, hogy van-e benne magánhangzó! 14

2. Eldöntés Feladatok: Egy számsorozatról döntsük el, hogy monoton növekvő-e! Egy tanuló év végi jegyei alapján adjuk meg, hogy kitűnő-e! Mi bennük a közös? Döntsük el, hogy N darab valami között van-e adott tulajdonsággal rendelkező elem! 15

2. Eldöntés Bemenet: N: Egész, X: Tömb[1..N: Valami] Kimenet: Van: Logikai Előfeltétel: Utófeltétel: Van= i (1 i N): T(X[i]) A T tulajdonság egy logikai függvényként adható meg, minden elemről megvizsgálható, hogy rendelkezik-e az adott tulajdonsággal. 16

2. Eldöntés Eldöntés: i:=1 Ciklus amíg i N és nem T(X[i]) i:=i+1 Ciklus vége Van:=i N Eljárás vége. 2010.09.06. Zsakó László: Algoritmizálás, adatmodellezés 17

2. Eldöntés Bemenet: N: Egész, X: Tömb[1..N: Valami] Kimenet: Mind: Logikai Előfeltétel: Utófeltétel: Mind= i (1 i N): T(X[i]) Másképp: mind olyan nincs nem olyan! 18

2. Eldöntés Eldöntés: i:=1 Ciklus amíg i N és T(X[i]) i:=i+1 Ciklus vége Mind:=i>N Eljárás vége. Az eredetihez képest két helyen kell tagadni! 19

2. Eldöntés: bukott Bemenet: N: Egész, Jegy: Tömb[1..N:Egész] Kimenet: Bukott: Logikai Előfeltétel: i(1 i N): Jegy[i] {1,2,3,4,5} Utófeltétel: Bukott= i (1 i N): Jegy[i]=1 Eldöntés: i:=1 Ciklus amíg i N és Jegy[i] 1 i:=i+1 Ciklus vége Bukott:=i N Eljárás vége. 20

3. Kiválasztás Feladatok: Ismerjük egy ember havi bevételeit és kiadásait. Év végére nőtt a vagyona. Adjunk meg egy hónapot, amikor nőtt a vagyona! Adjuk meg egy természetes szám 1-től különböző legkisebb osztóját! 21

3. Kiválasztás Feladatok: Adjuk meg egy magyar szó egy magánhangzóját! Adjuk meg egy hónapnévről a sorszámát! Mi bennük a közös? N darab valami közül kell megadni egy adott tulajdonságút, ha tudjuk, hogy ilyen elem biztosan van. 22

3. Kiválasztás Bemenet: N: Egész, X: Tömb[1..N: Valami] Kimenet: S: Egész Előfeltétel: i (1 i N): T(X[i]) Utófeltétel: 1 S N és T(X[S]) A T tulajdonság egy logikai függvényként adható meg, minden elemről megvizsgálható, hogy rendelkezik-e az adott tulajdonsággal. 23

3. Kiválasztás Kiválasztás: i:=1 Ciklus amíg nem T(X[i]) i:=i+1 Ciklus vége S:=i Eljárás vége. Többlet tudás: a megoldás az első adott tulajdonságú elemet adja meg. 24

3. Kiválasztás: magánhangzó Bemenet: N: Egész, Szó: Tömb[1..N: Karakter] Kimenet: S: Egész Előfeltétel: i (1 i N): magánhangzó(szó[i]) Utófeltétel: 1 S N és magánhangzó(szó[s]) Kiválasztás: i:=1 Ciklus amíg nem magánhangzó(szó[i]) i:=i+1 Ciklus vége S:=i Eljárás vége. 25

4. Keresés Feladatok: Ismerjük egy ember havi bevételeit és kiadásait. Év végére nőtt a vagyona. Adjunk meg egy hónapot, amikor nem nőtt a vagyona! Adjuk meg egy természetes szám egy 1-től és önmagától különböző osztóját! Adjuk meg egy ember nevében egy a- betű helyét! 26

4. Keresés Feladatok: Adjunk meg egy tanulóra egy tárgyat, amiből megbukott! Adjuk meg egy számsorozat olyan elemét, amely nagyobb az előzőnél! Mi bennük a közös? N darab valami közül kell megadni egy adott tulajdonságút, ha nem tudjuk, hogy ilyen elem van-e. 27

4. Keresés Bemenet: N: Egész, X: Tömb[1..N: Valami] Kimenet: Van: Logikai, S: Egész Előfeltétel: Utófeltétel: Van= i (1 i N): T(X[i]) és Van 1 S N és T(X[S]) Azaz eldöntés és kiválasztás együtt! 28

4. Keresés Keresés: i:=1 Ciklus amíg i N és nem T(X[i]) i:=i+1 Ciklus vége Van:=i N Ha Van akkor S:=i Eljárás vége. Többlet tudás: a megoldás az első adott tulajdonságú elemet adja meg. 29

4. Keresés: 1-es jegy Bemenet: N: Egész, Jegy: Tömb[1..N:Egész] Kimenet: Van: Logikai, S: Egész Előfeltétel: i(1 i N): Jegy[i] {1,2,3,4,5} Utófeltétel: Van= i (1 i N): Jegy[i]=1 és Van 1 S N és Jegy[S]=1 30 30

4. Keresés: 1-es jegy Keresés: i:=1 Ciklus amíg i N és Jegy[i] 1 i:=i+1 Ciklus vége Van:=i N Ha Van akkor S:=i Eljárás vége. 31 31

5. Megszámolás Feladatok: Ismerjük egy ember havi bevételeit és kiadásait. Adjunk meg, hogy hány hónapban nőtt a vagyona! Adjuk meg egy természetes szám osztói számát! Adjuk meg egy ember nevében levő a- betűk számát! 32

5. Megszámolás Feladatok: Adjuk meg az éves statisztika alapján, hogy hány napon fagyott! Adjuk meg N születéshónap alapján, hogy közöttük hányan születtek télen! Mi bennük a közös? N darab valamire kell megadni, hogy hány adott tulajdonságú van közöttük. 33

5. Megszámolás Bemenet: N: Egész, X: Tömb[1..N: Valami] Kimenet: Db: Egész Előfeltétel: Utófeltétel: Db N 1 T i 1 ( X [ i]) 34

5. Megszámolás Megszámolás: Db:=0 Ciklus i=1-től N-ig Ha T(X[i]) akkor Db:=Db+1 Ciklus vége Eljárás vége. 35

5. Megszámolás: télen születettek Bemenet: N: Egész, Szül: Tömb[1..N:Egész] Kimenet: Db: Egész Előfeltétel: i (1 i N): Szül[i] {1,,12} Utófeltétel: Db Szül[ i] 3 vagy Szül[ i] 12 Megszámolás: Db:=0 Ciklus i=1-től N-ig Ha Szül[i]<3 vagy Szül[i]=12 akkor Db:=Db+1 Ciklus vége Eljárás vége. 36 N i 1 1

6. Maximumkiválasztás Feladatok: Ismerjük egy ember havi bevételeit és kiadásait. Adjuk meg, hogy melyik hónapban nőtt legjobban a vagyona! Adjuk meg N ember közül az ábécében utolsót! Adjuk meg N ember közül azt, aki a legtöbb ételt szereti! 37

6. Maximumkiválasztás Feladatok: Adjuk meg az éves statisztika alapján a legmelegebb napot! Adjuk meg N születésnap alapján azt, akinek idén először van születésnapja! Mi bennük a közös? N darab valamire kell megadni közülük a legnagyobbat (vagy a legkisebbet). 38

6. Maximumkiválasztás Bemenet: N: Egész, X: Tömb[1..N: Valami] Kimenet: Max: Egész Előfeltétel: N>0 Utófeltétel: 1 Max N és i (1 i N): X[Max] X[i] Megjegyzés: a sorszám általánosabb, mint az érték, a sorszámot adjuk meg. Kell lenni a Valamire < relációnak! 2010.09.06. 39

6. Maximumkiválasztás Maximumkiválasztás: Max:=1 Ciklus i=2-től N-ig Ha X[i]>X[Max] akkor Max:=i Ciklus vége Eljárás vége. Többlet tudás: ha több maximális érték is van, akkor közülük az elsőt kapjuk meg. Variációk: >, <,,. 40

6. Maximumkiválasztás Maximális érték megadása: Kimenet: MaxÉrt: Valami Utófeltétel: i (1 i N): MaxÉrt=X[i] és i (1 i N): MaxÉrt X[i] Maximumkiválasztás: MaxÉrt:=X[1] Ciklus i=2-től N-ig Ha X[i]>MaxÉrt akkor Maxért:=X[i] Ciklus vége Eljárás vége. 41

6. Maximumkiválasztás: legkorábbi születésnap Bemenet: N: Egész, Hó,Nap: Tömb[1..N: Egész] Kimenet: Min: Egész Előfeltétel: N>0 Utófeltétel: 1 Min N és i (1 i N): Hó[Min]<Hó[i] vagy Hó[Min]=Hó[i] és Nap[Min] Nap[i] 42

6. Maximumkiválasztás: legkorábbi születésnap Minimumkiválasztás: Min:=1 Ciklus i=2-től N-ig Ha Hó[Min]>Hó[i] vagy Hó[Min]=Hó[i] és Nap[Min]>Nap[i] akkor Min:=i Ciklus vége Eljárás vége. 43

Programozási tételek 1. Sorozatszámítás (összegzés) 2. Eldöntés 3. Kiválasztás 4. Keresés 5. Megszámolás 6. Maximumkiválasztás 44

Algoritmizálás, adatmodellezés 1. előadás vége