2022. december 9., péntek

2022.12.09. Programozás/2 - Struktúra: Ford márkakereskedés továbbfejlesztés

 Továbbfejlesztés:

Oldjuk meg, hogy az autók árait struktúrában tároljuk.

Új anyag:

namespace strukturaBevezetes
{
    class Program
    {
        public struct auto
        {
            public int ar; //ft
            public int motor; //cm3
            public int szemely; //fő
            public int teljesitmeny; //lóerő
        }
        static void Main(string[] args)
        {
            auto auto1 = new auto();
            auto1.ar = 6000000;
            auto1.motor = 1600;
            auto1.szemely = 5;
            auto1.teljesitmeny = 150;
        }
    }
}
--------------------------------------------------
Magyarázat:
A struktúrát a Main fölött, a program osztályban definiáljuk.
public: módosítószó, ami befolyásolja az adott elem láthatóságát, pl. hogy mennyire 
legyen nyilvános. A public azt jelenti, hogy mindenhol látható.
 (A private pl. rejtettet jelent majd.)
struct: a struktúra adatszerkezet kulcsszava.
 A struktúra a procedurális nyelvekben (pl. Pascal) a rekordnak felel meg. 
Ebben összefogunk egy szerkezetbe összetartozó adatokat. 
A struktúra a definiálásakor (lásd a Main felett) még csak egy váz, egy üres szerkezet,
 ami megmutatja, milyen adatokat fogunk tárolni a példányosításkor.
auto: a struktúra neve
public int ar;: adattag, más néven mező a struktúrában. Olyan, mint egy változó,
 de ez a struktúra törzsében van, és gyakran nem adunk neki kezdőértéket.
auto auto1 = new auto();  Itt definiálunk egy auto típusú változót auto1 néven,
 és a new kulcsszóval helyet foglalunk neki a memóriában az auto() konstruktor
 segítségével. Ezt hívjuk példányosításnak (létrehozunk egy példányt).
auto1.ar = 6000000;  Az auto1 változón belül elérjük az ar mezőt (adattagot),
 ennek értékül adjuk a jobb oldalon levő értéket.
--------------------------------------------------
A struktúra nélkül, hagyományosan, változókkal megoldott teljes feladat:

using System;

namespace auto
{
    class Program
    {
        static void Main(string[] args)
        {
            //Többágú szelekció gyakorlása
            //A feladat megoldásában szelekcióból csak többágút használj.
            //A hibás adatbevitelekre írj ki hibaüzenetet.
            //Ford márkakereskedő vagy. Jön a vevő, és érdeklődik a készleten levő autók iránt.
            //A feladat megoldásában szelekcióból csak többágút használj.
            //A hibás adatbevitelekre írj ki hibaüzenetet.
            //Ford márkakereskedő vagy. Jön a vevő, és érdeklődik a készleten levő autók iránt.
            //Feladat:
            //-Kérdezd meg tőle, hogy milyen típus érdekli (legalább 3 típus van készleten).
            double MustangAra = 13020000;
            int MustangMotor = 5000;
            int MustangSzemelyek = 2;
            int MustangTeljesitmeny = 4000;

            double MondeoAra = 10020000;
            int MondeoMotor = 4000;
            int MondeoSzemelyek = 5;
            int MondeoTeljesitmeny = 3000;

            double BMaxAra = 12020000;
            int BMaxMotor = 3000;
            int BMaxSzemelyek = 4;
            int BMaxTeljesitmeny = 2000;

            Console.WriteLine("Ford Mondeo");
            Console.WriteLine("ár: {0}", MondeoAra);
            Console.WriteLine("motor: {0}", MondeoMotor);
            Console.WriteLine("személyek: {0}", MondeoSzemelyek);
            Console.WriteLine("teljesítmény: {0}", MondeoTeljesitmeny);
            Console.WriteLine("--------------------------------------------");
            Console.WriteLine("Ford Bmax");
            Console.WriteLine("ár: {0}", BMaxAra);
            Console.WriteLine("motor: {0}", BMaxMotor);
            Console.WriteLine("személyek: {0}", BMaxSzemelyek);
            Console.WriteLine("teljesítmény: {0}", BMaxTeljesitmeny);
            Console.WriteLine("--------------------------------------------");
            Console.WriteLine("Ford Mustang");
            Console.WriteLine("ár: {0}", MustangAra);
            Console.WriteLine("motor: {0}", MustangMotor);
            Console.WriteLine("személyek: {0}", MustangSzemelyek);
            Console.WriteLine("teljesítmény: {0}", MustangTeljesitmeny);
            Console.WriteLine("--------------------------------------------");
            Console.WriteLine("Milyen autó érdekli? (Ford Mustang (1), Ford Mondeo (2), Ford B-Max (3))");
            int auto = Convert.ToInt32(Console.ReadLine());
            //-A típustól függően adj neki tájékoztatást az autó fontos paramétereiről
            //(pl. ár, motor térfogata, személyek száma, teljesítmény, stb.,).
            double ar = 0;
            switch (auto)
            {
                case 1:
                    Console.WriteLine("{0} Ft-tól, {1} cm3, {2} személyes, {3} lóerős.", MustangAra, MustangMotor, MustangSzemelyek, MustangTeljesitmeny);
                    ar = MustangAra;
                    break;
                case 2:
                    Console.WriteLine("{0} Ft-tól, {1} cm3, {2} személyes, {3} lóerős.", MondeoAra, MondeoMotor, MondeoSzemelyek, MondeoTeljesitmeny);
                    ar = MondeoAra;
                    break;
                case 3:
                    Console.WriteLine("{0} Ft-tól, {1} cm3, {2} személyes, {3} lóerős.", BMaxAra, BMaxMotor, BMaxSzemelyek, BMaxTeljesitmeny);
                    ar = BMaxAra;
                    break;
                default:
                    Console.WriteLine("Nem jó számot írtál be.");
                    break;
            }
            Console.ReadLine();
            //-Meggyőzted a vevőt, meg akarja venni azt a típusú autót, ami iránt érdeklődött - programban ehhez nem kapcsolódik feladat.
            //-Kérdezd meg tőle, milyen módon akar fizetni.
            //ha készpénzzel, akkor adj neki 5% kedvezményt,
            //ha azonnal átutalással, akkor adj neki 3% kedvezményt,
            //ha pedig hitelt vesz föl rá, akkor tegyél az árra 5% felárat.
            //-Ezek után írd ki a rá vonatkozó árat.
            Console.WriteLine("Átutalással (a), Készpénzzel (k) vagy hitellel (h) fizet?");
            char fizet = Convert.ToChar(Console.ReadLine());
            double vegsoAr = 0;
            switch (fizet)
            {
                case 'k':
                    vegsoAr = ar - ((ar / 100.0) * 5.0);
                    break;
                case 'a':
                    vegsoAr = ar - ((ar / 100.0) * 3.0);
                    break;
                case 'h':
                    vegsoAr = ar + ((ar / 100.0) * 5.0);
                    break;
                default:
                    Console.WriteLine("Nem jó betűt írtál be");
                    break;
            }
            if (vegsoAr != 0)
            {
                Console.WriteLine("Összesen {0} Ft-ba fog kerülni az autó.", vegsoAr);
            }


            //Továbbfejlesztés:
            //1. Oldjuk meg, hogy az autók árait konstansokban tároljuk.
            //2. Oldjuk meg, hogy az autók árait rekordban tároljuk.
        }
    }
}

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

