2023. február 6., hétfő

2023.02.06.Foreach –összegzés tétele – gyakorló feladat

 Házi feladat

Foreach –összegzés tétele – gyakorló feladat

//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.

2023.02.06. Foreach - fontos tudnivaló

Vizsgáld meg ezt a programot, és magyarázd el a működését.

Használd a következő szavakat: szintaktikai, szemantikai, futási

int[] tomb = new int[5];
            Random rnd = new Random();
            for (int i = 0; i < tomb.Length; i++)
            {
                tomb[i] = rnd.Next();
                Console.WriteLine(tomb[i]);
            }
            Console.WriteLine("Itt mi történik?");
            foreach (int x in tomb)
            {
                Console.WriteLine(tomb[x]);
            }
            Console.ReadLine();
            //////////////////////////////////////////////////
            for (int i = 0; i < tomb.Length; i++)
            {
                tomb[i] = rnd.Next(0,5);
                Console.WriteLine(tomb[i]);
            }
            Console.WriteLine();
            Console.WriteLine("És itt mi történik?");
            foreach (int x in tomb)
            {
                Console.WriteLine(tomb[x]);
            }
            Console.ReadLine();

Megoldás:

 using System;

namespace gadget
{
    class Program
    {
        static void Main(string[] args)
        {
            int[] tomb = new int[5];
            Random rnd = new Random();
            for (int i = 0; i < tomb.Length; i++)
            {
                tomb[i] = rnd.Next();
                Console.WriteLine(tomb[i]);
            }
            Console.WriteLine("Itt mi történik?");
            foreach (int x in tomb)
            {
                Console.WriteLine(tomb[x]); //véletlenül a tömb elemeit akartuk így kiírni
            }
            //nincs szintaktikai hiba, de futási hiba van,
            //mert a véletlenszám, ami a tömbben van, az kerül az x helyére,
            //és nem lesznek ennyiedik tömbelemek
            Console.ReadLine();
            //////////////////////////////////////////////////
            for (int i = 0; i < tomb.Length; i++)
            {
                tomb[i] = rnd.Next(0,5);
                Console.WriteLine(tomb[i]);
            }
            Console.WriteLine();
            Console.WriteLine("És itt mi történik?");
            foreach (int x in tomb)
            {
                Console.WriteLine(tomb[x]);
            }
            //itt nincs szintaktikai hiba,
            //nincs futási hiba,
            //de szemantikai hiba van (rendellenes működés),
            //mert az x maga a tömbelem, és bár a tömbből nem futunk ki,
            //nem a sorban következő tömbelemeket írjuk ki
            Console.ReadLine();
        }
    }
}