2022. március 31., csütörtök

2022.03.31. Atlétika próbaérettségi

 Ma elkezdjük, itt folytatjuk.

2022.03.31. NFL irányítók, utazási iroda megoldás

 using System;

using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;

namespace IranyitoMutato
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }

        private double Szamol(int kiserlet, int sikeres, int yardok, int tdPassz, int eladott)
        {
            double a, b, c, d;
            a = MinMax(((double)sikeres / kiserlet - 0.3) * 5);
            b = MinMax(((double)yardok / kiserlet - 3) * 0.25);
            c = MinMax(((double)tdPassz / kiserlet) * 20);
            d = MinMax(2.375 - ((double)eladott / kiserlet) * 25);

            return 100 * (a + b + c + d) / 6;
        }

        private double MinMax(double x)
        {
            if (x < 0) return 0;
            if (x > 2.375) return 2.375;
            return x;
        }

        private void tbKísérlet_TextChanged(object sender, TextChangedEventArgs e)
        {
            int kísérlet;
            if (int.TryParse(tbKísérlet.Text,out kísérlet) && kísérlet > 0)
            {
                tbEladott.IsEnabled = true;
                tbSikeres.IsEnabled = true;
                tbTDk.IsEnabled = true;
                tbYardok.IsEnabled = true;
            }
        }

        private void btnSzamol_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                double mutató = Math.Round(
                Szamol(int.Parse(tbKísérlet.Text),
                       int.Parse(tbSikeres.Text),
                       int.Parse(tbYardok.Text),
                       int.Parse(tbTDk.Text),
                       int.Parse(tbEladott.Text)), 2);
                lMutató.Foreground = Brushes.Black;
                lMutató.Content = "Irányító mutató: " + mutató;
            }
            catch (Exception)
            {
                lMutató.Foreground = Brushes.Red;
                lMutató.Content = "Hibás adat";

            }
        }
    }
}


<Window x:Class="IranyitoMutato.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:IranyitoMutato"
        mc:Ignorable="d"
        Title="Irányító mutató kalkulátor" Height="223" Width="564">
    <Grid>
        <Label Content="Átadási kísérletek száma:" HorizontalAlignment="Left" Margin="10,10,0,0" VerticalAlignment="Top"/>
        <Label Content="Sikeres átadások száma:" HorizontalAlignment="Left" Margin="10,40,0,0" VerticalAlignment="Top"/>
        <Label Content="Passzolt yardok:" HorizontalAlignment="Left" Margin="10,70,0,0" VerticalAlignment="Top"/>
        <Label Content="Tochdown passzok:" HorizontalAlignment="Left" Margin="10,100,0,0" VerticalAlignment="Top"/>
        <Label Content="Eladott átadások:" HorizontalAlignment="Left" Margin="10,130,0,0" VerticalAlignment="Top"/>
        <TextBox x:Name="tbKísérlet" HorizontalAlignment="Left" Margin="163,14,0,0" Text="0" TextWrapping="Wrap" VerticalAlignment="Top" Width="40" TextAlignment="Center" TextChanged="tbKísérlet_TextChanged"/>
        <TextBox x:Name="tbSikeres" IsEnabled="False" HorizontalAlignment="Left" Margin="163,44,0,0" Text="0" TextWrapping="Wrap" VerticalAlignment="Top" Width="40" TextAlignment="Center"/>
        <TextBox x:Name="tbYardok" IsEnabled="False"  HorizontalAlignment="Left" Margin="163,74,0,0" Text="0" TextWrapping="Wrap" VerticalAlignment="Top" Width="40" TextAlignment="Center"/>
        <TextBox x:Name="tbTDk" IsEnabled="False"  HorizontalAlignment="Left" Margin="163,104,0,0" Text="0" TextWrapping="Wrap" VerticalAlignment="Top" Width="40" TextAlignment="Center"/>
        <TextBox x:Name="tbEladott" IsEnabled="False"  HorizontalAlignment="Left" Margin="163,134,0,0" Text="0" TextWrapping="Wrap" VerticalAlignment="Top" Width="40" TextAlignment="Center"/>
        <Label Name="lMutató" Content="Irányító mutató:" HorizontalAlignment="Left" Margin="288,66,0,0" VerticalAlignment="Top" FontWeight="Bold" FontSize="20"/>
        <Button x:Name="btnSzamol" Content="Számol" HorizontalAlignment="Left" Margin="330,111,0,0" VerticalAlignment="Top" RenderTransformOrigin="0.177,-0.185" Width="62" Click="btnSzamol_Click"/>

    </Grid>
