1 / 31

Programozás C# -ban

Programozás C# -ban. Ciklusok. 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:

varden
Download Presentation

Programozás C# -ban

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

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.

More Related