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;
        }
    }
}



2023. november 30., csütörtök

2023. november 29., szerda

2023.11.29. Tesztelés elmélet

 Végigvettük az anyagot. Elkezdtük megoldani a projektmunka eredményeként született teszteket.

1. hét múlva 3 tesztet írunk.

2023. november 23., csütörtök

2023.11.23. Tesztelés elmélet

 Idáig jutottunk el a második jegyzetben: A modulteszt általában a modul nem-funkcionális tulajdonságát teszteli, pl. sebességét, vagy, hogy van-e memóriaszivárgás (memory lake), van-e szűk keresztmetszet (bottleneck).

2023. november 20., hétfő

2023.11.20. Programozás elmélet

Algoritmus leíró eszközök

Végigvettük az adattípusok tananyagot.

Elkezdtük az Algoritmusos tananyagot, a vezérlőszerkezetek elejébe belenéztünk. Tesztelés órán megkapod a forrásokat, utána az átvett anyagot meg kell tanulni.

2023. november 13., hétfő

2023.11.13. Félévi eredmények

Átnéztük a megoldást nagyjából. Megkaptad a megoldást, ez alapján hf. befejezni a sajátodat.

Pénteken javító tz, amit mindenki megír javítóként, vagy gyakorlásként.

2023. november 10., péntek

OSZTV megoldás

  OSZTV megoldás

2023.11.10. Félévi eredmények

Tanuló neve Oktatási azonosító Hálózatok I. Hálózatok I. gyakorlat Programozás Programozás gyakorlat Angol nyelv Magyar nyelv és irodalom Matematika Történelem

Alfreds Futterkiste 72123456789 5 5 2 2 3 3 3 4

Ana Trujillo Emparedados y helados 72987654321 5 5 2 1 5 2 2 2

Antonio Moreno Taquería 72321125698 4 3 1 1 3 2 2 2

Around the Horn 72921579631 3 3 1 1 3 2 2 2

Berglunds snabbköp 72951357846 4 4 2 2 3 3 2 3

Maria Anders 73258963147 3 4 2 2 5 3 2 3

Ana Trujillo 72359751486 5 5 4 4 4 4 3 4

Antonio Moreno 72157358962 4 4 1 1 4 2 2 2

Thomas Hardy 73369852147 3 3 2 1 1 3 2 3

Christina Berglund 72336958621 5 4 4 4 5 3 3 4

Tilaa Thustu 72336487953 4 4 3 3 5 3 4 3

Nannim Ratul 72379164825 4 4 5 5 3 3 4 4

//1. feladat
//Írjunk függvényt, ami kiszámítja a jegyek átlagát tanulónként.Írjunk függvényt, ami kiszámítja az osztályátlagot, illetve a tantárgyankénti átlagot is.
//2. feladat: Programozás gyakorlatból megbukottak adatainak kiiratása.
//3. feladat: Írjunk függvényt, amivel keressük meg az első olyan embert, akinek hármasa van angol nyelvből, majd írjuk ki az adatait.
//4. feladat: Kérjük be a felhasználótól, melyik tanuló legjobb jegyét szeretné megtudni.
//Írjuk ki az adott tanuló legjobb eredményét függvénnyel. Szorgalmi: Kezeljük a lehetséges felhasználói hibát is.
//5. feladat: Egy új fájlba írjuk ki a fenti tanuló nevét és oktatási azonosítóját.

2 órán írtuk, itt folytatjuk.

2023. november 9., csütörtök

2023. november 8., szerda

2023.11.08. Szoftverkrízis, szoftver életciklusa

 Átvettük a tananyagból a szoftverkrízises részt, átbeszéltük a szoftver életciklust, és elkezdtük részletezni. Itt tartunk: 2.2.2. Az igények elemzése, meghatározása

tananyag - 1. dokumentum

Készítettünk digifüzetet. A 3 kérdőív elérését biztosítottuk.

2023. november 7., kedd

2023.11.07. Szoftverkrízis (helyettesítéses órán)

[Szoftverkrízises teszt kitöltése a köv. órára maradt]

Átvettük a tananyagból a szoftverkrízises részt, belenéztünk a szoftver életciklusba. Egyelőre nincs tanulnivaló.

tananyag - 1. dokumentum

2023. november 6., hétfő

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. Versenymotorok alap szintű megoldás

 namespace MotorokAlap

{
    class Motor
    {
        public string Gyarto { get; set; }
        public string Modell { get; set; }
        public int MaximalisSebesseg { get; set; }
        public double UzemanyagFogyasztas { get; set; }
        public int Hengerurtartalom { get; set; }
        public string KerekfelfuggesztésTipus { get; set; }

        public Motor(string sor)
        {
            string[] adatok = sor.Split(';');
            Gyarto = adatok[0];
            Modell = adatok[1];
            MaximalisSebesseg = int.Parse(adatok[2]);
            UzemanyagFogyasztas = double.Parse(adatok[3]);
            Hengerurtartalom = int.Parse(adatok[4]);
            KerekfelfuggesztésTipus = adatok[5];
        }

