2023. december 18., hétfő

2023.12.18. Regisztráció!

Kérek mindenkit, hogy az MKIK-től érkezett e-mailt olvassa el és a megadott módon regisztráljon - december 22-ig. Ez kell ahhoz, hogy január 22-én versenyezni tudjatok. A jelszót jól jegyezzétek meg.
Ha nem kaptál e-mailt, a titkárságon jelezd.

Aki ma hiányzik, annak is szóljatok!

2023. december 17., vasárnap

2023.12.18. Helyettesítés

Ma bepótoljuk a tesztelés órákat.

1. feladat:

A mai órákon önállóan olvasd el a Szoftvertesztelés (+kiemelések) 3.0 pdf-ből a következő részeket:

A kiemelések segítenek megérteni a lényeget.

2. feladat:

Olvasd el az Agile Manifesto rövid magyar nyelvű összefoglalását  (és a 12 alapelvet) itt.

Olvasd el ezt a véleménycikket az agilis szoftverfejlesztés eltelt 20 évéről.

Csak elolvasni kell és megérteni.

2023. december 13., szerda

2023.12.13. Programozás elmélet

 Végigvettünk minden anyagot a tz-hez, van frissített anyagrész is. Aki ma tesztet írt, vagy hiányzott, a többiekkel egyeztessen.

2023. december 8., péntek

2023.12.08. Programozás elmélet

  Végigvettük a 2. tananyagrészt is (3.0!). Házi feladat hétfőre megtanulni mindkettőt. Hétfőn kis számonkérés után vesszük a 3. tananyagrészt is. Pénteken témazáró várható.

2023. december 4., hétfő

2023. december 1., péntek

2023.12.01. Okosszemüveges - VR szemüveges prog. feladatsor

Átismételtük majdnem az egész okosszemüveges feladatsort.

Hétfőn befejezzük az elemzést.  Mindkettő feladatsor saját megoldását (okosszemüveg, VR szemüveg) be kell fejezni péntekre. Itt az okosszemüveges minta, ez alapján kell a saját megoldásaidat "megtuningolni".

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

namespace okosSzemuveg
{
    class Szemuveg
    {
        public string Sorszam { get; set; }
        public double Meret { get; set; }
        public double Teljesitmeny { get; set; }
        public int Felbontas { get; set; }
        public string[] Szenzorok { get; set; }
        public string Tarhely { get; set; }
        public int Uzemido { get; set; }
        public double MeretCenti() => Meret * 2.54;
        public double TarhelySzamito()
        {
            var tar = Tarhely.Split(" ");
            if (tar[1] == "GB")
            {
                return double.Parse(tar[0]);
            }
            else
            {
                return double.Parse(tar[0]) * 1024;
            }
        }

        public Szemuveg(string sor)
        {
            var v = sor.Split(';');
            Sorszam = v[0];
            Meret = double.Parse(v[1]);
            Teljesitmeny = double.Parse(v[2]);
            Felbontas = int.Parse(v[3]);
            Szenzorok = v[4].Split(',');
            Tarhely = v[5];
            Uzemido = int.Parse(v[6]);
        }

        public override string ToString()
        {
            string szenzorok = "";
            for (int i = 0; i < Szenzorok.Length; i++)
            {
                szenzorok += $"{Szenzorok[i]},";
            }
            return $"Sorszam: {Sorszam}; Meret: {Meret}; Teljesítmény: {Teljesitmeny}; Felbontás: {Felbontas}, Szenzorok: {szenzorok}; Tárhely: {Tarhely}; Üzemidő: {Uzemido}";
        }
    }
}

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