</Window>


Az osztály meg volt adva:

using System;
using System.Collections.Generic;
using System.Text;

namespace NFL
{
    class Jatekos
    {
        public string Név { get; set; }
        public int Yardok { get; set; }
        public int Kísárletek { get; set; }
        public int Passzok { get; set; }
        public int TDk { get; set; }
        public int Eladott { get; set; }
        public double Mutató { get; set; }
        public string Egyetem { get; set; }
        public int YardMeterben
        {
            get
            {
                return (int)Math.Round(Yardok * 0.9144);
            }
        }
        public Jatekos(string sor)
        {
            //Deshaun Watson;4823;544;382;33;7;112,4;Clemson
            string[] adatok = sor.Split(';');
            Név = adatok[0];
            Yardok = int.Parse(adatok[1]);
            Kísárletek = int.Parse(adatok[2]);
            Passzok = int.Parse(adatok[3]);
            TDk = int.Parse(adatok[4]);
            Eladott = int.Parse(adatok[5]);
            Mutató = Konvertal(adatok[6]);
            Egyetem = adatok[7];
        }
        private double Konvertal(string iranyitoMutato)
        {
            var decimalSeparator = System.Globalization.CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator;
            iranyitoMutato = iranyitoMutato.Replace(",", decimalSeparator).Replace(".", decimalSeparator);
            if (double.TryParse(iranyitoMutato, out var ertek))
                return ertek;
            throw new FormatException("Hibás érték (irányítómutató)");
        }

        public string FormazottNev(string nev)
        {
            var n = nev.Split(' ');
            n[n.Length - 1] = n[n.Length - 1].ToUpper();
            return string.Join(" ", n);
        }
    }
}


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

namespace NFL
{
    class Program
    {
        static void Main(string[] args)
        {
            List<Jatekos> játékosok = new List<Jatekos>();
            foreach (var sor in File.ReadAllLines("NFL_iranyitok.txt"))
            {
                játékosok.Add(new Jatekos(sor));
            }

            Console.WriteLine("5. feladat: A statisztikában {0} irányító szerepel.",játékosok.Count);

            Console.WriteLine("7. feladat: Legjobb irányítók:");
            foreach (var item in játékosok)
            {
                if (item.Mutató >= 100 && item.YardMeterben >= 4000)
                {
                    Console.WriteLine("\t{0} (Irányító mutató: {1}. Passzok: {2}m.",
                        item.FormazottNev(item.Név),item.Mutató,item.YardMeterben);
                }
            }

            Console.Write("8. feladat: Eladott labdák száma: ");
            int eladott = int.Parse(Console.ReadLine());
            List<string> legtobbeladott = new List<string>();
            foreach (var item in játékosok)
            {
                if (item.Eladott > eladott)
                    legtobbeladott.Add(item.FormazottNev(item.Név));
            }
            legtobbeladott.Sort();
            File.WriteAllLines("legtobbeladott.txt", legtobbeladott);

            int legjobb = 0;
            for (int i = 1; i < játékosok.Count; i++)
            {
                if (játékosok[i].TDk > játékosok[legjobb].TDk)
                {
                    legjobb = i;
                }
            }
            Console.WriteLine("9. feladat: A legtöbb TD-t szerző játékos: ");
            Console.WriteLine("\tNeve: {0}",játékosok[legjobb].Név);
            Console.WriteLine("\tTD-k száma: {0}",játékosok[legjobb].TDk);
            Console.WriteLine("\tEladott labdák száma: {0}",játékosok[legjobb].Eladott);

            Dictionary<string, int> stat = new Dictionary<string, int>();
            foreach (var item in játékosok)
            {
                if (stat.ContainsKey(item.Egyetem))
                    stat[item.Egyetem]++;
                else
                    stat.Add(item.Egyetem, 1);
            }

            Console.WriteLine("10. feladat: Legsikeresebb egyetemek:");
            foreach (var item in stat)
            {
                if (item.Value > 1)
                    Console.WriteLine("\t{0} - {1}",item.Key,item.Value);
            }
        }
    }
}
-- A feladatok megoldására elkészített SQL parancsokat illessze be a feladat sorszáma után!