A struktúrával megoldott teljes feladat:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace auto
{
    class Program
    {
        public struct auto
        {
            public double ar; //ft
            public int motorter; //cm3
            public int szemszam; //fő
            public int telj; //lóerő
        }
        static void Main(string[] args)
        {
            //A feladat megoldásában szelekcióból csak többágút használj.
            //A hibás adatbevitelekre írj ki hibaüzenetet.
            //Ford márkakereskedő vagy. Jön a vevő, és érdeklődik a készleten levő autók iránt.
            //Feladat:
            //-      Kérdezd meg tőle, hogy milyen típus érdekli (legalább 3 típus van készleten).
            //-      A típustól függően adj neki tájékoztatást az autó fontos paramétereiről
            //    (pl. ár, motor térfogata, személyek száma, teljesítmény, stb.,).
            //-      Meggyőzted a vevőt, meg akarja venni azt a típusú autót, ami iránt érdeklődött - programban ehhez nem kapcsolódik feladat.
            //-      Kérdezd meg tőle, milyen módon akar fizetni.
            //       ha készpénzzel, akkor adj neki 5% kedvezményt,
            //       ha azonnal átutalással, akkor adj neki 3% kedvezményt,
            //       ha pedig hitelt vesz föl rá, akkor tegyél az árra 5% felárat.
            //-      Ezek után írd ki a rá vonatkozó árat.
            //Továbbfejlesztés:
            //1. Oldjuk meg, hogy az autók árait konstansokban tároljuk.
            //2. Oldjuk meg, hogy az autók árait rekordban tároljuk.
            Console.WriteLine("Milyen típusú autó érdekli önt ? (Mustang, Mondeo, Fiesta");
            string tipus = Console.ReadLine();

            auto mustang = new auto();
            mustang.ar = 1127000;
            mustang.motorter = 5000;
            mustang.szemszam = 2;
            mustang.telj = 418;

            auto mondeo = new auto();
            mondeo.ar = 7750000;
            mondeo.motorter = 2500;
            mondeo.szemszam = 4;
            mondeo.telj = 250;

            auto fiesta = new auto();
            fiesta.ar = 5550000;
            fiesta.motorter = 1600;
            fiesta.szemszam = 4;
            fiesta.telj = 210;

            double ar = 0;

            switch (tipus)
            {
                case "Mustang":
                    Console.WriteLine("Mustang ára {0}", mustang.ar);
                    Console.WriteLine("Mustang motortérfogata {0} köbcenti ", mustang.motorter);
                    Console.WriteLine("Mustang személyek száma {0}", mustang.szemszam);
                    Console.WriteLine("Mustang teljesítménye {0}LE", mustang.telj);
                    ar = mustang.ar;
                    break;
                case "Mondeo":
                    Console.WriteLine(" Mondeo ára {0}", mondeo.ar);
                    Console.WriteLine(" Mondeo motortérfogata {0} köbcenti ", mondeo.motorter);
                    Console.WriteLine(" Mondeo személyek száma {0}", mondeo.szemszam);
                    Console.WriteLine(" Mondeo teljesítménye {0}LE", mondeo.telj);
                    ar = mondeo.ar;
                    break;
                case "Fiesta":
                    Console.WriteLine("Fiesta ára {0}", fiesta.ar);
                    Console.WriteLine("Fiesta motortérfogata {0} köbcenti ", fiesta.motorter);
                    Console.WriteLine("Fiesta személyek száma {0}", fiesta.szemszam);
                    Console.WriteLine("Fiesta teljesítménye {0}LE", fiesta.telj);
                    ar = fiesta.ar;
                    break;
                default:
                    Console.WriteLine("Rossz típust adtál meg.");
                    break;
            }
            Console.WriteLine("Milyen módon akar fizetni? (készpénz,átutalás,hitel) ");
            string valasz = Console.ReadLine();
            double aktar = 0;
            switch (valasz)
            {
                case "készpénz":
                    aktar = ar - (ar / 100.0 * 5.0);
                    Console.WriteLine("Készpénz fizetés esetén 5% kezdvezmény jár.");
                    break;
                case "átutalás":
                    aktar = ar - (ar / 100.0 * 3.0);
                    Console.WriteLine("Azonnali átutalás esetén 3% kezdvezmény jár.");
                    break;
                case "hitel":
                    aktar = ar + (ar / 100.0 * 5.0);
                    Console.WriteLine("Hitel felvétel esetén +5% felárat számítunk fel.");
                    break;
            }
            Console.WriteLine("Az aktuális ár {0}", aktar);
            Console.ReadLine();
        }
    }
}

