A következő órától kezdve a tanári gépnél, kivetítővel felelni fogunk órák elején. Feladat 1-2 kisebb feladat megoldása ciklussal (for-, foreach-, while).
//While ciklus bevezetés
//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.