2022.12.01.-02. Helyettesítés

 Remélem, sikerült előrehaladni az előző feladatsorral. Ha még nincs kész, először azt fejezzétek be.

Innen le tudjátok tölteni a 2017. őszi informatika ismeretek érettségi feladatsort. Ez egy régebbi ípusú feladatsor, nincs benne ablakos program írás, az adatbázis feladat teljesen külön sorszám alatt szerepel, hosszabb, viszont csak lekérdezés van benne. (És a web is könnyebb, de azzal most még nem kell foglalkoznod.)

Jó munkát!


2022.11.29. Helyettesítés

  Erről a linkről töltsétek le a 2020. őszi informatikai ismeretek érettségi feladatlapját, forrásait és megoldókulcsát.

A programozás konzolos és ablakos részt, végül az adatbázis feladatot kell megoldani, ebben a sorrendben.

A konzolos részben a beolvasást és a sorok kiírását mindenki oldja meg, a többi opcionális.

Ha a megoldásban ismeretlen módszereket találsz, ne ijedj meg, mindent többféleképpen meg lehet oldani.

Segítsetek egymásnak, és ha kész vagytok, ellenőrizzétek a megoldókulccsal a megoldásokat. 

Elemér és Máté is ezzel a feladatsorral kezdjen, ti végig írjátok meg a programozás-konzolos feladatot.

2022.11.24. Sudokus feladatlap adatbázis feladata

 Átismételtünk néhány témát az SQL jegyzetből, és vettük a DELETE, INSERT INTO, UPDATE parancsokat. Majdnem végig megoldottuk az adatbázis feladatot.

2022.11.15. Random felelő megoldás

Készen vagyunk, átnéztük a Sudokus érettségi feladatsort is.

 class1.cs

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

namespace randomfelelo2
{
    public class Osztaly
    {
        public int csoport;
        public string nev;

        public Osztaly(string sor)
        {
            List<string> atmeneti = sor.Split(";").ToList();
            csoport = Convert.ToInt32(atmeneti[0]);
            nev = atmeneti[1];
        }
    }
}

MainWindow.xaml.cs

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


namespace randomfelelo2
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        Random rnd = new Random();
        public MainWindow()
        {
            InitializeComponent();
            List<Osztaly> tanulok = new List<Osztaly>();
            Chb1.IsChecked = true;
            //kezdetben az 1. csoport legyen az aktív (ezt nem feltétlen kell megtenni)
            //ezt be lehet állítani a vezérlőelem tulajdonságainál is

            foreach (var item in File.ReadAllLines("12b.txt"))
            {
                tanulok.Add(new Osztaly(item));
            }

            for (int i = 0; i < tanulok.Count; i++)
            {
                if (tanulok[i].csoport == 1)
                {
                    Lb1.Items.Add(tanulok[i].nev);
                }
                else
                {
                    if (tanulok[i].csoport ==2)
                    {
                        Lb2.Items.Add(tanulok[i].nev);
                    }
                }
            }
        }

        private void Chb1_Checked(object sender, RoutedEventArgs e)
        {
            Chb2.IsChecked = false;
        }

        private void Chb2_Checked(object sender, RoutedEventArgs e)
        {
            Chb1.IsChecked = false;
        }

        private void BtnFelelo_Click(object sender, RoutedEventArgs e)
        {
            if (Chb1.IsChecked == true)
            {            
                LblFelelo.Content = Lb1.Items[rnd.Next(Lb1.Items.Count)];
            }
            else
            {
                LblFelelo.Content = Lb2.Items[rnd.Next(Lb2.Items.Count)];
            }
        }
    }
}

MainWindow.xaml

