2023. október 27., péntek

2023.10.27. Házi feladat

 Házi feladat megoldani a Szoftverek feladatsort (hiányzóknak is).

2023.10.27. Kamionok alap megoldás

 using System;


namespace KamionokAlap
{
    class Kamion
    {
        public string Marka { get; set; }
        public string Tipus { get; set; }
        public int Evjarat { get; set; }
        public int Teljesitmeny { get; set; }
        public double Uzemanyagfogyasztas { get; set; }
        public int KmAllas { get; set; }

        public Kamion(string sor)
        {
            string[] mezok = sor.Split(';');
            Marka = mezok[0];
            Tipus = mezok[1];
            Evjarat = int.Parse(mezok[2]);
            Teljesitmeny = int.Parse(mezok[3]);
            Uzemanyagfogyasztas = double.Parse(mezok[4]);
            KmAllas = int.Parse(mezok[5]);
        }

        public void Kiir()
        {
            Console.WriteLine($"Márka: {Marka}, Típus: {Tipus}, Évjárat: {Evjarat}, Teljesítmény: {Teljesitmeny} lóerő, Üzemanyagfogyasztás: {Uzemanyagfogyasztas} l/100km, Km-óra állás: {KmAllas}");
        }

        public override string ToString()
        {
            return $"Márka: {Marka}, Típus: {Tipus}, Évjárat: {Evjarat}, Teljesítmény: {Teljesitmeny} lóerő, Üzemanyagfogyasztás: {Uzemanyagfogyasztas} l/100km, Km-óra állás: {KmAllas}";
        }

        public double TeljesitmenyKW()
        {
            return Math.Round(Teljesitmeny * 0.7355,2);
        }

    }
}

using System;
using System.Collections.Generic;
using System.IO;

namespace KamionokAlap
{  
    class Program
    {
        static void Main(string[] args)
        {
            List<Kamion> kamionok = BeolvasKamionok(@"..\..\..\src\kamionok.txt");

            Console.WriteLine("\nÖsszes kamion adatai:");
            foreach (var kamion in kamionok)
            {
                Console.WriteLine(kamion);
            }

            Console.WriteLine($"\n1. Feladat: Átlagos évjárat: {AtlagosEvjarat(kamionok)}");

            List<Kamion> manKamionok = new List<Kamion>();
            Console.WriteLine($"\n2. Feladat: {ManKamionok(kamionok, manKamionok)} db MAN kamion van 2018 vagy újabb évjáratú.");

            List<Kamion> legtobbfutott = LegtobbfutottKamion(kamionok);
            Console.WriteLine("\n3. Feladat: Legtöbbet futott kamion(ok):");
            foreach (var kamion in legtobbfutott)
            {
                Console.WriteLine(kamion);
            }

            //ebben a megoldásban az elsőt kapjuk meg
            Kamion iveco = IvecoKamion(kamionok);
            Console.WriteLine("\n4. Feladat: " + (iveco != null ? "Van" : "Nincs") + " olyan Iveco kamion, aminek a fogyasztása kevesebb, mint a legerősebb motorteljesítményű Mercedes modell fogyasztása.");
            iveco.Kiir();

            Console.WriteLine("\n5. Feladat: Üzemanyagfogyasztás 30 l alatt:");
            List<Kamion> alacsonyFogyasztasuKamionok = AlacsonyFogyasztasuKamionok(kamionok);
            foreach (var kamion in alacsonyFogyasztasuKamionok)
            {
                Console.WriteLine(kamion);
            }

            Kamion max;
            Kamion min;
            string eredmeny = LegerosebbLeggyengebbEgyezik(kamionok, out max, out min) ? "igen" : "nem";
            Console.WriteLine($"\n6. Feladat: A legerősebb és leggyengébb kamionnak ugyanaz a gyártója? {eredmeny}");
            Console.WriteLine($"Legerősebb kamion: {max}");
            Console.WriteLine($"Leggyengébb kamion: {min}");

 

            Console.WriteLine("\n7. Feladat: \nFájlba írás: Kamionok átszámolva kW-ra");
            KiirKilowattba(kamionok, @"..\..\..\src\kamionok_kw.txt");

            Console.ReadKey();
        }

        static List<Kamion> BeolvasKamionok(string file)
        {
            List<Kamion> kamionok = new List<Kamion>();
            try
            {
                string[] sorok = File.ReadAllLines(file);
                for (int i = 1; i < sorok.Length; i++)
                {
                    kamionok.Add(new Kamion(sorok[i]));
                }
            }
            catch (IOException e)
            {
                Console.WriteLine("Hiba a fájl olvasása közben: " + e.Message);
            }
            return kamionok;
        }
        static double AtlagosEvjarat(List<Kamion> kamionok)
        {
            double osszeg = 0;
            foreach (var kamion in kamionok)
            {
                osszeg += kamion.Evjarat;
            }
            return Math.Round(osszeg / kamionok.Count);
        }