2022. december 8., csütörtök

2022.12.09. Programozás/1- Ismétlés + a kiadott feladatok megoldása (Domino Day, stb.)

1. óra: Helyettesítés utáni ismétlés: többágú szelekció, egymásba ágyazott kétágú szelekció gyakorlása. Önállóan megoldott feladatok ellenőrzése.

A kiadott feladatok néhány lehetséges megoldását it találod:

Domino Day egy lehetséges megoldása
using System;
namespace DominoDay
{
    class Program
    {
        static void Main(string[] args)
        {
            const double dobozTerfogat = 50 * 10 * 80 * 10 * 40 * 10;
            const double elsoTerfogat = 50 * 30 * 6;
            const double elsoDarabDouble = dobozTerfogat * 15 / elsoTerfogat;
            const int elsoDarabInt = (int)elsoDarabDouble; //típuskényszerítés: arra "kényszerítjük",
            //hogy int legyen, ami azzal jár, hogy elveszítjük
            //a tizedes részt - itt éppen ez a cél, így kerekítünk
            //konstans értékadásánál ugyanis nem használhatjuk a Convert függvényt
            //ha nem konstans, akkor használhatjuk:
            int elsoDarabKonvertalva = Convert.ToInt32(elsoDarabDouble);
            /////////////////////////////////////////////////////////////////////////////
            const double masodikTerfogat = 40 * 25 * 5 ;
            const double masodikDarabDouble = dobozTerfogat * 15 / masodikTerfogat;
            const int masodikDarabInt = (int)masodikDarabDouble; //típuskényszerítés
            /////////////////////////////////////////////////////////////////////////////
            const double harmadikTerfogat = 70 * 35 * 8;
            const double harmadikDarabDouble = dobozTerfogat * 15 / harmadikTerfogat;
            const int harmadikDarabInt = (int)harmadikDarabDouble; //típuskényszerítés
            /////////////////////////////////////////////////////////////////////////////
            Console.WriteLine("Első domino: 50 * 30 * 6");
            Console.WriteLine("Második domino: 40 * 25 * 5");
            Console.WriteLine("Harmadik domino: 70 * 35 * 8");
            Console.Write("Melyik fajta dominó érkezett ma? (első/második/harmadik) ");
            string fajta = Console.ReadLine();
            if (fajta == "első")
            {
                Console.WriteLine("Ennyi dominó van a dobozban: {0}", elsoDarabInt); // egész számot kapunk, nincs kerekítve, csak levágtuk a tört részt
                //vagyis megkaptuk a szám egész részét
                Console.WriteLine("További számítások (nem a feladat része):");
                Console.WriteLine(elsoDarabDouble); //tört számot kapunk
                Console.WriteLine(elsoDarabKonvertalva); //egész számot kapunk, kerekítve
                Console.WriteLine("{0:0}", elsoDarabDouble); //csak megformáztuk a kiírást, kerekíti a számot egésszé
                Console.WriteLine("{0:0.000}", elsoDarabDouble); //csak megformáztuk a kiírást, kerekíti a számot 3 tizedesjegyre
            }
            else      
            {
                if (fajta == "második")
                {
                    Console.WriteLine("Ennyi dominó van a dobozban: {0}", masodikDarabInt);
                }
                else
                {
                    if (fajta == "harmadik")
                    {
                        Console.WriteLine("Ennyi dominó van a dobozban: {0}", harmadikDarabInt);
                    }
                    else
                    {
                        Console.WriteLine("Szövegértési, vagy szövegalkotási problémád van. Fordulj szakemberhez :)");
                    }
                }
            }
            Console.ReadLine();
        }
    }
}
Léggömbhámozás egy lehetséges megoldása
            Console.WriteLine("Mennyi léggömböt tudtál meghámozni 10 perc alatt?   ");
            int lufi = Convert.ToInt32(Console.ReadLine());
            if (lufi > 20)
                Console.WriteLine("Kiváló");
            else
            {
                if (lufi > 10)
                    Console.WriteLine("Közepes");
                else
                {
                    Console.WriteLine("Gyenge");
                    Console.WriteLine("\nMennyi pénzt áldozott a gép fejlesztésére?");
                    int penz = Convert.ToInt32(Console.ReadLine());
                    if (penz > 0 && penz <= 10000)
                        Console.WriteLine("Kevés");
                    else
                    {
                        if (penz < 20000)
                            Console.WriteLine("Pedig ez elég lett volna.");
                        else
                            Console.WriteLine("Teljesen fölösleges ennyi pénzt  erre elkölteni!");
                    }
                }
            }
