2022. november 11., péntek

2022.11.11. Egyágú szelekció gyakorlása

using System;

using System.Threading;

namespace szelekcioGyakorlas
{
    class Program
    {
        static void Main(string[] args)
        {
            //int szam = 10;
            //if (szam==10)
            //{
            //    Console.WriteLine("igaz");
            //}
 
            //Dolgozat értékelés
            //1. Kérd be egy 100 pontos dolgozat 5 feladatának pontszámait.
            //Lehetnek fél pontok is.
            Console.Write("Kérem az 1. feladat elért pontszámát (max. 20): ");
            double elso = Convert.ToDouble(Console.ReadLine());
            //Ez a feltétel VAGY művelettel oldja meg az ellenőrzést:
                        //if (elso < 0 || elso > 20)
            //{
            //    Console.WriteLine("Rossz a feladat pontszáma!");
            //    Console.Beep();
            //    Thread.Sleep(1000);
            //    return;
            //} 
            //Ez a feltétel tagadott ÉS művelettel oldja meg ugyanazt az ellenőrzést.
            //A két megoldás egyenértékű.
            //Figyeljük meg, hogy a VAGY művelet ÉS-re változott, amikor tagadtuk.
            if (!(elso >= 0 && elso <= 20))    //összetett feltétel, hiszen VAGY/ÉS van benne
            {
                Console.WriteLine("Rossz a feladat pontszáma!");
                Console.Beep();
                Thread.Sleep(1000); //1 másodperc (1000 ezredmásodperc) késleltetés
                return//azonnal kilép a programból
            }
//A return használata strukturált programban nem ajánlott, mivel csökkenti a //programkód átláthatóságát. Megtanuljuk, aztán tanulni fogunk jobb megoldást //e probléma megoldására.
            Console.Write("Kérem az 2. feladat elért pontszámát (max. 15): ");
            double masodik = Convert.ToDouble(Console.ReadLine());
            if (masodik < 0 || masodik > 15//összetett feltétel, hiszen VAGY/ÉS van benne
            {
                Console.WriteLine("Rossz a feladat pontszáma!");
                Console.Beep();
                Thread.Sleep(1000);
                return;
            }
            Console.Write("Kérem az 3. feladat elért pontszámát (max. 25):");
            double harmadik = Convert.ToDouble(Console.ReadLine());
            if (harmadik < 0 || harmadik > 25)
            {
                Console.WriteLine("Rossz a feladat pontszáma!");
                Console.Beep();
                Thread.Sleep(1000);
                return;
            }
            Console.Write("Kérem az 4. feladat elért pontszámát (max. 10):");
            double negyedik = Convert.ToDouble(Console.ReadLine());
            if (negyedik < 0 || negyedik > 10)
            {
                Console.WriteLine("Rossz a feladat pontszáma!");
                Console.Beep();
                Thread.Sleep(1000);
                return;
            }
            Console.Write("Kérem az 5. feladat elért pontszámát (max. 30): ");
            double otodik = Convert.ToDouble(Console.ReadLine());
            if (otodik < 0 || otodik > 30)
            {
                Console.WriteLine("Rossz a feladat pontszáma!");
                Console.Beep();
                Thread.Sleep(1000);
                return;
            }
        
            //2. Összesítsd a pontokat, írd is ki.
            double osszesen = elso + masodik + harmadik + negyedik + otodik;
            Console.WriteLine("Összpontszám: {0}", osszesen);
            //3. Ezután írd ki, hányast kapott a user.
            if (osszesen < 0 || osszesen > 100)
            {
                Console.WriteLine("Rossz az összpontszám!");
                Console.Beep();
                Thread.Sleep(1000);
                return;
            }
            // A következő 5 szelekció hátránya, hogy ha bármelyik igaz,
            //attól még kiértékeli a többit is, ezek így fölösleges utasítás-végrehajtások.
            //Ezt a kétágú szelekcióval fogjuk tudni elkerülni.          
            //”Kiértékelés” szó jelentése: megvizsgálja, hogy igaz vagy hamis a feltétel
            if (osszesen <= 60)
            {
                Console.WriteLine("Egyest kaptál.");
            }
            if (osszesen >= 60.5 && osszesen <= 70)
            {
                Console.WriteLine("Kettest kaptál.");
            }
            if (osszesen >= 70.5 && osszesen <= 80)
            {
                Console.WriteLine("Hármast kaptál.");
            }
            if (osszesen >= 80.5 && osszesen <= 90)
            {
                Console.WriteLine("Négyest kaptál.");
            }
            if (osszesen >= 90.5 && osszesen <= 100)
            {
                Console.WriteLine("Ötöst kaptál.");
            }
            //4 feladat: Építsd bele a programba az összpontszám-ellenőrzést:
            //ha a kiszámolt összpontszám nem a nulla és 100
            //közé esik, akkor hangjelzés kíséretében írj ki hibaüzenetet,
            //és szakítsd meg a programot.
            //EZT FÖNT OLDOTTUK MEG A PONTSZÁMBEKÉRÉSEKNÉL 
            //Kérdés1: Hogyan kezelnéd a hibás érték bevitelét?
            //Válasz: megoldottuk, amennyire tudtuk.
            //Ha majd megtanuljuk a ciklusokat, akkor majd
            //addig kérjük be újra és újra a pontszámot, amíg jó nem lesz.
 
            //Kérdés2: Mi a hátránya annak, hogy egymás után
            //minden feltételt kiértékel a program?
            //A válasz a szelekcióknál van. 
            //5. feladat: Építsd bele a programba a feladatonkénti
            //pontszámellenőrzést a következők alapján:
            //első feladat: 20 pont
            //második feladat: 15 pont
            //harmadik feladat: 25 pont
            //negyedik feladat: 10 pont
            //ötödik feladat: 30 pont 
            //Ha a bekért pontszám nem a nulla és a megfelelő
            //pontszám közé esik, akkor hangjelzés kíséretében
            //írj ki hibaüzenetet, és szakítsd meg a programot.
            //Ezt fent megoldottuk.
            //6. feladat: Légy jó szívű! Add meg a jobb jegyet, ha
            //csak fél pont hiányzik.
            //Fent megoldottuk. 
            //Szorgalmi3: Add meg a pontok bekérésénél
            //az összetett feltételeket kétféleképpen:
            //úgy, hogy ne legyen benne tagadás, és
            //úgy, hogy legyen benne egy tagadás.
            //Az első feladat pontszámának bekérésénél megoldottuk. 
            Console.ReadLine();
        }
    }
}

Nincsenek megjegyzések:

Megjegyzés küldése

2024.04.25., 29., 05.02. 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...