<Window x:Class="randomfelelo2.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:randomfelelo2"
        mc:Ignorable="d"
        Title="Random felelő választó" Height="610" Width="600">
    <Grid Background="#FFC8ECF0">
        <Label Content="Random felelő választó" HorizontalAlignment="Center" Margin="0,39,0,0" VerticalAlignment="Top" Background="#FF4A58C0" Foreground="#FFF9F20A" FontSize="16"/>
        <Label x:Name="LblFelelo" Content="" HorizontalAlignment="Left" Margin="280,89,0,0" VerticalAlignment="Top" Width="272" Background="#FF98DDDA" Height="31" FontSize="16"/>
        <ListBox x:Name="Lb1" HorizontalAlignment="Left" Height="318" Margin="29,218,0,0" VerticalAlignment="Top" Width="236" RenderTransformOrigin="0.5,0.5"></ListBox>
        <ListBox x:Name="Lb2" HorizontalAlignment="Left" Height="318" Margin="316,218,0,0" VerticalAlignment="Top" Width="236"/>
        <Label Content="1. csoport" HorizontalAlignment="Left" Margin="30,167,0,0" VerticalAlignment="Top"/>
        <Label Content="2. csoport" HorizontalAlignment="Left" Margin="324,167,0,0" VerticalAlignment="Top"/>
        <CheckBox x:Name="Chb1" Content="" HorizontalAlignment="Left" Margin="104,176,0,0" VerticalAlignment="Top" RenderTransformOrigin="13.602,0.115" Checked="Chb1_Checked"/>
        <CheckBox x:Name="Chb2" Content="" HorizontalAlignment="Left" Margin="396,176,0,0" VerticalAlignment="Top" RenderTransformOrigin="13.602,0.115" Checked="Chb2_Checked"/>
        <Button x:Name="BtnFelelo" Content="A következő felelő: " HorizontalAlignment="Left" Margin="43,89,0,0" VerticalAlignment="Top" Background="#FF5C85D4" FontSize="16" Click="BtnFelelo_Click"/>
    </Grid>
</Window>

2022.11.03.-04. Hajó és Szótár adatbázis megoldás

 Aki nincs kész, házi feladat befejezni. Köv. órán ellenőrizzük részletesen, jövő kedden dolgozat ebből a két adatbázisból.

Hajó adatbázis megoldás

/*1*/
  CREATE DATABASE hajo
DEFAULT CHARACTER SET UTF-8
COLLATE UTF8_hungarian_ci;
 /* 3.  Írassa ki a J1 hajójárat menetrendjét! Jelenjenek meg az indulási és érkezési állomások az időpontokkal együtt!*/
SELECT honnan, hova, indul, erkezik
FROM menetrend
  WHERE jarat = "j1";

/*  4.  Listázza ki, hogy Balatonfüredről milyen állomások felé indulnak hajók
  11 óra 30 perc és 12 óra 30 perc között (beleértve a megadott időpontokat is)! (4. feladat:)*/
/*Egyik megoldás*/

SELECT menetrend.hova
FROM menetrend
WHERE ((honnan = "Balatonfüred") and (menetrend.indul between '11:30' AND '12:30'));

/*Másik megoldás*/

SELECT menetrend.hova
FROM menetrend
WHERE ((honnan = "Balatonfüred") and (menetrend.indul>= '11:30' AND menetrend.indul<= '12:30'));


/*5.  Listázza ki, hogy Siófokról milyen jelű járatok indulnak 9 óra után (beleértve a 9 órát is). (5. feladat:)*/

 SELECT menetrend.jarat
  from menetrend
  WHERE honnan = "Siófok" and indul >= 9;

/*6.  Listázza ki indulási sorrendben az összes B-vel kezdődő jelű járatot, ami délután indul. (6. feladat:)*/
select menetrend.jarat, menetrend.indul
  from menetrend
  where jarat like 'b%' and indul>'12:00:00'
order by indul;

