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();
        }
    }
}

2021.01.26. A dolgozat ellenőrzése

 Megbeszéltük a dolgozatot és megterveztük, hogyan pótoljanak a lemaradók. A héten meg kell valósítani, hogy Máté aktualizált digifüzete megosztásra kerüljön.

2021.01.19. Gyakorlás

 Még felelünk és befejezzük a múlt órai feladatot. Aki nem fejezte be, annak házi feladat szerda estig befejezni.

2021.01.18. Kreatív feladat - Nyaralás 2021

Írj programot Nyaralás 2021 címmel. Kérdés, amit el kell döntenie a programnak: hova menjen a család/baráti kör/osztály nyaralni. A részletek lehetnek fiktívek, álmodozz nyugodtan. Az is jó, ha a saját családi nyaralásaitokkal kapcsolatban fogalmazod meg a feladatot.

Nincs sok megkötés, az alábbiak inkább ötletek: Gyűjtsd össze, milyen forrásokból fog összegyűlni a pénz, és ez mennyi összesen. Tárold, hogy hányan szeretnétek utazni, és mivel. Tárold, hogy mitől függhet még az, hogy el tudtok-e menni nyaralni. Szedd össze, milyen költségek merülhetnek majd föl a nyaralás során, és a létszámtól függően ez mennyi összesen. Keress több lehetséges célpontot (minimum hármat). Találd ki, mit szeretnétek megvalósítani, ha marad pénz egy kis extra költekezésre.

A lényeg, hogy a program a költségek függvényében adja meg, hogy melyik célpontra, mennyi időre tudtok elutazni.

Szeretném, ha minél több szelekciót építenél be a megoldásodba. Használj minél több számítást, minél többféle típust, konstansokat is. Az értékeket részben programból tárold, részben kérd be a felhasználótól. A szelekcióknál használj összetett feltételeket, csinálj intervallumos számítást, és lehetőleg használd a ||-ot és a !-t is, nem csak a &&-t.

A feladatrészek megoldása fölött megjegyzésben mindig írd le, mit valósítasz meg a program kóddal.

Légy kreatív!

T. Kristóf megoldása:

using System; 

 

namespace nyaralas2021 

{ 

    class Program 

    { 

        static void Main(string[] args) 

