programozás c# -ban
DESCRIPTION
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: - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Programozás C# -ban](https://reader036.vdocuments.pub/reader036/viewer/2022081504/5681500d550346895dbdee87/html5/thumbnails/1.jpg)
PROGRAMOZÁS C# -BANCiklusok
![Page 2: Programozás C# -ban](https://reader036.vdocuments.pub/reader036/viewer/2022081504/5681500d550346895dbdee87/html5/thumbnails/2.jpg)
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!
![Page 3: Programozás C# -ban](https://reader036.vdocuments.pub/reader036/viewer/2022081504/5681500d550346895dbdee87/html5/thumbnails/3.jpg)
Példa
int i = 0;
while (i <= 100) { Console.WriteLine("Nem leszek rossz....!!!"); i++; }
![Page 4: Programozás C# -ban](https://reader036.vdocuments.pub/reader036/viewer/2022081504/5681500d550346895dbdee87/html5/thumbnails/4.jpg)
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
![Page 5: Programozás C# -ban](https://reader036.vdocuments.pub/reader036/viewer/2022081504/5681500d550346895dbdee87/html5/thumbnails/5.jpg)
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
![Page 6: Programozás C# -ban](https://reader036.vdocuments.pub/reader036/viewer/2022081504/5681500d550346895dbdee87/html5/thumbnails/6.jpg)
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
![Page 7: Programozás C# -ban](https://reader036.vdocuments.pub/reader036/viewer/2022081504/5681500d550346895dbdee87/html5/thumbnails/7.jpg)
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)}
Ciklusmag
Ciklusfeltétel
![Page 8: Programozás C# -ban](https://reader036.vdocuments.pub/reader036/viewer/2022081504/5681500d550346895dbdee87/html5/thumbnails/8.jpg)
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.
![Page 9: Programozás C# -ban](https://reader036.vdocuments.pub/reader036/viewer/2022081504/5681500d550346895dbdee87/html5/thumbnails/9.jpg)
WHILE – ELŐLTESZTELŐ CIKLUS
Feltétel
Utasítás(ok)
Hamis
Igaz
![Page 10: Programozás C# -ban](https://reader036.vdocuments.pub/reader036/viewer/2022081504/5681500d550346895dbdee87/html5/thumbnails/10.jpg)
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++; }
![Page 11: Programozás C# -ban](https://reader036.vdocuments.pub/reader036/viewer/2022081504/5681500d550346895dbdee87/html5/thumbnails/11.jpg)
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
![Page 12: Programozás C# -ban](https://reader036.vdocuments.pub/reader036/viewer/2022081504/5681500d550346895dbdee87/html5/thumbnails/12.jpg)
PÉLDAstring jelszo = ""; while (jelszo != "vége") { Console.WriteLine("Kérem a kilépési jelszót: "); jelszo = Console.ReadLine(); }
Console.WriteLine("Rendben!");
![Page 13: Programozás C# -ban](https://reader036.vdocuments.pub/reader036/viewer/2022081504/5681500d550346895dbdee87/html5/thumbnails/13.jpg)
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"); }
![Page 14: Programozás C# -ban](https://reader036.vdocuments.pub/reader036/viewer/2022081504/5681500d550346895dbdee87/html5/thumbnails/14.jpg)
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!
![Page 15: Programozás C# -ban](https://reader036.vdocuments.pub/reader036/viewer/2022081504/5681500d550346895dbdee87/html5/thumbnails/15.jpg)
PÉLDA
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
int c = 0; while (true) { c++; Console.WriteLine(c); if (c < 10) {
continue; } else { break; }
}
![Page 16: Programozás C# -ban](https://reader036.vdocuments.pub/reader036/viewer/2022081504/5681500d550346895dbdee87/html5/thumbnails/16.jpg)
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
![Page 17: Programozás C# -ban](https://reader036.vdocuments.pub/reader036/viewer/2022081504/5681500d550346895dbdee87/html5/thumbnails/17.jpg)
DO – HÁTULTESZTELŐ CIKLUS
do{
utasítás(ok)}while (feltétel);
Feltétel
Utasítás(ok)
Hamis
Igaz
![Page 18: Programozás C# -ban](https://reader036.vdocuments.pub/reader036/viewer/2022081504/5681500d550346895dbdee87/html5/thumbnails/18.jpg)
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.
![Page 19: Programozás C# -ban](https://reader036.vdocuments.pub/reader036/viewer/2022081504/5681500d550346895dbdee87/html5/thumbnails/19.jpg)
PÉLDA
A ciklus addig kéri be a számokat, amíg egyjegyűt nem adunk meg neki!
Figyeljük meg a feltételt!
int szam; do { Console.WriteLine("Kérek egy egyjegyű számot"); szam = Int32.Parse(Console.ReadLine());
} while (szam > 9 || szam <-9);
![Page 20: Programozás C# -ban](https://reader036.vdocuments.pub/reader036/viewer/2022081504/5681500d550346895dbdee87/html5/thumbnails/20.jpg)
PÉLDA
string nev; do { Console.WriteLine("Hogy hívnak: "); nev = Console.ReadLine(); } while (nev != "Gabi");
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!
![Page 21: Programozás C# -ban](https://reader036.vdocuments.pub/reader036/viewer/2022081504/5681500d550346895dbdee87/html5/thumbnails/21.jpg)
FOR – NÖVEKMÉNYES CIKLUS
A fenti programrészlet működése:1. A számláló értékét 1 – re állítjuk2. Ellenőrizzük, hogy a számláló (i) értéke kisebb-
e, mint 10. Ha ez hamis, akkor véget ér a ciklus.3. Igaz esetén elvégezzük az utasításokat4. Inkrementáljuk az i értékét (i++)5. Visszaugrunk a 2-es lépésre
int i = 1; while (i < 10) { utasítás(ok) i++; }
![Page 22: Programozás C# -ban](https://reader036.vdocuments.pub/reader036/viewer/2022081504/5681500d550346895dbdee87/html5/thumbnails/22.jpg)
FOR – NÖVEKMÉNYES CIKLUS
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.
for (beállítás; feltétel; növelés) { utasítás(ok) }
![Page 23: Programozás C# -ban](https://reader036.vdocuments.pub/reader036/viewer/2022081504/5681500d550346895dbdee87/html5/thumbnails/23.jpg)
FOR - WHILE
Az ábrán látható, hogy a For ciklus minden része megfeleltethető a While ciklus részeinek int i = 0;
while (i < 10) { utasítás(ok) i++; }
for (int i=0; i<10; i++) { utasítás(ok) }
![Page 24: Programozás C# -ban](https://reader036.vdocuments.pub/reader036/viewer/2022081504/5681500d550346895dbdee87/html5/thumbnails/24.jpg)
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
![Page 25: Programozás C# -ban](https://reader036.vdocuments.pub/reader036/viewer/2022081504/5681500d550346895dbdee87/html5/thumbnails/25.jpg)
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.
![Page 26: Programozás C# -ban](https://reader036.vdocuments.pub/reader036/viewer/2022081504/5681500d550346895dbdee87/html5/thumbnails/26.jpg)
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++; }
![Page 27: Programozás C# -ban](https://reader036.vdocuments.pub/reader036/viewer/2022081504/5681500d550346895dbdee87/html5/thumbnails/27.jpg)
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); }
![Page 28: Programozás C# -ban](https://reader036.vdocuments.pub/reader036/viewer/2022081504/5681500d550346895dbdee87/html5/thumbnails/28.jpg)
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!
![Page 29: Programozás C# -ban](https://reader036.vdocuments.pub/reader036/viewer/2022081504/5681500d550346895dbdee87/html5/thumbnails/29.jpg)
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)
![Page 30: Programozás C# -ban](https://reader036.vdocuments.pub/reader036/viewer/2022081504/5681500d550346895dbdee87/html5/thumbnails/30.jpg)
FELADATOK III
Kérjünk be egy max 3 jegyű egész számot, adjuk össze a számokat megadott 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.
![Page 31: Programozás C# -ban](https://reader036.vdocuments.pub/reader036/viewer/2022081504/5681500d550346895dbdee87/html5/thumbnails/31.jpg)
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.