namespace okosSzemuveg
{
    class Program
    {
        static void Main(string[] args)
        {
            List<string> Tulajdonsagok = new();
            List<Szemuveg> szemuvegek = new();
            using StreamReader sr = new(
                path: @"..\..\..\src\okosszemüvegek.txt",
                encoding: Encoding.UTF8);
            Tulajdonsagok = sr.ReadLine().Split(";").ToList();
            while (!sr.EndOfStream) szemuvegek.Add(new Szemuveg(sr.ReadLine()));
            foreach (var szemuveg in szemuvegek)
            {
                Console.WriteLine(szemuveg);
            }

            Console.WriteLine("\n7.feladat:");
            var hetes = Hetes(szemuvegek);
            Console.WriteLine($"Okosszemüvegek száma: {hetes.Count}");

            Console.WriteLine("\n8. feladat:");
            var atlagUzemido = szemuvegek.Average(s => s.Uzemido);
            var nyolcas = Nyolcas(szemuvegek, atlagUzemido);
            Console.WriteLine($"Okosszemüvegek:");
            foreach (var item in nyolcas)
            {
                Console.WriteLine(item);
            }
            Console.WriteLine($"Szemüvegek száma: {nyolcas.Count()}");
            Console.WriteLine($"Átlagos üzemidő: {atlagUzemido}");

            Console.WriteLine("\n10. feladat:");
            foreach (var item in Tizes(szemuvegek))
            {
                Console.WriteLine($"Sorszam: {item.Sorszam}; Kijelző méret (cm): {item.MeretCenti()}");
            }


            Console.WriteLine("\n11. feladat:");
            var tizenegyes = Tizenegyes(szemuvegek);
            foreach (var item in tizenegyes)
            {
                Console.WriteLine(item);
            }


            Console.WriteLine("\n12. feladat:");
            var tizenkettes = Tizenkettes(szemuvegek);
            if (tizenkettes.Count() == 0)
            {
                Console.WriteLine("Nincs ilyen okosszemüveg.");
            }
            else
            {
                foreach (var item in tizenkettes)
                {
                    Console.WriteLine(item);
                }
            }

            Console.WriteLine("\n13. feladat");
            var tizenharmas = szemuvegek.Where(s => s.Szenzorok.Length >= 3).ToList();

            using (StreamWriter sw = new StreamWriter(@"..\..\..\src\haromSzenzoros.txt"))
            {
                foreach (var item in tizenharmas)
                {
                    sw.WriteLine(item);
                }
            }

            Console.ReadLine();
        }

        static List<Szemuveg> Hetes(List<Szemuveg> szemuvegek)
        {
            return szemuvegek.Where(s => s.Felbontas >= 12 && s.Teljesitmeny == 2).ToList();
        }

        static List<Szemuveg> Nyolcas(List<Szemuveg> szemuvegek, double atlag)
        {
            return szemuvegek.Where(s => s.Uzemido > atlag).ToList();
        }

        static List<Szemuveg> Tizes(List<Szemuveg> szemuvegek)
        {
            return szemuvegek.Where(s => s.TarhelySzamito() < 100).ToList();
        }

        static List<string> Tizenegyes(List<Szemuveg> szemuvegek)
        {
            return szemuvegek
                .SelectMany(s => s.Szenzorok)
                .Select(s => s == "gyroscope" ? "giroszkóp" : s)
                .Select(s => s == "accelerometer" ? "gyorsulásmérő" : s)
                .Distinct()
                .OrderBy(s => s)
                .ToList();
        }

        static List<Szemuveg> Tizenkettes(List<Szemuveg> szemuvegek)
        {
            return szemuvegek.Where(s => s.Tarhely.Contains("TB")).ToList();
        }

    }
}


------------------------------------------------------------------------------------

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

namespace OkosSzemuvegHagyomanyos
{
    class Szemuveg
    {
        public string Sorszam { get; set; }
        public double Meret { get; set; }
        public double Teljesitmeny { get; set; }
        public int Felbontas { get; set; }
        public string[] Szenzorok { get; set; }
        public string Tarhely { get; set; }
        public int Uzemido { get; set; }
        public double MeretCenti() => Meret * 2.54;
        public double TarhelySzamito()
        {
            var tar = Tarhely.Split(" ");
            if (tar[1] == "GB")
            {
                return double.Parse(tar[0]);
            }
            else
            {
                return double.Parse(tar[0]) * 1024;
            }
        }

        public Szemuveg(string sor)
        {
            var v = sor.Split(';');
            Sorszam = v[0];
            Meret = double.Parse(v[1]);
            Teljesitmeny = double.Parse(v[2]);
            Felbontas = int.Parse(v[3]);
            Szenzorok = v[4].Split(',');
            Tarhely = v[5];
            Uzemido = int.Parse(v[6]);
        }

        public override string ToString()
        {
            string szenzorok = "";
            for (int i = 0; i < Szenzorok.Length; i++)
            {
                szenzorok += $"{Szenzorok[i]},";
            }
            return $"Sorszam: {Sorszam}; Meret: {Meret}; Teljesítmény: {Teljesitmeny}; Felbontás: {Felbontas}, Szenzorok: {szenzorok}; Tárhely: {Tarhely}; Üzemidő: {Uzemido}";
        }
    }
}




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