Léggömbhámozás még egy lehetséges megoldása
            Console.Write("Kérem írja be, hány léggömböt hámoztak meg: ");
            int leggomb = Convert.ToInt32(Console.ReadLine());
            if (leggomb > 20)
                Console.WriteLine("Ez a mennyiség kiváló");
            else
                if (leggomb > 10)
                    Console.WriteLine("Ez a mennyiség közepes");
                else
                    if (leggomb <= 10)
                    {
                        Console.WriteLine("Ez a mennyiség gyenge");
                        Console.Write("Mennyi pénzt költött fejlesztésre? ");
                        int penz = Convert.ToInt32(Console.ReadLine());
                        if (penz <= 10000)
                            Console.WriteLine("Ez az összeg kevés rá");
                        else
                            if (penz <= 20000)
                                Console.WriteLine("Ennek az összegnek elég kell lennie");
                            else
                                if (penz > 20000)
                                    Console.WriteLine("Ez az összeg már felesleges");
                    }
                    else
                        Console.WriteLine("Hibás szám");
Fuvolaverseny egy lehetséges megoldása
Console.Title = "Megyei fuvolaverseny";
            Console.WriteLine("Fuvolavereny\n----------\n");
            //A megyei fuvolaversenyre jelentkeznek a versenyzők.
            //Az alapján rendezik a versenyzőket kategóriákba, hogy
            //hány évig tanultak zenét.
            //I. kategória: 2, vagy 3 évig tanult zenét
            //II. kategória: 4, vagy 5 évig tanult zenét
            //III. kategória: 6, vagy 7 évig tanult zenét
            //A fenti intervallumokat a tanult módon, egyszerű feltétellel add meg.
            //Feladat:
            //Kérd be, hány évig tanult a jelentkező zenét!
            Console.Write("A versenyző hány évig tanulta a zenét?:  ");
            int ev = Convert.ToInt32(Console.ReadLine());
            //Írd ki, melyik kategóriába tartozik!
            if (ev > 1 && ev < 4)
            {
                Console.WriteLine("A versenyző az I. csoportba tartozik!");
            }
            else
            {
                if (ev > 6)
                {
                    Console.WriteLine("A versenyző a II. csoportba tartozik!");
                }
                else
                {
                    if (ev > 8)
                    {
                        Console.WriteLine("A versenyző a III. csoportba tartozik!");
                    }
                }
            }
            //Kérd be, hány pontot kapott (0-60 között) a versenyen.
            Console.Write("A versenyző hány pontot kapott a versenyen?:  ");
            int pont = Convert.ToInt32(Console.ReadLine());
            //Ha 50 pont fölött kapott, írd ki, hogy továbbjutott
            //az országos versenyre.
            if (pont < 0 || pont > 60)
            {
                Console.WriteLine("Hibás pontszám!");
            }
            else
            {
                if (pont > 50)
                {
                    Console.WriteLine("A versenyző továbbjutott az országos versenyre!");
                    Console.Write("A versenyző kisérőtanárral utazik vagy szülővel? (kisérőtanár/szülő):  ");
                    string utazas = Console.ReadLine();
                    if (utazas == "szülő" || utazas == "kisérőtanár")
                    {
                        if (utazas == "szülő")
                        {
                            Console.Write("Kérem az egyik szülő telefonszámát:  ");
                            string teloszam = Console.ReadLine();
                        }
                        else
                        {
                            Console.Write("Kérem a kisérőtanár nevét:  ");
                            string kiserotanar = Console.ReadLine();
                        }
                    }
                    else
                    {
                        Console.WriteLine("Hibás bevitel!");
                    }
                }
                else
                {
                    Console.WriteLine("A versenyző NEM jutott tovább az országos versenyre! Sajnáljuk! :(");
                    Console.Write("Kérem az iskolája nevét és címét: ");
                    string iskolaelerhet = Console.ReadLine();
                }
            }
            //Egyébként pedig írd ki, hogy nem jutott tovább.
            //Ha továbbjutott, kérdezd meg, hogy a szüleivel utazik, vagy kísérőtanárral.
            //Ha a szüleivel utazik, kérd be az egyik szülő telefonszámát.
            //Ha kísérőtanárral utazik, kérdezd meg a tanára nevét.
            //Ha nem jutott tovább, akkor kérd be az iskolája nevét és címét
            //mert oda fogják küldeni a vigaszdíjat.
            //Ha ez kész, egészítsd ki a megoldást hibaellenőrzéssel.
            Console.ReadLine();
