2022. november 22., kedd

2022.11.22. Adatbázis tervezés

 Elkezdtük a közösségi platformos feladatot, itt folytatjuk.

Házi feladat: mindenki találjon ki három olyan témát, amiben legalább egy darab N:M-es kapcsolat és legalább egy 1:N-es kapcsolat van (tehát a fentihez hasonló). Aki bevállalós, belekalkulálhat még egy N:M-s kapcsolatot is.

Írd le a két témát a digifüzetedbe.

2022.11.22. Programozók lakása - egymásba ágyazott szelekciós feladat

Házi feladat

//Programozók lakása
//Kérd be a lakás alapterületét.
            //A következő feladathoz egymásba ágyazott kétágú szelekciókat használj.
            //Írd ki, hogy szerinted kié lehet a lakás, ha
            //az alapterülete:
            //- kisebb, mint 50 négyzetméter (pl. junior fejlesztő);
            //- 50-149 között van (pl. senior fejlesztő);
            //- 150-999 között van (pl. menő fejlesztő cég vezére)
            //- 1000-től (pl. az Anonymus vezére :).
            //35 négyzetméter alatt adj hibaüzenetet.
            //A mondat, amit ki kell írni például:
            //Szerintem a lakás tulajdonosa senior fejlesztő lehet.
            //Ha tudod, oldd meg, hogy az egyetlen kiírt sornyi üzenetet
            //3 részből rakd össze úgy, hogy minden ágban csak a tulajdonos fokozatát írd bele.

 

2022.11.22. Mobiltelefonok megoldás

 using System;

namespace dolgozatPontozas
{
    class Program
    {
        static void Main(string[] args)
        {
            //A mobiltelefon nagykerbe x db okostelefon
            //érkezett a legújabb modellből. Az ország y üzletébe
            //kell szétosztani a készletet.
            //Használj x és y tárolásához a következő értékű konstansokat:
            //1. alkalommal próbáld meg 100 telefonnal és 9 bolttal.
            //2. alkalommal próbáld meg 100 telefonnal és 10 bolttal.
            //Írd ki az értékeket a képernyőre.
            //A programban arra keressük a választ, hogy szét lehet-e osztani egyenlően,
            //vagy marad a nagykerben néhány készülék?
            const int telefonok = 100;
            const int bolt = 9; //próbáld ki 10-zel is
            Console.WriteLine($"{telefonok} telefont kell szétosztani {bolt} boltba.");
            //Ha nem maradt ki telefon, írd ki a képernyőre:
            //"A telefonokat el lehetett osztani egyenlően."
            //Ha maradt ki telefon, írd ki:
            //A telefonokat nem lehetett egyenlően elosztani, <z> telefon maradt meg. (a <z> értelemszerűen a maradék)
            //Ha maradt ki telefon, akkor kérdezz tovább:
            //A maradék készülékeket odaadjuk a legnagyobb boltnak? (I/N)
            //Oldd meg, hogy kicsi és nagy betűvel is beírhassa a választ.
            //3 eset lehetséges:
            //1.
            //Ha "igen" volt a válasz,
            //ezt írd ki először:
            //Köszönjük a választ. A maradék telefonokat szétosztjuk.
            //Eztán írd ki, hogy:
            //- mennyi telefont osztottunk szét összesen,
            //- hogy mennyi telefon került egy boltba,
            //- és hogy mennyi telefon maradt ki.
            //2.
            //Ha "nem" volt a válasz, ezt írd ki:
            //Köszönjük a választ.A maradék telefonok a raktárban maradnak.
            //3.
            //Adj hibaüzenetet, ha nem jó betűt írt be.
            if (telefonok % bolt == 0)// a % művelet: maradékos osztás, az osztás művelet maradékát mondja meg
                                      //az osztás eredényét így nem tudjuk meg,
                                      //csak ha külön elvégezzük az osztást is:  telefonok/bolt
                                      //maradékos osztás: 100 / 9 = 11, és maradt 1
                                      //maradékos osztás: 100 / 10 = 10, és maradt 0
            {
                Console.WriteLine("A telefonokat el lehetett osztani egyenlően.");
                //Itt figyeld meg: amikor a konstansok értékéből az következik, hogy ez az ág nem teljesülhet,
                //akkor "Unreachable code detected" üzenetet kapsz.
                //Ez csak a konstansoknál
            }
            else
            {
                Console.WriteLine($"A telefonokat nem lehetett egyenlően elosztani, {telefonok % bolt} telefon maradt meg.\n");
                Console.Write($"A maradék készülékeket odaadjuk a legnagyobb boltnak? (I/N) ");
                string ertek = Console.ReadLine();
                if (ertek.ToUpper() == "I")
                {
                    Console.WriteLine("Köszönjük a választ. A maradék telefonokat szétosztjuk.");
                    int maradek = telefonok % bolt;
                    int osztas = telefonok / bolt; //csak az egész részét veszi a tört számnak (ha törtre jön ki)
                    int kivonas = telefonok - maradek;
                    Console.WriteLine("Ennyi telefont osztottunk szét: {0}", kivonas);
                    Console.WriteLine("Ennyi telefont küldtünk egy boltba: {0}", osztas);
                    Console.WriteLine("Ennyi kimaradt: {0}", maradek);
                }
                else
                {
                    if (ertek.ToUpper() == "N")
                    {
                        Console.WriteLine("Köszönjük a választ. A maradék telefonok a raktárban maradnak.");
                    }
                    else
                    {
                        Console.WriteLine("Rossz választ adott meg.");
                    }
                }
            }
            Console.ReadLine();
        }
    }
}

