2023.02.13. Érettségi feladat- Egyszámjáték megoldás

 Ellenőriztük az előző feladatsort, és elkezdtük a Totó-Tisza feladatsort.

Egyszámjáték

Konzolos egy lehetséges megoldása: 

using System;

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

namespace Egyszamjatek
{
    class Jatekos
    {
        public string Nev { get; private set; }
        public List<int> Tippek { get; private set; }
        public Jatekos(string sor)
        {
            string[] atmeneti = sor.Split();
            Nev = atmeneti [0];
            Tippek = new List<int>();
            for (int i = 1; i < atmeneti .Length; i++)
            {
                Tippek.Add(Convert.ToInt32(atmeneti [i]));
            }
        }
    }

    class Program
    {
        static void Main()
        {
            List<Jatekos> jatekosok = new List<Jatekos>();
            foreach (var i in File.ReadAllLines("egyszamjatek1.txt"))
            {
                jatekosok.Add(new Jatekos(i));
            }

            Console.WriteLine($"3. feladat: Játékosok száma: {jatekosok.Count} fő");

            Console.Write($"4. feladat: Kérem a forduló sorszámát: ");
            int forduloSorszama = Convert.ToInt32(Console.ReadLine());

            //Console.WriteLine($"5. feladat: A megadott forduló tippjeinek átlaga: {jatekosok.Average(x => x.Tippek[forduloSorszama - 1]):F2}");
            double osszeg = 0;
            for (int i = 0; i < jatekosok.Count; i++)
            {
                osszeg += jatekosok[i].Tippek[forduloSorszama - 1];
            }
            Console.WriteLine($"5. feladat: A megadott forduló tippjeinek átlaga: {Math.Round((osszeg / jatekosok.Count),2)}");
            Console.ReadLine();
        }
    }
}

Grafikus egy lehetséges megoldása:
using System;
using System.IO;
using System.Collections.Generic;
using System.Windows;
using System.Windows.Controls;