-- 11. feladat:
CREATE DATABASE utazas
    CHARACTER SET utf8
    COLLATE utf8_hungarian_ci;

-- 13. feladat:
UPDATE helyseg
  SET nev = 'Porec'
  WHERE nev = 'Porecs';

-- 14. feladat:
SELECT DISTINCT
  szalloda.nev
FROM utak
  INNER JOIN szalloda
    ON utak.szalloda_az = szalloda.az
WHERE szalloda.tengerpart_tav = 0
AND szalloda.felpanzio = 'Igen'
AND utak.indulas BETWEEN '2022.01.01' AND '2022.01.31';

-- 15. feladat:
SELECT
  szalloda.nev,
  szalloda.besorolas
FROM szalloda
WHERE szalloda.nev LIKE '%hotel%'
ORDER BY szalloda.nev;
 
-- 16. feladat:
SELECT
  helyseg.orszag AS Ország,
  COUNT(szalloda.az) AS `Szállodák száma`
FROM szalloda
  INNER JOIN helyseg
    ON szalloda.helyseg_az = helyseg.az
GROUP BY helyseg.orszag
ORDER BY `Szállodák száma` DESC;
 
-- 17. feladat:
SELECT
  szalloda.nev AS `Szálloda neve`,
  AVG(utak.ar) AS `Átlagár/fő`,
  szalloda.besorolas AS `Csillagok száma`
FROM szalloda
  INNER JOIN helyseg
    ON szalloda.helyseg_az = helyseg.az
  INNER JOIN utak
    ON utak.szalloda_az = szalloda.az
WHERE helyseg.orszag = 'Egyiptom'
AND utak.idotartam = 8
GROUP BY szalloda.az,
         szalloda.nev,
         szalloda.besorolas
ORDER BY `Átlagár/fő` DESC
LIMIT 1;




2022. március 29., kedd

2022.03.29. NFL irányítók, Utazási iroda

 Totó, Tisza befejezés, akinek még kell - otthon.

A fentit elkezdtük.

Holnap pótoljuk/javítjuk a tegnapi témakörből a dolgozatot.


2022.03.29. IndexOf példaprogram

using System;

using System.Collections.Generic;

using System.Linq;

 

namespace maxEsIndexof

{

    class Program

    {

        static void Main(string[] args)

        {

            Random rnd = new Random();

            List<int> l = new List<int>();

            for (int i = 0; i < 10; i++)

            {

                l.Add(rnd.Next(1,100));              

            }

            for (int i = 0; i < l.Count; i++)

            {

                Console.WriteLine($"{i}. {l[i]}");

            }

 

            Console.WriteLine();

            Console.WriteLine(l.Max());

            Console.WriteLine(l.IndexOf(l.Max()));         

 

            Console.ReadLine();

        }

    }

} 

2022.03.29. Distinct példaprogram

  using System;

using System.Collections.Generic;

using System.Linq;

 

namespace _distinctPelda

{

    class Program

    {

        static void Main(string[] args)

        {

            Random rnd = new Random();

            List<int> l = new List<int>();

            for (int i = 0; i < 10; i++)

            {

                l.Add(rnd.Next(1,10));              

            }

            l.Sort();

            foreach (var item in l)

            {

                Console.WriteLine(item);

            }

            Console.WriteLine();

            List<int> l1 = l.Distinct().ToList();

            foreach (var item in l1)

            {

                Console.WriteLine(item);

            }

 

            Console.ReadLine();

        }

    }

}