2022.11.22. Egymásba ágyazott szelekció gyakorlás - Mobiltelefonok

   //A mobiltelefon nagykerbe x db okostelefon

            //érkezett a legújabb modellből. Az ország y üzletébe
            //kell szétosztani a készletet.
            //Használj x és y tárolásához a következő értékű konstansokat:
            //1. alkalommal próbáld meg 100 telefonnal és 9 bolttal.
            //2. alkalommal próbáld meg 100 telefonnal és 10 bolttal.
            //Írd ki az értékeket a képernyőre.
            //A programban arra keressük a választ, hogy szét lehet-e osztani egyenlően,
            //vagy marad a nagykerben néhány készülék?

            //Ha nem maradt ki telefon, írd ki a képernyőre:
            //"A telefonokat el lehetett osztani egyenlően."
            //Ha maradt ki telefon, írd ki:
            //A telefonokat nem lehetett egyenlően elosztani, <z> telefon maradt meg. (a <z> értelemszerűen a maradék)

            //Ha maradt ki telefon, akkor kérdezz tovább:
            //A maradék készülékeket odaadjuk a legnagyobb boltnak? (I/N)
            //Oldd meg, hogy kicsi és nagy betűvel is beírhassa a választ.
            //3 eset lehetséges:
            //1.
            //Ha "igen" volt a válasz,
            //ezt írd ki először:
            //Köszönjük a választ. A maradék telefonokat szétosztjuk.
            //Eztán írd ki, hogy:
            //- mennyi telefont osztottunk szét összesen,
            //- hogy mennyi telefon került egy boltba,
            //- és hogy mennyi telefon maradt ki.
            //2.
            //Ha "nem" volt a válasz, ezt írd ki:
            //Köszönjük a választ.A maradék telefonok a raktárban maradnak.
            //3.

            //Adj hibaüzenetet, ha nem jó betűt írt be. 

2022.11.22. Egymásba ágyazott szelekció - Dolgozatpontozás

 using System;

