ALGORITMUSOK
AZ ALGORITMUS Az algoritmus problémamegoldásra szolgáló elemi lépések olyan sorozata, amely a következő jellemzőkkel bír: Véges: véges számú lépés után befejeződik, és eredményt szolgáltat Egyértelmű: a lépések sorozatát úgy határozzuk meg, hogy bármely végrehajtott lépés után egyértelműen adódik a következő Determinisztikus: ugyanazon kiindulási adatokra tetszőleges végrehajtás eseténugyanazt az eredményt szolgáltatja Teljes: nemcsak egy konkrét esetre alkalmazható, hanem az összes azonos jellegű feladatra.
A TELEFONÁLÁS ALGORITMUSA Vedd le a kagylót Ha van vonal, kezdődhet a tárcsázás, ha nincs Tárcsázás a szabályoknak megfelelően Ha felveszik, lehet beszélgetni, ha nem, akkor Ha befejeztük a telefonálást, tegyük vissza a kagylót
ALGORITMUS LEÍRÓ ESZKÖZÖK Folyamatábra: grafikus elemeket tartalmazó eszköz, amely az algoritmus szerkezetét, a lépések sorrendjét, folyamatát áttekinthetővé teszi. Leíró nyelv: mondatszerű, könnyen átírható magas szintű program nyelvre. Struktogram
Laci te, Hallod-e? Jer ide, Jer, ha mondom, Rontom-bontom, Ülj meg itten az ölemben, De ne moccanj, mert különben Meg talállak csípni, Igy ni! Ugye fáj? Hát ne kiabálj. Szájadat betedd, S nyisd ki füledet, Nyisd ki ezt a kis kaput; Majd meglátod, hogy mi fut Rajta át fejedbe... Egy kis tarka lepke. Tarka lepke, kis mese, Szállj be Laci fejibe. Volt egy ember, nagybajúszos. Mit csinált? elment a kúthoz. De nem volt viz a vederbe, Kapta magát, telemerte. És vajon minek Meritette meg Azt a vedret? Tán a kertet Kéne meglocsolnia? Vagy ihatnék?... nem biz a. Telt vederrel a kezében A mezőre ballag szépen, Ott megállt és körülnézett; Ejnye vajon mit szemlélhet? Tán a fényes délibábot? Hisz olyat már sokat látott... Vagy a szomszéd falu tornyát? Hisz azon meg nem sokat lát... Vagy tán azt az embert, Ki amott a kendert Áztatóba hordja? Arra sincsen gondja. Mire van hát? Ebugattát! Már csak megmondom, mi végett Nézi át a mezőséget, A vizet mért hozta ki? Ürgét akar önteni. Ninini: Ott az ürge, Hű, mi fürge, Mint szalad! Pillanat, S odabenn van, Benn a lyukban. A mi emberünk se rest, Odanyargal egyenest A lyuk mellé, S beleönté A veder vizet; Torkig tele lett. A szegény kis ürge Egy darabig türte, Hanem aztán csak kimászott, Még az inge is átázott. A lyuk száján nyakon csipték, Nyakon csipték, hazavitték, S mostan... Itt van... Karjaimban, Mert e fürge Pajkos ürge Te vagy, Laci, te bizony!
ALGORITMUS TERVEZÉSE Megbízható algoritmust kizárólag módszeres tervezéssel készíthetünk. Adatok tervezése Folyamat tervezése Az algoritmus tervezésénél vegyük figyelembe a megoldás hatékonyságát, bonyolultságát Az algoritmust bontsuk szét részalgoritmusokra, amelyek egy kisebb probléma megoldására szolgálnak, majd ezekből építsük fel a programunkat!
MODULÁRIS PROGRAMOZÁS Ha egy nagyobb problémát kell megoldani, osszuk fel részfeladatokra (modulok), ezeket oldjuk meg, majd ezekből illesszük össze a programot! A moduláris programozás egy olyan módszer, ahol az egyes modulok ellátják a rájuk eső részfeladatot, és könnyen csatlakoznak a környezetükhöz!
STRUKTÚRÁLT PROGRAM Szekvencia: Egymás után végrehajtandó tevékenységek sorozata Szelekció: Választás megadott tevékenység közül Iteráció: Megadott tevékenységek ismételt végrehajtása. Ha egy algoritmus csak a fent említett három elemből építkezik, akkor struktúrált programnak nevezzük!
ELEMI SZERKEZETEK: SZEKVENCIA Az alapelemekből három elemi szerkezetet állítunk össze Szekvencia A szekvencia elemi vagy összetett utasítások, adat be- és kivitelek egymásutánját jelenti. Kattintásra tovább 9
ELEMI SZERKEZETEK: SZELEKCIÓ Szelekció vagy elágazás i h feltétel A szelekció, vagy elágazás akkor szükséges, ha két teendő közül kell választanunk. A választást egy feltétel teszi lehetővé. A feltétel egy logikai kifejezés, egy állítás, ami a folyamatábra adott pontján egyértelműen eldönthetően igaz vagy hamis. A feltétel igaz vagy hamis voltától függően az igaz vagy a hamis ágon folytatjuk a feldolgozást. Több elágazás egymásutánjával többszörös választások is megvalósíthatók. Kattintásra tovább 10
ELEMI SZERKEZETEK: ITERÁCIÓ Iteráció vagy ciklus h feltétel i ciklusmag ciklusmag feltétel i h Az iteráció vagy ismétlés egy feladat (a ciklusmag) többszöri végrehajtását teszi lehetővé. Az ismétlések számát egy feltétel szabályozza. A feltétel és a ciklusmag egymáshoz viszonyított helyzetétől függően beszélünk előfeltételes és végfeltételes ciklusról. Az előfeltétel a ciklusmag végrehajtásának feltétele, a végfeltétel a ciklus befejezésének feltétele. Előfeltételes ciklus magja nem biztos,végfeltételes ciklusé legalább egyszer feldolgozásra kerül. Kattintásra tovább 11
BÖHM ÉS JACOPINI TÉTELE A szekvencia, szelekció és iteráció segítségével minden olyan algoritmus felépíthető, melynek egy belépési és kilépési pontja van!
FOLYAMATÁBRA ESZKÖZEI Start Stop Értékadás Ki: kiírandó szöveg Be: tároló (változó) Ciklus Feltétel Részalgoritmus, modul
FOLYAMATÁBRA START x=1; y=2; Z:=x+y; Z<0 Ki: Az összeg pozitív Ki: Az összeg negatív STOP
A PROBLÉMA-MEGOLDÁS LÉPÉSEI 1. A feladat megfogalmazása 2. Elemzés, tervezés, szervezés 3. Programtervezés, algoritmuskészítés 4. Programozás, kódolás 5. A programok tesztelése, hangolása 6. Dokumentálás 7. A rendszer bevezetése, üzemszerű használata
FELADATOK Készítsd el folyamatábrával a következő algoritmusokat: Téglalap kerületét, területét számító algoritmus Egy bekért számról döntse el az algoritmus, hogy az pozitív vagy negatív! Kérjünk be két számot és a nagyobbikat írjuk ki! Írja ki ötször a nevünket! Kérje be egy tetszőleges háromszög oldalait, majd döntse el, hogy megszerkeszthető-e a háromszög.