/*7.  Határozza meg lekérdezés segítségével, hogy naponta hány hajó érkezik a kikötőkbe!
  A lista az állomás nevéből és a kikötő hajók számából álljon, az utóbbi értéke szerint csökkenően!(7. feladat:)*/
  SELECT menetrend.hova, count(menetrend.azon)
    from menetrend
    group by hova
    order by 2 desc;

      SELECT menetrend.hova, count(azon)
    from menetrend
    group by hova
    order by count(azon) desc;

   
/*8.  Adja meg, hogy a legkésőbben érkező hajó hánykor ér Balatonföldvárra! (8. feladat:)*/

  /*Egyik megoldás*/
  SELECT menetrend.erkezik
    from menetrend
    where hova="Balatonföldvár"
    order by erkezik desc
    limit 1;

/*Másik megoldás*/
  SELECT max(menetrend.erkezik)  
    from menetrend
    where hova="Balatonföldvár";
   
/*9.  Az E2-es hajójáratnak mi a végállomása és hánykor érkezik oda? (9. feladat:)*/
  SELECT hova, erkezik
    from menetrend
    where jarat="e2"
    order by erkezik DESC
    limit 1;


Szótár adatbázis megoldás

/*1.  Hozzon létre a lokális SQL szerveren szotar néven adatbázist!
  Az adatbázis alapértelmezett rendezési sorrendje a magyar szabályok
  szerinti legyen!
  Ha az Ön által választott SQL szervernél nem alapértelmezés az UTF-8 kódolás,
  akkor azt is állítsa be alapértelmezettnek az adatbázis létrehozásánál!*/
CREATE DATABASE szotar
  CHARACTER SET utf8
  COLLATE utf8_hungarian_ci;

/*2.  A tabla.sql és az adatok.sql állományok tartalmazzák a táblákat létrehozó, valamint az adatokat a táblába beszúró SQL parancsokat! Futtassa a lokális SQL szerveren elsőként a tabla.sql, majd az adatok.sql parancsfájlt.
A feladatok megoldására elkészített SQL parancsokat a megoldasok.sql állományba illessze be a feladatok végén jelzett zárójelben lévő sor alá!*/


/*3.  Készítsen lekérdezést, amely felsorolja azokat az angol szavakat,
  amelyeknek magyar megfelelőjét pontosan
  az angol írásmóddal egyezően írják! (3. feladat:) */
select angol
  from szolista
  where angol=magyar;

/*4.  Készítsen lekérdezést, amely ABC sorrendben
  felsorolja azokat a magyar szavakat,
  amelyeknél az adatbázisba kerülés dátuma 2003-ban,
  vagy 2004-ben volt! (4. feladat:)*/
select szolista.magyar
  from szolista
  where felvetel>='2003.01.01.'
  AND felvetel<='2004.12.31.'
  order by magyar;

select szolista.magyar
  from szolista
  where felvetel between '2003.01.01.'
  AND '2004.12.31.'
  order by magyar;

  select szolista.magyar
  from szolista
  where year(felvetel) between 2003 AND 2004
  order by magyar;

    select szolista.magyar
  from szolista
  where year(felvetel) = 2003 OR year(felvetel) = 2004
  order by magyar;

  select szolista.magyar
  from szolista
  where felvetel like "2003%" OR felvetel like "2004%"
  order by magyar;


/*5.  Készítsen lekérdezést, amely megjeleníti azokat az angol szavakat,
  amelyek valamelyik magyar jelentését legalább 150 fő helyesnek ítélte,
  vagy kevesebb, mint 5 fő találta hibásnak! (5. feladat:)*/
select angol
  from szolista
  where helyes>=150 or helytelen<5;

/*6.  Készítsen lekérdezést, amely megjeleníti
  az „ac” betűkkel kezdődő és „y”-nal végződő angol  szavakat
  és a magyar megfelelőiket. (6. feladat:)*/
select angol, magyar
  from szolista
  where angol like 'ac%y';