Fuvolaverseny még egy lehetséges megoldása
//A megyei fuvolaversenyre jelentkeznek a versenyzők.
            //Az alapján rendezik a versenyzőket kategóriákba, hogy
            //hány évig tanultak zenét.
            //I. kategória: 2, vagy 3 évig tanult zenét
            //II. kategória: 4, vagy 5 évig tanult zenét
            //III. kategória: 6, vagy 7 évig tanult zenét
            //A fenti intervallumokat a tanult módon, egyszerű feltétellel add meg.
            //Feladat:
            //Kérd be, hány évig tanult a jelentkező zenét!
            Console.Write("Hány évig tanult zenét? : ");
            int tanulev = Convert.ToInt32(Console.ReadLine());
            //Írd ki, melyik kategóriába tartozik!
            while (!(2 <= tanulev && tanulev <= 7))
            {
                Console.WriteLine("Rossz értéket adott meg!");
                Console.Write("Az érték újra: ");
                tanulev = Convert.ToInt32(Console.ReadLine());
            }
            if (tanulev == 2 || tanulev == 3)
            {
                Console.WriteLine("Az I. kategóriába tartozik");
            }
            else
                if (tanulev == 4 || tanulev == 5)
                {
                    Console.WriteLine("Az II. kategóriába tartozik");
                }
                else
                    if (tanulev == 6 || tanulev == 7)
                    {
                        Console.WriteLine("Az III. kategóriába tartozik");
                    }
            //Kérd be, hány pontot kapott (0-60 között) a versenyen.
            Console.Write("Hány pontot kapott a versenyen? : ");
            int pontok = Convert.ToInt32(Console.ReadLine());
            //Ha 50 pont fölött kapott, írd ki, hogy továbbjutott
            //az országos versenyre.
            //Egyébként pedig írd ki, hogy nem jutott tovább.
            while (!(0 <= pontok && pontok <= 60))
            {
                Console.WriteLine("Rossz értéket adott meg!");
                Console.Write("Az érték újra: ");
                pontok = Convert.ToInt32(Console.ReadLine());
            }
            if (50 < pontok)
            {
                Console.WriteLine("Továbbjutott");
                Console.WriteLine();
                Console.WriteLine("A kivel utazik? (szülők ; kísérőtanár)");
                string kivel = Console.ReadLine().ToLower();
                while (kivel != "szülők" || kivel != "kísérőtanár")
                {
                    Console.WriteLine("Rossz értéket adott meg!");
                    Console.Write("Az érték újra: ");
                    kivel = Console.ReadLine().ToLower();
                }
                if (kivel == "szülők")
                {
                    Console.Write("Kérem az egyik szülő telefonszámát: ");
                    string telszam = Console.ReadLine();
                }
                else
                {
                    Console.Write("Kérem a tanár nevét: ");
                    string tanarnev = Console.ReadLine();
                }
            }
            else
            {
                Console.WriteLine("Nem jutott tovább");
                Console.Write("Kérem az iskola nevét és címét: ");
                string iskola = Console.ReadLine();
            }
            Console.WriteLine("Viszlát!");
            //Ha továbbjutott, kérdezd meg, hogy a szüleivel utazik, vagy kísérőtanárral.
            //Ha a szüleivel utazik, kérd be az egyik szülő telefonszámát.
            //Ha kísérőtanárral utazik, kérdezd meg a tanára nevét.
            //Ha nem jutott tovább, akkor kérd be az iskolája nevét és címét
            //mert oda fogják küldeni a vigaszdíjat.
            //Ha ez kész, egészítsd ki a megoldást hibaellenőrzéssel.
            Console.ReadLine();
Túlsúly feladat egy lehetséges megoldása
            //            Írj programot, amely bekéri egy felnőtt férfi testmagasság(cm - ben) és testsúly(kg-ban) adatait. 
            //Ha a magasság 100 cm fölötti, akkor megvizsgálja, hogy túlsúlyos-e: ha a kg - ban mért súlya nagyobb, mint a cm - ben mért magasság 100 fölötti része, akkor kiírja: "Túlsúlyos, fogynia kell!". 
            //Ha a magasság 100, vagy az alatti érték, akkor írja ki a program, hogy "Gyerekekkel nem foglalkozom!" 
            double hundredValue = 100;
            //Pontosítsuk a feladatot: Ha 100 cm fölött van a magasság és nem túlsúlyos, akkor mit tegyünk? 
            Console.Write("Üdv a programban! Kérem adja meg a testmagasságát!(csak egy szám ami cm-ben értelmezendő)--> ");
            double bodyHeight = Convert.ToDouble(Console.ReadLine());
            Console.WriteLine();
            if (hundredValue > bodyHeight)
            {
                Console.WriteLine("Gyerekekkel nem foglalkozom!");
            }
            else
            {
                Console.Write("Kérem adja meg a testsúlyát!(csak egy szám ami kg-ban értelmezendő)--> ");
                double bodyWeight = Convert.ToDouble(Console.ReadLine());
                if (bodyWeight > bodyHeight - 100)
                {
                    Console.WriteLine("Túlsúlyos! Fogynia kell!");
                }
                else
                {
                    Console.WriteLine("Egészséges vagy!");
                }
            }
Dátum ellenőrző egy lehetséges megoldása
Console.WriteLine("Kerem irja be egy honap sorszamat");
            int honap = Convert.ToInt32(Console.ReadLine());
            if (honap < 1 || honap > 12)
            {
                Console.WriteLine("Nem jó intervallumba esik a hónap sorszáma.");
            }
            else
            {
                Console.WriteLine("Kerem irja be a honaphoz egy nap sorszamat.");
                int nap = Convert.ToInt32(Console.ReadLine());
                string hiba = "Nem jó intervallumba esik a nap sorszáma.";
                if (honap == 1 || honap == 4 || honap == 6 || honap == 9 || honap == 11)
                {
                    if (!(nap >= 1 && nap <= 30)) //vagy: if (nap > 30 || nap < 1)
                    {
                        Console.Write(hiba);
                    }
                }
                else
                {
                    if (honap == 3 || honap == 5 || honap == 7 || honap == 8 || honap == 10 || honap == 12)
                    {
                        if (!(nap >= 1 && nap <= 31)) //vagy: if (nap < 1 || nap > 31))
                        {
                            Console.Write(hiba);
                        }
                    }
                    else
                    {
                        if (honap == 2)
                        {
                            if (!(nap >= 1 && nap <= 28)) //vagy: if (nap < 1 || nap > 28))
                            {
                                Console.Write(hiba);
                            }
                        }
                    }
                }
            }