2022. március 23., szerda

2022.03.23. Totó, Tisza megoldás

Ma folytattuk ezt a feladatsort, itt fejezzük be.

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

namespace Toto
{
    class EredmenyElemzo
    {
        private string Eredmenyek;

        private int DontetlenekSzama
        {
            get
            {
                return Megszamol('X');
            }
        }

        private int Megszamol(char kimenet)
        {
            int darab = 0;
            foreach (var i in Eredmenyek)
            {
                if (i == kimenet) darab++;
            }
            return darab;
        }

        public bool NemvoltDontetlenMerkozes
        {
            get
            {
                return DontetlenekSzama == 0;
            }
        }

        public EredmenyElemzo(string eredmenyek) // konstruktor
        {
            Eredmenyek = eredmenyek;
        }
    }
    class FogadasiFordulo
    {
        public int Év { get; private set; }
        public int Hét { get; private set; }
        public int Forduló { get; private set; }
        public int TelitalálatDarab { get; private set; }
        public int TelitalálatNyereméy { get; private set; }
        public string Eredmények { get; private set; }

        public int NyereményÖsszeg => TelitalálatDarab * TelitalálatNyereméy;

        public FogadasiFordulo(string sor)
        {
            string[] m = sor.Split(';');
            Év = int.Parse(m[0]);
            Hét = int.Parse(m[1]);
            Forduló = int.Parse(m[2]);
            TelitalálatDarab = int.Parse(m[3]);
            TelitalálatNyereméy = int.Parse(m[4]);
            Eredmények = m[5];
        }

        public void EredménytKiír()
        {
            Console.WriteLine($"\tÉv: {Év}");
            Console.WriteLine($"\tHét: {Hét}.");
            Console.WriteLine($"\tForduló: {Forduló}.");
            Console.WriteLine($"\tTelitalálat: {TelitalálatDarab} db");
            Console.WriteLine($"\tNyeremény: {TelitalálatNyereméy} Ft");
            Console.WriteLine($"\tEredmények: {Eredmények}");
        }
    }
    class Toto
    {
        static void Main()
        {
            List<FogadasiFordulo> fordulók = new List<FogadasiFordulo>();
            foreach (var i in File.ReadAllLines("toto.txt").Skip(1))
            {
                fordulók.Add(new FogadasiFordulo(i));
            }

            Console.WriteLine($"3. feladat: Fordulók száma: {fordulók.Count}");

            // 4. feladat:
            int szelvény13p1Db = 0;
            foreach (var i in fordulók)
            {
                szelvény13p1Db += i.TelitalálatDarab;
            }
            Console.WriteLine($"4. feladat: Telitalálatos szelvények száma: {szelvény13p1Db} db");

            // 5. feladat:
            double nyereményekÖsszege = 0;
            int telitalálatosFordulóDb = 0;
            foreach (var i in fordulók)
            {
                checked
                {
                    nyereményekÖsszege += i.NyereményÖsszeg;
                    telitalálatosFordulóDb++;
                }
            }
            Console.WriteLine($"5. feladat: Átlag: {nyereményekÖsszege / telitalálatosFordulóDb:F0} Ft");

            Console.WriteLine("6. feladat:");
            int maxi = -1;
            int mini = -1;
            for (int i = 1; i < fordulók.Count; i++)
            {
                if (fordulók[i].TelitalálatDarab > 0)
                {
                    if (maxi == -1) maxi = i;
                    if (mini == -1) mini = i;
                    if (fordulók[i].TelitalálatNyereméy > fordulók[maxi].TelitalálatNyereméy)
                    {
                        maxi = i;
                    }
                    if (fordulók[i].TelitalálatNyereméy < fordulók[mini].TelitalálatNyereméy)
                    {
                        mini = i;
                    }
                }
            }
            Console.WriteLine("\tLegnagyobb:");
            fordulók[maxi].EredménytKiír();
            Console.WriteLine("\n\tLegkisebb:");
            fordulók[mini].EredménytKiír();

            // 8. feladat:
            bool voltDöntetlenNélküliForduló = false;
            foreach (var i in fordulók)
            {
                EredmenyElemzo ee = new EredmenyElemzo(i.Eredmények);
                if (ee.NemvoltDontetlenMerkozes)
                {
                    voltDöntetlenNélküliForduló = true;
                    break;
                }
            }
            Console.WriteLine($"8. feladat: {(voltDöntetlenNélküliForduló ? "Volt" : "Nem volt")} döntetlen nélküli forduló!");

            Console.ReadKey();
        }
    }
}

 using System;

