Az algoritmus 1 ALGORITMUS Az algoritmus fogalma Egy

  • Slides: 24
Download presentation
Az algoritmus 1

Az algoritmus 1

ALGORITMUS Az algoritmus fogalma: Egy adott probléma megoldását jelentő, elemi lépések véges számú műveletsorozata.

ALGORITMUS Az algoritmus fogalma: Egy adott probléma megoldását jelentő, elemi lépések véges számú műveletsorozata. Az algoritmusok különböző nyelveken - programozási vagy akár természetes, emberi nyelven is - készülhetnek, de mindenképpen egyértelműnek kell lenniük, és jól meghatározott bemeneti valamint kimeneti pont(ok)kal kell rendelkezniük. Legáltalánosabb értelemben: tervszerűség. Ha egy elvégzendő cselekvéssorozatot lépésről lépésre előre átgondolunk, megtervezünk, úgy is mondhatjuk, hogy algoritmust adunk egy adott cél elérésére. 2

Egyszerű példák Vásárolj be az üzletbe! a)Belépés az üzletbe b)Termékek kiválasztása c) Fizetés d)Távozás

Egyszerű példák Vásárolj be az üzletbe! a)Belépés az üzletbe b)Termékek kiválasztása c) Fizetés d)Távozás az üzletből Egyszerű számolási algoritmus: a) Gondolj egy számra! b) Adj hozzá 5 -öt! c) Szorozd be 2 -vel! d) Közöld a végeredményt! Az algoritmus fogalma: Egy adott probléma megoldását jelentő, elemi lépések véges számú műveletsorozata. 3

Egyszerű példák Algoritmus két szám összeadására (a, b): a) kezdés b) bemenet a, b

Egyszerű példák Algoritmus két szám összeadására (a, b): a) kezdés b) bemenet a, b (add meg az a, b-t) c) c = a + b (add össze a, b eredményt mentsd a c-be ( c = a + b ) d) kimenet c (írd ki a c értékét) e) vég Algoritmus számok kiiratására a-tól b-ig (a > b) Bemenet: a, b Kimenet: számok a-tól b-ig 1. kezdés 2. bemenet a, b 3. i = a 4. ha i <= b akkor ismételd 5. , 6. : egyébként ugorj a 7. pontba. 5. kimenet i 6. i = i + 1 7. vég 4

Egyszerű példák Algoritmus két szám közüli nagyobbik szám megállapítására (a, b): bemenet: a, b

Egyszerű példák Algoritmus két szám közüli nagyobbik szám megállapítására (a, b): bemenet: a, b kimenet: a vagy b 1. kezdés 2. bemenet: a, b 3. ha a > b akkord írd ki az a-t : egyébként ugorj a 4. -es pontba 4. írd ki a b-t 5. vég 5

Egyszerű példák Algoritmust tehát megadhatunk például egy „kombo” asztal (vagy egyéb bútor) összeszerelésére, valamilyen

Egyszerű példák Algoritmust tehát megadhatunk például egy „kombo” asztal (vagy egyéb bútor) összeszerelésére, valamilyen élelmiszer, mondjuk sajt (vagy bármilyen tejipari termék) elkészítésének módjára, vagy éppen két egész szám legnagyobb közös osztójának kiszámolására. A számítógépes programok általában tartalmaznak algoritmusok-at, ezekkel utasítják a gépet az adott feladat végrehajtására. Az algoritmus fogalma: Egy adott probléma megoldását jelentő, elemi lépések véges számú műveletsorozata. 6

