2020. március 30., hétfő

2020.03.31. Tömbkezelés gyakorlása - Matematikai számítások + megoldás + videó


//Tömbkezelés gyakorlása – Matematikai számítások
//1.   feladat:
//     Kérd be egy szabálytalan négyszög oldalainak hosszát,
//     és ezeket tárold egy tömbben.
//2.   feladat:
//     Hozz létre egy új tömböt, amelynek elemeit töltsd fel egy olyan
//    szabálytalan négyszög oldalainak hosszértékeivel,
//    aminek oldalai 10-szer akkorák, mint az első feladatban megadott négyszögé.
//     Írd ki, hogy hány érték kiírása következik, ehhez használd
//    a <<tömbNeve>>.Length függvényt.
//     Írasd ki a tömb elemeinek értékét a képernyőre.
//3.   feladat:
//     Egy tömbben tárold le a naprendszerünk 3 tetszőleges
//    bolygójának nevét, és negyedikként a Nap nevét.
//     Ezután egy másik tömbben tárold le ugyanezeket a neveket nagybetűsen!
//    Ehhez az első tömbből olvasd ki a szavakat.
//4.   feladat:
//     Vizsgáld meg egyenként a második tömb elemeit:
//    ha a hosszuk egyenlő 3-mal, írd ki, hogy ez csak a Nap lehet,
//    egyébként írd ki, hogy ez biztosan egy bolygó.
//5.   feladat:
//     Definiálj egy változót (pl. szamlalo néven), amelyben számolni fogod,
//    hány számítást végzel el a 6. feladatban.
//     Kezdőértéke legyen 0.
//6.   feladat:
//     Egy tömbben tárold le a következő számokat:
//    1000 gyöke (Math.SQRT()), 200-nak a 20-szorosa,
//    10000 osztva 3-mal művelet maradéka,
//    500 a négyzeten (Math.Pow()), 90 osztva 8-cal.
//     Minden egyes számítás után növeld meg a szamlalo értékét
//    1-gyel a következő módon: szamlalo++.
//     Írd ki a számítások eredményét a képernyőre,
//    megválasztott hosszon megformázva.
//     Írd ki a számláló értékét is.


