2020. március 26., csütörtök

2020.03.26.-27. Tömbkezelés gyakorlása: Termékek + megoldás + videó


            //1. Az ablak címsorába írj be a mai napodra vonatkozó "jelmondatot". (Csak kulturáltan, uraim.)

            //2. Adj egy hangjelzést.

            //3. Definiálj egy konstanst <<akcio>> néven, amelyben a termékakcióban használt
            //százalékértéket kell tárolnod. (pl. 20%-os kedvezménynél: 20.)
            //4. A konstans értéke legyen 20.

            //5. Hozz létre egy 3 elemű tömböt <<termekek>> néven, amelyben a termékek nevét fogod tárolni.

            //6. Programból töltsd föl a tömböt terméknevekkel (pl. maszk, kézfertőtlenítő, gumikesztyű :)

            //7. Hozz létre egy 3 elemű tömböt <<arak>> néven, amelyben a termékek árát fogod tárolni.

            //8. Ezt a tömböt a felhasználótól bekért adatokkal kell feltöltened.
            //Ehhez írd ki neki, hogy 10-re végződő árakat kell beírnia,
            //majd helyezd el a bekért értékeket a tömbben.
            //Ne használj változót a bevitelhez, egyenesen a tömbbe tedd be az értékeket.

            //9. Csökkentsd az árakat 1-gyel a -- operátor segítségével.
            //Ehhez itt egy mintaprogram:
            //int[] tomb=new int[2];
            //tomb[0]--;
            //Console.WriteLine(tomb[0]);

            //10. Írd ki a két tömb első értékeit a képernyőre a következőképpen:
            //állítsd át a betűszínt, és a betű hátterének színét;
            //írd ki az akció kulcsának értékét (20) a 10. sor 5. oszlopába, írd mögé, hogy %;
            //ehhez a SetCursorPosition()-t használd
            //írd ki a termék nevét (a következő sor elejére) úgy,
            //hogy közben gondoskodj róla, hogy a kurzor ott maradjon kiírás után;
            //állítsd át a betűszínt, és a betű hátterének színét más színekre;
            //írd ki a termék árát;
            //hagyj egy üres sort a képernyőn.

            //11. Ismételd meg ezeket minden termékkel. Később erre ciklust fogunk használni.

            //12. Hozz létre egy 3 elemű tömböt <<akcios_ar>> néven, amelyben a termékek akciós árát fogod tárolni.

            //13. Ennek a tömbnek az elemeit töltsd föl a termékek általad kiszámolt akciós árával.
            //Feltételek:
            //Ha a termék ára 1000 forint, vagy annál magasabb, akkor a konstansban megadott százalékértéket használjuk (20).
            //Ha a termék ára 1000 forint alatt van, akkor a konstansban megadottnál 5 %-kal alacsonyabb értékű akció vonatkozik rá.

            //14. Írd ki a három tömb értékeit a képernyőre a következő mintapélda alapján:
            //MASZK     500 Ft helyett:     425 Ft
            //Ehhez a termékek nevét nagybetűssé kell alakítanod (csak a kiírás idejére, a tömbben ne változzon).
            //Ne használj szóközöket.