Feladványok egy lehetséges megoldása Mátétól
Console.Write("Milyen feladatot szeretne megoldani? (matek, logikai, szöveges, karakteres):  ");
            string valasz = Console.ReadLine();
            switch (valasz)
            {
                case "matek":
                    Console.Write("Adjon meg egy számot:  ");
                    int szam1 = Convert.ToInt32(Console.ReadLine());
                    Console.Write("Adjon meg még egy számot:  ");
                    int szam2 = Convert.ToInt32(Console.ReadLine());
                    Console.WriteLine("Adja össze a két számot!  ");
                    int eredmeny = Convert.ToInt32(Console.ReadLine());
                    int gep = szam1 + szam2;
                    if (gep == eredmeny)
                    {
                        Console.WriteLine("Gratulálok, jól számoltál");
                    }
                    else
                        Console.WriteLine("Matek egyes");
                    break;
                case "logikai":
                    Console.Write("Ha két ember beszélget, akkor nem tud három elefánt fejjel lefelé lógva együtt balettozni, igaz?  (true/false)");
                    bool valasz2 = Convert.ToBoolean(Console.ReadLine());
                    bool gep2 = true;
                    if (gep2 == valasz2)
                    {
                        Console.WriteLine("Jól beszélsz öcsém");
                    }
                    else
                        Console.WriteLine("Hát komám, neked a fejedben az agyrágó bogár éhen pusztulna");
                    break;
                case "karakteres":
                    Console.Write("Mi James Bond monogramjának második betűje? (nagybetűvel!)  ");
                    char valasz3 = Convert.ToChar(Console.ReadLine());
                    char gep3 = 'B';
                    if (gep3 == valasz3)
                    {
                        Console.WriteLine("Helyes válasz");
                    }
                    else
                        Console.WriteLine("Nem talált!");
                    break;
                case "szöveges":
                    Console.Write("Írd le a szlogenemet (mint kiderült, van ilyen ROAD dal is)  ");
                    string valasz4 = Console.ReadLine();
                    string gep4 = "Egyszer élünk";
                    if (gep4 == valasz4)
                    {
                        Console.WriteLine("Gratula");
                    }
                    else
                        Console.WriteLine("Olyan messze van, mint ide Bukarest!");
                    break;
                default:
                    Console.WriteLine("Most dönteni nem tudsz, vagy a helyesírással vannak gondok?");
                    break;
            }
Múzeum egy lehetséges megoldása
Console.Title = "Múzeum";
            Console.WriteLine("Múzeum");
            Console.WriteLine("-------------\n");
            //Egy múzeumban a soron következő kiállításra folyamatosan
            //szállítják a festményeket. A múzeum 3 termet ad bérbe erre a célra.
            //Csontváry terem: 18. századi festmények
            //Zichy terem: 19. századi festmények
            //Munkácsy terem: 20. századi festmények
            //A 18-19. századi festmények csak magyar festőtől származhatnak.
            //A 20. századi festmények közül van magyar és külföldi kategória is.
            //A festmények kiállításáért bérleti díjat kell fizetni, képenként 5000 forintot.
 
            //Feladat:
            //Kérdezd meg a felhasználót, hogy mikor festették az adott képet.
            Console.Write("Mikor festették az adott képet? (év):  ");
            int ev = Convert.ToInt32(Console.ReadLine());
            Console.WriteLine();
            //A válaszától függően közöld vele, hogy melyik terembe kell vinnie a képet.
            if (ev >= 1700 && ev < 2000)
            {
                if (ev < 1800)
                {
                    Console.WriteLine("A kép a Csontváry terembe tartozik.");
                }
                else
                {
                    if (ev < 1900)
                    {
                        Console.WriteLine("A kép a Zichy terembe tartozik.");
                    }
                    else
                    {
                        if (ev < 2000)
                        {
                            Console.WriteLine("A kép a Munkácsy terembe tartozik.");
                            Console.Write("\nA képet magyar vagy külföldi festő festette?:  ");
                            string magyarvagykulfold = Console.ReadLine();
                            if (magyarvagykulfold == "magyar"  || magyarvagykulfold == "külföldi" )
                            {
                                if (magyarvagykulfold == "magyar" )
                                {
                                    Console.WriteLine("\nA festmények a galériára kerülnek.");
                                    int berletidij = 5000;
                                    double felar = berletidij * 0.15;
                                    Console.WriteLine("\nA magyar festmények elhelyezése a galérián: {0, 10} Ft/db, ebből a felár {1, 10} Ft/db.", berletidij + felar, felar);
 
                                }
                                else
                                {
                                    Console.WriteLine("A festmények a terem falára kerülnek.");
                                }
                            }
                            else
                            {
                                Console.WriteLine("Hibás adatbevitel! Csak magyar vagy külföldi kategória létezik!");
                            }
 
                        }
                    }
                }
 
            }
 
            //Ha a bekért év nem a 18-20. századba esik, írd ki, hogy másik múzeumba vigyék a képet.
            else
            {
                Console.WriteLine("A képet másik múzeumba kell elvinni.");

2022.12.08. Adatbázis tervezés

Végigelemeztünk további két adatbázis megoldást. A köv. órán továbbmegyünk új anyaggal.

2022. december 7., szerda

2022.12.07. Adatbázis tervezés

  Az önálló gyakorlati feladatok ellenőrzése, elemzése: a közösségi platformosat megnéztük ma.

1 hét múlva témazáró


2022. december 5., hétfő

2022.12.06. Helyettesítés

Adatbázis

 A múlt órán kiadott két egyedi feladat-kidolgozás gondolom még nincs kész. Folytassátok ma, legyen meg az ellenőrzés is. A javítást is fel kell tölteni a drive-ra. (Akinek végképp teljesen kész, fogjon hozzá a harmadikhoz.)

(Ellenőrzés: Választasz magadnak egy párt, és megosztod vele a megoldásodat (az xlsx-et). A párod átnézi a feladatodat, és értékeli, méghozzá úgy, hogy beleírja az xlsx-be valamilyen színnel, mit talál jónak, rossznak.)

Programozás

A múlt hétre kiadott feladatokkal gondolom még nincs kész mindenki. Aki nincs kész, fejezze be. A szorgalmival is nyugodtan lehet próbálkozni, kérjetek egymástól segítséget.
Aki megoldott mindent, kérem, ismételjen a blog és a digifüzete segítségével.

Adok nektek tankönyvet is, aminek az elejét bátran lehet olvasgatni, és ennek segítségével ismételni. Meglátjátok, tetszeni fog! Amiről még nem hallottál, azt átugorhatod, vagy éppen ellenkezőleg: lecsaphatsz rá :)