        public override string ToString()
        {
            return $"Gyártó: {Gyarto}\nModell: {Modell}\nMaximális Sebesség: {MaximalisSebesseg} km/h\nÜzemanyagfogyasztás: {UzemanyagFogyasztas} liter/100 km\nHengerűrtartalom: {Hengerurtartalom} cc\nKerékfelfüggesztés típusa: {KerekfelfuggesztésTipus}\n";
        }

        public double LiterbolGallonba()
        {
            return UzemanyagFogyasztas * 0.264172;
        }
    }
}


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

namespace MotorokAlap
{
    class Program
    {
        static void Main()
        {
            List<Motor> motorok = new();
            using (StreamReader sr = new StreamReader(@"..\..\..\src\motorok.txt"))
            {
                while (!sr.EndOfStream)
                {
                    motorok.Add(new Motor(sr.ReadLine()));
                }
            }

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

            Console.WriteLine("9.\n");
            Console.WriteLine($"Átlagos sebesség: {Math.Round(AtlagSebesseg(motorok))} km/h");            

            Console.WriteLine("10.\n");
            List<Motor> yamahaLista = new();
            foreach (var motor in motorok)
            {
                if (motor.Gyarto == "Yamaha" && motor.Hengerurtartalom > 1000)
                {
                    yamahaLista.Add(motor);
                }
            }
            Console.WriteLine($"{Yamaha1000felett(yamahaLista)} 1000 cc fölötti Yamaha motor van.");
           

            Console.WriteLine("11.Legkisebb fogyasztású motorok:\n");
            var kicsi = LegkisebbFogyasztasuMotor(motorok);
            foreach (var motor in kicsi)
            {
                Console.WriteLine(motor);
            }

            Console.WriteLine("12.Honda motorok, melyeknek fogyasztása kisebb, mint a legnagyobb Suzuki modellé:\n");
            List<Motor> hondaSuzuki = HondaSuzuki(motorok);
            if (hondaSuzuki.Count == 0)
            {
                Console.WriteLine("Nincs olyan Honda motor, aminek a fogyasztása kisebb, mint a legnagyobb Suzuki modellé.");
            }
            else
            {
                Console.WriteLine(hondaSuzuki[0]);
            }

            Console.WriteLine("13.BMW márkájú motorok vagy 300 km/h feletti maximális sebességű motorok:\n");
            foreach (var item in KivalogatoBMW(motorok))
            {
                Console.WriteLine(item);
            }

            Console.WriteLine("15.Fájlba írás\n");

            using (StreamWriter writer = new StreamWriter(@"..\..\..\src\motorok_gallon.txt"))
            {
                foreach (var motor in motorok)
                {
                    writer.WriteLine($"{motor.Gyarto};{motor.Modell};{motor.LiterbolGallonba()} gallon/100 km");
                }
            }
        }

        static double AtlagSebesseg(List<Motor> motorok)
        {
            double osszeg = 0;
            foreach (var motor in motorok)
            {
                osszeg += motor.MaximalisSebesseg;
            }
            return osszeg / motorok.Count;
        }

        static int Yamaha1000felett(List<Motor> yamaha)
        {
            return yamaha.Count;
        }

        static List<Motor> LegkisebbFogyasztasuMotor(List<Motor> motorok)
        {
            double minFogyasztas = motorok[0].UzemanyagFogyasztas;
            foreach (var motor in motorok)
            {
                if (motor.UzemanyagFogyasztas < minFogyasztas)
                {
                    minFogyasztas = motor.UzemanyagFogyasztas;
                }
            }

            List<Motor> kisFogyasztasuMotorok = new();
            foreach (var motor in motorok)
            {
                if (motor.UzemanyagFogyasztas == minFogyasztas)
                {
                    kisFogyasztasuMotorok.Add(motor);
                }
            }
            return kisFogyasztasuMotorok;
        }

        static List<Motor> HondaSuzuki(List<Motor> motorok)
        {
            Motor legnagyobbSuzuki = motorok[0];
            foreach (var motor in motorok)
            {
                if (motor.Gyarto == "Suzuki" && motor.Hengerurtartalom > legnagyobbSuzuki.Hengerurtartalom)
                {
                    legnagyobbSuzuki = motor;
                }
            }

            List<Motor> honda = new();
            foreach (var motor in motorok)
            {
                if (motor.Gyarto == "Honda" && motor.UzemanyagFogyasztas < legnagyobbSuzuki.UzemanyagFogyasztas)
                {
                    honda.Add(motor);
                }
            }
            return honda;
        }

        static List<Motor> KivalogatoBMW(List<Motor> motorok)
        {
            List<Motor> bmw = new();
            foreach (var motor in motorok)
            {
                if (motor.Gyarto == "BMW" || (motor.Gyarto != "BMW" && motor.MaximalisSebesseg > 300))
                {
                    bmw.Add(motor);
                }
            }
            return bmw;
        }        
    }
}

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