2020. november 2., hétfő

2020.11.02. Hegyek feladat (két tömb + fájlkezelés)

Javító tz.

Aki nem írt házit, pótolja.

Ezt be kell fejezni otthon.


Új feladat: 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.

- Szorgalmi: 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.


Varsó megoldása:

 

using System;

using System.IO;

 

namespace _20201102_2

{

    class Program

    {

        static string[] hegy = new string[7];

        static int[] nagysag = new int[7];

        static string[] atmeneti;

        static StreamReader sr;

        static string[] hegy_2 = new string[7];

        static int[] nagysag_2 = new int[7];

        static double[] nagysag_lb = new double[7];

        static void hegyek()

        {

            sr = new StreamReader("hegyek.txt");

            int k = 0;

            while (!sr.EndOfStream)

            {

                atmeneti = sr.ReadLine().Split('-');

                hegy[k] = atmeneti[0];

                nagysag[k] = Convert.ToInt32(atmeneti[1]);

                k++;

            }

            sr.Close();

        }

        static void hegyek_kiiras()

        {

            for (int i = 0; i < hegy.Length; i++)

            {

                Console.WriteLine("Hegy neve: {0}, Magassága: {1}", hegy[i], nagysag[i]);

            }

        }

        static void legmagasabb()

        {

            int max = nagysag[0];

            int hely = 0;

            for (int i = 0; i < nagysag.Length; i++)

            {

                if (max < nagysag[i])

                {

                    max = nagysag[i];

                    hely = i;

                }

            }

            Console.WriteLine("Legmagasabb hegy neve: {0}, Magassága: {1}", hegy[hely], max);

 

        }

        static void rendezes_NEV()

        {

            for (int i = 0; i < hegy.Length; i++)

            {

                hegy_2[i] = hegy[i];

 

            }

            Array.Sort(hegy_2);

            for (int i = 0; i < hegy_2.Length; i++)

            {

                Console.WriteLine(hegy_2[i]);

            }

        }

        static void rendezes_NAGYSAG()

        {

            for (int i = 0; i < nagysag.Length; i++)

            {

                nagysag_2[i] = nagysag[i];

 

            }

            Array.Sort(nagysag_2);

            for (int i = 0; i < nagysag_2.Length; i++)

            {

                Console.WriteLine(nagysag_2[i] + " méter ");

            }

        }

        static void legrovidebbNevuHegy()

        {

            int min_rovid = hegy[0].Length;

            int k = 0;

            for (int i = 0; i < hegy.Length; i++)

            {

                if (min_rovid > hegy[i].Length)

                {

                    min_rovid = hegy[i].Length;

                    k = i;

                }

            }

            string legrovidebbNevu = hegy[k];

            int legrovidebbNevuMagassaga = nagysag[k];

 

           

           

            Console.WriteLine("A legrövidebb nevű hegy neve {0}, magassága: {1}", legrovidebbNevu, legrovidebbNevuMagassaga);

        }

        static void osszegzes()

        {

            int osszegzes1 = 0;

            for (int i = 0; i < nagysag.Length; i++)

            {

                osszegzes1 += nagysag[i];

            }

            Console.WriteLine(osszegzes1 + " méter lenne az a hegy, amibe beleépítjük egymás tetejére az összes hegyet. ");

        }

        static void legkisebbhegyROMBOLAS()

        {

            int legkisebbhegy = nagysag[0];

            int legkisebbhegy10szazalekminusz = legkisebbhegy;

            int rombolasErteke = 10;

            for (int i = 0; i < nagysag.Length; i++)

            {

                if (nagysag[i] < legkisebbhegy)

                {

                    legkisebbhegy = nagysag[i];

                }

            }

            legkisebbhegy10szazalekminusz = legkisebbhegy / 100 * (100 - rombolasErteke);

            Console.WriteLine("Ha a legkisebb hegy 10%-al lerombolódna, akkor a magassága {0} méter lesz.", legkisebbhegy10szazalekminusz);

        }

        static void labmertekegyseg()

        {

            double meterToLabertek = 3.280840;

            for (int i = 0; i < nagysag.Length; i++)

            {

                nagysag_lb[i] = nagysag[i] * meterToLabertek;

                Console.WriteLine("Hegy neve: {0}, magassága: {1} méter, magassága: {2} láb", hegy[i], nagysag[i], nagysag_lb[i]);

            }

 

        }

      

        static void Main(string[] args)

        {

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

            hegyek();

            hegyek_kiiras();

 

            //-Írd ki a legmagasabb hegy nevét.

            legmagasabb();

 

           

            //- Rendezd sorba az adatokat név szerint, majd írd ki a neveket.

            rendezes_NEV();

 

            //- Rendezd sorba az adatokat magasság szerint, majd írd ki a magasságokat.

            rendezes_NAGYSAG();

 

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

            legrovidebbNevuHegy();

 

            //-Í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 ?

            osszegzes();

            //-Egy földrengés szétrombolta a legalacsonyabb hegyet, és 10 % -kal csökkent a magassága.Mekkora lett?

            legkisebbhegyROMBOLAS();

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

            labmertekegyseg();

 

            Console.Write("\n\nA program bezárásahoz nyomjon meg egy billentyűt...");

            Console.ReadKey();

        }

    }

}

 

//TXT fájl tartalma:

//Elbrusz-5624

//Vinson Massif-4897

//Denali-6194

//Aconcagua-6959

//Kilimandzsáró-5895

//Mount Everest-8846

//Mount Kosciuszko-2229


Nincsenek megjegyzések:

Megjegyzés küldése