namespace EgyszamjatekGUI
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    class Jatekos
    {
        public string Nev { get; private set; }
        public List<int> Tippek { get; private set; }
        public int FordulokSzama { get { return Tippek.Count; } }
        public Jatekos(string sor)
        {
            string[] atmeneti = sor.Split();
            Nev = atmeneti[0];
            Tippek = new List<int>();
            for (int i = 1; i < atmeneti.Length; i++)
            {
                Tippek.Add(Convert.ToInt32(atmeneti[i]));
            }
        }
    }

    public partial class MainWindow : Window
    {
        private List<Jatekos> jatekosok = new List<Jatekos>();
        public MainWindow()
        {
            InitializeComponent();
            foreach (var i in File.ReadAllLines("egyszamjatek2.txt"))
            {
                jatekosok.Add(new Jatekos(i));
            }
        }

        private void TXBJatekosTippje_TextChanged(object sender, TextChangedEventArgs e)
        {
            if (!TXBJatekosTippje.Text.EndsWith(" ") && TXBJatekosTippje.Text.Length != 0)
            {
                //List<string> tippek = TXBJatekosTippje.Text.Split(' ').ToList();
                //LBLDarab.Content = tippek.Count;
                //vagy tömbbel:
                string[] tippek = TXBJatekosTippje.Text.Split(' ');
                LBLDarab.Content = tippek.Length;
            }

        }

        private void BTNHozzaAd_Click(object sender, RoutedEventArgs e)
        {
            int i = 0;
            while (i < jatekosok.Count && jatekosok[i].Nev != TXBJatekosNeve.Text )
            {
                i++;
            }
            if (i < jatekosok.Count)
            {
                MessageBox.Show("Van már ilyen nevű játékos!");
            }
            else
            {
                if (Convert.ToInt32(LBLDarab.Content) != jatekosok[0].Tippek.Count)
                {
                    MessageBox.Show("A tippek száma nem megfelelő!");
                }
                else
                {
                    string kiir = TXBJatekosNeve.Text + " " + TXBJatekosTippje.Text + "\r\n";
                    //ha a tippek végén szóköz volt, az hibát okoz, de nem volt feladat leszedni
                    File.AppendAllText("egyszamjatek2.txt", kiir);
                    MessageBox.Show("Az állomány bővítése sikeres volt!");
                    TXBJatekosNeve.Text = "";
                    TXBJatekosTippje.Text = "";
                    LBLDarab.Content = "";
                }
            }
        }
    }
}
<Window x:Class="EgyszamjatekGUI.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:EgyszamjatekGUI"
        mc:Ignorable="d"
        Title="Egyszámjáték GUI" Height="234" Width="644">
    <Grid>
        <Label Content="Játékos neve" HorizontalAlignment="Left" Margin="27,49,0,0" VerticalAlignment="Top" Width="83"/>
        <Label Content="Játékos tippjei" HorizontalAlignment="Left" Margin="27,93,0,0" VerticalAlignment="Top" Width="83"/>
        <Button x:Name="BTNHozzaAd" Content="Játékos hozzáadása" HorizontalAlignment="Center" Height="29" Margin="0,148,0,0" VerticalAlignment="Top" Width="272" Click="BTNHozzaAd_Click"/>
        <TextBox x:Name="TXBJatekosNeve" HorizontalAlignment="Left" Height="27" Margin="133,49,0,0" Text="" TextWrapping="Wrap" VerticalAlignment="Top" Width="342"  />
        <TextBox x:Name="TXBJatekosTippje" HorizontalAlignment="Left" Height="27" Margin="133,0,0,0" Text="" TextWrapping="Wrap" VerticalAlignment="Center" Width="342" TextChanged="TXBJatekosTippje_TextChanged"/>
        <Label x:Name="LBLDarab" Content="0" HorizontalAlignment="Left" Height="27" Margin="500,0,0,0" VerticalAlignment="Center" Width="28"/>
        <Label Content="db" HorizontalAlignment="Left" Height="27" Margin="520,0,0,0" VerticalAlignment="Center" Width="34"/>
    </Grid>
</Window>




2023.02.06. Érettségi feladatmegoldás

 Mindenki elkezdte a Városok mintaprogram feldolgozását, néhányan nekifogtak az egyszámjátéknak.

Köv. órán átnézzük az alapokat először, Tomi webet pótol.

2023.02.06. Városok - OOP mintaprogram

Előre fel lehet ebből készülni:

 using System;

using System.IO;
using System.Linq;
using System.Collections.Generic;
namespace VarosKereso
{
    class Varos
    {
        public string Varosnev;
        public int Lakosokszama;
        public int Tavolsag;
        public string Megyeszekhely;
        public Varos(string sor)
        {
            List<string> atmeneti = sor.Split(" ").ToList();
            Varosnev = atmeneti[0];
            Lakosokszama = Convert.ToInt32(atmeneti[1]);
            Tavolsag = Convert.ToInt32(atmeneti[2]);
            if (atmeneti.Count < 4)
            {
                Megyeszekhely = "Igen";
            }
            else
            {
                Megyeszekhely = "Nem"; //feltételeztük, hogy jó volt a fájl tartalma
            }
        }
        public string kiiras() //ez egyetlen várost tud kezelni egyszerre
        {
            string ki = $"Település neve: {Varosnev}, Lakosok száma: {Lakosokszama} fő, Budapesttől való távolság: {Tavolsag} km, Megyeszékhely? {Megyeszekhely}";
            return ki;
        }
    }
    class Program
    {
        static string legtavolabbi(List<Varos> v)
        {
            int max = v[0].Tavolsag;
            int index = 0;
            for (int i = 1; i < v.Count; i++)
            {
                if (max < v[i].Tavolsag)
                {
                    max = v[i].Tavolsag;
                    index = i;
                }
            }
            return v[index].Varosnev;
        }
        static string lakszamFelett(List<Varos> v, int b)
        {
            string lakFelettKiir = String.Empty;
            bool van = false;
            for (int i = 0; i < v.Count; i++)
            {
                if (b < v[i].Lakosokszama)
                {
                    lakFelettKiir += v[i].kiiras() + "\n";
                    van = true;
                }
            }
            if (!van)
            {
                lakFelettKiir = "Nincs az ön által megadott lakosságszámnál nagyobb lakosszámmal rendelkező település.";
            }
            return lakFelettKiir;
        }
        static void fajlkiiras(List<Varos> a)
        {
            StreamWriter sw = new StreamWriter("Varos1.txt");
            for (int i = 0; i < a.Count; i++)
            {
                if (a[i].Megyeszekhely == "Nem")
                {
                    sw.WriteLine($"{a[i].Varosnev.ToUpper()},Nem megyeszékhely");
                }
                else
                {
                    sw.WriteLine($"{a[i].Varosnev.ToUpper()},Megyeszékhely");
                }
            }
            sw.Close();
        }

