2022.02.18.-21. Önvezető autók

Befejeztük. Az otthon lévők pótoljanak, oldják meg egyedül az egészet.

 Önvezető autók

Napjainkban az önvezető autók egyre gyorsabban fejlődnek, több neves cég is fejleszt ilyeneket. Ebben a feladatban a rájuk vonatkozó adatokat kell feldolgoznia.

 Az adatokat a lenti keretben találja. Az állomány soronként tartalmazza az autók következő adatait egymástól pontosvesszővel elválasztva:

 - azonosító (gyártó és modellszám)

- teljesítmény (lóerő)

- tömeg (tonna)

- gyorsulás (hány másodperc alatt gyorsul 100 km/h-ra)

- a vezetőnek hányszor kellett beavatkozni a vezetésbe 10.000 km-en

 A fájlban 9 autó adatai vannak.

 

Tesla Model S P90D;760;2,20;3;3

Volvo XC90;889;2,90;4;14

Volkswagen GO989;1378;3,66;5;6

Audi Q525;772;2,40;2;3

Mercedes Benz898;739;2,20;3;9

Google Drive 18;752;2,55;4;11

Delphi Magic 428B;1194;3,00;3;4

Bosch Doom300;700;2,09;4;6

Nissan Cherry 100;725;3,1;3;7

 

Például a Tesla Model S P90D autó 760 lóerős teljesítményű, 2,2 tonna tömegű, 3 másodperc alatt gyorsul 100 km/órára és a 10.000 km-es tesztvezetésen 3-szor volt szükség humán beavatkozásra.

 1. Készítsen programot a következő feladatok megoldására, amelynek a forráskódját onvezeto néven mentse el.

A képernyőre írást igénylő részfeladatok megjelenítése előtt írja a képernyőre a feladat sorszámát!

2. Az adatokat olvassa be fájlból és tárolja el 5 listában.

3. Írja ki a képernyőre a leggyorsabb autó adatait. (Az a leggyorsabb, ami a legkevesebb idő alatt gyorsul 100-ra.) 

4. Írja ki a képernyőre a legkevésbé önálló autó azonosítóját. (Az a legkevésbé önálló, amelynél a legtöbbet kellett beavatkozni a vezetésbe.) 

6. Írja ki a képernyőre az autók átlag tömegét. 

7. Írja ki a képernyőre, és egy új fájlba autónként a következő adatokat szóközzel elválasztva: sorszám (a feldolgozás sorrendjében automatikusan generált), tömeg kg-ban. (1 tonna = 1000 kg).


Máté megoldása:

class Program
    {
        static List<string> azonosito = new List<string>();
        static List<int> loero = new List<int>();
        static List<double> tomeg = new List<double>();
        static List<double> gyorsulas = new List<double>();
        static List<int> vezetoBeavat = new List<int>();
        static void beolvas()
        {
            StreamReader sr = new StreamReader("autok.txt");
            string[] ideiglenes;

            while (!sr.EndOfStream)
            {
                ideiglenes = sr.ReadLine().Split(";");
                azonosito.Add(ideiglenes[0]);
                loero.Add(Convert.ToInt32(ideiglenes[1]));
                tomeg.Add(Convert.ToDouble(ideiglenes[2]));
                gyorsulas.Add(Convert.ToDouble(ideiglenes[3]));
                vezetoBeavat.Add(Convert.ToInt32(ideiglenes[4]));
            }
            sr.Close();

        }

        static int leggyorsabb()
        {
            double ideiglenes = gyorsulas[0];
            int i = 1;
            int j = 0;
            while (i < gyorsulas.Count)
            {
                if (ideiglenes > gyorsulas[i])
                {
                    ideiglenes = gyorsulas[i];
                    j = i;
                }
                i++;
            }
            return j;
        }

        static string[] adatKiiras()
        {
            int i = leggyorsabb();
            string[] data = { azonosito[i], loero[i].ToString(), tomeg[i].ToString(), gyorsulas[i].ToString(), vezetoBeavat[i].ToString() };
            return data;
        }
       
        static string legkevesbe()
        {
            double ideiglenes = vezetoBeavat[0];
            int i = 1;
            int j = 0;
            while (i < vezetoBeavat.Count)
            {
                if (ideiglenes < vezetoBeavat[i])
                {
                    ideiglenes = vezetoBeavat[i];
                    j = i;
                }
                i++;
            }
            return azonosito[j];
        }

        static double atlag()
        {
            double atlag = 0;
            int i = 0;
            while (i < tomeg.Count)
            {
                atlag += tomeg[i];
                i++;
            }
           
            return Convert.ToDouble(string.Format("{0:0.000}", atlag = (atlag / tomeg.Count)));
        }

        static void kiiras()
        {
            StreamWriter sw = new StreamWriter("ujFajl.txt");
            int i = 0;
            while (i < tomeg.Count)
            {
                sw.WriteLine($"{i+1}. {tomeg[i] * 1000} kg");
                Console.WriteLine($"{i+1}. {tomeg[i] * 1000} kg");
                i++;
            }
            sw.Close();
        }
//Szorgalmi: Rendezd sorba az azonosítókat,
//majd ezen a listán végiglépkedve írd ki az eredeti adatokat.
        static void sorbarendezes()
        {
            List<string> azonositoRend = new List<string>(azonosito);
            azonositoRend.Sort();
            int[] indexModositva = new int[azonositoRend.Count];
            int i = 0;
            while (i < azonositoRend.Count)
            {
                indexModositva[i] = azonosito.IndexOf(azonositoRend[i]);
                i++;
            }
            i = 0;
            while (i < azonosito.Count)
            {
                Console.WriteLine(azonositoRend[i] + " " + loero[indexModositva[i]] + "Le " + tomeg[indexModositva[i]] + " Tonna " + gyorsulas[indexModositva[i]] + "s " + vezetoBeavat[indexModositva[i]]+" alkalom");
                i++;
            }
        }

        static void sorbarendezes2()
        {
            List<string> azonositoRend = new List<string>(azonosito);
            azonositoRend.Sort();
            int i = 0;
            int j = 0;
            string ideiglenes = String.Empty;
            while (i < azonositoRend.Count)
            {
                ideiglenes = azonositoRend[i];
                j = 0;
                while (j < azonosito.Count)
                {
                    if (ideiglenes == azonosito[j])
                    {
                        Console.WriteLine($"{azonositoRend[i]} {loero[j]}Le {tomeg[j]} Tonna {gyorsulas[j]}s {vezetoBeavat[j]} alkalom");
                    }
                    j++;
                }
                i++;
            }
        }
        static void Main(string[] args)
        {
            //1.Készítsen programot a következő feladatok megoldására, amelynek a forráskódját onvezeto néven mentse el.

            //A képernyőre írást igénylő részfeladatok megjelenítése előtt írja a képernyőre a feladat sorszámát!
            Console.WriteLine("2. feladat");
            beolvas();
            Console.WriteLine("Beolvasás...");
            Console.WriteLine("\n3. feladat");
            foreach  (string x in adatKiiras())
            {
                Console.Write(x+" ");
            }
            Console.WriteLine("\n4. feladat");
            Console.WriteLine(legkevesbe());
            Console.WriteLine("\n5. feladat");
            Console.WriteLine(atlag()+" tonna az átlagtömeg");
            Console.WriteLine("\n6. feladat");
            Console.WriteLine("Tömegek sorszámozva \n");
            kiiras();
            Console.WriteLine();
            sorbarendezes();
            Console.WriteLine();
            sorbarendezes2();

            Console.ReadLine();
            //2.Az adatokat olvassa be fájlból és tárolja el 5 listában.

            //3.Írja ki a képernyőre a leggyorsabb autó adatait. (Az a leggyorsabb, ami a legkevesebb idő alatt gyorsul 100 - ra.)

            //4.Írja ki a képernyőre a legkevésbé önálló autó azonosítóját. (Az a legkevésbé önálló, amelynél a legtöbbet kellett beavatkozni a vezetésbe.)

            //6.Írja ki a képernyőre az autók átlag tömegét.

            //7.Írja ki a képernyőre, és egy új fájlba autónként a következő adatokat szóközzel elválasztva: sorszám(a feldolgozás sorrendjében automatikusan generált), tömeg kg-ban. (1 tonna = 1000 kg).
        }
    }


2024.02.15.-16. Helyettesítés

 Adatbázis: vizsgaremek adatbázisának befejezése teljesen készre, dokumentáció kiegészítése, befejezése. Vizsgaremek felületének megvalósítá...