using System.Collections.Generic;
using System.Windows;
using System.Windows.Controls;

namespace TotoGUI
{
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }

       
        private void Eredények_TextChanged(object sender, TextChangedEventArgs e)
        {
            cbHossz.IsChecked = Eredények.Text.Length != 14;
            cbHossz.Content = $"Nem megfelelő a karakterek száma ({Eredények.Text.Length})";
            List<Char> hibásKarakterek = new List<char>();
            foreach (var i in Eredények.Text)
            {
                if ("12X".IndexOf(i) == -1)
                {
                    hibásKarakterek.Add(i);
                }
            }
            cbHibásKarakter.Content = $"Helytelen karakter az eredményekben ({string.Join(";", hibásKarakterek)})";
            cbHibásKarakter.IsChecked = hibásKarakterek.Count != 0;
            Mentés.IsEnabled = cbHossz.IsChecked == false && cbHibásKarakter.IsChecked == false;
        }
    }
}


<Window x:Class="TotoGUI.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:TotoGUI"
        mc:Ignorable="d"
        Title="Totó eredmény ellenőrző" Height="220" Width="400">
    <Grid>
        <Label Content="Kérem a forduló eredményeit [1, 2, X]:" HorizontalAlignment="Left" Margin="0,10,0,0" VerticalAlignment="Top" Width="265"/>
        <CheckBox x:Name="cbHossz" IsEnabled="False" Content="Nem megfelelő a karakterek száma (14)" HorizontalAlignment="Left" Margin="10,79,0,0" VerticalAlignment="Top" Width="365"/>
        <CheckBox x:Name="cbHibásKarakter" IsEnabled="False" Content="Helytelen karakter az eredményekben ()" HorizontalAlignment="Left" Margin="10,106,0,0" VerticalAlignment="Top" Width="365"/>
        <Button x:Name="Mentés" Content="Eredmények mentése" HorizontalAlignment="Left" Margin="10,143,0,0" VerticalAlignment="Top" Width="152"/>
        <TextBox x:Name="Eredények" HorizontalAlignment="Left" Height="23" Margin="10,40,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="255" Text="12X12X12X12X12" TextChanged="Eredények_TextChanged"/>
    </Grid>
</Window>





-- A feladatok megoldására elkészített SQL parancsokat illessze be a feladat sorszáma után!

-- 10. feladat:
CREATE DATABASE tisza
  DEFAULT CHARACTER SET utf8
  COLLATE utf8_hungarian_ci;

-- 12. feladat:
DELETE
FROM
  meres
WHERE
  meres.nap='2020-03-27';

-- 13. feladat:
UPDATE
  vizmerce
SET
  vizmerce.igId=2
WHERE
  vizmerce.varos="Tokaj";

-- 14. feladat:
SELECT
 vizmerce.varos,
  vizmerce.nullPont
FROM
  vizmerce
ORDER BY
  vizmerce.nullPont ASC
LIMIT 1;

-- 15. feladat:
SELECT
  vizmerce.varos,
  vizmerce.lnv-vizmerce.lkv AS ingadozas
FROM
  vizmerce
ORDER BY
  ingadozas DESC;
 
-- 16. feladat:
SELECT
  igazgatosag.nev,
  COUNT(vizmerce.id) AS merceszam
FROM
  igazgatosag INNER JOIN vizmerce
    ON vizmerce.igId=igazgatosag.id
GROUP BY
  igazgatosag.nev;
 
-- 17. feladat:
SELECT
  AVG(meres.vizAllas) AS atlag