/*7.  Készítsen lekérdezést, amely megadja a 4000-nél
  nagyobb azonosítójú angol szavakra vonatkozóan
  a következőket: helyes minősítések száma,
  helytelen minősítések száma,
  minősítések száma átlagosan.
  A harmadik mező „átlag” néven jelenjen meg.
  (Egyetlen sort kell kiírni.) (7. feladat:)*/
select sum(helyes), sum(helytelen), avg(helyes+helytelen) as 'átlag'
  from szolista
  where azon>4000;
 
  /*Rávezető feladatok:
  7.a Készítsen lekérdezést, amely megadja a 4000-nél
  nagyobb azonosítójú angol szavakra vonatkozóan
  a következőket: angol szó, magyar szó,
  helyes minősítések száma (soronként),
  helytelen minősítések száma (soronként),
  minősítések száma átlagosan (soronként).
  A harmadik mező „minősítések száma átlagosan soronként” néven jelenjen meg.
  (Több sort kell kiírni.) (7.a feladat:)*/

  select angol, magyar, helyes, helytelen, (helyes+helytelen)/2
  as 'minősítések száma átlagosan soronként'
  from szolista
   where azon>4000;
 
  /*  7.b Készítsen lekérdezést, amely megadja a 4000-nél
  nagyobb azonosítójú angol szavakra vonatkozóan
  a következőket:
  helyes minősítések száma átlagosan (az összes sorban lévő értékek átlaga),
  helytelen minősítések száma átlagosan (az összes sorban lévő értékek átlaga),
  helyes és helytelen minősítések száma átlagosan (az összes sorban lévő értékek átlaga).
  (Egyetlen sort kell kiírni.) (7.b feladat:)*/

  select avg(helyes), avg(helytelen), avg(helyes+helytelen) as 'minősítések száma átlagosan'
  from szolista where azon>4000;
  /*Itt a helyes értékeket soronként összeadja,majd elosztja a rekordok számával,
  a helytelen értékeket soronként összeadja,majd elosztja a rekordok számával,
  soronként a helyes és helytelen értékeket összeadja,
   majd ezeket is összeadja és elosztja a rekordok számával.
   Ha két rekorddal ki akarjuk próbálni, konkrétan milyen eredményt kapunk:
  select avg(helyes), avg(helytelen), avg(helyes+helytelen) as 'minősítések száma átlagosan'
  from szolista where azon = 3203 or azon = 3204;
   */


 /*  7.c  Készítsen lekérdezést, amely megadja a 4000-nél
  nagyobb azonosítójú angol szavak számát.
  (Egyetlen sort kell kiírni.) (7.c feladat:)*/

  select count(azon) as 'rekordok száma'
  from szolista where azon>4000;
  /*Itt minden olyan mezőt megadhatunk a függvénynek, aminek az értéke garantáltan kitöltött.
  Az azonosító mező ezért mindig alkalmas.
  Vegyük észre, hogy az ilyen feladatoknál nincs értelme
  kiírni egy mezőt, pl. az angol nevet, mivel az nem köthető
  az összesítő függvény eredményéhez.
  pl. a következő megoldás nem dob hibát, de nincs értelme:
  select angol, count(azon) as 'rekordok száma' from szolista where azon>4000;
  Itt az első, szűrésnek megfelelő rekordban lévő angol szót írja ki.
  Győződj meg róla:
  SELECT angol, azon FROM `szolista` where angol like "perfume";
  */





/*8.  Készítsen lekérdezést, amely megadja,
  hogy legelőször mikor került
  a „warp” angol szó az adatbázisba! (8. feladat:)*/

select felvetel
  from szolista
WHERE angol like 'warp'
order by felvetel
limit 1;

select min(felvetel)
  from szolista
WHERE angol like 'warp';


/*9.  Készítsen lekérdezést, amely megadja,
  hogy az adatbázis angol szavai közül
  melyeknek van legalább 3 magyar jelentése!
  A lekérdezésben csak az angol szavak jelenjenek meg. (9. feladat:)*/
select angol
  from szolista
  group by angol
  having count(azon)>=3;

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