1 Hernyák Zoltán Web: Magasszintű Programozási Nyelvek I. Eszterházy.

Slides:



Advertisements
Hasonló előadás
Szerver oldali programozás
Advertisements

Vezérlő utasítások.
Definíciók: Algoritmus: bármely véges sok lépéssel leírható tevékenység. Olyan pontos előírás, amely megmondja, hogy egy adott típushoz tartozó feladat.
Algoritmusok.
Összefoglalás 1. Pascal program szerkezete 2. Pascal típusai
Matematika és Tánc Felkészítő tanár: Komáromi Annamária
3. előadás (2005. március 1.) Utasítások, tömbök
Benczúr Zsolt VBA gyorstalpaló Benczúr Zsolt
Hernyák Zoltán Magasszintű Programozási Nyelvek I.
Hernyák Zoltán Magasszintű Programozási Nyelvek I.
Programozás alapjai.
C A C nyelv utasításai.
C A C nyelv utasításai. Ismétlés Utasítások csoportosítása.
Programozás I. Horváth Ernő.
Java programozási nyelv 2. rész – Vezérlő szerkezetek
Utasítások, elágazás- és ciklusszervezés C nyelvi utasítások
PHP Webprogramozás alapjai
C++ Alapok, első óra Elemi típusok Vezérlési szerkezetek
Programozás I. Ciklusok
Programozás I. Egymásba ágyazott szelekciók, többágú szelekció
Vizuális és web programozás II.
ISZAM III.évf. részére Bunkóczi László
Vezérlési szerkezetek: elágazások, ciklusok
C nyelv utasításai.
Ismétlő struktúrák.
Ciklusok: 3. Hátultesztelő ciklus
Ciklusok: 2. Előltesztelő ciklus
Algoritmusok.
ALGORITMUS.
ismétlődő (azonos vagy hasonló) tevékenységek megvalósítására szolgál
ALGORITMUSOK.
Ciklusok (iterációk).
PHP nyelv. PHP Interpreteres nyelv → parancsértelmező szükséges hozzá Rasmus Lerdorf 1995 → személyes felhasználás (internetes önéletrajzának megtekintésének.
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
1 Hernyák Zoltán Web: Magasszintű Programozási Nyelvek I. Eszterházy.
Hernyák Zoltán Programozási Nyelvek II.
1 Hernyák Zoltán Web: Magasszintű Programozási Nyelvek I. Eszterházy.
Hernyák Zoltán Programozási Nyelvek II.
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
1 Hernyák Zoltán Web: Magasszintű Programozási Nyelvek I. Eszterházy.
1 Hernyák Zoltán Web: Magasszintű Programozási Nyelvek I. Eszterházy.
1 Hernyák Zoltán Web: Magasszintű Programozási Nyelvek I. Eszterházy.
1 Hernyák Zoltán Web: Magasszintű Programozási Nyelvek I. Eszterházy.
1 Hernyák Zoltán Web: Magasszintű Programozási Nyelvek I. Eszterházy.
Objektumorientált programozás
Algoritmusok.
Algoritmus szerkezetek
Java programozási nyelv Vezérlési szerkezetek
Algoritmusok.
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
Operátorok Vezérlési szerkezetek Gyakorlás
Barna Róbert KE GTK Informatika Tanszék Pénzügyi feladatok VBA támogatása 7. előadás.
Török Katalin és Marosi Nóra 11/c. Pascal: Az es években megjelent magas szintű programozási nyelv, közel áll az emberi gondolkodáshoz. Nevét.
Iteráció, rekurzió, indukció. Iteráció iterációs módszer –egy adott műveletsort egymás után, többször végrehajtani megvalósítás –ciklusokkal pl. –hatványozás.
C++2. Ciklusok elöltesztelő (for, while) A ciklusmag feldolgozása előtt történik a vizsgálat  lehet, hogy egyszer sem fut le. A soronkövetkező iteráció.
Adatszerkezetek és algoritmusok 2008/ Algoritmus Az algoritmus szó eredete a középkori arab matematikáig nyúlik vissza, egy a i.sz. IX. században.
TÁMOP /1-2F JAVA programozási nyelv NetBeans fejlesztőkörnyezetben I/13. évfolyam Utasítás és blokk. Elágazás típusai, alkalmazása Kovács.
Programozás alapjai Készítette: Csiszár Nóra Anita
Algoritmizálás.
Hernyák Zoltán Programozási Nyelvek II.
Hernyák Zoltán Magasszintű Programozási Nyelvek I.
Bevezetés a programozásba Algoritmikus gondolkodás
Hernyák Zoltán Magasszintű Programozási Nyelvek I.
JAVA programozási nyelv NetBeans fejlesztőkörnyezetben I/13. évfolyam
ITERÁCIÓ.
Hernyák Zoltán Programozási Nyelvek II.
Algoritmusok szerkezete
Hernyák Zoltán Magasszintű Programozási Nyelvek I.
Informatikai gyakorlatok 11. évfolyam
Algoritmus készítés.
Előadás másolata:

1 Hernyák Zoltán Web: Magasszintű Programozási Nyelvek I. Eszterházy Károly Főiskola Számítástudományi tsz

2 Programvezérlési szerkezetek Az utasítások végrehajtási sorrendjét szabályozzák. 1.Szekvencia: ugyanabban a sorrendben kell végrehajtani az utasításokat, amilyen sorrendben az a forráskódban szerepel 2.Szelekció (elágazás): utasítások csoportját vagy végre kell hajtani, vagy nem 3.Iteráció (ciklus): utasítások csoportját ismételten, többször is végre kell hajtani

3 A logikai feltételt (kifejezést) ciklus vezérlő feltételnek hívják. Az utasítást (utasításblokkot) ciklusmagnak hívják. A vezérlő feltétel szabályozza, hogy meddig kell végrehajtani a ciklusmag utasításait. while ( logikai-feltétel ) utasítás;

4 Pozitív vezérlésű ciklusok: a ciklusmag utasításait mindaddig újra-és-újra végre kell hajtani, amíg a vezérlő feltétel értéke IGAZ. Ciklusok osztályozása vezérlés szerint Ez esetben a ciklus vezérlő feltételét ‘ciklusban maradás feltételének’ szokták hívni.

5 Ciklusok osztályozása vezérlés szerint Negatív vezérlésű ciklusok: a ciklusmag utasításait addig kell ismételni, amíg a vezérlő feltétel értéke HAMIS. Ez esetben a ciklus vezérlő feltételét ‘ciklusból kilépés feltételének’ szokták hívni.

6 Előltesztelő ciklusok: a, kiértékelődik a ciklus vezérlő feltétele b, ha nem megfelelő, akkor ‘e’ lépés c, ciklusmag végrehajtása d, ugrás az ‘a’ lépésre e, futás folytatása a ciklust követő következő utasítással (ciklus vége) Ciklusok osztályozása tesztelés szerint

7 Pozitív vezérlésű előltesztelős ciklus: vezérlő feltétel Ciklusmag utasításai IGAZ HAMIS

8 Negatív vezérlésű előltesztelős ciklus: vezérlő feltétel Ciklusmag utasításai HAMIS IGAZ

9 Fontos jellemzőjük, hogy elképzelhető olyan eset, hogy a ciklusmag egyetlen egyszer sem hajtódik végre, amennyiben a vezérlő feltétel már legelső esetben sem megfelelő értékű. Ekkor a ciklus ‘el sem indul’. Előltesztelő ciklusok

10 Hátultesztelő ciklusok: a, ciklusmag végrehajtása b, kiértékelődik a ciklus vezérlő feltétele b, ha megfelelő, akkor ‘a’ lépés újra c, futás folytatása a ciklust követő következő utasítással (ciklus vége) Ciklusok osztályozása tesztelés szerint

11 Pozitív vezérlésű hátultesztelős ciklus: vezérlő feltétel Ciklusmag utasításai IGAZ HAMIS

12 Negatív vezérlésű hátultesztelős ciklus: vezérlő feltétel Ciklusmag utasításai HAMIS IGAZ

13 Fontos jellemzőjük, hogy a ciklusmag egyszer garantáltan végrehajtódik, legfeljebb többször már nem. Hátultesztelős ciklusok

while (feltétel) utasítás; while (feltétel) utasítás; 14 Pozitív vezérlésű logikai előltesztelős ciklus while (feltétel) { utasítás; } köv.utasítás while (feltétel) { utasítás; } köv.utasítás IGAZ? HAMIS? IGAZ! HAMIS!

do utasítás; while (feltétel); do utasítás; while (feltétel); 15 Pozitív vezérlésű logikai hátultesztelős ciklus do { utasítás; } while (feltétel); köv.utasítás do { utasítás; } while (feltétel); köv.utasítás IGAZ? HAMIS?IGAZ!HAMIS!

16 Példa: int i=1; while (i<=10) { Console.WriteLine(i); i++;// i = i+1; } Console.WriteLine(”Kész”); int i=1; while (i<=10) { Console.WriteLine(i); i++;// i = i+1; } Console.WriteLine(”Kész”);

17 Példa: int a = int.Parse( Console.ReadLine() ); int i=2, db=0; while (i<a) { if (a%i==0) db++; i++; } Console.WriteLine(”Db={0}”,db); int a = int.Parse( Console.ReadLine() ); int i=2, db=0; while (i<a) { if (a%i==0) db++; i++; } Console.WriteLine(”Db={0}”,db);

18 BREAK utasítás A „break” azonnal terminálja az őt tartalmazó ciklust, a végrehajtás azonnal a ciklust követő utasításra ugrik.

19 Példa (‘középentesztelős’ ciklus): int db=0; while (true) { int a = int.Parse( Console.ReadLine() ); if (a==0) break; if (a%2==0) db++; } Console.WriteLine(”Db={0}”,db); int db=0; while (true) { int a = int.Parse( Console.ReadLine() ); if (a==0) break; if (a%2==0) db++; } Console.WriteLine(”Db={0}”,db);

20 CONTINUE utasítás A „continue” azonnal befejezi az aktuális ciklusmag végrehajtását (átugorja a maradék sorokat), és a vezérlés átkerül a ciklus vezérlő feltételének kiértékelésére.

21 Példa: int i=0,ossz=0; while (i<10) { int a = int.Parse( Console.ReadLine() ); if (a<0) continue ossz = ossz + a; i++; } Console.WriteLine(”Osszeg={0}”,ossz); int i=0,ossz=0; while (i<10) { int a = int.Parse( Console.ReadLine() ); if (a<0) continue ossz = ossz + a; i++; } Console.WriteLine(”Osszeg={0}”,ossz);

22 FOR ciklus Logikai előltesztelős ciklusok csoportjába tartozik. Működése szimulálható WHILE ciklussal…

23 Példa: int i=0; while (i<10) { … i++; } int i=0; while (i<10) { … i++; } for (int i=0;i<10;i++) { … } for (int i=0;i<10;i++) { … }

24 for(kezdőkif; log.feltétel; it.lépés) ut; Kezdőkifejezés általában értékadó utasítás csak egyszer hajtódik végre a ciklus vezérlő feltétele, pozitív vezérlésű, előltesztelős eset Iterációs lépés minden ciklusmag végrehajtás után automatikusan lefut ez a lépés is ciklusmag a, kezdőkif. végrehajtása b, amennyiben feltétel hamis –> break c, ciklusmag d, iterációs lépés e, újra ‘b’ lépés

25 for(kezdőkif; log.feltétel; it.lépés) ut; BREAK: hasonlóan működik, azonnal kilép a for ciklusból a következő utasításra. CONTINUE: először az iterációs lépésre ugrik, csak utána a feltétel kiértékelésre!

26 Példa: int ossz=0; for (int i=0;i<10;i++) { int a = int.Parse( Console.ReadLine() ); if (a<0) continue ossz = ossz + a; } Console.WriteLine(”Osszeg={0}”,ossz); int ossz=0; for (int i=0;i<10;i++) { int a = int.Parse( Console.ReadLine() ); if (a<0) continue ossz = ossz + a; } Console.WriteLine(”Osszeg={0}”,ossz); ez uaz, mint a 21-es fólia while ciklusa?

27 foreach ciklus Lista-alapú ciklus, egy adott lista minden elemét fel kell dolgozni egyesével, később lesz szó róla a lista mint adatszerkezet ismertetése után