2021.01.29. Kétágú szelekció gyakorlás - Sziget fesztivál

 Elmélet (ismétlés): 

Konstans: olyan változó, amely egyszer kaphat értéket, aztán nem lehet megváltoztatni.

Ennek az az értelme, hogy védeni akarom az értéket a véletlen változtatástól.

Használata: amikor definiálom a változót, eléírom a const szót.

pl.:

            const int szam = 0;

            const double tort = 3.5;

            const bool log = true;

Ezek után például ez az utasítás nem működik: szam = 5;

 -----------------------------------------------------------------------------------------------------------------

A Sziget fesztiválon Metapay Fesztiválkártyával lehet intézni a pénzügyeket.

Feladat: Konstansban tárold le a saját nevedet, Metapay azonosítódat, kártyaszámodat (nézz utána a neten, milyen a formátumuk). A program a regisztrációkor kérje be ezeket az adatokat, és hasonlítsa össze a konstansban tárolt adatokkal. Írja ki a felhasználónak, hogy helyesen írta-e be az adatokat, vagy nem. Használj mindenhol kétágú szelekciót. Legalább egyszer alkalmazz két utasítást egy szelekciós ágban (például kiírás, és hangjelzés).


Házi feladat: ennek befejezése, illetve a fenti mintájára írj saját ötlet alapján (ezt nevezem kreatív feladatnak) egy hasonló felépítésű programot.

További HF: a digifüzet rendben tartása.

Máté megoldása:

            const string nev = "CS. MÁTÉ"; 

            const string azonosito = "MATE"; 

            const string kartyaszam = "9542643123515632"; 

            Console.Write("Kérem a neved!: "); 

            string nevb = Console.ReadLine(); 

            Console.Write("Kérem a Metapay azonosítót!: "); 

            string azonositob = Console.ReadLine(); 

            Console.Write("Kérem a kártyaszámodat!: "); 

            string kartyaszamb = Console.ReadLine(); 

            nevb = nevb.ToUpper(); 

            if (nevb == nev) 

            { 

                Console.WriteLine("A név jó"); 

            } 

            else 

            { 

                Console.WriteLine("Nem jó"); 

            } 

            azonositob = azonositob.ToUpper(); 

            if (azonositob == azonosito) 

            { 

                Console.WriteLine("Az azonosító jó"); 

            } 

            else 

            { 

                Console.WriteLine("Az azonosító nem jó"); 

            } 

            if (kartyaszam == kartyaszamb) 

            { 

                Console.WriteLine("A kártyaszám jó"); 

            } 

            else 

            { 

                Console.WriteLine("A kártyaszám nem jó"); 

            } 

            Console.ReadLine(); 

 





2021.01.29. Kétágú szelekció bevezetése

Feladat

//1.feladat:

//- Kérj be egy egész számot.

//- Írd ki, hogy pozitív, vagy negatív.

 

//1. megoldás - egyágú szelekcióval:

           

//2. megoldás - kétágú szelekcióval:

 

//- Írd ki, hogy osztható-e 2-vel.

 

//1. megoldás - egyágú szelekcióval:

           

//2. megoldás - kétágú szelekcióval:

 

//2.feladat:

//- Kérj be egy betűt.

//- Írd ki, hogy a bekért betű a nagy A betű-e, vagy nem.

 

//1. megoldás - egyágú szelekcióval:

 

//2. megoldás - kétágú szelekcióval:

 

//3.feladat:

//- Kérd be, milyen nap van ma.

//- Írd ki, hogy a bekért szó tényleg a mai nap-e, vagy nem.

 

//1. megoldás - egyágú szelekcióval:

 

//2. megoldás - kétágú szelekcióval:

 

//4.feladat:

//- Kérj be egy tetszőleges számot.

//- Írd ki, hogy a bekért szám tizede nagyobb 5-nél, vagy kisebb 5-nél.

 

//1. megoldás - egyágú szelekcióval:

//egyenlőséget nem kezeltük.

 

//2. megoldás - kétágú szelekcióval:

//egyenlőséget is kezeltük.

////////////////////////////////////////////////////////////////////////////////////

           

//5.feladat:

