2017. április 20., csütörtök

2017.04.20. Házi feladat: For ciklus, foreach ciklus - Átlaghőmérséklet

Modellezzük a januári napi átlaghőmérséklet számítását.
-     Az éjszakai hőmérséklet modellezésére tölts föl egy 31 elemű tömböt véletlen egész számokkal, melynek értékei -28 és -5 (fok) között vannak.
-     A nappali hőmérséklet modellezésére tölts föl egy másik 31 elemű tömböt véletlen egész számokkal, melynek értékei -15 és 15 (fok) között vannak.
- Írd ki a tömböket foreach ciklussal.
-     Add meg a januári éjszakai középhőmérsékletet.
-     Add meg a januári nappali középhőmérsékletet.
Add meg a januári napi középhőmérsékletet.

Megoldás Ádám megoldása alapján:
//Modellezzük a januári napi átlaghőmérséklet számítását.
            //-     Az éjszakai hőmérséklet modellezésére tölts föl egy 31 elemű tömböt véletlen egész számokkal, melynek értékei -28 és -5 (fok) között vannak.
            //-     A nappali hőmérséklet modellezésére tölts föl egy másik 31 elemű tömböt véletlen egész számokkal, melynek értékei -15 és 15 (fok) között vannak.
            //- Írd ki a tömböket foreach ciklussal.
            //-     Add meg a januári éjszakai középhőmérsékletet.
            //-     Add meg a januári nappali középhőmérsékletet.
            //Add meg a januári napi középhőmérsékletet.

            Random rnd = new Random();
            double[] janEjszakaiH = new double[31];
            double[] janNappaliH = new double[31];

            for (int i = 0; i < janEjszakaiH.Length; i++)
            {
                janEjszakaiH[i] = rnd.Next(-28, -4);
                janNappaliH[i] = rnd.Next(-15, 16);
            }

            Console.WriteLine("A januári éjszakai hőmérsékletek:");
            int szamlalo = 0;
            foreach (int x in janEjszakaiH)
            {
                szamlalo++;
                Console.WriteLine("A(z) {0}. nap éjjeli hőmérséklete: {1} °C", szamlalo, x);
            }
            Console.WriteLine();
            Console.ReadLine();

            Console.WriteLine("A januári nappali hőmérsékletek:");
            szamlalo = 0;
            foreach (int x in janNappaliH)
            {
                szamlalo++;
                Console.WriteLine("A(z) {0}. nap nappali hőmérséklete: {1} °C", szamlalo, x);
            }
            Console.WriteLine();
            Console.ReadLine();

            //éjszakai középhőmérséklet

            double janEjszakaiKözepH = 0;

            for (int i = 0; i < janEjszakaiH.Length; i++)
            {
                janEjszakaiKözepH += janEjszakaiH[i]; //egyszerűbben: janEjszakaiKözepH = janEjszakaiKözepH + janEjszakaiH[i];
            }
            janEjszakaiKözepH /= janEjszakaiH.Length; //egyszerűbben:janEjszakaiKözepH = janEjszakaiKözepH/janEjszakaiH.Length;
            Console.WriteLine("A januári éjszakai középhőmérséklet: {0:00.000} °C", janEjszakaiKözepH);

            //nappali középhőmérséklet

            double janNappaliKözepH = 0;

            for (int i = 0; i < janNappaliH.Length; i++)
            {
                janNappaliKözepH += janNappaliH[i];
            }
            janNappaliKözepH /= janNappaliH.Length;
            Console.WriteLine("A januári nappali középhőmérséklet: {0:00.000} °C", janNappaliKözepH);

            //napi középhőmérséklet
            //Egyik megoldás:
            double janNapiKözepH = 0;

            for (int i = 0; i < 31; i++)
            {
                janNapiKözepH += janEjszakaiH[i] + janNappaliH[i];
            }
            janNapiKözepH = janNapiKözepH / (janEjszakaiH.Length + janNappaliH.Length);
            Console.WriteLine("A januári napi középhőmérséklet: {0:00.000} °C", janNapiKözepH);

            //Másik megoldás:
            double[] napi = new double[31];
            janNapiKözepH = 0;

            for (int i = 0; i < 31; i++)
            {
                napi[i] = (janEjszakaiH[i] + janNappaliH[i])/2;
                janNapiKözepH += napi[i];
            }
            janNapiKözepH = janNapiKözepH / napi.Length;
            Console.WriteLine("A januári napi középhőmérséklet: {0:00.000} °C", janNapiKözepH);

            Console.ReadLine();