FROM
  meres INNER JOIN vizmerce
    ON meres.vmId=vizmerce.id
WHERE
  MONTH(nap) = 4 AND vizmerce.varos='Szolnok';

2022. március 17., csütörtök

2022.03.17. Szudoku, Nyomtatás befejezése, ellenőrzése + Totó, Tisza

Elkezdtük a Totó és a Tisza feladatokat.

 Szudoku, nyomtatás hivatalos megoldások:

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

namespace sudokuCLI
{
    class Feladvany
    {
        public string Kezdo { get; private set; }
        public int Meret { get; private set; }

        public Feladvany(string sor)
        {
            Kezdo = sor;
            Meret = Convert.ToInt32(Math.Sqrt(sor.Length));
        }

        public void Kirajzol()
        {
            for (int i = 0; i < Kezdo.Length; i++)
            {
                if (Kezdo[i] == '0')
                {
                    Console.Write(".");
                }
                else
                {
                    Console.Write(Kezdo[i]);
                }
                if (i % Meret == Meret - 1)
                {
                    Console.WriteLine();
                }
            }
        }
    }
    class sudokuCLI
    {
        static void Main(string[] args)
        {
            //3.feladat
            List<Feladvany> feladvanyok = new List<Feladvany>();
            foreach (string Seged in File.ReadAllLines("feladvanyok.txt"))
            {
                feladvanyok.Add(new Feladvany(Seged));
            }
            Console.WriteLine("3. feladat: Beolvasva {0} feladvány", feladvanyok.Count);

            //4.feladat
            int meret;
            do
            {
                Console.Write("\n4. feladat: Kérem a feladvány méretét [4..9]: ");
                meret = Convert.ToInt32(Console.ReadLine());
            } while (meret < 4 || meret > 9);
            int meretDb = 0;
            foreach (var Seged in feladvanyok)
            {
                if (Seged.Meret == meret)
                {
                    meretDb++;
                }
            }
            Console.WriteLine("{0}x{0} méretű feladványból {1} darab van tárolva", meret, meretDb);

            //5.feladat
            Random Veletlen = new Random();
            int kivalasztott;
            do
            {
                kivalasztott = Veletlen.Next(0, feladvanyok.Count);
            } while (feladvanyok[kivalasztott].Meret != meret);
            Console.WriteLine("\n5. feladat: A kiválasztott feladvány:\n{0}", feladvanyok[kivalasztott].Kezdo);

            //6.feladat
            int toltottDb = 0;
            foreach (char szamJegy in feladvanyok[kivalasztott].Kezdo)
            {
                if (szamJegy != '0')
                {
                    toltottDb++;
                }
            }
            double szazalekErtek = Math.Round((double)100 * toltottDb / feladvanyok[kivalasztott].Kezdo.Length, 0, MidpointRounding.AwayFromZero);
            Console.WriteLine("\n6. feladat: A feladvány kitöltöttsége: {0}%", szazalekErtek);

            //7.feladat
            Console.WriteLine("\n7. feladat: A feladvány kirajzolva:");
            feladvanyok[kivalasztott].Kirajzol();

            //8.feladat
            StreamWriter Ki = new StreamWriter("sudoku" + meret + ".txt");
            foreach (var seged in feladvanyok)
            {
                if (seged.Meret == meret)
                {
                    Ki.WriteLine(seged.Kezdo);
                }
            }
            Ki.Close();
            Console.WriteLine("\n8. feladat: sudoku{0}.txt állomány {1} darab feladvánnyal létrehozva", meret, meretDb);

            Console.ReadLine();
        }
    }
}


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;

