Az algoritmus.

Slides:



Advertisements
Hasonló előadás
Nevezetes algoritmusok
Advertisements

Készítette: Mester Tamás METRABI.ELTE.  Adott egy G irányított vagy irányítás nélküli, véges gráf. Az eljárás célja a G gráf összes csúcsának bejárása.
Természetes számok 0, 1, 2, 3, ..., 24, 25, ..., 1231, 1232, ..., n, ...  = {0, 1, 2, 3, ..., n,...} a természetes számok halmaza Műveletek: összeadás.
Programozási feladatok
83. (1 pont) A felsorolt végeredmények, hatások közül karikázza be a mondatszerű leírással (szöveggel) megadott algoritmus eredményét jelölő betűt, ha.
Definíciók: Algoritmus: bármely véges sok lépéssel leírható tevékenység. Olyan pontos előírás, amely megmondja, hogy egy adott típushoz tartozó feladat.
Összefoglalás Hardver,szoftver,perifériák Memóriák fajtái
Algoritmusok.
Adatelemzés számítógéppel
Algoritmusleíró eszközök
Programozási tételek, és „négyzetes” rendezések
Matematika és Tánc Felkészítő tanár: Komáromi Annamária
Algoritmus Az algoritmus problémamegoldásra szolgáló elemi lépések olyan sorozata, amely: véges – azaz véges számú lépés után befejeződik, és eredményt.
Programozás alapjai.
Algoritmusok Az algoritmus fogalma:
C A C nyelv utasításai.
Készítette: Pető László
Algebrai törtek.
Programozás módszertan
Algoritmizálás Göncziné Kapros Katalin humaninformatika.ektf.hu.
Algoritmusok Tusnádi István
1 Miskolci Egyetem Informatikai Intézet Általános Informatikai Tanszé k Pance Miklós Adatstruktúrák, algoritmusok előadásvázlat 1. Bevezetés Miskolc, 2004.
1. Univerzális nyelő Csúcsmátrixos ábrázolás esetén a legtöbb gráfalgoritmus futási ideje O(n2) azonban van kivétel. Egy irányított gráf egy csúcsa univerzális.
Szélességi bejárás A szélességi bejárással egy irányított vagy irányítás nélküli véges gráfot járhatunk be a kezdőcsúcstól való távolságuk növekvő sorrendjében.
A problémamegoldás lépései
Algoritmus. Folyamatábrák
Ismétlő struktúrák.
Az algoritmusok áttekinthető formában történő leírására szolgáló eszközök Páll Boglárka.
Rendezési algoritmusok
Algoritmusok Páll Boglárka.
Ismétlés.
Az algoritmusok áttekinthető formában történő leírására szolgáló eszközök Páll Boglárka.
Algoritmusok.
ALGORITMUS.
Algoritmusok.
ismétlődő (azonos vagy hasonló) tevékenységek megvalósítására szolgál
ALGORITMUSOK.
Algoritmusok és készítésük
Ciklusok (iterációk).
Összetett adattípusok
Programozási nyelvek.
Algoritmus szerkezetek
Programozási alapismeretek 11. előadás. ELTE Szlávi-Zsakó: Programozási alapismeretek 11.2/ Tartalom  Rendezési.
Algoritmusok.
Az algoritmuskészítés alapjai
ProgramozásProgramozás célja hosszabb számítások elvégzése ill. kiíratása akkor érdemes programot írni, ha sok számolni való van illetve ha ugyanazt az.
Programozás, programtervezés
Török Katalin és Marosi Nóra 11/c. Pascal: Az es években megjelent magas szintű programozási nyelv, közel áll az emberi gondolkodáshoz. Nevét.
Algoritmusok. Az algoritmus meghatározott sorrendben elvégzendő műveletek előírása, mint azonos típusú (matematikai, logikai) feladatok megoldására alkalmas.
Algoritmizálás és programozás tanítása Balogh Zoltán PTE-TTK IÁTT Az algoritmuskészítés.
Összeállította: Sashalmi Tibor
Algoritmizálás, adatmodellezés
Objektum orientált programozás
Grafikus programozás Készítette: Csernok László
Gráf szélességi bejárása. Cél Az algoritmus célja az, hogy bejárjuk egy véges gráf összes csúcsát és kiírjuk őket a kezdőcsúcstól való távolságuk szerint.
INFOÉRA Gráfok, gráfalgoritmusok II. (Horváth Gyula és Szlávi Péter előadásai felhasználásával) Juhász István-Zsakó László: Informatikai.
Adatszerkezetek és algoritmusok 2008/ Algoritmus Az algoritmus szó eredete a középkori arab matematikáig nyúlik vissza, egy a i.sz. IX. században.
A NEUMANN-ELVŰ SZÁMÍTÓGÉP. A számítógép:  Információk tárolására, feldolgozására szolgáló eszköz.
Programozás alapjai Készítette: Csiszár Nóra Anita
Algoritmusok Tusnádi István
Programozási alapok.
Nevezetes algoritmusok
Mediánok és rendezett minták
Az algoritmus.
Algoritmizálás.
Bevezetés a programozásba Algoritmikus gondolkodás
Algoritmusok Az algoritmus fogalma:
Számítógépes algoritmusok
Algoritmusok szerkezete
Algoritmus készítés.
Előadás másolata:

Az algoritmus

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.

Egyszerű példák Vásárolj be az üzletbe! Belépés az üzletbe Termékek kiválasztása Fizetés 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.

Egyszerű példák Algoritmus két szám összeadására (a,b): a) kezdés   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

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

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.

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)

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)

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

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 10 centest! 6. Tárcsázzon! 7. Vége

Egy napunk algoritmusa mondatszerűen leírva

Feladat Hozzunk létre mondatok segítségével egy algoritmust, amellyel megtudjuk, hogy az adott szám páros-e? 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

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ő.

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

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

Folyamatábra jelölései (folyt.) 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 feltétel részalgoritmus beállít, vizsgál, léptet

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

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

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

Két elemet rendezünk növekvő sorrendbe 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

Három elemet rendezünk növekvő sorrendbe 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 Kiírjuk a három elemet

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

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

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