2017. november 15., szerda

2017.11.15. Gyakorlás - Hegyek

Egy szöveges fájlba írd ki 5 hegy nevét és magasságát.
- Olvasd be a fájl tartalmát, majd írd ki a képernyőre.
- Írd ki a legmagasabb hegy nevét.
- Rendezd sorba az adatokat név szerint, majd írd ki a neveket.
- Rendezd sorba az adatokat magasság szerint, majd írd ki a magasságokat.
- Faktosoknak: oldjuk meg, hogy a sorbarendezéskor mindkét adatot egymás mellé ki tudjuk írni.
- Írjuk ki a képernyőre a legrövidebb nevű hegy nevét és magasságát.
- Írjuk ki a képernyőre a következőt: mekkora lenne az a hegy, amibe "beleépítjük" egymás tetejére az összes hegyet?
- Egy földrengés szétrombolta a legalacsonyabb hegyet, és 10%-kal csökkent a magassága. Mekkora lett?
- Tároljuk egy új tömbben, majd írjuk ki a képernyőre és egy új fájlba a hegyek magasságát lábban. Láb: angol mértékegység, nézz utána, hogyan kell átváltani.


Házi feladat befejezni a feladatsort a jövő hétre. A faktosok a külön feladathoz használjanak struktúrát.


Ádám megoldása, csak a feladatsor eleje, ez alapján mindenki tudja folytatni:

namespace ConsoleApplication1
{
    class Program
    {
        static string[] hegynev = new string[5];
        static int[] magassag = new int[5];
        static int max = 0;
        static int tombelem = 0;

        static void HegyConsolba()
        {
            StreamReader sr = new StreamReader("hegyek.txt");

            string[] atmeneti;
            int i = 0;
            while (!sr.EndOfStream)
            {
                atmeneti = sr.ReadLine().Split(';');
                hegynev[i] = atmeneti[0];
                magassag[i] = Convert.ToInt32(atmeneti[1]);

                Console.WriteLine("A hegy neve: {0}\nMagassága: {1}", hegynev[i], magassag[i]);

                i++;
            }

            sr.Close();
        }

        static void LegmagasabbHegy()
        {
            int i = 0;

            while (i < hegynev.Length)
            {
                if (magassag[i] > max)
                {
                    max = magassag[i];
                    tombelem = i;
                }
                i++;
            }
        }

        static void NevszerintiSorbarendezes()
        {
            Array.Sort(hegynev);

            for (int i = 0; i < 5; i++)
            {
                Console.WriteLine();
                Console.WriteLine(hegynev[i]);
            }
        }
        static void MagassagszerintiSorbarendezes()
        {
            Array.Sort(magassag);

            for (int i = 0; i < 5; i++)
            {
                Console.WriteLine();
                Console.WriteLine(magassag[i]);
            }
            Console.WriteLine();
        }

       
        static void Main(string[] args)
        {
            //kiírja a legmagasabb hegy nevét
            //             Egy szöveges fájlba írd ki 5 hegy nevét és magasságát.
            //- Olvasd be a fájl tartalmát, majd írd ki a képernyőre.
            //- Írd ki a legmagasabb hegy nevét.
            //- Rendezd sorba az adatokat név szerint, majd írd ki a neveket.
            //- Rendezd sorba az adatokat magasság szerint, majd írd ki a magasságokat.
            //- Faktosoknak: oldjuk meg, hogy a sorbarendezéskor mindkét adatot egymás mellé ki tudjuk írni.
            //- Írjuk ki a képernyőre a legrövidebb nevű hegy nevét és magasságát.
            //- Írjuk ki a képernyőre a következőt: mekkora lenne az a hegy, amibe "beleépítjük" egymás tetejére az összes hegyet?
            //- Egy földrengés szétrombolta a legalacsonyabb hegyet, és 10%-kal csökkent a magassága. Mekkora lett?
            //- Tároljuk egy új tömbben, majd írjuk ki a képernyőre és egy új fájlba a hegyek magasságát lábban. Láb: angol mértékegység, nézz utána, hogyan kell átváltani.

            HegyConsolba();

            LegmagasabbHegy();
            Console.WriteLine("\nA legmagasabb hegy neve: {0}\nA(z) {1}. elem a tömbben\nMagassága: {2}", hegynev[tombelem], tombelem, magassag[tombelem]);

            NevszerintiSorbarendezes();
            MagassagszerintiSorbarendezes();
            Console.ReadLine();
        }
    }

}