2017. február 22., szerda

2017.02.23./1. Tömbkezelés gyakorlása VI.

Tömbkezelés gyakorlása VI.
1.      Az ablak címsorába írd be: Önálló feladatmegoldás.
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.      Add ezt értékül a konstansnak. A típusát úgy válaszd meg, hogy ne tárolj fölöslegesen nagy számot.
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.
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éket a tömbben. Ne használj változót a bevitelhez, egyenesen a tömbbe tedd be az értéket.
9.   Csökkentsd az árakat 1-gyel a -- operátor segítségével.
10.  Írd ki a két tömb é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 a 10. sor 5. oszlopába, írd mögé, hogy %;
-        í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.
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 10000 forint, vagy annál magasabb, akkor a konstansban megadott százalékértéket használjuk.
Ha a termék ára 10000 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:
MONITOR       40000 Ft helyett:   35000 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).
Krisztián megoldása:

           const double akcio = 20;
            //Tömbkezelés gyakorlása VI.
            //1.       Az ablak címsorába írd be: Önálló feladatmegoldás.
            Console.Title = "Önálló feladatmegoldás";
            //2.       Adj egy hangjelzést.
            Console.Beep(500,1000);
            //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.       Add ezt értékül a konstansnak. A típusát úgy válaszd meg, hogy ne tárolj fölöslegesen nagy számot.
            //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];
            termekek[0] = "zöldség";
            termekek[1] = "hús";
            termekek[2] = "rizs";
            //6.       Programból töltsd föl a tömböt terméknevekkel.
            //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];
            Console.Write(" Add meg az 1. termék árát(10-re végződő árak): ");
            arak[0] = Convert.ToDouble(Console.ReadLine());
            Console.Write(" Add meg a 2. termék árát(10-re végződő árak): ");
            arak[1] = Convert.ToDouble(Console.ReadLine());
            Console.Write(" Add meg a 3. termék árát(10-re végződő árak): ");
            arak[2] = Convert.ToDouble(Console.ReadLine());
            //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éket a tömbben.
            //Ne használj változót a bevitelhez, egyenesen a tömbbe tedd be az értéket.
            //9.   Csökkentsd az árakat 1-gyel a -- operátor segítségével.
            arak[0] = arak[0]--;
            arak[1] = arak[1]--;
            arak[2] = arak[2]--;
            //10.  Írd ki a két tömb é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 a 10. sor 5. oszlopába, írd mögé, hogy %;
            //-         í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.
            Console.Clear();
            Console.WriteLine();
            Console.ForegroundColor = ConsoleColor.Cyan;
            Console.BackgroundColor = ConsoleColor.DarkBlue;
            Console.SetCursorPosition(10, 6); //ezt a sort ismételni kellett volna a következő termékek előtt...
            Console.WriteLine("{0}%", akcio);
            Console.WriteLine(" Az 1. termék: {0}",termekek[0]);
            Console.ForegroundColor = ConsoleColor.Gray;
            Console.BackgroundColor = ConsoleColor.Magenta;
            Console.WriteLine(" Az 1. termék: {0}",arak[0]);
             Console.WriteLine();
            Console.WriteLine(" A 2. termék: {0}", termekek[1]);
            Console.ForegroundColor = ConsoleColor.Red;
            Console.BackgroundColor = ConsoleColor.Yellow;
            Console.WriteLine(" A 2. termék: {0}", arak[1]);
            Console.WriteLine();
            Console.WriteLine(" A 3. termék: {0}", termekek[2]);
            Console.ForegroundColor = ConsoleColor.White;
            Console.BackgroundColor = ConsoleColor.Black;
            Console.WriteLine(" A 3. termék: {0}", arak[2]);
            Console.WriteLine();
            //11.  Ismételd meg ezeket minden termékkel.
            //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 10000 forint, vagy annál magasabb, akkor a konstansban megadott százalékértéket használjuk.
            //Ha a termék ára 10000 forint alatt van, akkor a konstansban megadottnál 5 %-kal alacsonyabb értékű akció vonatkozik rá.
            if (arak[0] >=10000 )
            {
            akcios_ar[0] = arak[0] - (arak[0]*akcio/100);
            Console.WriteLine(" Az új ár: {0}", akcios_ar[0]);
            }
            else
            {
            akcios_ar[0] = arak[0] - (arak[0] * (akcio - 5) / 100);
            Console.WriteLine(" 10 ezer alatti akció: {0}",akcios_ar[0]);
            }
            //////////////////////////
            if (arak[1] >= 10000)
            {
            akcios_ar[1] = arak[1] - (arak[1] * akcio / 100);
            Console.WriteLine(" Az új ár: {0}", akcios_ar[1]);
            }
            else
            {
            akcios_ar[1] = arak[1] - (arak[1] * (akcio - 5) / 100);
            Console.WriteLine(" 10 ezer alatti akció: {0}", akcios_ar[1]);
            }
            //////////////////////////////
            if (arak[2] >= 10000)
            {
            akcios_ar[2] = arak[2] - (arak[2] * akcio / 100);
            Console.WriteLine(" Az új ár: {0}", akcios_ar[2]);
            }
            else
            {
            akcios_ar[2] = arak[2] - (arak[2] * (akcio - 5) / 100);
            Console.WriteLine(" 10 ezer alatti akció: {0}", akcios_ar[2]);
            }
            //14.  Írd ki a három tömb értékeit a képernyőre a következő mintapélda alapján:
            //MONITOR       40000 Ft helyett:   35000 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).
            Console.WriteLine();
            Console.WriteLine("{0} {1,8} Ft helyett: {2,15}",termekek[0].ToUpper(),arak[0],akcios_ar[0]);
            Console.WriteLine("{0} {1,8} Ft helyett: {2,15}", termekek[1].ToUpper(), arak[1], akcios_ar[1]);
            Console.WriteLine("{0} {1,8} Ft helyett: {2,15}", termekek[2].ToUpper(), arak[2], akcios_ar[2]);

            Console.ReadLine();