        static void Main(string[] args)
        {
            //A program neve legyen: varosok.
            //A tanult objektum-orientált programszerkezetet használd a megoldásnál.
            //Minden képernyőre író feladat előtt írjuk ki a főprogramban a feladat sorszámát.
            //A fájl most 5 sort tartalmaz, de a programod készüljön fel arra,
            //hogy hosszabb, és más tartalmú fájlt is fel tudjon dolgozni.
            //A programban városok adatait tároljuk.
            //Az adatok soronként: a város neve, lakosainak száma, Budapesttől mért távolsága,
            //illetve amelyik város nem megyeszékhely, ott még ez is szerepel: NO.
            //Ez legyen a varosok.txt tartalma:
            /*
            Békéscsaba 59000 210
            Szolnok 72000 119
            Kecskemét 112000 93
            Nyíregyháza 118000 230 NO
            Miskolc 164000 182
            */
            //1.feladat:
            Console.WriteLine("1. feladat\nBeolvasás");
            //Olvasd be a fájlt, és tárold a tartalmát egy osztálypéldányokat tartalmazó listában.
            List<Varos> varosok = new List<Varos>();
            foreach (var item in File.ReadAllLines("varosok.txt"))
            {
                varosok.Add(new Varos(item));
            }
            //2.feladat:
            //Írd ki az adatokat a képernyőre, egy sorba egy város adatait.  
            Console.WriteLine("2. feladat\nÖsszes adat kiírása");
            for (int i = 0; i < varosok.Count; i++)
            {
                Console.WriteLine(varosok[i].kiiras());
            }
            //3.feladat:
            Console.WriteLine("3. feladat\nNem megyeszékhelyek neve, népessége");
            //Írd ki a képernyőre annak a városnak a nevét, és a népességét, amely nem megyeszékhely.
            //(Ha több ilyen lenne, mindet ki kéne írni.) Ha nincs ilyen, írj ki hibaüzenetet.
            bool megyeszhely = false;
            for (int i = 0; i < varosok.Count; i++)
            {
                if (varosok[i].Megyeszekhely == "Nem")
                {
                    Console.WriteLine($"{varosok[i].Varosnev}, {varosok[i].Lakosokszama}");
                    megyeszhely = true;
                }
            }
            if (megyeszhely == false)
            {
                Console.WriteLine("Nincs olyan település a listában, amely nem megyeszékhely!");
            }
            //4.feladat:
            //Írd ki a Budapesttől legtávolabbi város nevét a képernyőre. A feladatot lehetőleg függvénnyel valósítsd meg.
            //Ha nem függvénnyel valósítod meg, kaphatsz részpontokat.        
            Console.WriteLine("4. feladat\nLegtávolabbi város nevének kiíratása...");
            Console.WriteLine(legtavolabbi(varosok));
            //vagy szájbarágósabban:
            Console.WriteLine("4. feladat\nLegtávolabbi város nevének kiíratása once more...");
            string nev = legtavolabbi(varosok);
            Console.WriteLine(nev);
            //5.feladat:
            //Írd ki a legkevesebb lakosú város nevét a képernyőre. Nem kötelező metódust használni.
            Console.WriteLine("5. feladat\nLegkevesebb lakosú város nevének kiíratása...");
            int min = varosok[0].Lakosokszama;
            int index = 0;
            for (int i = 0; i < varosok.Count; i++)
            {
                if (min > varosok[i].Lakosokszama)
                {
                    min = varosok[i].Lakosokszama;
                    index = i;
                }
            }
            Console.WriteLine(varosok[index].Varosnev);
            //6.feladat:
            //Kérd meg a felhasználót a főprogramban, hogy adjon meg egy lakosságszámot.
            //Írd ki a felhasználó által beírt értéknél nagyobb lakosságú városok adatait, soronként egyet.
            //Ha nincs ilyen, írj ki hibaüzenetet.
            Console.WriteLine("6. feladat\nBekért értéknél nagyobb lakosságú városok összes adata");
            Console.Write("Kérek egy értéket: ");
            int bekert = Convert.ToInt32(Console.ReadLine());
            Console.WriteLine(lakszamFelett(varosok, bekert));
            //7.feladat:
            //Döntsd el, hogy van-e 180 km-nél távolabbi város. Ha találsz ilyet,
            //írd ki az elsőnek a nevét és a hozzá tartozó km-t.
            //Ha nincs ilyen, írj ki hibaüzenetet.
            Console.WriteLine("7. feladat\n180 km-nél távolabbi városok kilistázása...");

            bool megfelel = false;
            int k = 0;
            while (k < varosok.Count && !megfelel)
            {
                if (varosok[k].Tavolsag > 180)
                {
                    megfelel = true;
                }
                k++;
            }
            if (megfelel)
            {
                Console.WriteLine($"{varosok[k - 1].Varosnev} az az első település amely Budapesttől 180 kilométeren túl helyezkedik el! A távolság {varosok[k - 1].Tavolsag} kilométer.");
            }
            else
            {
                Console.WriteLine($"HIBA! Nincsen olyan település az adatok között, amely Budapesttől messzebb lenne, mint 180 kilométer");
            }
            //8. feladat:
            //Írd ki egy új fájlba a városok neveit nagybetűsen,
            //mögéjük vesszővel elválasztva azt a szót,
            //hogy megyeszékhely/nem megyeszékhely
            //(a valóságnak megfelelően).
            Console.WriteLine("8. feladat\nVárosok kiíratása fájlba...");
            fajlkiiras(varosok);
            Console.WriteLine("A program bezárásához nyomjon meg egy billentyűt...");
            Console.ReadLine();
        }
    }
}