namespace OkosSzemuvegHagyomanyos
{
    class Program
    {
        static void Main(string[] args)
        {
            List<string> Tulajdonsagok = new List<string>();
            List<Szemuveg> szemuvegek = new List<Szemuveg>();
            using (StreamReader sr = new StreamReader(
                path: @"..\..\..\src\okosszemüvegek.txt"))
            {
                Tulajdonsagok.AddRange(sr.ReadLine().Split(";"));
                while (!sr.EndOfStream)
                {
                    szemuvegek.Add(new Szemuveg(sr.ReadLine()));
                }
            }

            foreach (var szemuveg in szemuvegek)
            {
                Console.WriteLine(szemuveg.ToString());
            }

            Console.WriteLine("\n7.feladat:");
            var hetes = Hetes(szemuvegek);
            Console.WriteLine($"Okosszemüvegek száma: {hetes.Count}");

            Console.WriteLine("\n8. feladat:");
            var atlagUzemido = AtlagUzemido(szemuvegek);
            var nyolcas = Nyolcas(szemuvegek, atlagUzemido);
            Console.WriteLine($"Okosszemüvegek:");
            foreach (var item in nyolcas)
            {
                Console.WriteLine(item);
            }
            Console.WriteLine($"Szemüvegek száma: {nyolcas.Count}");
            Console.WriteLine($"Átlagos üzemidő: {atlagUzemido}");

            Console.WriteLine("\n10. feladat:");
            foreach (var item in Tizes(szemuvegek))
            {
                Console.WriteLine($"Sorszam: {item.Sorszam}; Kijelző méret (cm): {item.MeretCenti()}");
            }

            Console.WriteLine("\n11. feladat:");
            var tizenegyes = Tizenegyes(szemuvegek);
            foreach (var item in tizenegyes)
            {
                Console.WriteLine(item);
            }

            Console.WriteLine("\n12. feladat:");
            var tizenkettes = Tizenkettes(szemuvegek);
            if (tizenkettes.Count == 0)
            {
                Console.WriteLine("Nincs ilyen okosszemüveg.");
            }
            else
            {
                foreach (var item in tizenkettes)
                {
                    Console.WriteLine(item);
                }
            }

            Console.WriteLine("\n13. feladat");
            var tizenharmas = HaromSzenzoros(szemuvegek);
            using (StreamWriter sw = new StreamWriter(@"..\..\..\src\haromSzenzoros.txt"))
            {
                foreach (var item in tizenharmas)
                {
                    sw.WriteLine(item);
                }
            }

            Console.ReadLine();
        }

        static List<Szemuveg> Hetes(List<Szemuveg> s)
        {
            List<Szemuveg> result = new List<Szemuveg>();
            foreach (var item in s)
            {
                if (item.Felbontas >= 12 && item.Teljesitmeny == 2)
                {
                    result.Add(item);
                }
            }
            return result;
        }

        static List<Szemuveg> Nyolcas(List<Szemuveg> s, double atlagUzemido)
        {
            List<Szemuveg> result = new List<Szemuveg>();
            foreach (var item in s)
            {
                if (item.Uzemido > atlagUzemido)
                {
                    result.Add(item);
                }
            }
            return result;
        }

        static double AtlagUzemido(List<Szemuveg> s)
        {
            double sum = 0;
            foreach (var item in s)
            {
                sum += item.Uzemido;
            }
            return sum / s.Count;
        }

        static List<Szemuveg> Tizes(List<Szemuveg> s)
        {
            List<Szemuveg> result = new List<Szemuveg>();
            foreach (var item in s)
            {
                if (item.TarhelySzamito() < 100)
                {
                    result.Add(item);
                }
            }
            return result;
        }

        static List<string> Tizenegyes(List<Szemuveg> szemuvegek)
        {
            List<string> szenzorok = new List<string>();
            foreach (var szemuveg in szemuvegek)
            {
                foreach (var szenzor in szemuveg.Szenzorok)
                {
                    if (szenzor.ToLower() == "gyroscope")
                    {
                        szenzorok.Add("giroszkóp");
                    }
                    else if (szenzor.ToLower() == "accelerometer")
                    {
                        szenzorok.Add("gyorsulásmérő");
                    }
                    else
                    {
                        szenzorok.Add(szenzor);
                    }
                }
            }
            List<string> szenzorokKesz = szenzorok.Distinct().ToList();
            //ez is jó a Distinct helyett:
            //foreach (var item in szenzorok)
            //{
            //    if (!szenzorokKesz.Contains(item))
            //    {
            //        szenzorokKesz.Add(item);
            //    }
            //}
            szenzorokKesz.Sort();
            return szenzorokKesz;
        }

        static List<Szemuveg> Tizenkettes(List<Szemuveg> szemuvegek)
        {
            List<Szemuveg> result = new List<Szemuveg>();
            foreach (var szemuveg in szemuvegek)
            {
                if (szemuveg.Tarhely.Contains("TB"))
                {
                    result.Add(szemuveg);
                }
            }
            return result;
        }

        static List<Szemuveg> HaromSzenzoros(List<Szemuveg> szemuvegek)
        {
            List<Szemuveg> result = new List<Szemuveg>();
            foreach (var szemuveg in szemuvegek)
            {
                if (szemuveg.Szenzorok.Length >= 3)
                {
                    result.Add(szemuveg);
                }
            }
            return result;
        }
    }
}



2024.04.25. Időjárás app

 Feladat: Időjárás app - OOP módszerekkel, haladóknak adatkötéssel Az alkalmazás célja, hogy a felhasználók hozzáadjanak és eltávolítsanak v...