namespace dolgozatPontozas
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("A dolgozatban elérhető max. pontszám: 100");
            //1.Ki akarod számolni, hogy a társad hányast kapott
            //a dolgozatára. Kérd be az 5 feladat pontszámát,
            //végül add össze őket.
            //Szekvenciális megoldások
            //Első megoldás:
            Console.WriteLine("Add meg az 1. feladatban elért pontszámodat!");
            int feladat1 = Convert.ToInt32(Console.ReadLine());
            Console.WriteLine("Add meg az 2. feladatban elért pontszámodat!");
            int feladat2 = Convert.ToInt32(Console.ReadLine());
            Console.WriteLine("Add meg az 3. feladatban elért pontszámodat!");
            int feladat3 = Convert.ToInt32(Console.ReadLine());
            Console.WriteLine("Add meg az 4. feladatban elért pontszámodat!");
            int feladat4 = Convert.ToInt32(Console.ReadLine());
            Console.WriteLine("Add meg az 5. feladatban elért pontszámodat!");
            int feladat5 = Convert.ToInt32(Console.ReadLine());
            int osszpont = feladat1 + feladat2 + feladat3 + feladat4 + feladat5;
            Console.WriteLine("Összpontszámod: {0} ", osszpont);
            //Második megoldás:
            //Mindig csak az aktuális pontszámot tároljuk addig, amíg
            //hozzá nem adtuk a többihez.
            osszpont = 0;
            Console.WriteLine("Add meg az 1. feladatban elért pontszámodat!");
            int pontszam = Convert.ToInt32(Console.ReadLine());
            osszpont = osszpont + pontszam;
            Console.WriteLine("Add meg az 2. feladatban elért pontszámodat!");
            pontszam = Convert.ToInt32(Console.ReadLine());
            osszpont = osszpont + pontszam;
            Console.WriteLine("Add meg az 3. feladatban elért pontszámodat!");
            pontszam = Convert.ToInt32(Console.ReadLine());
            osszpont = osszpont + pontszam;
            Console.WriteLine("Add meg az 4. feladatban elért pontszámodat!");
            pontszam = Convert.ToInt32(Console.ReadLine());
            osszpont = osszpont + pontszam;
            Console.WriteLine("Add meg az 5. feladatban elért pontszámodat!");
            pontszam = Convert.ToInt32(Console.ReadLine());
            osszpont = osszpont + pontszam;
            Console.WriteLine("Összpontszámod: {0} ", osszpont);
            //Harmadik megoldás:
            //Kiírjuk a feladat sorszámát is.
            int sorszam = 1;
            osszpont = 0;
            Console.WriteLine("Add meg a(z) {0}. feladatban elért pontszámodat!", sorszam);
            sorszam++;
            feladat1 = Convert.ToInt32(Console.ReadLine());
            Console.WriteLine("Add meg a(z) {0}. feladatban elért pontszámodat!", sorszam);
            sorszam++;
            feladat2 = Convert.ToInt32(Console.ReadLine());
            Console.WriteLine("Add meg a(z) {0}. feladatban elért pontszámodat!", sorszam);
            sorszam++;
            feladat3 = Convert.ToInt32(Console.ReadLine());
            Console.WriteLine("Add meg a(z) {0}. feladatban elért pontszámodat!", sorszam);
            sorszam++;
            feladat4 = Convert.ToInt32(Console.ReadLine());
            Console.WriteLine("Add meg a(z) {0}. feladatban elért pontszámodat!", sorszam);
            sorszam++;
            feladat5 = Convert.ToInt32(Console.ReadLine());
            osszpont = feladat1 + feladat2 + feladat3 + feladat4 + feladat5;
            //Megoldás for ciklussal
            osszpont = 0;
            for (int i = 1; i <= 5; i++)
            {
                Console.WriteLine($"Add meg a(z) {i}. feladatban elért pontszámodat!");
                pontszam = Convert.ToInt32(Console.ReadLine());
                osszpont = osszpont + pontszam;
            }
            Console.WriteLine($"Összpontszámod: {osszpont} ");
            //2. Írjuk ki, hogy a pontszám alapján a user hányast kapott.
            //Az első megoldáshoz ezeket az intervallumokat használjuk
            //a feltételekben:0-60,61-70,71-80,81-90,91-100
            //A második megoldáshoz ezeket az intervallumokat használjuk
            //a feltételekben:0-60,60-70,70-80,80-90,90-100 - JÁTSZANI KELL AZ EGYENLŐSÉGJELEKKEL!
            //A harmadik megoldáshoz alkalmazzunk egymásba ágyazott szelekciókat.
            //Egyágú szelekciós megoldások
            //Első megoldás:
            if (osszpont <= 60)
                Console.WriteLine("Egyest kaptál!");
            if (osszpont >= 61 && osszpont <= 70)
                Console.WriteLine("Kettest kaptál!");
            if (osszpont >= 71 && osszpont <= 80)
                Console.WriteLine("Hármast kaptál!");
            if (osszpont >= 81 && osszpont <= 90)
                Console.WriteLine("Négyest kaptál!");
            if (osszpont >= 91 && osszpont <= 100)
                Console.WriteLine("Ötöst kaptál! Gratulálok!");
            //Második megoldás:
            if (osszpont <= 60)
                Console.WriteLine("Egyest kaptál!");
            if (osszpont > 60 && osszpont <= 70)
                Console.WriteLine("Kettest kaptál!");
            if (osszpont > 70 && osszpont <= 80)
                Console.WriteLine("Hármast kaptál!");
            if (osszpont > 80 && osszpont <= 90)
                Console.WriteLine("Négyest kaptál!");
            if (osszpont > 90 && osszpont <= 100)
                Console.WriteLine("Ötöst kaptál! Gratulálok!");
            //Második megoldás másképp megjelenítve:
            if (osszpont <= 60) Console.WriteLine("Egyest kaptál!");
            if (osszpont > 60 && osszpont <= 70) Console.WriteLine("Kettest kaptál!");
            if (osszpont > 70 && osszpont <= 80) Console.WriteLine("Hármast kaptál!");
            if (osszpont > 80 && osszpont <= 90) Console.WriteLine("Négyest kaptál!");
            if (osszpont > 90 && osszpont <= 100) Console.WriteLine("Ötöst kaptál! Gratulálok!");
            //Kétágú szelekciós megoldás        
            //Harmadik megoldás (használd ki a kód beírását segítő code-snippet megoldást (if-TAB-TAB)
            //PRÓBÁLJUK KI AZ EGYES ÁGAK ZÁRÁSÁT-NYITÁSÁT!
            if (osszpont < 0)
            {
                Console.WriteLine("Rossz pontszám! (0 alatti)");
            }
            else
            {
                if (osszpont <= 60)
                {
                    Console.WriteLine("Egyest kaptál!");
                }
                else
                {
                    if (osszpont <= 70)
                    {
                        Console.WriteLine("Kettest kaptál!");
                    }
                    else
                    {
                        if (osszpont <= 80)
                        {
                            Console.WriteLine("Hármast kaptál!");
                        }
                        else
                        {
                            if (osszpont <= 90)
                            {
                                Console.WriteLine("Négyest kaptál!");
                            }
                            else
                            {
                                if (osszpont <= 100)
                                {
                                    Console.WriteLine("Ötöst kaptál! Gratulálok!");
                                }
                                else
                                {
                                    Console.WriteLine("Rossz pontszám! (100 fölötti)");
                                }
                            }
                        }
                    }
                }
            }
            Console.ReadLine();
        }
    }
}

