Előadást letölteni
Az előadás letöltése folymat van. Kérjük, várjon
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
Hasonló előadás
© 2024 SlidePlayer.hu Inc.
All rights reserved.