Algoritmus egy olyan elemi lépéssorozat, amelyik: – véges (a lépések száma és a végrehajtás

Algoritmus egy olyan elemi lépéssorozat, amelyik: – véges (a lépések száma és a végrehajtás ideje egyaránt véges) – teljes (egy problémaosztály minden fölmerülő problémáját meg tudja oldani kezelje a szélsőséges eseteket is) – egyértelmű (bármeddig jutunk el a lépéssorozatban, egyértelműen meg kell tudni mondani, melyik lépés következik) – determinisztikus (ha a kiindulási feltételek ugyanazok, akkor mindig ugyanarra az eredményre kell, hogy jussak) 7

Az algoritmus tartalmaznia kell: Bemenő adato(ka)t, amelyeket felhasznál. Legalább egy kimenő adatot. Az algoritmus

Az algoritmus tartalmaznia kell: Bemenő adato(ka)t, amelyeket felhasznál. Legalább egy kimenő adatot. Az algoritmus műveletei szekvenciák (utasítások egymás utánisága) iterációk más néven ciklusok (utasítások ismétlődése) szelekciók (az algoritmus feltételtől függő elágaztatása) 8

ALGORITMUSOK MEGADÁSA Céljuk a megoldás menetének programozási nyelvtől független, szemléletes leírása. – Elő beszédben

ALGORITMUSOK MEGADÁSA Céljuk a megoldás menetének programozási nyelvtől független, szemléletes leírása. – Elő beszédben elmondom vagy leírom – Mondatszerű leírás – Folyamatábra – Struktogram 9

Mondatok – utasításai sorszámozott mondatok – a követést a sorszámok biztosítják – nehezen áttekinthető,

Mondatok – utasításai sorszámozott mondatok – a követést a sorszámok biztosítják – nehezen áttekinthető, olvasható Például: 1. Emelje fel a kézi beszélőt 2. Várja meg a tárcsahangot 3. Ha van búgó hang, akkor folytassa az 5. soron! 4. Keressen egy másik telefonkészüléket! Folytassa a 7. soron! 5. Dobjon be egy 1 tantuszt! 6. Tárcsázzon! 7. Vége 10

Egy napunk algoritmusa mondatszerűen leírva 11

Egy napunk algoritmusa mondatszerűen leírva 11

Feladat Hozzunk létre mondatok segítségével egy algoritmust, amellyel megtudjuk, hogy az adott szám páros-e?

Feladat Hozzunk létre mondatok segítségével egy algoritmust, amellyel megtudjuk, hogy az adott szám páros-e? 1. 2. 3. 4. 5. Bekérjük a számot. Megállapítjuk, hogy osztható-e kettővel? Ha igen kiíratjuk, hogy páros. Ugrás a 5. pontba. Ha nem kiíratjuk, hogy páratlan. Vége 12

FOLYAMATÁBRA Alapelveit Neumann János dolgozta ki. Az egyes szerkezeti elemek között nyilakkal jelöljük a

FOLYAMATÁBRA Alapelveit Neumann János dolgozta ki. Az egyes szerkezeti elemek között nyilakkal jelöljük a végrehajtási sorrendet. Irányított gráf egy kezdő- és egy végszimbólummal rendelkezik. START-ból bármelyik csomópont elérhető. 13

A folyamatábra jelei A tevékenységeknek síkidomokat feleltetünk meg § Ellipszis: a folyamatábra indulási és

A folyamatábra jelei A tevékenységeknek síkidomokat feleltetünk meg § Ellipszis: a folyamatábra indulási és befejezési pontja § Téglalap: elemi tevékenységek § Rombusz: elágazás, választás § Paralelogramma: input és output tevékenységek § Nyilak: jelzik a haladás irányát 14

Folyamatábra jelölései START Kezdőpont jele: minden algoritmusban csak 1 van belőle, pontosan 1 él

Folyamatábra jelölései START Kezdőpont jele: minden algoritmusban csak 1 van belőle, pontosan 1 él indul ki belőle és egy sem csatlakozik bele STOP Végpont jele: minden algoritmusban csak 1 van belőle, pontosan 1 él csatlakozik bele és egy sem indul ki belőle be: vált 1, vált 2 ki: kif 1, kif 2 Beolvasás és kiíratás szimbóluma: legalább 1 él csatlakozik bele és pontosan 1 él indul ki belőle változó: =kifejezés Értékadás szimbóluma: a kifejezés értéke a változóban lesz tárolva. Legalább 1 él csatlakozik bele és pontosan 1 indul ki belőle 15

Folyamatábra jelölései (folyt. ) feltétel részalgoritmus beállít, vizsgál, léptet Döntés (elágazás) szimbóluma: ha a

Folyamatábra jelölései (folyt. ) feltétel részalgoritmus beállít, vizsgál, léptet Döntés (elágazás) szimbóluma: ha a feltétel igaz, akkor az igaz ágon, ellenkező esetben a hamis ágon folytatódik az algoritmus. Legalább 1 él csatlakozik bele, és legalább 1 indul ki belőle Beágyazás szimbóluma: egy máshol leírt (rész)algoritmust helyettesít. Legalább 1 él csatlakozik bele és pontosan 1 indul ki belőle Ciklikus végrehajtás szimbóluma: három műveletet tartalmaz (számláló beállítása, vizsgálata és léptetése). Pontosan 2 él indul ki belőle és pontosan 2 él érkezik bele 16

Például: telefonálás folyamatábrája? 17

Például: telefonálás folyamatábrája? 17

Egy napunk algoritmusa folyamatábrával leírva § Szekvencia § Szelekció § Iteráció 18

Egy napunk algoritmusa folyamatábrával leírva § Szekvencia § Szelekció § Iteráció 18

Például: páros-e a bekért szám? 19

Például: páros-e a bekért szám? 19

Két elem rendezése § Két elemet rendezünk növekvő sorrendbe § Bekérjük a két elemet

Két elem rendezése § Két elemet rendezünk növekvő sorrendbe § Bekérjük a két elemet § Megvizsgáljuk, hogy A nagyobb-e mint B § Ha nagyobb, akkor felcseréljük a két elemet egy segédváltozó segítségével § Ha nem nagyobb, akkor nem kell csinálni semmit az elemek már növekvő sorrendben vannak § Kiírjuk a két elemet 20

Három elem rendezése § Három elemet rendezünk növekvő sorrendbe § Bekérjük a három elemet

Három elem rendezése § Három elemet rendezünk növekvő sorrendbe § Bekérjük a három elemet § Ha A nagyobb mint B, akkor felcseréljük a két elemet § Ha B nagyobb mint C, akkor felcseréljük a két elemet § Ha A nagyobb mint B, akkor felcseréljük a két elemet § Kiírjuk a három elemet 21

Minimum elvű rendezés § A minimum elvű rendezésnél a rendezetlen elemek közül a legkisebbet

Minimum elvű rendezés § A minimum elvű rendezésnél a rendezetlen elemek közül a legkisebbet rakjuk be a már rendezett elemek után § Első lépésben A elemet hasonlítom össze a mögötte álló elemekkel, ha bármelyik elem kisebb nála, felcserélem őket § Ugyanígy kell eljárni az összes többi elem esetében kivéve az utolsó D elemet, mert mire hozzá érünk már rendezett lesz, vele nem kell tenni semmit 22

Buborék rendezés § Buborék rendezésnél a kisebb elemek a sor eleje felé, a nagyobbak

Buborék rendezés § Buborék rendezésnél a kisebb elemek a sor eleje felé, a nagyobbak pedig a sor vége felé haladnak § Ennél a rendezésnél mindig a szomszédos elemeket hasonlítjuk össze, és ha kell felcseréljük őket § Az első futtásnál a sor összes elemén végigmegyünk és a legnagyobb elem a sor végére kerül § A második futásnál a második legnagyobb elem kerül a helyére § Így haladva tovább az algoritmus végén a sor rendezetté válik 23

Beszúró rendezés § A beszúró rendezésnél az elemeket egy már rendezett sorba szúrjuk be

Beszúró rendezés § A beszúró rendezésnél az elemeket egy már rendezett sorba szúrjuk be § Feltételezzük, hogy az elemünktől balra található elemek már rendezett sort alkotnak § Megkeressük az elemünk helyét ebben a rendezett sorban § Akkor találtuk meg a helyét a sorban, ha tőle balra nála kisebb elem helyezkedik el § Az első elemet sohasem vizsgáljuk meg, mert az már magában rendezett, első lépésben mindig a második elemet hasonlítjuk össze az elsővel 24