2022.11.22. Egymásba ágyazott szelekció-bevezetés

Egymásba ágyazott szelekció-bevezetés

Egy üres programban próbáld ki, hogy üres egymásba ágyazott szelekciót hogyan kell írni.

            // 1. feladat:
            //- Kérj be egy egész számot.
            //- Vizsgáld meg, hogy osztható-e 5-tel.
            //- Ha osztható 5-tel, vizsgáld meg, hogy osztható-e kettővel. Ha igen, írd ki, hogy akkor osztható 10-zel is.
        //- Ha nem volt osztható 5-tel, akkor írd ki, hogy nem vizsgálod a kettővel oszthatóságot.
            //2. feladat:
            //- Kérd be, hogy a tanuló gimis, vagy szakgimis.
            //- Ha szakgimis, kérd be az évfolyamát is.
            //- Ha évfolyamként azt adta meg, hogy 9, akkor kérdezd meg, hogy infós, vagy tesis.
            //- Ha kilencedikes és infós, írd ki, hogy most programozás órája lesz.
            //- Ha kilencedikes és tesis, írd ki, hogy most éppen tesi órája lesz.

Első megoldás

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace egymasbaAgyazott
{
    class Program
    {
        static void Main(string[] args)
        {
            // 1. feladat:
            //- Kérj be egy egész számot.
            Console.WriteLine("Kérek egy egész számot!");
            int szam = Convert.ToInt32(Console.ReadLine());
            //- Vizsgáld meg, hogy osztható-e 5-tel.
            if (szam % 5 == 0) //"igaz" ág
            { //blokkjel(pár), ezen belül végrehajtódik minden utasítás, ha a feltétel igaz
                Console.WriteLine("A szám osztható 5-tel, vizsgálom a kettővel való oszthatóságot.");
                if (szam % 2 == 0)
                {
                    Console.WriteLine("A szám osztható kettővel.");
                    Console.WriteLine("A szám osztható tízzel is.");
                }
                else
                {
                    Console.WriteLine("A szám nem osztható kettővel.");
                }
            }
            else // "hamis" ág
            {
                Console.WriteLine("A szám nem osztható 5-tel, nem vizsgálom a kettővel való oszthatóságot.");
            }
            //- Ha osztható 5-tel, vizsgáld meg, hogy osztható-e kettővel. Ha igen, írd ki, hogy akkor osztható 10-zel is.
            //- Ha nem volt osztható 5-tel, akkor írd ki, hogy nem vizsgálod a kettővel oszthatóságot.
            //2. feladat:
            //- Kérd be, hogy a tanuló gimis, vagy szakgimis.
            //- Ha szakgimis, kérd be az évfolyamát is.
            //- Ha évfolyamként azt adta meg, hogy 9, akkor kérdezd meg, hogy infós, vagy tesis.
            //- Ha kilencedikes és infós, írd ki, hogy most programozás órája lesz.
            //- Ha kilencedikes és tesis, írd ki, hogy most tesi órája lesz.
            Console.Write("Válassz: gimis, vagy szakgimis vagy? ");
            string szak = Console.ReadLine();
            if (szak == "gimis")
            {
                Console.WriteLine("Köszönjük, nem kérünk további adatokat.");
            }
            else
            {
                if (szak == "szakgimis")
                {
                    Console.Write("Kérem az évfolyamodat:");
                    string evfolyam = Console.ReadLine();
                    if (evfolyam == "9")
                    {
                        Console.WriteLine("Infós, vagy tesis vagy?");
                        string szakirany = Console.ReadLine();
                        if (szakirany == "infós")
                        {
                            Console.WriteLine("Programozás órád van.");
                        }
                        else
                        {
                            Console.WriteLine("Tesi órád van.");
                        }
                    }
                    else
                    {
                        Console.WriteLine("Köszönjük, további szép napot!");
                    }
                }
                else
                {
                    Console.WriteLine("Hiba!");
                }
            }
            Console.ReadLine();
        }
    }
}

