2021.10.12.-15. 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:

 

//Ö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.

 

2021.10.11. Témazáró

2024.02.15.-16. Helyettesítés

 Adatbázis: vizsgaremek adatbázisának befejezése teljesen készre, dokumentáció kiegészítése, befejezése. Vizsgaremek felületének megvalósítá...