        static int ManKamionok(List<Kamion> k, List<Kamion> man)
        {
            foreach (var item in k)
            {
                if (item.Marka == "MAN" && item.Evjarat >= 2018)
                {
                    man.Add(item);
                }
            }
            return man.Count;
        }

        static List<Kamion> LegtobbfutottKamion(List<Kamion> kamionok)
        {
            Kamion max = kamionok[0];
            List<Kamion> legtobbfutott = new List<Kamion>();

            foreach (var kamion in kamionok)
            {
                if (kamion.KmAllas > max.KmAllas)
                {
                    max = kamion;
                }
            }
            foreach (var item in kamionok)
            {
                if (item.KmAllas == max.KmAllas)
                {
                    legtobbfutott.Add(item);
                }
            }
            return legtobbfutott;
        }

        static Kamion IvecoKamion(List<Kamion> kamionok)
        {
            Kamion maxTeljesitmenyuMercedes = kamionok[0];
            foreach (var item in kamionok)
            {
                if (item.Marka =="Mercedes" && maxTeljesitmenyuMercedes.Teljesitmeny < item.Teljesitmeny)
                {
                    maxTeljesitmenyuMercedes = item;
                }
            }
            //teszt
            //Console.WriteLine("maxTeljesitmenyuMercedes telj. mercedes");
            //maxTeljesitmenyuMercedes.Kiir();
            foreach (var item in kamionok)
            {
                if (item.Marka == "Iveco" && item.Uzemanyagfogyasztas < maxTeljesitmenyuMercedes.Uzemanyagfogyasztas)
                {
                    return item;
                }
            }
            return null;
        }

        static List<Kamion> AlacsonyFogyasztasuKamionok(List<Kamion> kamionok)
        {
            List<Kamion> alacsonyFogyasztasu = new List<Kamion>();

            foreach (var kamion in kamionok)
            {
                if (kamion.Uzemanyagfogyasztas < 30)
                {
                    alacsonyFogyasztasu.Add(kamion);
                }
            }
            return alacsonyFogyasztasu;
        }

        static bool LegerosebbLeggyengebbEgyezik(List<Kamion> kamionok, out Kamion kamionMax, out Kamion kamionMin)
        {
            kamionMax = kamionok[0];
            kamionMin = kamionok[0];

            foreach (var kamion in kamionok)
            {
                if (kamion.Teljesitmeny > kamionMax.Teljesitmeny)
                {
                    kamionMax = kamion;
                }
                if (kamion.Teljesitmeny < kamionMin.Teljesitmeny)
                {
                    kamionMin = kamion;
                }
            }
            return kamionMax.Marka == kamionMin.Marka;
        }


        static void KiirKilowattba(List<Kamion> kamionok, string fajlnev)
        {
            using StreamWriter writer = new StreamWriter(fajlnev);
            foreach (var kamion in kamionok)
            {
                writer.WriteLine($"Márka: {kamion.Marka}, Típus: {kamion.Tipus}, Évjárat: {kamion.Evjarat}, Teljesítmény: {kamion.TeljesitmenyKW()} kW, Üzemanyagfogyasztás: {kamion.Uzemanyagfogyasztas} l/100km, Km-óra állás: {kamion.KmAllas}");
            }
        }
    }
}


2023.10.26. Repülők LINQ megoldás

Kevin megoldása alapján

 using System;

