2023.02.24. Érettségi f. gyak.

 Legtöbben befejeztük a Totó-Tisza feladatsort, és elkezdtük a Szudokusat. Ennek a programozás feladatát tavaly megoldottuk.

2023.02.09. Egyszámjáték megoldás

Ma továbbhaladtunk a konzolos és a grafikus Egyszámjátékkal. Nem végeztünk vele, házi feladat befejezni - mindenkinek a saját szintjén.

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.07. Érettségi feladatmegoldás - helyettesítés

Ma versenyre viszem a nagyokat, önállóan kell dolgoznotok.

Először a Napsütés adatbázis feladatsort kell befejezni. Használjátok a múlt órán megbeszélt forrásokat, segítséget (02.02.)

Ha elkészültök vele, kérjétek tanár úrtól a megoldást, és ellenőrizzétek le.

Ezután a Városok programozás feladatsorral kell folytatni (02.03.). Először a teljes kódot másoljátok be egy új programba. Ennek a programnak  projekt mappájában legmélyebben található netcoreapp3.1 mappában létre kell hozni egy varosok.txt-t, amibe be kell másolni a feladat leírásában szereplő 5 sornyi forrást. Ezután fusson a program, teszteljétek, és ismételjétek át az osztály, benne a konstruktor létrehozását, majd a főprogramban a beolvasást, a kiírást.

Ezután a megnyitott feladatsoron belüli Egyszámjáték konzolos programozás feladattal kell továbbmenni. Meg kell tudni írni az osztályt a konstruktorral, meg kell oldani a beolvasást, és meg kell tudni adni a fájl sorainak számát.

Aki nem tud elindulni az Egyszámjáték megoldásával, az nézze meg az oktatóvideót, ha az órán nem fér be, akkor otthon házi feladat befejezni.

Ha végképp nem boldogulsz, akkor is van feladat: kezdd el a grafikus programozási feladatrészt, az oktatóvideója itt elérhető. Ez könnyebb, biztosan el tudod kezdeni.

Máté és Elemér folytassák a megkezdett feladataikat.



2023.02.03. Városok - OOP mintaprogram

 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

Ma elkezdtük a Napsütés adatbázist, itt folytatjuk. 

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

  Tudnivalók:

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

Zeal-ben keresni! ÉS helyi menü!

Ellenőriztük a megoldást.

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