//- Kérd be a magyar abc első mássalhangzóját.

//- Írj ki egy megjegyzést arról, hogy jó-e a válasz.

//- Írj ki még egy mondatot a következő sorba.

 

 

//1. megoldás - egyágú szelekcióval:

 

//2. megoldás - kétágú szelekcióval:

 

//6.feladat:

//- Kérd be az <igaz> szót angolul. (Használj logikai változót.)

//- Írj ki egy megjegyzést arról, hogy jó-e a válasz.

//- Írj ki még egy mondatot a következő sorba.

 

//1. megoldás - egyágú szelekcióval:

 

//2. megoldás - kétágú szelekcióval: 

Megoldás:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ketagu10b1
{
    class Program
    {
        static void Main(string[] args)
        {
            //1.feladat:

            //- Kérj be egy egész számot.
            Console.Write("Kérek egy egész számot: ");
            int szam = Convert.ToInt32(Console.ReadLine());

            //- Írd ki, hogy pozitív, vagy negatív.       
            //1. megoldás - egyágú szelekcióval:
            if (szam >= 0)
            {
                Console.WriteLine("A szám pozitív.");
            }
            if (szam < 0)
            {
                Console.WriteLine("A szám negatív.");                
            }
            
            //2. megoldás - kétágú szelekcióval:
            if (szam >= 0)
            {
                Console.WriteLine("A szám pozitív.");
            }
            else
            {
                Console.WriteLine("A szám negatív.");  
            }


            //- Írd ki, hogy osztható-e 2-vel.      
            //1. megoldás - egyágú szelekcióval:
            //5/2=2,5          5/2=2, és maradék: 1
            //4/2=2            4/2=2, és maradék: 0 
            if (szam % 2 == 0)//a szám osztási maradéka egyenlő-e nullával?
            {
                Console.WriteLine("A szám osztható kettővel.");
            }

            if (szam % 2 != 0)
            {
                Console.WriteLine("A szám nem osztható kettővel.");
            }
            //ez ugyanazt jelenti:
            if (!(szam % 2 == 0))
            {
                Console.WriteLine("A szám nem osztható kettővel.");
            }

            //2. megoldás - kétágú szelekcióval:
            if (szam % 2 == 0)//a szám osztási maradéka egyenlő-e nullával?
            {
                Console.WriteLine("A szám osztható kettővel.");
            }
            else
            {
                Console.WriteLine("A szám nem osztható kettővel.");
            }


            //2.feladat:

            //- Kérj be egy betűt.
            Console.Write("Kérek egy betűt: ");
            char betu = Convert.ToChar(Console.ReadLine());

            //- Írd ki, hogy a bekért betű a nagy A betű-e, vagy nem.
            //1. megoldás - egyágú szelekcióval:
            if (betu == 'A')
            {
                Console.WriteLine("A bekért betű az A betű.");
            }
            if (betu != 'A')
            {
                Console.WriteLine("A bekért betű nem az A betű.");
            }
            //ez ugyanaz:
            if (!(betu == 'A'))
            {
                Console.WriteLine("A bekért betű nem az A betű.");
            }

            //2. megoldás - kétágú szelekcióval:
            if (betu == 'A')
            {
                Console.WriteLine("A bekért betű az A betű.");
            }
            else
            {
                Console.WriteLine("A bekért betű nem az A betű.");
            }


            //3.feladat:

            //- Kérd be, milyen nap van ma.
            Console.Write("Milyen nap van ma? (tiszta kis betűvel írd be) ");
            string nap = Console.ReadLine();

            //- Írd ki, hogy a bekért szó tényleg a mai nap-e, vagy nem.
            //1. megoldás - egyágú szelekcióval:
            if (nap == "péntek")
            {
                Console.WriteLine("Jól írtad be a napot.");
            }
            if (!(nap == "péntek"))
            {
                Console.WriteLine("Nem jól írtad be a napot.");                
            }
            if (nap != "péntek")
            {
                Console.WriteLine("Nem jól írtad be a napot.");
            }

            //2. megoldás - kétágú szelekcióval:
            if (nap == "péntek") //igaz ág
            {
                Console.WriteLine("Jól írtad be a napot.");
            }
            else //hamis ág
            {
                Console.WriteLine("Nem jól írtad be a napot.");                    
            }


            //4.feladat:

            //- Kérj be egy tetszőleges számot.
            Console.Write("Kérek egy tetszőleges számot: ");
            double tortSzam = Convert.ToDouble(Console.ReadLine());

            //- Írd ki, hogy a bekért szám tizede nagyobb 5-nél, vagy kisebb 5-nél.
            //1. megoldás - egyágú szelekcióval:
            //egyenlőséget nem kezeltük.    
            if ((tortSzam / 10) > 5)
            {
                Console.WriteLine("A bekért szám tizede nagyobb 5-nél.");
            }
            if ((tortSzam / 10) < 5)
            {
                Console.WriteLine("A bekért szám tizede kisebb 5-nél.");
            }
            
            //if ((tortSzam / 10) == 5)
            //{
            //    Console.WriteLine("A bekért szám tizede egyenlő öttel.");
            //}         
            
            //2. megoldás - kétágú szelekcióval:
            //egyenlőséget is kezeltük.

            if ((tortSzam / 10) > 5)
            {
                Console.WriteLine("A bekért szám tizede nagyobb 5-nél.");
            }
            else
            {
                Console.WriteLine("A bekért szám tizede kisebb 5-nél, vagy egyenlő öttel.");
            }
            ////////////////////////////////////////////////////////////////////////////////////



            //5.feladat:

            //- Kérd be a magyar abc első mássalhangzóját.
            Console.Write("Kérem a magyar abc első mássalhangzóját (kis betűvel): ");
            char massalhangzo = Convert.ToChar(Console.ReadLine());

            //- Írj ki egy megjegyzést arról, hogy jó-e a válasz.

            //- Írj ki még egy mondatot a következő sorba.
            //1. megoldás - egyágú szelekcióval:
            if (massalhangzo == 'b')
            {
                Console.WriteLine("Eltaláltad a \"b\" betűt.");
                Console.WriteLine("Ügyes vagy.");
            }
            if (massalhangzo != 'b')
            {
                Console.WriteLine("Nem találtad el a \"b\" betűt.");
                Console.WriteLine("Buta vagy.");
            }
            
            //2. megoldás - kétágú szelekcióval:
            if (massalhangzo == 'b')
            {
                Console.WriteLine("Eltaláltad a \"b\" betűt.");
                Console.WriteLine("Ügyes vagy.");
            }
            else //hamis ág
            {
                Console.WriteLine("Nem találtad el a \"b\" betűt.");
                Console.WriteLine("Buta vagy.");
            }
            //Ebben a megoldásban akkor is kiírja a Buta vagy üzenetet, ha ügyes volt.
                //else            
                //    Console.WriteLine("Nem találtad el a \"b\" betűt.");
                //    Console.WriteLine("Buta vagy.");

            //6.feladat:
            //- Kérd be az <igaz> szót angolul. (Használj logikai változót.)
            //- Írj ki egy megjegyzést arról, hogy jó-e a válasz.
            //- Írj ki még egy mondatot a következő sorba.

            Console.Write("Írd be az <igaz> szót angolul: ");
            bool log = Convert.ToBoolean(Console.ReadLine());

            //1. megoldás - egyágú szelekcióval:
            if (log == true)   //így is jó: if (log)
            {
                Console.WriteLine("Szép is lett volna, ha nem tudod!");
                Console.WriteLine("Legközelebb nehezebbet kérdezek!");
            }
            if (log == false)  //így is jó: if (!log)
            {
                Console.WriteLine("Hát ez szép, mondhatom.");
                Console.WriteLine("Mehetsz vissza a negyedik osztályba!");
            }

            //2. megoldás - kétágú szelekcióval:
            if (log == true)
            {
                Console.WriteLine("Szép is lett volna, ha nem tudod!");
                Console.WriteLine("Legközelebb nehezebbet kérdezek!");
            }
            else
            {
                Console.WriteLine("Hát ez szép, mondhatom.");
                Console.WriteLine("Mehetsz vissza a negyedik osztályba!");
            }

            Console.ReadLine();
        }
    }
}

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á...