2022. november 28., hétfő

2022.11.29.-12.02. Adatbázis feladatok

Először be kell fejezni a közösségi platformos feladatot, a diagrammal együtt. Fel kell tölteni a drive-odra. Aztán választasz magadnak egy párt, és megosztod vele a megoldásodat (az xlsx-et). A párod átnézi a feladatodat, és értékeli, méghozzá úgy, hogy beleírja az xlsx-be valamilyen színnel, mit talál jónak, rossznak.

A múlt órán mindenki választott magának két egyedi témát. A hét további részében azokat kell kidolgozni. Ha kész, a fenti módon ellenőrizzétek le.

2022.11.29.-12.02. Helyettesítés - Programozás feladatok

Programozás

Új anyag jönne, de most önálló gyakorló feladatokat kaptok.

A héten a lenti feladatokkal haladjatok előre, segíthettek egymásnak. A szelekciós megoldásnál váltogassátok a kétágú és a többágú (switch) szelekciót, ha a feladat nem ragaszkodik egy konkrét módszerhez. Lehet for ciklust használni, próbálgassátok, ha a feladat igényli.


1. Domino day - nézz utána a neten ennek az eseménynek, egy pár perces videó belefér az órába.

            //A Domino Day-en a terep felépítéséhez háromféle dominót használnak.

            //Csak egyfajta méretű szállítódoboz van, melynek a méretei: 50*80*40 cm.

            //Az egyik napon 15 doboz dominó érkezik, mind azonos méretű

            //dominókat tartalmaz.

            //Feladat:

            //Tárold a programban a 3 fajta dominó-méretet konstansokban:

            //(elég a szorzat értékét tárolni)

            //1. fajta dominó: 50 * 30 * 6 mm;

            //2. fajta dominó: 40 * 25 * 5 mm;

            //3. fajta dominó: 70 * 35 * 8 mm.

            //Írd ki a képernyőre ezeket a méreteket, és kérdezd meg a felhasználót,

            //hogy melyik fajta dominó érkezett ma. Írd ki a képernyőre, hogy akkora

            //dominókból hány darab fért bele a 15 nagy dobozba.

            //Ehhez először ki kell számolni a doboz térfogatát,

            //majd elosztani egy dominó méretével.

            // A megoldáshoz egymásba ágyazott szelekciókat használj.

            //Vigyázz a tört számok kezelésénél.


2. Léggömbhámozó verseny

A léggömbhámozó versenyen a csapatoknak 10 perc alatt minél több

léggömböt meg kell hámozniuk az általuk elkészített gépekkel.

Értékeljük a versenyzőket az eredményük alapján.

Feladat:

1. Kérjük be, hány lufit hámoztak meg a géppel.

2. Az eredménytől függően írjunk ki minősítéseket.

(Próbáljuk ezt a csökkenő sorrendet tartani a szelekciók megírásánál.):

20-nál több lufi: kiváló

10 fölött, 20-ig: közepes

10, és 10 alatt: gyenge

3. Az eredmények kiírása után aki a „gyenge” kategóriába tartozik,

nyilatkozzon, hogy mennyi pénzt áldozott a gép fejlesztésére. Ezt kérjük be.

4. A bekért összeg alapján írjunk ki üzenetet:

0 - 10.000 forintig: Kevés!

10.000-20.000 között: Pedig ez elég lett volna!

20.000 fölött: Teljesen fölösleges ennyi pénzt  erre elkölteni!

Figyelem! Arra vigyázzatok, hogy a 3.-4. feladatot a 2. feladat utolsó ágának

 belsejében kell megírni.


3. Fuvolaverseny  

            //A megyei fuvolaversenyre jelentkeznek a versenyzők.

            //Az alapján rendezik a versenyzőket kategóriákba, hogy

            //hány évig tanultak zenét.

            //I. kategória: 2, vagy 3 évig tanult zenét

            //II. kategória: 4, vagy 5 évig tanult zenét

            //III. kategória: 6, vagy 7 évig tanult zenét

            //A fenti intervallumokat a tanult módon, egyszerű feltétellel add meg a feltételben.

            //Feladat:

            //Kérd be, hány évig tanult a jelentkező zenét!

            //Írd ki, melyik kategóriába tartozik!

            //Kérd be, hány pontot kapott (0-60 között) a versenyen.

            //Ha 50 pont fölött kapott, írd ki, hogy továbbjutott

            //az országos versenyre.

            //Egyébként pedig írd ki, hogy nem jutott tovább.

            //Ha továbbjutott, kérdezd meg, hogy a szüleivel utazik, vagy kísérőtanárral.

            //Ha a szüleivel utazik, kérd be az egyik szülő telefonszámát.

            //Ha kísérőtanárral utazik, kérdezd meg a tanára nevét.

            //Ha nem jutott tovább, akkor kérd be az iskolája nevét és címét

            //mert oda fogják küldeni a vigaszdíjat.

            //Ha ez kész, egészítsd ki a megoldást hibaellenőrzéssel.


4. Túlsúly

forrás: https://slideplayer.hu/slide/2140810/

