Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

Algoritmusok.

Hasonló előadás


Az előadások a következő témára: "Algoritmusok."— Előadás másolata:

1 Algoritmusok

2 Algoritmus: Utasítások véges számú és pontos leírása
Folyamatok elemi részekre bontása. Utasítások véges számú és pontos leírása Utasítások meghatározott sorrendben legyenek

3 Algoritmus leíró eszközök:
Mondattal (szöveges) Mondatszerűen (vázlat jellegű) Pszeudokód Grafikus (rajzos, képek) Folyamatábrával (különböző geometriai idomok használata) Struktogram Az egész algoritmus egy téglalapban helyezkedik el, ezen belül az utasítások és vezérlőszerkezetek szintén téglalapokat foglalnak el. Az ábrát felülről lefelé haladva kell olvasni

4 Pl. Szöveges feladat matematika órán
Adatok felírása, kigyűjtése Képlet felírása Behelyettesítés a képletbe Elvégezni a műveleteket Szöveges válasz írása, mértékegység jelölése

5 Folyamatábra (flowchart):
Alapelemeit Neumann dolgozta ki. Az egyes szerkezeti elemek között nyilakkal jelöljük a végrehajtási sorrendet. Folyamatábra alakzatok: Téglalap: Valamilyen értékadó utasítás, vagy eljárás. Rombusz, vagy lapos hatszög: Egy, vagy többágú kiválasztás. Paralelogramma: Adatáramlás. Kör: Vezérlő utasítások.

6 Folyamatábra részei Szekvencia (műveletek egymás után) Program kezdete
Program vége Műveletvégzés Eldöntés, elágazás Adat bemenet és kimenet Szekvencia (műveletek egymás után)

7 Struktogramm: Az egyes szerkezeti elemeket különböző téglalapba foglalható ábrákkal jelöljük. A szerkezetek egymásba ágyazhatók, de vonalaik nem keresztezhetik egymást.

8 Az algoritmus utasítások leíró eszközei
Szekvencia: sorban egymás után való végrehajtás. Elágazás (szelekció): elágazik, de továbbra is előre megy. Ciklus (iteráció): elágazik, és ismétli a ciklusmagban megadott tevékenységet.

9 Szekvencia: sorban egymás után való végrehajtás Cél Rajt Utasítás 1
Utasítás n

10 Elágazás (szelekció):
elágazik, de továbbra is előre megy. A feltételtől függően (igaz, hamis) folytatódik tovább az algoritmus: ha igaz a feltétel akkor végrehajtja az IGAZ-ágat, ha nem, akkor ha nincs KÜLÖNBEN-ág, akkor a következő utasításra lép, ha van KÜLÖNBEN ág, akkor a HAMIS-ágat hajtja végre. Az egyik ág végrehajtása után a program végrehajtása az elágazás utáni utasításon folytatódik. Elágazás ha nincs KÜLÖNBEN-ág: Feltétel HAMIS Utasítás 1 Utasítás 2 Utasítás (ha) IGAZ

11 Elágazás ha van KÜLÖNBEN-ág:
HAMIS Utasítás (különben) Feltétel Utasítás 1 Utasítás 2 Utasítás (ha) IGAZ HA feltétel AKKOR utasítás 1 … utasítás 1n [KÜLÖNBEN utasítás 2 … utasítás 2n] ELÁGAZÁS VÉGE

12 Kétágú döntés CLS INPUT „Írd be a korodat:", kor IF kor > 18 THEN
PRINT "Már nagykorú vagy!" ELSE PRINT "Még fiatalkorú vagy!" END IF igaz hamis Feltétel A tevékenység B tevékenység C tevékenység

13 Több érték közüli választás
CLS INPUT "add meg az osztályzatod:", osztalyzat SELECT CASE osztalyzat CASE 1 PRINT „megbuktál!!" CASE 2 PRINT "elégséges" CASE 3 PRINT "közepes" CASE 4 PRINT "jó" CASE 5 PRINT "jeles" END SELECT Feltétel 1 A tevékenység Feltétel 2 B tevékenység Feltétel 3 C tevékenység D tevékenység