namespace sudokuGUI
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();            
        }
        public int meret = 4;
        public int mezoSzam = 16;

        private void MeretModositas(object sender, RoutedEventArgs e)
        {
            if ((sender as Button).Content.ToString() == "-" && meret > 4)
            {
                meret--;
                MeretBox.Text = meret.ToString();
                mezoSzam = meret * meret;
            }
            else if ((sender as Button).Content.ToString() == "+" && meret < 9)
            {
                meret++;
                MeretBox.Text = meret.ToString();
                mezoSzam = meret * meret;
            }
        }

        private void HosszFrissites(object sender, TextChangedEventArgs e)
        {
            HosszCimke.Content = "Hossz: " + KezdoAllapot.Text.Length;
        }

        private void Ellenorzes(object sender, RoutedEventArgs e)
        {
            if (mezoSzam > KezdoAllapot.Text.Length)
            {
                int karakterKulonbseg = mezoSzam - KezdoAllapot.Text.Length;
                MessageBox.Show("A feladvány rövid: kell még " + karakterKulonbseg + " számjegy!");
            }
            else
            {
                if (mezoSzam < KezdoAllapot.Text.Length)
                {
                    int karakterKulonbseg = KezdoAllapot.Text.Length - mezoSzam;
                    MessageBox.Show("A feladvány hosszú: törlendő " + karakterKulonbseg + " számjegy!");
                }
                else
                {
                    MessageBox.Show("A feladvány megfelelő hosszúságú!");
                }
            }
        }
    }
}


<Window x:Class="sudokuGUI.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:sudokuGUI"
        mc:Ignorable="d"
        Title="Sudoku-ellenőrző" Height="210" Width="540">
    <Grid>
        <Label Content="Új feladvány mérete:" HorizontalAlignment="Left" Margin="17,29,0,0" VerticalAlignment="Top"/>
        <Button Content="-" Click="MeretModositas" HorizontalAlignment="Left" Margin="142,30,0,0" VerticalAlignment="Top" Width="17" />
        <TextBox Name="MeretBox" HorizontalAlignment="Left" Height="23" Margin="164,30,0,0" TextWrapping="Wrap" Text="4" TextAlignment="Center" VerticalAlignment="Top" Width="24" IsReadOnly="True"/>
        <Button Content="+" Click="MeretModositas" HorizontalAlignment="Left" Margin="193,30,0,0" VerticalAlignment="Top" Width="17"/>
        <Label Content="Kezdőállapot:" HorizontalAlignment="Left" Margin="17,79,0,0" VerticalAlignment="Top"/>
        <TextBox Name="KezdoAllapot" TextChanged="HosszFrissites" HorizontalAlignment="Left" Height="23" Margin="21,107,0,0" TextWrapping="Wrap" Text="" VerticalAlignment="Top" Width="490"/>
        <Label Name="HosszCimke" Content="Hossz: 0" HorizontalAlignment="Left" Margin="17,130,0,0" VerticalAlignment="Top"/>
        <Button Content="Ellenőrzés" Click="Ellenorzes" HorizontalAlignment="Left" Margin="436,139,0,0" VerticalAlignment="Top" Width="75"/>

    </Grid>
</Window>


-- A feladatok megoldására elkészített SQL parancsokat illessze be a feladat sorszáma után!


-- 8. feladat:
CREATE DATABASE konyvtarak
  DEFAULT CHARACTER SET utf8
  COLLATE utf8_hungarian_ci;

-- 10. feladat:
UPDATE megyek
  SET megyeNev="Budapest"
  WHERE megyeNev="BP";

-- 11. feladat:
SELECT
  konyvtarNev, irsz
FROM
  konyvtarak
WHERE
  konyvtarNev LIKE "%Szakkönyvtár%";

-- 12. feladat:
SELECT
  konyvtarNev, irsz, cim
FROM
  konyvtarak
WHERE
  irsz LIKE "1%"
ORDER BY
  irsz ASC;

-- 13. feladat:
SELECT
  telepNev,
  count(id) AS konyvtarDarab
FROM
  konyvtarak INNER JOIN telepulesek
    ON konyvtarak.irsz=telepulesek.irsz
GROUP BY
  telepNev
HAVING konyvtarDarab>=7;

-- 14. feladat:
SELECT
  megyeNev,
  count(irsz) AS telepulesDarab
FROM
  telepulesek INNER JOIN megyek
    ON telepulesek.megyeId=megyek.id
WHERE
  irsz NOT LIKE "1%"
GROUP BY
  megyeNev
ORDER BY
  telepulesDarab DESC;