        { 

 

            //Írj programot Nyaralás 2021 címmel.Kérdés, amit el kell döntenie a programnak: hova menjen a család/ baráti kör / osztály nyaralni.A részletek lehetnek fiktívek, álmodozz nyugodtan.Az is jó, ha a saját családi nyaralásaitokkal kapcsolatban fogalmazod meg a feladatot. 

            Console.Title = "Nyaralás 2021"; 

            Console.BackgroundColor = ConsoleColor.Yellow; 

            Console.ForegroundColor = ConsoleColor.Green; 

 

            Console.WriteLine("A nyaralásra szánt összeg 5 000 000 Ft"); 

            Console.WriteLine(); 

            Console.WriteLine("Az összeget a férj és a feleség kereste! 10 hónap alatt" ); 

            Console.WriteLine(); 

            Console.WriteLine("Férj 500 000Ft-ot keres havonta"); 

            int ferj = 500000; 

            Console.WriteLine("Feleség 400 000Ft-ot keres havonta"); 

            int feleseg = 400000; 

 

            int osszesen = ferj + feleseg - 400000; 

            Console.WriteLine(); 

            Console.WriteLine("Összesen 900 000Ft-ot keresnek ebből kivonva a költségeket 500 000Ft marad." + "\n" + "Ezt 10 hónapig elrakják és igy 5 000 000Ft az összeg utazásra és mindenre!"); 

 

            int szemelyek = 4; 

            int osszeg = 500000*10; 

            Console.Clear(); 

 

            Console.WriteLine("A család Los Angelesbe szeretne utazni"); 

            Console.WriteLine(); 

            Console.WriteLine("Repülőjegy ára: 170.000 Ft (1 szemely)"); 

 

            int utazas = szemelyek * 170000; 

            int osszeg2 = osszeg - utazas; 

 

            Console.WriteLine("Az odavissza út 4 személynek {0} Ft és az összegből még ennyi maradt {1} Ft",utazas,osszeg2); 

            Console.WriteLine(); 

            Console.WriteLine("Autó bérlésre szánt összeget irja be! (max 500.000Ft)!"); 

            int autora = Convert.ToInt32(Console.ReadLine()); 

            Console.WriteLine(); 

            string fajta = string.Empty; 

            string ertekeles = string.Empty; 

            if (autora <100000) 

            { 

                Console.WriteLine("!HIBÁS ADAT!"); 

                Console.Beep(); 

                return; 

 

            } 

            if (autora>=100000 && autora <=150000) 

            { 

                fajta = "Családi autó"; 

                ertekeles = "5 csillagos"; 

            } 

            if (autora>150000 && autora <=350000 ) 

            { 

                fajta = "Nagy Családi autó"; 

                ertekeles = "7 csillagos"; 

            } 

            if (autora > 350000 && autora <= 500000) 

            { 

                fajta = "Limuzin"; 

                ertekeles = "10 csillagos"; 

            } 

             

            Console.WriteLine("Ezt az autót választotta {0}, ennek az autónak az értékelése {1}",fajta,ertekeles); 

            Console.WriteLine(); 

            int osszeg3 = osszeg2 - 500000; 

            Console.WriteLine("A teljes összegből még ennyi van: {0}",osszeg3); 

            Console.WriteLine(); 

            Console.WriteLine("A szállásra szánt összeget irja be! (max 1.000.000Ft"); 

            int hotel = Convert.ToInt32(Console.ReadLine()); 

            if (hotel < 120000) 

            { 

                Console.WriteLine("!HIBÁS ADAT!"); 

                Console.Beep(); 

                return; 

 

            } 

 

            if (hotel >= 120000 && hotel <= 210000) 

            { 

                Console.WriteLine("Loews Santa Monica Beach Hotelben szállnak meg"); 

            } 

            if (hotel > 210000 && hotel <= 400000) 

            { 

                Console.WriteLine("The Maybourne Beverly Hills Hotelben szállnak meg"); 

            } 

            if (hotel > 400000 && hotel <= 1000000) 

            { 

                Console.WriteLine("The Beverly Hills Hotel Spa-ban szállnak meg"); 

            } 

            int osszeg4 = osszeg3 - 1000000; 

            Console.WriteLine("A teljes összegből még ennyi van: {0}", osszeg4); 

            Console.WriteLine("A tovább lépéshez nyomjon enter-t!"); 

            Console.ReadLine(); 

            Console.Clear(); 

 

            Console.WriteLine("A család megszeretné nézni Disneyland-et,a Hollywood feliratot és a Universal Studios-t"); 

            Console.WriteLine(); 

            Console.WriteLine("Disneyland jegyek ára: 150$/személy"); 

            double usd = 295.99; 

            double belepusd = 150 * szemelyek * usd; 

            Console.WriteLine("A jegyek ára átszámitva {0}Ft",belepusd); 

 

            Console.WriteLine(); 

            Console.WriteLine(); 

 

            Console.WriteLine("A Hollywood felirathoz biciklivel mennek, ennek a bérlése 50$/nap"); 

            double bicikli = 50 * szemelyek * usd; 

            Console.WriteLine("A biciklik ára 1 napra 4 személynek {0}Ft",bicikli); 

 

            Console.WriteLine(); 

            Console.WriteLine(); 

 

            Console.WriteLine("A Universal Studios jegyek ára: 110$/személy"); 

            double universal = 110 * szemelyek * usd; 

            Console.WriteLine("A Universal Studios 4 személy jegyének ára {0}Ft",universal); 

            Console.WriteLine(); 

            int disney = Convert.ToInt32(belepusd); 

            int biciklik = Convert.ToInt32(bicikli); 

            int universals = Convert.ToInt32(universal); 

            int ossz = disney + biciklik + universals; 

            int osszeg5 = osszeg4 - ossz; 

            Console.WriteLine("A teljes összegből még ennyi van: {0}", osszeg5); 

 

 

 

            //Nincs sok megkötés, az alábbiak inkább ötletek: Gyűjtsd össze, milyen forrásokból fog összegyűlni a pénz, és ez mennyi összesen. Tárold, hogy hányan szeretnétek utazni, és mivel.Tárold, hogy mitől függhet még az, hogy el tudtok - e menni nyaralni. Szedd össze, milyen költségek merülhetnek majd föl a nyaralás során, és a létszámtól függően ez mennyi összesen.Keress több lehetséges célpontot(minimum hármat). Találd ki, mit szeretnétek megvalósítani, ha marad pénz egy kis extra költekezésre. 

 

            //A lényeg, hogy a program a költségek függvényében adja meg, hogy melyik célpontra, mennyi időre tudtok elutazni. 

 

            //Szeretném, ha minél több szelekciót építenél be a megoldásodba. Használj minél több számítást, minél többféle típust, konstansokat is.Az értékeket részben programból tárold, részben kérd be a felhasználótól. A szelekcióknál használj összetett feltételeket, csinálj intervallumos számítást, és lehetőleg használd a || -ot és a !-t is, nem csak a && -t. 

 

            //A feladatrészek megoldása fölött megjegyzésben mindig írd le, mit valósítasz meg a program kóddal. 

 

            //Légy kreatív!  

        } 

    } 

} 

 

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