2.61k likes | 2.72k Views
Algoritmusok és adatszerkezetek. Mi is a számítógép?. Olyan elektronikus berendezés, amely utasítások egy pontosan meghatározott csoportjának végrehajtására képes. Olyan elektronikus berendezés, amely az azt vezérlő utasítások hatására adatok feldolgozását képes elvégezni.
E N D
Olyan elektronikus berendezés, amely utasítások egy pontosan meghatározott csoportjának végrehajtására képes. Olyan elektronikus berendezés, amely az azt vezérlő utasítások hatására adatok feldolgozását képes elvégezni.
A számítógépes feladatmegoldás feltételei Szoftver Programok, adatok, dokumentációk. Hardver A számítógép fizikai alkotóelemei.
A program Olyan, a számítógép által közvetve, vagy közvetlenül végrehajtható utasításcsoport, amely egy probléma megoldása során felmerülő kiinduló állapotból meghatározott végeredményt állít elő.
Kiinduló állapot: Feldolgozás Végeredmény INPUT R T=R*R*3,14 PRINT T
Az algoritmus Egy probléma véges számú lépésben történő, egyértelmű és teljes megoldása. Az elemi lépések végrehajthatók! Nincs kidolgozatlaneset!
A Norbi automata algoritmusa (elavult) Egymást követő utasítások:SZEKVENCIA Utasítások ismétlése:ITERRÁCIÓ Elágazás valamilyen feltétel szerint:SZELEKCIÓ Készíts elő 50 Ft-os érméket! Ismételd meg 3x azt, hogy bedobsz egy érmét! Nyomd meg a kiválasztott Coca Cola gombját! Ha az automata kiadja az Colat, akkor idd meg!különben vágd oldalba a gépet!
Az algoritmusok elemei Szekvencia Iteráció Szelekció
Élő beszéd, írott szöveg • Végy egy liter tejet, egy bögrényi búzadarát, 10dkg cukrot. • Forrald föl a tejet! • Öntsd hozzá a búzadarát! • Gyakori kevergetés mellett főzd készre! • Keverd hozzá a cukrot! • Edd meg amit főztél!
Algoritmus leíró eszközökaz informatikában Start Be: A A<0 i n Be: A Ki: „Negatív” Ki: „Pozitív” N:=A*A Ki: N Stop Folyamatábra(blokkdiagramm) Mondatszerűleírás Be: A Be:B Ha A>B akkor Ki: A különben Ki: B Ha vége Struktogramm
Ami minden eszközre jellemező • Az adatok változókban tárolódnak • Az eszköz valahogyan ábrázolja: • az algoritmus elejét, végét, • adatok beolvasását, kiírását, • egyéb lépéseket (pl. értékadás), • a lépések sorrendjét (szekvencia), • elágazásokat (szelekció), • ismétléseket (iteráció)
Folyamatábra Start Stop Be: R Ki: K D:=R*2 K:=D*3,14 • Az egyes lépéseket síkidomokkal írják le. • A végrehajtás sorrendjét nyilakkal ábrázolja. • Kisebb algoritmusok leírására alkalmas • Jól áttekinthető, könnyen érthető • Ciklusok leírása nehezebb i
Algoritmus eleje, vége Start Start Stop Stop A>B Be: A,B Ki: A Ki: B • Szimbólum: Ovális • Csak egy START és egy STOP
Algoritmus eleje, vége Start Start Stop Stop Stop Be: A,B • Szimbólum: Ovális • Csak egySTART és egySTOP A>B Ki: A Ki: B
Beolvasás, kiírás Start Start Be:A Be: A,B Ki:A*A Ki: A+B Stop Stop • Szimbólum: paralelogramma • Ki:kifejezés • Be:változó • Be:vált1, vált2
Elemi műveletek, értékadás Start Stop Be: R Ki: K D:=R*2 K:=D*3,14 • Szimbólum: téglalap • Értékadás:változó :=kifejezéspl: A:=3 • Műveleti jelek:összeadás: +kivonás: -szorzás: *osztás: /
Példák Start Start Start Be: Netto Be: R Be: A Brutto:=Netto*1,25 T:=R*R*3,14 N:=A*A Ki: Brutto Ki: N Ki: T Stop Stop Stop
Elágazás (szelekció) Start Stop I N A>B Be: A,B Ki: A Ki: B • Szimbólum: rombusz • Belépés egy irány, kilépés két irány • Benne logikai kifejezés • balkif össz.oper. jobbkif • Összehasonlító operátorok:=,<>,<=,>=
Feladatok • Számolja ki egy ‘A’ oldalú kocka térfogatát! • Döntsük el egy beolvasott számról, hogy pozitív, vagy negatív! • Olvassunk be két számot és a két szám összegét! Döntsük el, hogy helyes -e az összeg! • Olvassunk be két számot és írjuk ki a hányadosukat! • Olvassunk be két számot és egy műveleti jelet! Végezzük el a műveletet, írjuk ki az eredményt!
Iteráció, ciklus Start A:=1 Ismétlés kezdete Ki: A Ismételt utasítások A:=A+1 Ismétlés vége Végtelen ciklus
Iteráció, ciklus • Ciklus eleje => Ciklusfej • Ciklus vége => Ciklusvég • Ismételt utasítások => Ciklusmag • Teszt => Tesztkifejezés
Iteráció, ciklus Start A:=1 Ciklusfej Ki: A Ciklusmag A:=A+1 Ciklusvég n A>10 Teszt-kifejezés i Stop Hátul tesztelő ciklus
Iteráció, ciklus Start A:=1 Teszt-kifejezés i A>10 Stop Ciklusmag Ciklusfej n Ki: A Ciklus-vég A:=A+1 Elől tesztelő ciklus
Iteráció, ciklus Start A:=1 A:=A+1 Ki: A A>10 n i Stop Előltesztelő ciklus
Feladatok • Írjuk ki az 1-10 közötti egész számokat. • Írjuk ki 20-tól 2 ig visszafelé haladva az összes páros számot! • Ismételjük egy szám beolvasását mindaddig, amíg az <=, mint 0. 0-nál nagyobb szám esetén fejezzük be a beolvasást, és írjuk ki a beolvasott szám négyzetét!
Struktogram Be: A Be: A Be: B B=0 C:=A/B Ki: C • Az egész algoritmus egy téglalapba kerül • A további lépéseket a téglalapba ágyazott további téglalapok írják le • A lépések sorrendjét az egymás alatti téglalapok sorrendje adja meg. • Kis algoritmusok, algoritmus részletek ábrázolására alkalmas. • Használata, nehézkes, de jól ábrázolja az algoritmus egységét.
Struktogram Logikai kif. i n Logikai kifejezés Ciklusmag Ciklusmag Logikai kifejezés Teljes algoritmus Elemi lépés
Elemei lépések, szekvenciák Be:változó Ki:kifejezés Változó:=kifejezés • Az elemi lépéseket beágyazott téglalapokban ábrázoljuk. • A szekvenciát a téglalapok sorrendje határozza meg. • A beolvasás, kiírás, értékadás elemi lépés. Elemi lépés
Elemi lépések, szekvencia Be: ApaJov Be: ApaJov, AnyaJov, Cstag Be: AnyaJov Atlag:=(ApaJov+AnyaJov)/ Cstag Be: Cstag Ki:Atlag Atlag:=(ApaJov+AnyaJov)/ Cstag Ki:Atlag Olvassuk be az apa és az anya keresetét, valamint a családtagok számát! Számoljuk ki az egy főre jutó átlagkeresetet!
Szelekció Logikai kif. n i Nem utasítások Igen utasítások A>=B i n Ki: A Ki: B • A szelekciót két részre osztott téglalap ábrázolja • A felső részben a logikai kifejezés található • Az alsó rész további téglalapokra bomlik, és az igaz, hamis ágakat írja le.
Szelekció Ber>=MinBer i n Ki: „Eléri” Ki:”Nem éri el” Olvassunk be egy fizetést és döntjük el eléri –e a minimálbér összegét. Be: Ber MinBer:=50000
Iteráció, ciklus a folyamatábrában Start Start A:=1 A:=1 Ki: A i A>10 Stop A:=A+1 n n Ki: A A>10 A:=A+1 i Stop
Iteráció Teszt kifejezés Ciklusmag • A ciklust egy téglalap írja le • A téglalapot egy fektetett ‘L’ betűvel osztjuk ketté • A ‘L’ vízszintes szára a tesztkifejezést tartalmazza • Az így leválasztott téglalaprész a ciklusmag. • Megvalósítható az elől és a hátul tesztelő ciklus is. Ciklusmag Teszt kifejezés A ciklusok addig folytatódnak, amíg a tesztkifejezés értéke igaz!
Ciklusok A:=1 A:=1 Ki: A A<=10 A:=A+1 Ki: A A<=10 A:=A+1
Feladatok • Olvassunk be egy számot, írjuk ki a reciprokát. • Egy beolvasott számról döntsük el, hogy van –e reciproka! • Olvassunk be három számot! Döntsük el, hogy lehetnek -e egy háromszög oldalai! • Írjuk ki az első 10 négyzetszámot! • Írjuk ki az első 10 páratlan szám köbét! • Olvassunk be számokat mindaddig, amíg a beolvasott szám nem 0. Határozzuk meg a számok összegét! • Legyen egy TITOK nevű változónk, amelyben a „kukucsi” szöveget tároljuk. Olvassuk be egy JELSZO nevű változó értékét. Ismételjük mindaddig a beolvasást, amíg a JELSZO változó más értéket tartalmaz, mint a TITOK!
Mondatszerű leírás • Utasításként működő magyar szavakkal írja le az algoritmust. • Az algoritmus elemi lépésekből és összetett utasításokból áll. • Az összetett utasítások blokkokat alkotnak, amelyek egymásba ágyazhatók. • A blokkoknak jelöljük az elejét, végét. Algoritmus Be:A Ismétlés Be: B amíg B=0 Ismétlés vége H:=A/B Ki: H Algoritmus vége
Mielőtt elkezdenénk • NAGY NYOMTATOTT betűk • dőlt kisbetűk • [szöveg szögletes zárójelben] • és anélkül • | jel • … CIKLUS AMÍG|KILÉPÉS log.kif [ciklus mag] CIKLUS VÉGE
Algoritmus eleje, vége ALGORITMUS utasítások ALGORITMUS VÉGE Algoritmus Be:A Ismétlés Be: B amíg B=0 Ismétlés vége H:=A/B Ki: H Algoritmus vége
Értékadás, beolvasás, kiírás változónév:=kifejezés Algoritmus Be: SZÁM N:=SZÁM*SZÁM Ki: N Algoritmus vége BE: változó1 [,változó2…] KI: kif1 [,|; kif2…]