using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace arpaskTZ
{
    class Repulogep
    {
        public string GyartoModell { get; set; }
        public int Evjarat { get; set; }
        public string MotorTipus { get; set; }
        public int UtasSzam { get; set; }
        public int HatoTav { get; set; }
        public int UtazasiMagassag { get; set; }
        public double UtazasiMagassagKmben
        {
            get
            {
                return (double)UtazasiMagassag / 1000;
            }
        }

        public Repulogep(string sor)
        {
            var r = sor.Split(";");
            GyartoModell = r[0];
            Evjarat = int.Parse(r[1]);
            MotorTipus = r[2];
            UtasSzam = int.Parse(r[3]);
            HatoTav = int.Parse(r[4]);
            UtazasiMagassag = int.Parse(r[5]);
        }

        public override string ToString() => $"{GyartoModell}, {Evjarat}, {MotorTipus}, {UtasSzam}, {HatoTav}, {UtazasiMagassag}";
    }
}

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace arpaskTZ
{
    class Fuggvenyek
    {
        public static double AtlagEvjarat(List<Repulogep> repulogepek)
        {
            return repulogepek
                .Average(r => r.Evjarat);
        }

        public static double MaxUtasSzam500(List<Repulogep> repulogepek)
        {
            return repulogepek.Count;
        }

        public static List<Repulogep> LegnagyobbHatotav(List<Repulogep> repulogepek)
        {
            int legnagyobbHatotavolsag = repulogepek
                .OrderByDescending(r => r.HatoTav)
                .Select(r => r.HatoTav)
                .First();

            return repulogepek
                .Where(r => r.HatoTav == legnagyobbHatotavolsag)
                .ToList();
        }

        public static List<Repulogep> KicsiBoeing(List<Repulogep> repulogepek)
        {
            var legregebbiAirBus = repulogepek
                .Where(r => r.GyartoModell.StartsWith("Airbus"))
                .OrderBy(r => r.Evjarat)
                .First();

            return repulogepek
                .Where(r => r.UtasSzam < legregebbiAirBus.UtasSzam && r.GyartoModell.StartsWith("Boeing"))
                .ToList();
        }

        public static List<Repulogep> AlcsonyanSzall(List<Repulogep> repulogepek)
        {
            return repulogepek
                .Where(r => r.UtazasiMagassag < 6000)
                .ToList();
        }

        public static (Repulogep legkisebb, Repulogep legnagyobb, bool ugyanazE) LegnagyobbLegkisebb(List<Repulogep> repulogepek)
        {
            var legkisebbHatotavu = repulogepek
                .OrderBy(r => r.HatoTav)
                .First();

            var legnagyobbHatotavu = repulogepek
                .OrderByDescending(r => r.HatoTav)
                .First();

            bool vanE = legkisebbHatotavu.GyartoModell == legnagyobbHatotavu.GyartoModell;

            return (legkisebbHatotavu, legnagyobbHatotavu, vanE);
        }
    }
}

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;

namespace arpaskTZ
{
    class Program
    {
        static void Main(string[] args)
        {
            var repulogepek = new List<Repulogep>();

            try
            {
                using var sr = new StreamReader(@"..\..\..\src\repulogepek.txt", Encoding.UTF8);

                while (!sr.EndOfStream)
                {
                    repulogepek.Add(new Repulogep(sr.ReadLine()));
                }
            }
            catch (Exception)
            {
                Console.WriteLine("Nem található a file");
            }

            foreach (var r in repulogepek)
            {
                Console.WriteLine(r);
            }

            Console.WriteLine("9. feladat");

            Console.WriteLine($"A repülők átlagos évjárata: {Math.Round(Fuggvenyek.AtlagEvjarat(repulogepek))}");

            Console.WriteLine("10. feladat");

            var f10 = repulogepek
                .Where(r => r.UtasSzam > 500)
                .ToList();

            Console.WriteLine($"{Fuggvenyek.MaxUtasSzam500(f10)} olyan repülőgép van, aminek utasszáma meghaladja az 500-at");

            Console.WriteLine("11. feladat");

            var f11Lista = Fuggvenyek.LegnagyobbHatotav(repulogepek);

            foreach (var f in f11Lista)
            {
                Console.WriteLine(f);
            }

            Console.WriteLine("12. feladat");

            var kicsiBoeingek = Fuggvenyek.KicsiBoeing(repulogepek);

            if (kicsiBoeingek.Count != 0)
            {
                Console.WriteLine(kicsiBoeingek[0]);
            }
            else
            {
                Console.WriteLine("Nincs ilyen Boeing");
            }

            Console.WriteLine("13. feladat");

            var alacsonyanSzallnak = Fuggvenyek.AlcsonyanSzall(repulogepek);

            foreach (var a in alacsonyanSzallnak)
            {
                Console.WriteLine(a);
            }

            Console.WriteLine("15. feladat");
            using var sw = new StreamWriter(@"..\..\..\src\valami.txt", false, Encoding.UTF8);
            {
                foreach (var r in repulogepek)
                {
                    sw.WriteLine($"{r.GyartoModell}, {r.UtazasiMagassagKmben}");
                }
            }
            Console.WriteLine("Fájlba írás kész.");

            Console.WriteLine("16. feladat");

            var (legkisebb, legnagyobb, vanE) = Fuggvenyek.LegnagyobbLegkisebb(repulogepek);

            Console.WriteLine(legkisebb);

            Console.WriteLine(legnagyobb);

            Console.WriteLine($"{(vanE ? "Ugyanaz" : "Nem ugyanaz")} a legkisebb és a legnagyobb hatótávú repülő gyártója");

            Console.ReadKey();
        }
    }
}