Algoritmusok
Algoritmus fogalma: Egy feladat megoldására szolgáló egyértelműen előírt módon és sorrendben végrehajtandó véges tevékenységsorozat, mely véges idő alatt befejeződik. A tevékenység matematikai művelettől kezdve tetszőleges számítási, gyártási vagy technológiai művelet lehet.
Az algoritmus egy feladat minden eshetőségre felkészített megoldásmenete. Műveletek tartalmát és sorrendjét meghatározó egyértelmű utasításrendszer, amely a megfelelő kiinduló adatokból a kívánt eredményre vezet. Egy probléma megoldásának véges számú lépésben történő egyértelmű és teljes leírása.
Az algoritmus tulajdonságai: Végrehajtható minden lépése egy elemi utasítás vagy további algoritmus egy és csak egy felé haladhatunk tovább (meghatározott sorrend) véges számú lépésben véget ér
Fogalmak: Változó: olyan mennyiség, amely az algoritmus végrehajtása során megváltozik. Konstans: olyan mennyiség, amely az algoritmus végrehajtása során nem változik meg. (, ) Azonosító: olyan jelsorozat, amellyel a változó tartalmára hivatkozhatunk, és megváltoztathatjuk azt.
Értékadás: az a művelet, melynek során a változó új értéket kap, megváltozik. Vnév := kif (kifejezés) Kezdőérték: a változó és a konstans induló értéke a start pontban Deklaráció: algoritmus azon pontja, ahol a változót először elhelyezzük.
Definiált: egy változó definiált, ha értékadás művelet bal oldalán már szerepelt (vagy billentyűzetről kapott értéket) Pl: A := 15 Definiálatlan: egy változó definiálatlan, ha nem definiált.
A változók tulajdonságai: Név (azonosító): csak az angol abc betűivel, vagy _-lel kezdődhet (aláhúzásjellel) betűből, számjegyekből, _-ből állhat szóközt és egyéb speciális jelet nem tartalmazhat a kis és nagybetűk nem különböznek egymástól (Algoritmusnál igaz. A C nyelvben már nem igaz.) hossza minimum 1, maximum bármennyi karakter
Típus: A típus meghatározza, hogy milyen műveletek végezhetőek a változóval. Logikai Szám egész valós Karakter (betű, számjegy, speciális írásjel) Szöveg (karakterlánc)
Érték: A típus meghatározza az értéket. Pl: Boolean:logikai igaz vagy hamis Integer: egész -…+ Real: valós -…+ (törtek is) Char: karakter a, 6, x, ? String: szöveg alma,almafára mászott,a
Típusok műveletei: Logikai: Not And Or Xor hasonlítás: = Valós: + - * / = = = Egész: + - * = = = %(maradékos osztás maradéka String: + = = = Karakter: = = =
Logikai alapfogalmak
Logikai alapfogalmak: A feltételek logikai típusúak. Két végeredményük lehet: igaz vagy hamis. (igen, nem) Minden állításnak létezik tagadása. Bármely állítás és tagadása közül csak az egyik igaz.
Igazságtáblázatok: Logikai műveletek: logikai feltételek összekapcsolására szolgálnak. Tagadás művelete (NOT):
És művelet (AND):
Vagy művelet (OR):
Kizáró vagy művelet (XOR):
Általános igazságok: A AND NOT A hamis A OR NOT A igaz A AND igaz A A AND hamis hamis A OR igaz igaz A OR hamis A NOT (NOT A) A
De Morgan tételek: NOT (A and B) = NOT A or NOT B NOT (A or B) = NOT A and NOT B
Tevékenységszerkezetek
Tevékenységek:. - elemi művelet: a végrehajtó. megérti, végrehajtja Tevékenységek: - elemi művelet: a végrehajtó megérti, végrehajtja - összetett művelet: tovább kell bontani elemi tevékenységekre
1. szekvencia: elemi utasítások sorban, egymás utáni végrehajtása 2. szelekció – elágazás: feltételtől függő teljesítés - egyszerű elágazás: ha feltétel akkor utasítás
- összetett elágazás: - kettős elágazás: ha feltétel akkor utasítás1 különben utasítás2 - többszörös elágazás: elágazás ha feltétel1 akkor utasítás1 ha feltétel2 akkor utasítás2 …. ha feltételn akkor utasításn [egyébként utasításm] elágazás vége
Az utasítások közül legfeljebb 1 hajtódik végre. Ha van egyébként rész, akkor biztosan 1 hajtódik végre. Ha több feltétel is teljesül, akkor a sorrend dönt.
3. ciklus – iteráció: tevékenységcsoport (ciklusmag=CM) ismételt végrehajtása - elöltesztelő ciklus: ciklus amíg feltétel (-ciklusvezérlő feltétel) utasítás1 utasítás2 Ciklusmag (CM) … utasításn ciklus vége
A feltétel kiértékelésekor a végrehajtó megvizsgálja, hogy igaz-e a feltétel. Ha igaz, akkor a ciklusmagot végrehajtja. Vizsgál, végrehajt: ha a feltétel első alkalommal hamis, akkor a CM egyszer sem hajtódik végre.
ismételd hátultesztelő ciklus: utasítás1 utasítás2 Ciklusmag (CM) … utasításn amíg feltétel
Végrehajt, vizsgál: ha a feltétel igaz, akkor újból végrehajtódik a CM. Legalább 1-szer biztos, hogy végrehajtódik a CM. Bizonyos esetekben nem hajtható végre az algoritmus, ilyen esetekben nem használható a hátultesztelő ciklus.
- számláló ciklus: ciklus ciklusváltozó := kezdőérték-től végérték-ig utasítások ciklus vége Ciklusváltozó felveszi a kezdőértéket, ha ez <= mint a végérték, akkor végrehajtja a CiklusMagot, majd a ciklusváltozó értéke automatikusan növekszik 1-gyel