1. csoportból Ricsi megoldása átalakítva:
           
            //1. Az ablak címsorába írj be a mai napodra vonatkozó "jelmondatot". (Csak kulturáltan, uraim.)
            Console.Title = ":)";
            //2. Adj egy hangjelzést.
            Console.Beep();
            //3. Definiálj egy konstanst <<akcio>> néven, amelyben a termékakcióban használt
            //százalékértéket kell tárolnod. (pl. 20%-os kedvezménynél: 20.)
            //4. A konstans értéke legyen 20.
            const double akcio = 20;
            //5. Hozz létre egy 3 elemű tömböt <<termekek>> néven, amelyben a termékek nevét fogod tárolni.
            string[] termekek = new string[3];
            //6. Programból töltsd föl a tömböt terméknevekkel (pl. maszk, kézfertőtlenítő, gumikesztyű :)
            termekek[0] = "maszk";
            termekek[1] = "kézfertőtlenítő";
            termekek[2] = "gumikesztyű";
            //7. Hozz létre egy 3 elemű tömböt <<arak>> néven, amelyben a termékek árát fogod tárolni.
            double[] arak = new double[3];
            //8. Ezt a tömböt a felhasználótól bekért adatokkal kell feltöltened.
            //Ehhez írd ki neki, hogy 10-re végződő árakat kell beírnia,
            //majd helyezd el a bekért értékeket a tömbben.
            //Ne használj változót a bevitelhez, egyenesen a tömbbe tedd be az értékeket.
            Console.Write("Kérem az első 10-re végződő árat: ");
            arak[0] = Convert.ToInt32(Console.ReadLine());
            Console.Write("Kérem a második 10-re végződő árat: ");
            arak[1] = Convert.ToInt32(Console.ReadLine());
            Console.Write("Kérem a harmadik 10-re végződő árat: ");
            arak[2] = Convert.ToInt32(Console.ReadLine());
            //9. Csökkentsd az árakat 1-gyel a -- operátor segítségével.
            //Ehhez itt egy mintaprogram:
            //int[] tomb = new int[1];
            //tomb[0]--;

            arak[0]--;
            arak[1]--;
            arak[2]--;

            //10. Írd ki a két tömb első értékeit a képernyőre a következőképpen:
            //állítsd át a betűszínt, és a betű hátterének színét;
            Console.ForegroundColor = ConsoleColor.Red;
            Console.BackgroundColor = ConsoleColor.White;
            //írd ki az akció kulcsának értékét (20) a 10. sor 5. oszlopába, írd mögé, hogy %;
            //ehhez a SetCursorPosition()-t használd
            Console.SetCursorPosition(4, 9);
            Console.WriteLine("Akció: {0}%", akcio); // később kiderül, hogy nem mindenhol ennyi, de nem baj
            //írd ki a termék nevét (a következő sor elejére) úgy,
            //hogy közben gondoskodj róla, hogy a kurzor ott maradjon kiírás után;
            Console.Write("{0} ", termekek[0]);
            //állítsd át a betűszínt, és a betű hátterének színét más színekre;
            Console.ForegroundColor = ConsoleColor.DarkGray;
            Console.BackgroundColor = ConsoleColor.Cyan;
            //írd ki a termék árát;
            Console.WriteLine("Ár: {0} Ft ", arak[0]);
            //hagyj egy üres sort a képernyőn.
            Console.WriteLine();
            //11. Ismételd meg ezeket minden termékkel. Később erre ciklust fogunk használni.
            Console.ForegroundColor = ConsoleColor.Red;
            Console.BackgroundColor = ConsoleColor.White;
            Console.SetCursorPosition(4, 12);
            Console.WriteLine("Akció: {0}%", akcio);
            Console.Write("{0} ", termekek[1]);
            Console.ForegroundColor = ConsoleColor.DarkGray;
            Console.BackgroundColor = ConsoleColor.Cyan;
            Console.WriteLine("Ár: {0} Ft", arak[1]);
            Console.WriteLine();

            Console.ForegroundColor = ConsoleColor.Red;
            Console.BackgroundColor = ConsoleColor.White;
            Console.SetCursorPosition(4, 15);
            Console.WriteLine("Akció: {0}%", akcio);
            Console.Write("{0} ", termekek[2]);
            Console.ForegroundColor = ConsoleColor.DarkGray;
            Console.BackgroundColor = ConsoleColor.Cyan;
            Console.WriteLine("Ár: {0} Ft", arak[2]);
            Console.WriteLine();
            //12. Hozz létre egy 3 elemű tömböt <<akcios_ar>> néven, amelyben a termékek akciós árát fogod tárolni.
            double[] akcios_ar = new double[3];
            //13. Ennek a tömbnek az elemeit töltsd föl a termékek általad kiszámolt akciós árával.
            //Feltételek:
            //Ha a termék ára 1000 forint, vagy annál magasabb, akkor a konstansban megadott százalékértéket használjuk (20).
            if (arak[0] >= 1000)
            {
                akcios_ar[0] = arak[0] - (arak[0] * akcio) / 100;
            }
            //Ha a termék ára 1000 forint alatt van, akkor a konstansban megadottnál 5 %-kal alacsonyabb értékű akció vonatkozik rá.
            else
            {
                akcios_ar[0] = arak[0] - (arak[0] * (akcio - 5)) / 100;
            }
            if (arak[1] >= 1000)
            {
                akcios_ar[1] = arak[1] - (arak[1] * akcio) / 100;
            }
            //Ha a termék ára 1000 forint alatt van, akkor a konstansban megadottnál 5 %-kal alacsonyabb értékű akció vonatkozik rá.
            else
            {
                akcios_ar[1] = arak[1] - (arak[1] * (akcio - 5)) / 100;
            }
            if (arak[2] >= 1000)
            {
                akcios_ar[2] = arak[2] - (arak[2] * akcio) / 100;
            }
            //Ha a termék ára 1000 forint alatt van, akkor a konstansban megadottnál 5 %-kal alacsonyabb értékű akció vonatkozik rá.
            else
            {
                akcios_ar[2] = arak[2] - (arak[0] * (akcio - 5)) / 100;
            }
            //14. Írd ki a három tömb értékeit a képernyőre a következő mintapélda alapján:
            //MASZK 500 Ft helyett:     425 Ft
            //Ehhez a termékek nevét nagybetűssé kell alakítanod (csak a kiírás idejére, a tömbben ne változzon).
            //Ne használj szóközöket.
            Console.SetCursorPosition(0, 25);
            Console.WriteLine("{0, -16} {1, 5} Ft helyett:{2, 5} Ft", termekek[0].ToUpper(), arak[0], (int)akcios_ar[0]);
            //(int)akcios_ar[0]  - ebben az (int) típuskényszerítés: "kényszerítjük", hogy egész szám legyen a tört számból
            //csak a kiírás idejére, így egyszerűen levágja a tört részt (ez nem igazi kerekítés)
            Console.WriteLine("{0, -16} {1, 5} Ft helyett:{2, 5} Ft", termekek[1].ToUpper(), arak[1], (int)akcios_ar[1]);
            Console.WriteLine("{0, -16} {1, 5} Ft helyett:{2, 5} Ft", termekek[2].ToUpper(), arak[2], (int)akcios_ar[2]);
            Console.ReadLine();

Nincsenek megjegyzések:

Megjegyzés küldése