//While ciklus bevezetés //Feladat: Töltsünk fel egy 10 elemű //int tömböt véletlen számokkal! Console.WriteLine("Tömb létrehozása..."); int[] szamok = new int[10]; Random rnd = new Random();
//Megoldás for ciklussal (plusz kiírás): Console.WriteLine("Feltöltés, kiírás for ciklussal:"); for (int k = 0; k < szamok.Length; k++) { szamok[k] = rnd.Next(100); Console.WriteLine(szamok[k]); } Console.ReadLine(); //Megoldás while ciklussal (plusz kiírás): //(i: itt is ciklusváltozó) Console.WriteLine("Feltöltés, kiírás while ciklussal:"); int i = 0; while (i < szamok.Length) { szamok[i] = rnd.Next(100); Console.WriteLine(szamok[i]); i++; } Console.ReadLine(); //Összegzés tétele for ciklussal:
//Összegzés tétele while ciklussal:
//Gyakorló feladatok while ciklusra: //1. feladat: //Írjuk ki az első 100 természetes számot //a képernyőre! (0,1,2,3...98,99)
//2. feladat: //Írjuk ki az első 100 darab 2-vel osztható //természetes számot //a képernyőre! (0,2,4...)
//3. feladat: //Írjuk ki az első 10 darab 10-zel osztható //természetes számot //a képernyőre!
//4. feladat: //Kérjünk be karaktereket a felhasználótól //egy 5 elemű tömbbe!
//5. feladat: //Addig írjuk ki a képernyőre a számokat egyesével //százegytől indulva, amíg nem találunk egy olyan számot, //ami osztható 23-mal.
//6. feladat: //Addig írjuk ki a képernyőre a számokat egyesével //20-tól indulva, amíg nem találunk egy olyan számot, //ami osztható 3-mal, 4-gyel, és 5-tel is. //(3*4*5=60 előtt kell neki megállni.) //Tehát a for ciklusnál rugalmasabb ciklus abból a szempontból, //hogy nincs előre meghatározva a lépésszáma. namespace whileCiklusBevezetes { class Program { static void Main(string[] args) { //While ciklus bevezetés //Feladat: Töltsünk fel egy 10 elemű //int tömböt véletlen számokkal! Console.WriteLine("Tömb létrehozása..."); int[] szamok = new int[10]; Random rnd = new Random();
//Megoldás for ciklussal (plusz kiírás): Console.WriteLine("Feltöltés, kiírás for ciklussal:"); for (int k = 0; k < szamok.Length; k++) { szamok[k] = rnd.Next(100); Console.WriteLine(szamok[k]); } Console.ReadLine(); //Megoldás while ciklussal (plusz kiírás): //(i: itt is ciklusváltozó) Console.WriteLine("Feltöltés, kiírás while ciklussal:"); int i = 0; while (i < szamok.Length) { szamok[i] = rnd.Next(100); Console.WriteLine(szamok[i]); i++; } Console.ReadLine(); //Összegzés tétele for ciklussal: Console.WriteLine("Összegzés for ciklussal:"); int osszeg = 0; for (int m = 0; m < szamok.Length; m++) { osszeg = osszeg + szamok[m]; } Console.WriteLine("Összeg for ciklussal: {0}", osszeg);
//Összegzés tétele while ciklussal: Console.WriteLine("Összegzés while ciklussal:"); osszeg = 0; i = 0; while (i < szamok.Length) { osszeg = osszeg + szamok[i]; i++; } Console.WriteLine("Összeg while ciklussal: {0}", osszeg); Console.ReadLine(); //Gyakorló feladatok while ciklusra:
//1. feladat: //Írjuk ki az első 100 természetes számot //a képernyőre! (0,1,2,3...98,99) Console.WriteLine("Az első 100 természetes szám következik:"); Console.ReadLine(); i = 0; while (i < 100) //Nullától 99-ig, tehát 100-szor fut { Console.WriteLine(i); //ha a ciklusváltozót íratjuk ki, pont jó lesz i++; } //Itt használhatjuk a ciklusváltozót a kiíráshoz, ez nem mindig ilyen egyszerű. //Ha ennél összetettebb a feladat, akkor érdemes lehet egy új változót bevezetni, később lesz erre még példa. Console.ReadLine(); //2. feladat: //Írjuk ki az első 100 darab 2-vel osztható //természetes számot //a képernyőre! (0,2,4...) Console.WriteLine("Az első 100 darab 2-vel osztható természetes szám következik:"); Console.ReadLine(); i = 0; int db = 0; while (db < 100) //itt arra koncentrálunk, hogy biztos pontosan 100-szor fusson //ezért nem jó az i, mert 100-nál több számot kell végignéznünk egyesével //és az i-t arra használjuk, hogy ezeken végigmenjünk { if (i % 2 == 0) { Console.WriteLine(i); db++; //csak akkor emeljük ezt az értéket, ha tényleg találtunk egy feltételnek megfelelő számot } i++; //mivel minden számot meg kell nézni, egyesével növeljük az i-t } Console.ReadLine(); //3. feladat: //Írjuk ki az első 10 darab 10-zel osztható //természetes számot //a képernyőre! //(Nagyon hasonlít az előzőre.) Console.WriteLine("Az első 10 10-zel osztható természetes szám következik:"); Console.ReadLine(); i = 0; db = 0; while (db < 10) { if (i % 10 == 0) { Console.WriteLine(i); db++; } i++; } Console.ReadLine(); //4. feladat: //Kérjünk be karaktereket a felhasználótól //egy 5 elemű tömbbe! Console.WriteLine("5 karakter bekérése következik."); char[] karakterek = new char[5]; i = 0; while (i < karakterek.Length) { Console.WriteLine("Kérek egy karaktert!"); karakterek[i] = Convert.ToChar(Console.ReadLine()); i++; } Console.ReadLine();
//5. feladat: //Addig írjuk ki a képernyőre a számokat egyesével //százegytől indulva, amíg nem találunk egy olyan számot, //ami osztható 23-mal. Console.WriteLine("Ami 23-mal osztható, azt már nem írjuk ide:"); Console.ReadLine(); i = 101; //itt beállítjuk a kezdőértéket, az első számot; amit először ki kell írni while (!(i % 23 == 0)) //addig menjen, amíg MÉG NEM talált a feltételnek megfelelőt //1. a feltételt könnyen meg tudjuk fogalmazni, mert az oszthatóságot könnyen kiszámoljuk //2. eztán már csak tagadni kell, hogy fusson az a ciklus... { Console.WriteLine(i); //mivel egyesével minden számot ki kell írni, használhatjuk a ciklusváltozót i++; } Console.ReadLine();
//6. feladat: //Addig írjuk ki a képernyőre a számokat egyesével //20-tól indulva, amíg nem találunk egy olyan számot, //ami osztható 3-mal, 4-gyel, és 5-tel is. //(3*4*5=60 előtt kell neki megállni.) Console.WriteLine("Ami osztható 3-mal, 4-gyel, és 5-tel is, előtte megállunk:"); Console.ReadLine(); i = 20; while (!(i % 3 == 0 && i % 4 == 0 && i % 5 == 0)) //mint az előző feladat, csak összetett a feltétel //1. fogalmazzuk meg úgy, mintha csak a 3-mal oszthatóságot kellene figyelni //2. találjuk ki, milyen logikai operátor (művelet) kell ahhoz, hogy együtt legyen igaz a 3-mal, és a 4-gyel való oszthatóság, ez az:&& //3. bővítsük ki az utolsó résszel //4. tagadjuk, hogy addig fusson a ciklus, míg ilyet nem talál { Console.WriteLine(i); i++; } Console.ReadLine(); //Tehát a for ciklusnál rugalmasabb ciklus abból a szempontból, //hogy nincs előre meghatározva a lépésszáma. |
NMSZC Szent-Györgyi Albert Technikum (Balassagyarmat) - 2022-23/12B2 csoport 'programozás' órai anyagai
2021.10.13.-15. While ciklus bevezetés
Feliratkozás:
Bejegyzések (Atom)
-
Elkezdtük (ebből a web készen van a többségnek) 2022. ŐSZ KÖZÉP - XIX. Bükk Hegyikerékpár Maraton, Balaton
-
Folytattuk: Pataky próbaérettségi befejezés (Lottószámok, Kőbánya) - még van, aki nem fejezte be 2021. TAVASZ KÖZÉP - Karácsonyi díszek, Tr...