programoz s c ban n.
Skip this Video
Loading SlideShow in 5 Seconds..
Programozás C# -ban PowerPoint Presentation
Download Presentation
Programozás C# -ban

play fullscreen
1 / 31
Download Presentation

Programozás C# -ban - PowerPoint PPT Presentation

varden
59 Views
Download Presentation

Programozás C# -ban

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

  1. Programozás C# -ban Ciklusok

  2. Inkrementálás, dekrementálás • Amennyiben egy változó értékét 1 –el szeretnénk növelni vagy csökkenteni akkor használjuk ezen egyoperandusú operátorokat • x++  x= x +1 • x--  x= x -1 • Ezen műveleteknek két fajtája is létezik: • Előzetes: ++x  azt jelenti, hogy növeli 1-el a változó értékét először, majd a kifejezés többi részét is végrehajtja. Pl. ha x= 100 és y = ++x; akkor x=y=101 • Utólagos: Először végrehajtja a kifejezés kiértékelését és csak utána növeli a változó értékétPl. ha x = 100 és y = x++; akkor x = 101, de y=100!

  3. Példa int i = 0; while (i <= 100) { Console.WriteLine("Nem leszek rossz....!!!"); i++; }

  4. Ciklus (Iteráció) • Az utasítások szekvenciális (egymás utáni) végrehajtása az elágazás segítségével már vezérelhető volt 2 vagy több irányba. • A ciklusok segítségével utasításokat, utasítás blokkokat ismételhetünk • Az ismétlés történhet feltételtől függően vagy előre megadott számszor

  5. Példák • Elszámolunk százig egyesével • Számolunk egyesével addig amíg el nem érjük a százat • Kiírjuk százszor a nevünket • 40 darab számot kérünk be • Addig kérünk be számokat, amíg el nem érünk 40 ig

  6. A C# ciklusai • While – előltesztelő ciklus • Do - While – Hátultesztelő ciklus • For – Előírt lépésszámú ciklus • Foreach – Tömbbejáró ciklus

  7. While – előltesztelő ciklus • A while ciklussal egy utasításblokkot mindaddig ismételhetünk, míg egy megadott feltétel igaz while (feltétel) { utasítás(ok) } Ciklusfeltétel Ciklusmag

  8. While – előltesztelő ciklus • A while után zárójelekben megadott feltétel teljesülése esetén ismétli az utasításokat • A ciklus először kiértékeli a feltételt és csak igaz esetben ismétel, azaz ha a feltétel kezdetben hamis, akkor a ciklusmag nem fut le egyszer sem • A ciklusmagban törekedni kell arra, hogy a feltétel megszámlálható lépés után hamissá váljon, különben végtelen ciklust kapunk.

  9. While – előltesztelő ciklus Feltétel Hamis Igaz Utasítás(ok)

  10. While – előltesztelő ciklus • Az i változót gyakran nevezzük ciklusváltozónak • A ciklusváltozót a cikluson belül felhasználhatjuk • Látható, hogy a cikluson belüli növelő utasítással biztosítjuk, hogy az i változó értéke véges lépésben nagyobb lesz 10 –nél, azaz a feltétel hamissá válik, így a ciklus nem végtelen! int i = 0; while (i<=10) { Console.WriteLine(i); i++; }

  11. Kiugrás ciklusból • Ha ki szeretnénk ugrani a while ciklusból, használjuk a break parancsot, amely egyből átadja a vezérlést a while utáni első utasításnak. • A continue paranccsal továbbugorhatunk a while feltételhez, átugorva ezzel a ciklusmag többi parancsát

  12. Példa string jelszo = ""; while (jelszo != "vége") { Console.WriteLine("Kérem a kilépési jelszót: "); jelszo = Console.ReadLine(); } Console.WriteLine("Rendben!");

  13. Példa while (true) { Console.WriteLine("Ez egy végtelen ciklus"); } int i = 1; while (i<=10) { Console.WriteLine("Ez is egy végtelen ciklus"); }

  14. Példa int i = 1; int szam=1; while (i<=10) { if (szam % 3==0) { Console.WriteLine(szam); i++; } szam++; } A fenti forráskód kiíratja az első 10 db 3-al osztható számot!

  15. Példa int c = 0; while (true) { c++; Console.WriteLine(c); if (c < 10) { continue; } else { break; } } • Látható, hogy a feltétel szerint ez egy végtelen ciklus • Viszont ha a c értéke nagyobb lesz 10 nél a break parancs miatt kiugrik a ciklus utáni utasításra a vezérlés

  16. Do – Hátultesztelő ciklus • A while utasítás feltétele az első ellenőrzéskor ha hamis, a ciklusmag egyszer sem fut le • Amennyiben szükséges hogy a ciklus utasításai legalább egyszer lefussanak, úgy a Do- While parancsot, azaz hátultesztelő ciklust használunk. • A Do utáni utasítások végrehajtódnak, majd a while utáni feltétel igaz esetén ismétlésre kerül a ciklusmag, hamis feltétel esetén a ciklus után folytatjuk az utasításokat

  17. Do – Hátultesztelő ciklus do { utasítás(ok) } while (feltétel); Utasítás(ok) Feltétel Hamis Igaz

  18. Do – Hátultesztelő ciklus • A while után zárójelekben megadott feltétel teljesülése esetén ismétli az utasításokat, ugyanúgy, mint az előltesztelő ciklusnál, csak itt már a ciklusmag biztos, hogy lefut egyszer. • A ciklusmagban törekedni kell arra, hogy a feltétel véges lépés után hamissá váljon, különben végtelen ciklust kapunk. • A break és a continue parancsok ennél a ciklusnál is használhatóak • Az eddigi példáink nagy része átírható hátultesztelő ciklusosra.

  19. Példa int szam; do { Console.WriteLine("Kérek egy egyjegyű számot"); szam = Int32.Parse(Console.ReadLine()); } while (szam > 9 || szam <-9); A ciklus addig kéri be a számokat, amíg egyjegyűt nem adunk meg neki! Figyeljük meg a feltételt!

  20. Példa Látható, hogy a nev változónak nem kell kezdőértéket adni. Első lépésben biztos hogy bekér egy nevet és utána vizsgálja meg a feltételt! Addig ismétli a név bekérését, amíg az adott nevet nem adjuk meg neki! string nev; do { Console.WriteLine("Hogy hívnak: "); nev = Console.ReadLine(); } while (nev != "Gabi");

  21. For – Növekményes ciklus int i = 1; while (i < 10) { utasítás(ok) i++; } • A fenti programrészlet működése: • A számláló értékét 1 – re állítjuk • Ellenőrizzük, hogy a számláló (i) értéke kisebb-e, mint 10. Ha ez hamis, akkor véget ér a ciklus. • Igaz esetén elvégezzük az utasításokat • Inkrementáljuk az i értékét (i++) • Visszaugrunk a 2-es lépésre

  22. For – Növekményes ciklus for (beállítás; feltétel; növelés) { utasítás(ok) } • Látható, hogy a cél bizonyos utasítások előre megadott lépésszámban való ismétlése • Ezt egyszerűbb formában a For ciklussal végezhetjük el: • Beállítás (inicializálás): Beállítjuk az úgynevezett ciklusváltozó kezdőértékét • Feltétel: A program kiértékeli a feltételt, ha ez igaz következhet az utasítások végrehajtása • Növelés: Az utasítások végrehajtása után következik a ciklusváltozó növelése. Itt valójában nemcsak növelés lehetséges, hanem bármilyen C# utasítás állhat.

  23. For - While • Az ábrán látható, hogy a For ciklus minden része megfeleltethető a While ciklus részeinek for (int i=0; i<10; i++) { utasítás(ok) } int i = 0; while (i < 10) { utasítás(ok) i++; }

  24. For ciklus • Első lépésben a ciklusváltozónak beállítjuk a kezdőrtékét, majd addig ismétli a ciklusmagot amíg a befejező feltétel igaz. Ha ez hamissá válik, akkor a ciklus utáni utasítással folytatja a programunk vezérlését. • A harmadik paraméter gondoskodik arról, hogy a ciklusváltozó értéke úgy változzon, hogy a megállító feltétel véges lépésben hamis legyen, azaz ne kapjunk végtelen ciklust. • A break és a continue parancsok ennél a ciklusnál is használhatóak

  25. For ciklus • A ciklusmagban a ciklusváltozó felhasználható, de meg nem változtatható • A for ciklus segítségével egy előre megadott számszor ismételtethetjük utasításainkat • A for ciklus három paraméterét ; -vel választjuk el egymástól, bármelyik paraméter elhagyható, de a ; jelet ki kell tenni, hogy a fordító is tudja hányadik paramétert kapja meg.

  26. Példa for (int i=0; i<10; i++) { Console.WriteLine("Ismétlés a tudás anyja!"); } int i = 0; while (i < 10) { Console.WriteLine("Ismétlés a tudás anyja!"); i++; }

  27. Példa A fenti kód 5 lottószámot válasz véletlenszerűen. int szam; Random rnd = new Random(); for (int i=1; i<=5; i++) { szam = rnd.Next(90); Console.WriteLine("{0}. -ik szám: {1}", i, szam); }

  28. Feladatok I. • Írjuk ki 100 - szor a nevünket a képernyőre sorszámmal együtt. Valósítsuk meg while és for ciklussal is a feladatot. • Írjuk ki a következő számtani sorozatok első 10 elemét: • 1,2,3… • 2,4,6… • 5,12,19… • 197, 190, 183… • Kérjünk be egy 3 jegyű számot és állapítsuk meg, hogy osztható e 7-el. Addig ismételjük a bekérést, amíg nem 3 jegyű a megadott szám!

  29. Feladatok II. • Írassuk ki az egyjegyű számokat, melléjük a szám kétszeresét és a szám négyzetét is! • Kérjünk be egy számot és egy másikat úgy, hogy nagyobb legyen az elsőnél. Számoljunk visszafelé a nagyobbik számtól a kisebbik felé. (A feladat kiegészíthető azzal, hogy bekérjük a lépésközt is, ami kisebb kell legyen a két szám különbségénél.) • Írassuk ki, az első 20 darab 3-al osztható szám felét! • Olvassunk be egy életkort 0-99 között. Addig ismételjük amíg nem lesz jó a bevitel! Adjuk meg hogy melyik korosztályba esik az illető!(0-6: gyerek, 7-18: iskolás, 19-65: dolgozó, 65- nyugdíjas)

  30. Feladatok III • Kérjünk be egy max 3 jegyű egész számot, adjuk össze a számokatmegadott számig! (1+2+3….+n) • Kérjünk be egy max 2 jegyű n számot: • Írjuk ki n-ig a páros számokat • Adjuk össze n-ig az 5-el osztható számokat • Számoljuk meg, hány szám osztható n-ig 11-el • Írjuk ki azon számokat n-ig amelyek 7-el osztva 3-at adnak maradékul • Írassunk ki 100 darab háromjegyű véletlen egész számot úgy, hogy a párosak pirossal, a páratlanok kék színnel legyenek.

  31. Feladatok IV • Rajzoljunk a képernyőre egy 30 * 5 csillagból álló téglalapot. • Kérjünk be egy kétjegyű számot (a) és egy egyjegyű számot (b). Írjunk ki ‘a’ darab véletlen számot 400 és 900 között, a b-vel osztható számokat emeljük ki piros színnel. • Keretezzük be a képernyőt * karakterrel. • Osszuk fel négy egyenlő részre a képernyőt * karakterekkel.