2023.02.02. SQL DML parancsok

Elkezdtük a Napsütés adatbázist.

mySQL DML (Data Manipulation Language) parancsok 

INSERT INTO
UPDATE - SET
DELETE

PÉLDÁK

/*9. Rögzíts egy új rekordot a processzor táblába 54-es azonosítóval,
a gyártó AMD legyen, a típus pedig Ryzen 5 5600X.*/
INSERT INTO `processzor` (`id`, `gyarto`, `tipus`) VALUES (54, 'AMD', 'Ryzen 5 5600X ');

/*10. Módosítsd az oprendszer táblában az operációs rendszer nevét tartalmazó
mező értéét Unixra, ahol az eredeti érték Linux.*/
UPDATE oprendszer SET nev='Unix'
WHERE nev='Linux';

/*11. Töröld a gépek közül a 246-os azonosítójú terméket.*/
DELETE FROM gep
WHERE id = 246;

TISZTA FORRÁS



2023.02.02. WEB - Napelemek megoldás

Ellenőriztük az egészet, átismételtük az általános tudnivalókat. 

Tudnivalók:

HTML EVENTS (html oldalon bekövetkező események) pl.: onfocus, oninput, onclick, onmouseout

Zeal-ben keresni! ÉS helyi menü!


2023.04.26. Javító feladatsor