Megoldás:

        {
            //Tömbkezelés gyakorlása – Matematikai számítások
            //1.   feladat:
            //      Kérd be egy szabálytalan négyszög oldalainak hosszát,
            //      és ezeket tárold egy tömbben.
            double[] negyszogOldalak = new double[4];

            Console.Write("Kérem írja be egy szabálytalan négyszög 1. oldalának hosszát: ");
            negyszogOldalak[0] = Convert.ToDouble(Console.ReadLine());
            //Így sem rossz, de szükségtelen bonyolultabban megoldani:
            //double negyszog1 = Convert.ToDouble(Console.ReadLine());
            //negyszogOldalak[0] = negyszog1;     

            Console.Write("Kérem írja be egy szabálytalan négyszög 2. oldalának hosszát: ");
            negyszogOldalak[1] = Convert.ToDouble(Console.ReadLine());

            Console.Write("Kérem írja be egy szabálytalan négyszög 3. oldalának hosszát: ");
            negyszogOldalak[2] = Convert.ToDouble(Console.ReadLine());

            Console.Write("Kérem írja be egy szabálytalan négyszög 4. oldalának hosszát: ");
            negyszogOldalak[3] = Convert.ToDouble(Console.ReadLine());

            //2.   feladat:
            //      Hozz létre egy új tömböt, amelynek elemeit töltsd fel egy olyan
            double[] negyszogTiz = new double[4];
            //      szabálytalan négyszög oldalainak hosszértékeivel,
            //      aminek oldalai 10-szer akkorák, mint az első feladatban megadott négyszögé.
            negyszogTiz[0] = negyszogOldalak[0] * 10;
            negyszogTiz[1] = negyszogOldalak[1] * 10;
            negyszogTiz[2] = negyszogOldalak[2] * 10;
            negyszogTiz[3] = negyszogOldalak[3] * 10;

            //      Írd ki, hogy hány érték kiírása következik, ehhez használd
            //      a <<tömbNeve>>.Length függvényt.
            Console.WriteLine("{0} érték kíírása következik", negyszogTiz.Length);

            //      Írasd ki a tömb elemeinek értékét a képernyőre.
            Console.WriteLine("Az 1. tömb elem értéke:{0}", negyszogTiz[0]);
            Console.WriteLine("A 2. tömb elem értéke:{0}", negyszogTiz[1]);
            Console.WriteLine("A 3. tömb elem értéke:{0}", negyszogTiz[2]);
            Console.WriteLine("A 4. tömb elem értéke:{0}", negyszogTiz[3]);

            //3.   feladat:
            //      Egy tömbben tárold le a naprendszerünk 3 tetszőleges
            //      bolygójának nevét, és negyedikként a Nap nevét.
            string[] naprendszerBolygoi = new string[4];
            naprendszerBolygoi[0] = "Föld";
            naprendszerBolygoi[1] = "Jupiter";
            naprendszerBolygoi[2] = "Szaturnusz";
            naprendszerBolygoi[3] = "Nap";

            //      Ezután egy másik tömbben tárold le ugyanezeket a neveket nagybetűsen!
            //      Ehhez az első tömbből olvasd ki a szavakat.
            string[] naprendszerNagy = new string[4];
            naprendszerNagy[0] = naprendszerBolygoi[0].ToUpper();
            naprendszerNagy[1] = naprendszerBolygoi[1].ToUpper();
            naprendszerNagy[2] = naprendszerBolygoi[2].ToUpper();
            naprendszerNagy[3] = naprendszerBolygoi[3].ToUpper();


            //4.   feladat:
            //      Vizsgáld meg egyenként a második tömb elemeit:
            //      ha a hosszuk egyenlő 3-mal, írd ki, hogy ez csak a Nap lehet,
            //      egyébként írd ki, hogy ez biztosan egy bolygó.

            if (naprendszerNagy[0].Length == 3)
            {
                Console.WriteLine("Ez csak a Nap lehet");
            }
            else
            {
                Console.WriteLine("Ez biztosan egy bolygó");
            }

            if (naprendszerNagy[1].Length == 3)
            {
                Console.WriteLine("Ez csak a Nap lehet");
            }
            else
            {
                Console.WriteLine("Ez biztosan egy bolygó");
            }

            if (naprendszerNagy[2].Length == 3)
            {
                Console.WriteLine("Ez csak a Nap lehet");
            }
            else
            {
                Console.WriteLine("Ez biztosan egy bolygó");
            }


            if (naprendszerNagy[3].Length == 3)
            {
                Console.WriteLine("Ez csak a Nap lehet");
            }
            else
            {
                Console.WriteLine("Ez biztosan egy bolygó");
            }


            //5.   feladat:
            //      Definiálj egy változót (pl. szamlalo néven), amelyben számolni fogod,
            //      hány számítást végzel el a 6. feladatban.
            //      Kezdőértéke legyen 0.

            double szamlalo = 0;

            //6.   feladat:
            //      Minden egyes számítás után növeld meg a szamlalo értékét
            //      1-gyel a következő módon: szamlalo++.
            //      Egy tömbben tárold le a következő számokat:
            double[] szamok = new double[5];
            //      1000 gyöke (Math.SQRT()),
            szamok[0] = Math.Sqrt(1000);
            szamlalo++;
            Console.WriteLine("1. számítás eredménye:{0, 10}", szamok[0]);

            //200-nak a 20-szorosa,
            szamok[1] = 200 * 20;
            Console.WriteLine("2. számítás eredménye:{0, 10}", szamok[1]);
            szamlalo++;

            //      10000 osztva 3-mal művelet maradéka,
            szamok[2] = 10000 % 3;
            Console.WriteLine("3. számítás eredménye:{0, 10}", szamok[2]);
            szamlalo++;

            //      500 a négyzeten (Math.Pow()),
            szamok[3] = Math.Pow(500, 2);
            Console.WriteLine("4. számítás eredménye:{0, 10}", szamok[3]);
            szamlalo++;

            //90 osztva 8-cal.
            szamok[4] = 90 / 8;
            Console.WriteLine("5. számítás eredménye:{0, 10}", szamok[4]);
            szamlalo++;

            //      Írd ki a számítások eredményét a képernyőre,
            //      megválasztott hosszon megformázva.
            //      Írd ki a számláló értékét is.
            Console.WriteLine("A számláló értéke: {0}", szamlalo);

            Console.ReadLine();


2020.03.30. Tömbkezelés gyakorlása: Feladatmix + megoldás + videó


            //1.      Hozz létre egy 5 elemű tömböt integer típusú számok tárolására.
            //2.      Ezt a tömböt -10 és 200 közötti véletlen számokkal kell feltöltened.
            //4.      Írd ki a képernyőre a számokat egymás mellé, közöttük vessző legyen.
            //5.      Ha az első szám nagyobb, mint 100, akkor írd ki, hogy "Ez nagy szám."
            //6.      Ha nem nagyobb, mint 100, ne írj ki semmit.
            //7.      Ha az első szám negatív, akkor írd ki az abszolút értékét a képernyőre.
            //8.      Ha az első szám nulla, vagy pozitív, akkor írd ki a számot a képernyőre.
            //9.      Hozz létre egy 5 elemű tömböt szövegek tárolására. Töltsd föl programból tantárgyak neveivel. Hasonlítsd össze az első tömbben található számokat rendre a második tömbben található szövegek hosszával. Írd ki a képernyőre, hogy melyik a kisebb/nagyobb, esetleg egyenlőek-e. (Mindegyik tömbelemen menj végig.)

            //További feladatok:
            //10. Írjuk ki az utolsó szám négyzetét. Math.Pow();
            //11. Írjuk ki, mennyi a második szám a negyediken.
            //12. Írjuk ki a 3. szám abszolút értékét függvénnyel. Math.Abs();
            //13. Ha a 4. szám pozitív, írjuk ki a négyzetgyökét. Math.Sqrt;

Balázs megoldása átalakítva:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Feladatmix
{
    class Program
    {
        static void Main(string[] args)
        {
            //1.    Hozz létre egy 5 elemű tömböt integer típusú számok tárolására.
            int[] szamok = new int[5];
            //A tömbelemek alapértelmezett értéke nulla, így nem szükséges feltölteni őket.

            //2.    Ezt a tömböt -10 és 200 közötti véletlen számokkal kell feltöltened.
            Random rnd = new Random();
            szamok[0] = rnd.Next(-10, 201);  //ennél több nem kell az értékadásnál
            szamok[1] = rnd.Next(-10, 201);
            szamok[2] = rnd.Next(-10, 201);
            szamok[3] = rnd.Next(-10, 201);
            szamok[4] = rnd.Next(-10, 201);

            //4.    Írd ki a képernyőre a számokat egymás mellé, közöttük vessző legyen.
            Console.WriteLine("{0},{1},{2},{3},{4}", szamok[0], szamok[1], szamok[2], szamok[3], szamok[4]);
            //5.    Ha az első szám nagyobb, mint 100, akkor írd ki, hogy "Ez nagy szám."
            if (szamok[0] > 100)
            {
                Console.WriteLine("Ez nagy szám");
            }
            Console.WriteLine();
            //6.    Ha nem nagyobb, mint 100, ne írj ki semmit.
            //7.    Ha az első szám negatív, akkor írd ki az abszolút értékét a képernyőre.
            if (szamok[0] < 0)
            {
                Console.WriteLine(Math.Abs(szamok[0]));
                //Láttam ilyen megoldást: Console.WriteLine("{0}", Math.Abs(szamok[0])); Nem kell ilyenkor a {0} !
            }
            Console.WriteLine();
            //8.    Ha az első szám nulla, vagy pozitív, akkor írd ki a számot a képernyőre.
            if (szamok[0] >= 0 )   //vagy bonyolultabban, de akár így is jó:(szamok[0] == 0 || szamok[0] > 0)
            {
                Console.WriteLine(szamok[0]);
            }
            Console.WriteLine();
            //9.    Hozz létre egy 5 elemű tömböt szövegek tárolására. Töltsd föl programból tantárgyak neveivel.
            //Hasonlítsd össze az első tömbben található számokat rendre a második tömbben található szövegek hosszával.
            //Írd ki a képernyőre, hogy melyik a kisebb/nagyobb, esetleg egyenlőek-e. (Mindegyik tömbelemen menj végig.)
            string[] tan = new string[5];
            tan[0] = "Matematika";
            tan[1] = "Magyar";
            tan[2] = "Programozás";
            tan[3] = "Történelem";
            tan[4] = "Testnevelés";

            if (szamok[0] > tan[0].Length)
            {
                Console.WriteLine("A számos tömbben levő szám nagyobb a szöveg hosszánál!");
            }
            else
            {
                if (szamok[0] < tan[0].Length)
                {
                    Console.WriteLine("A számos tömbben levő szám kisebb a szöveg hosszánál!");
                }
                else
                {
                    Console.WriteLine("Egyenlőek!");
                }                   
            }
            Console.WriteLine();


            if (szamok[1] > tan[1].Length)
            {
                Console.WriteLine("A számos tömbben levő szám nagyobb a szöveg hosszánál!");
            }
            else
            {
                if (szamok[1] < tan[1].Length)
                {
                    Console.WriteLine("A számos tömbben levő szám kisebb a szöveg hosszánál!");
                }
                else
                {
                    Console.WriteLine("Egyenlőek!");
                }
            }
            Console.WriteLine();

            if (szamok[2] > tan[2].Length)
            {
                Console.WriteLine("A számos tömbben levő szám nagyobb a szöveg hosszánál!");
            }
            else
            {
                if (szamok[2] < tan[2].Length)
                {
                    Console.WriteLine("A számos tömbben levő szám kisebb a szöveg hosszánál!");
                }
                else
                {
                    Console.WriteLine("Egyenlőek!");
                }
            }
            Console.WriteLine();

            if (szamok[3] > tan[3].Length)
            {
                Console.WriteLine("A számos tömbben levő szám nagyobb a szöveg hosszánál!");
            }
            else
            {
                if (szamok[3] < tan[3].Length)
                {
                    Console.WriteLine("A számos tömbben levő szám kisebb a szöveg hosszánál!");
                }
                else
                {
                    Console.WriteLine("Egyenlőek!");
                }
            }
            Console.WriteLine();

            if (szamok[4] > tan[4].Length)
            {
                Console.WriteLine("A számos tömbben levő szám nagyobb a szöveg hosszánál!");
            }
            else
            {
                if (szamok[4] < tan[4].Length)
                {
                    Console.WriteLine("A számos tömbben levő szám kisebb a szöveg hosszánál!");
                }
                else
                {
                    Console.WriteLine("Egyenlőek!");
                }
            }
            Console.WriteLine();

            //További feladatok:
            //10. Írjuk ki az utolsó szám négyzetét. Math.Pow();
            double utolso = Math.Pow(szamok[4], 2);
            Console.WriteLine(utolso);
            Console.WriteLine();
            //11. Írjuk ki, mennyi a második szám a negyediken.
            Console.WriteLine(Math.Pow(szamok[1], 4));
            Console.WriteLine();
            //12. Írjuk ki a 3. szám abszolút értékét függvénnyel. Math.Abs();
            Console.WriteLine(Math.Abs(szamok[2]));
            Console.WriteLine();
            //13. Ha a 4. szám pozitív, írjuk ki a négyzetgyökét. Math.Sqrt;
            if (szamok[3] >= 0)
            {
                Console.WriteLine(Math.Sqrt(szamok[3]));
            }
            Console.ReadLine();
        }
    }
}