Második megoldás, kevesebb blokkjellel:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace egymasbaAgyazott10b1
{
    class Program
    {
        static void Main(string[] args)
        {
            // 1. feladat:
            //- Kérj be egy egész számot.
            Console.WriteLine("Kérek egy egész számot!");
            int szam = Convert.ToInt32(Console.ReadLine());
            //- Vizsgáld meg, hogy osztható-e 5-tel.
            if (szam % 5 == 0) //"igaz" ág
            { //blokkjel(pár), ezen belül végrehajtódik minden utasítás, ha a feltétel igaz
                Console.WriteLine("A szám osztható 5-tel, vizsgálom a kettővel való oszthatóságot.");
                if (szam % 2 == 0)
                {
                    Console.WriteLine("A szám osztható kettővel.");
                    Console.WriteLine("A szám osztható tízzel is.");
                }
                else    
                    Console.WriteLine("A szám nem osztható kettővel.");          
            }
            else // "hamis" ág
                Console.WriteLine("A szám nem osztható 5-tel, nem vizsgálom a kettővel való oszthatóságot.");
            //- Ha osztható 5-tel, vizsgáld meg, hogy osztható-e kettővel. Ha igen, írd ki, hogy akkor osztható 10-zel is.
            //- Ha nem volt osztható 5-tel, akkor írd ki, hogy nem vizsgálod a kettővel oszthatóságot.
            //2. feladat:
            //- Kérd be, hogy a tanuló gimis, vagy szakgimis.
            //- Ha szakgimis, kérd be az évfolyamát is.
            //- Ha évfolyamként azt adta meg, hogy 9, akkor kérdezd meg, hogy infós, vagy tesis.
            //- Ha kilencedikes és infós, írd ki, hogy most programozás órája lesz.
            //- Ha kilencedikes és tesis, írd ki, hogy most tesi órája lesz.
            Console.Write("Válassz: gimis, vagy szakgimis vagy? ");
            string szak = Console.ReadLine();
            if (szak == "gimis")          
                Console.WriteLine("Köszönjük, nem kérünk további adatokat.");          
            else
            {
                if (szak == "szakgimis")
                {
                    Console.Write("Kérem az évfolyamodat:");
                    string evfolyam = Console.ReadLine();
                    if (evfolyam == "9")
                    {
                        Console.WriteLine("Infós, vagy tesis vagy?");
                        string szakirany = Console.ReadLine();
                        if (szakirany == "infós")                      
                            Console.WriteLine("Programozás órád lesz.");                      
                        else                      
                            Console.WriteLine("Tesi órád lesz.");                      
                    }
                    else                    
                        Console.WriteLine("Köszönjük, további szép napot!");                  
                }
                else              
                    Console.WriteLine("Hiba!");              
            }
            Console.ReadLine();
        }
    }
}

2024.04.25. Időjárás app

 Feladat: Időjárás app - OOP módszerekkel, haladóknak adatkötéssel Az alkalmazás célja, hogy a felhasználók hozzáadjanak és eltávolítsanak v...