Írj programot, amely bekéri egy felnőtt férfi testmagasság (cm-ben) és testsúly (kg-ban) adatait.

Ha a magasság 100 cm fölötti, akkor megvizsgálja, hogy túlsúlyos-e: ha a kg-ban mért súlya nagyobb, mint a cm-ben mért magasság 100 fölötti része, akkor kiírja: "Túlsúlyos, fogynia kell!".

Ha a magasság 100 alatti érték, akkor írja ki a program, hogy "Gyerekekkel nem foglalkozom!"

Pontosítsuk a feladatot: Ha 100 cm fölött van a magasság és nem túlsúlyos, akkor mit tegyünk? 


5. Dátum-ellenőrző

forrás: http://csharptk.ektf.hu/online/ch01s10s01.html

Feladat:

Olvassunk be egy hónap és egy nap sorszámát! Írjuk ki, ha a beolvasott számok nem jó intervallumba esnek.

Segítség:

28 napos: február

30 napos: január, április, június, szeptember, november

31 napos: március, május, július, augusztus, október, december


6. Feladványok

Írj programot, amelyben a felhasználó választhasson egy menüből, hogy matematika, logikai, szöveges, vagy karakteres feladványt szeretne megoldani. A választását többágú szelekcióval kezeld.

Ha választott, kérj be tőle további adatokat. Adj neki egy feladatot. Ugyanazt a feladatot a program is végezze el. A végén vesd össze az eredményeket és jelezd neki, hogy jól, vagy rosszul oldotta-e meg a feladatot.

Pl: kérj be tőle két számot. A feladat az legyen, hogy össze kell őket adni. Összeadja a program és tárolja. Bekéred tőle is az összeget. Összehasonlítod a kettőt, és üzensz.


7. Múzeum

                     //Múzeum

            //Egy múzeumban a soron következő kiállításra folyamatosan

            //szállítják a festményeket. A múzeum 3 termet ad bérbe erre a célra.

            //Csontváry. terem: 18. századi festmények

            //Zichy. terem: 19. századi festmények

            //Munkácsy. terem: 20. századi festmények

            //A 18-19. századi festmények csak magyar festőtől származhatnak.

            //A 20. századi festmények közül van magyar és külföldi kategória is.

            //A festmények kiállításáért bérleti díjat kell fizetni, képenként 5000 forintot.

            //Feladat:

            //1. Kérdezd meg a felhasználót, hogy mikor festették az adott képet.

            //A válaszától függően közöld vele, hogy melyik terembe kell vinnie a képet.

            //Csontváry. terem: 18. századi festmények

            //Zichy terem: 19. századi festmények

            //Munkácsy. terem: 20. századi festmények

            //Ha a bekért év nem a 18-20. századba esik, írd ki, 

            //hogy másik múzeumba vigyék a képet.

            //2. Ezt a feladatot a Munkácsy terem szelekciós ágán belül kell kidolgoznod:

            //A Munkácsy terembe tartók új kérdést is kapnak: válaszolniuk kell, hogy

            //magyar, vagy külföldi festő képéről van-e szó.

            //A magyar festmények a galériára kerülnek, a külföldiek a terem falaira.

            //Ezt a feladatrészt a magyar festmények szelekciós ágán belül kell kidolgoznod:

            //A galériára kerülő képekért a bérleti díjon felüli felárat kell fizetni.

            //A számítás módja: a felár a bérleti díj 15 százaléka.

            //(Help: bérleti díj * 0.15)

            //A magyar képeket szállító felhasználó számára írd ki a felárat,

            //és a teljes összeget a következő szöveggel,

            //az értékeket 10 karakteren jobbra rendezve:

            //A magyar festmények elhelyezése a galérián:     00000 Ft/db, ebből a felár     00000 Ft/db.

            //(a 00000 helyére az értékek kerülnek)


Szorgalmi – Mars-robot

//Mars-robot

//1. Egy mars-robot ütközésérzékelőkkel van ellátva.

//A robot testéből kiálló rugalmas érzékelő egy derékszögű háromszög

//derékszögénél helyezkedik el. Ha az ütköző benyomódik,

//a háromszög többé nem lesz derékszögű,

//ezt a program jelzi a mozgásvezérlő központnak,

//ez alapján módosítja az irányát.

//Feladat: Kérd be a derékszögű háromszög két befogójának hosszát,

//és számold ki az átfogót!

//Ha az egyenlőség hamissá válik,

//a robot nekiment valaminek.

//(Később megtanuljuk, hogyan tudjuk folyamatosan vizsgálni az ütköző helyzetét.)

//2. Egy homokvihar tönkretette a robot egyes érzékelőit.

//Le kell ellenőrizni, hogy az érzékelő helyes adatot küld-e a processzornak.

//Feladat: Kérd be egy háromszög a,b,c oldalának hosszát!

//Állapítsd meg, hogy a háromszög egyáltalán megszerkeszthető-e!

//(Ha bármely két oldalának összege nagyobb, mint a harmadik oldal.

//Most nem kell ellenőrizned, hogy derékszögű-e.)

//3. Tegyük fel, hogy az érzékelő képes eltolni a robotot az akadálytól úgy,

//hogy a háromszög magassága a nyugalmi helyzethez viszonyítva megnyúlik 10 centivel.

//Feladat: Számold ki, mekkora lesz ez esetben a befogók hossza?


2025.02.19.[helyettesítés] SQL feladatmegoldás - AI alapú önálló gyakorlás

A következő feladatsor a dolgozatokra készít fel, ahol egészen hasonló feladatokat fogtok kapni. Kérem a hiányzókat is, hogy pótoljanak lehe...