14 Ciklus (iteráció): HAMIS Feltétel Utasítás 1 Utasítás 2 Ciklusmag IGAZ
elágazik, és ismétli a ciklusmagban megadott tevékenységet. Elöltesztelő: Feltétel HAMIS Utasítás 1 Utasítás 2 Ciklusmag IGAZ Ha a feltétel igaz akkor végrehajtódik a ciklusmag és visszalép a feltételhez az algoritmus, ha nem, akkor kilép a ciklusból és a következő utasításra lép. (A ciklusmagnak kell olyan tevékenységet tartalmaznia, mely hatással van a feltételre, különben „végtelen” ciklussá válhatna.) CIKLUS AMÍG feltétel ciklusmag CIKLUS VÉGE DO WHILE feltétel ciklusmag LOOP

15 Elöl tesztelős ciklus REM "addig kér számokat, míg a számok összege nem lesz nagyobb 1000-nél" CLS szam = 0 osszeg = 0 DO WHILE osszeg < 1000 INPUT "Adj meg egy számot:", szam osszeg = osszeg + szam LOOP PRINT "A számok összege:", osszeg END

16 Ciklus (iteráció): IGAZ Feltétel Utasítás 1 Ciklusmag Utasítás 2 HAMIS
elágazik, és ismétli a ciklusmagban megadott tevékenységet. Hátultesztelő: IGAZ Feltétel Utasítás 1 Ciklusmag Utasítás 2 HAMIS Végrehajtódik a ciklusmag és ha hamis a kilépési feltétel akkor visszalép a feltételhez az algoritmus, ha igaz, akkor kilép a ciklusból és a következő utasításra lép. Legalább egyszer végrehajtódik a ciklusmag. A ciklusmagnak kell olyan tevékenységet tartalmaznia, mely hatással van a feltételre, különben „végtelen” ciklussá válhat. CIKLUS ciklusmag AMÍG feltétel CIKLUS VÉGE DO ciklusmag LOOP UNTIL feltétel

17 Hátul tesztelős ciklus
REM "addig kér számokat, míg 0-át nem írunk, kiszámítja a beírt szamok átlagát" CLS szam = 0 darabszam = 0 osszeg = 0 DO INPUT "Add meg a következő számot:", szam darabszam = darabszam + 1 osszeg = osszeg + szam LOOP UNTIL szam = 0 darabszam = darabszam - 1 atlag = osszeg / darabszam PRINT "A beírt számok átlaga:", atlag

18 Ciklus (iteráció): IGAZ Cv=vé? Ciklusmag Utasítás HAMIS
elágazik, és ismétli a ciklusmagban megadott tevékenységet. Számlálásos: CIKLUS cv:=ké-TŐL vé-IG [lk-ZEL] ciklusmag CIKLUS VÉGE FOR cv=ké TO vé [STEP lk] ciklusmag NEXT cv IGAZ Cv=vé? Cv:=ké, vé, lk Ciklusmag Utasítás HAMIS Az elöltesztelős ciklus egy speciális esete a számlálásos ciklus, ahol a belépési feltétel a végrehajtási darabszámtól függ. rövidítések: cv=ciklus változó, ké=kezdeti érték, vé=végérték, lk=lépésköz. A változó felveszi a kezdeti értéket, majd ellenőrzi, hogy túllépte e a végértéket, ha nem akkor végrehajtja a ciklusmagot. A ciklus vége növeli lépésköznyivel a ciklusváltozó értékét. Ha nem érte el a végértéket, akkor újra végrehajtódik a ciklusmag, ha igen akkor kilép a ciklusból és a következő utasításra lép. A lépésköz lehet negatív is.

19 Számlálós (növekményes) ciklus
Kiíratjuk a számokat ig 10-es lépésközzel (tízesével) CLS FOR i = 1 TO 100 STEP 10 PRINT i NEXT i Egymásba ágyazott ciklus Teleíratjuk a képernyő első 20 sorát # karakterekkel! CLS FOR i = 1 TO 20 LOCATE i, 1 FOR j = 1 TO 80 PRINT ’’# ”; NEXT j NEXT i 5-15 sorok, oszlopok által határolt téglalapot kitöltjük # karakterrel CLS FOR i = 5 TO 15 FOR j = 20 TO 60 LOCATE i, j PRINT "#" NEXT j NEXT i


Letölteni ppt "Algoritmusok."

Hasonló előadás


Google Hirdetések