2023. február 14., kedd

2023.02.14. SQL

Éppen csak elkezdtük a Szótár adatbázist.

Hajó adatbázis megoldás - ezt ellenőriztük

 1.feladat:

CREATE DATABASE hajo
DEFAULT CHARACTER SET UTF8
COLLATE UTF8_hungarian_ci;


3.feladat:
SELECT `menetrend`.`honnan`, `menetrend`.`hova`, `menetrend`.`indul`, `menetrend`.`erkezik`
FROM `menetrend`
WHERE (`jarat` = "j1")


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.feladat:
SELECT `jarat`
FROM `menetrend`
WHERE ((`honnan`= "Siófok" ) AND (`indul`>='9:00'))


6.feladat:
SELECT `jarat`
FROM `menetrend`
WHERE ((`jarat` like "b%") AND (`indul`>'12:00'))
ORDER BY `indul` ASC


7.feladat:
SELECT `menetrend`.`hova`, count(`menetrend`.`azon`)
FROM `menetrend`
GROUP BY `hova`
ORDER BY 2 DESC


8.feladat:
SELECT `erkezik`
FROM `menetrend`  
WHERE (`hova`="Balatonföldvár")
ORDER BY `menetrend`.`erkezik`  DESC
LIMIT 1

másik:

SELECT max(`menetrend`.`erkezik`)
FROM `menetrend`
WHERE (( `hova` = "Balatonföldvár"))


9.feladat:
SELECT `menetrend`.`hova`,`menetrend`.`erkezik`
FROM `menetrend`
WHERE (`jarat` = "e2")
ORDER BY `erkezik` DESC
LIMIT 1

2023.02.14. Témazáró ellenőrzése

 

2023. február 10., péntek

2023.02.10., 17. While ciklus bevezetés

Elkezdtük, a 2. feladatnál tartunk. Befejeztük, teszteltük, lépésenként futtattuk.

Nincs írásbeli házi feladat. 

While ciklus bevezetés

//While ciklus bevezetés
//Feladat: Töltsünk fel egy 10 elemű
//int tömböt véletlen számokkal!
Console.WriteLine("Tömb létrehozása...");
int[] szamok = new int[10];
Random rnd = new Random();
//Megoldás for ciklussal (plusz kiírás):
Console.WriteLine("Feltöltés, kiírás for ciklussal:");
for (int k = 0; k < szamok.Length; k++)
{
    szamok[k] = rnd.Next(100);
    Console.WriteLine(szamok[k]);
}
Console.ReadLine();
//Megoldás while ciklussal (plusz kiírás):
//(i: itt is ciklusváltozó)
Console.WriteLine("Feltöltés, kiírás while ciklussal:");
int i = 0;
while (i < szamok.Length)
{
    szamok[i] = rnd.Next(100);
    Console.WriteLine(szamok[i]);
    i++;
}
Console.ReadLine();
//Összegzés tétele for ciklussal:
//Összegzés tétele while ciklussal:
//Gyakorló feladatok while ciklusra:
//1. feladat:
//Írjuk ki az első 100 természetes számot
//a képernyőre! (0,1,2,3...98,99)
//2. feladat:
//Írjuk ki az első 100 darab 2-vel osztható
//természetes számot
//a képernyőre! (0,2,4...)
//3. feladat:
//Írjuk ki az első 10 darab 10-zel osztható
//természetes számot
//a képernyőre!
//4. feladat:
//Kérjünk be karaktereket a felhasználótól
//egy 5 elemű tömbbe!
//5. feladat:
//Addig írjuk ki a képernyőre a számokat egyesével
//százegytől indulva, amíg nem találunk egy olyan számot,
//ami osztható 23-mal.
//6. feladat:
//Addig írjuk ki a képernyőre a számokat egyesével
//20-tól indulva, amíg nem találunk egy olyan számot,
//ami osztható 3-mal, 4-gyel, és 5-tel is.
//(3*4*5=60 előtt kell neki megállni.)
//Tehát a for ciklusnál rugalmasabb ciklus abból a szempontból,
//hogy nincs előre meghatározva a lépésszáma.
megoldás
namespace whileCiklusBevezetes
{
    class Program
    {
        static void Main(string[] args)
        {
             //While ciklus bevezetés
            //Feladat: Töltsünk fel egy 10 elemű
            //int tömböt véletlen számokkal!
            Console.WriteLine("Tömb létrehozása...");
            int[] szamok = new int[10];
            Random rnd = new Random();
            //Megoldás for ciklussal (plusz kiírás):
            Console.WriteLine("Feltöltés, kiírás for ciklussal:");
            for (int k = 0; k < szamok.Length; k++)
            {
                szamok[k] = rnd.Next(100);
                Console.WriteLine(szamok[k]);
            }
            Console.ReadLine();
            //Megoldás while ciklussal (plusz kiírás):
            //(i: itt is ciklusváltozó)
            Console.WriteLine("Feltöltés, kiírás while ciklussal:");
            int i = 0;
            while (i < szamok.Length)
            {
                szamok[i] = rnd.Next(100);
                Console.WriteLine(szamok[i]);
                i++;
            }
            Console.ReadLine();
            //Összegzés tétele for ciklussal:
            Console.WriteLine("Összegzés for ciklussal:");
            int osszeg = 0;
            for (int m = 0; m < szamok.Length; m++)
            {
                osszeg = osszeg + szamok[m];
            }
            Console.WriteLine("Összeg for ciklussal: {0}", osszeg);
            //Összegzés tétele while ciklussal:
            Console.WriteLine("Összegzés while ciklussal:");
            osszeg = 0;
            i = 0;
            while (i < szamok.Length)
            {
                osszeg = osszeg + szamok[i];
                i++;
            }
            Console.WriteLine("Összeg while ciklussal: {0}", osszeg);
            Console.ReadLine();
            //Gyakorló feladatok while ciklusra:
            //1. feladat:
            //Írjuk ki az első 100 természetes számot
            //a képernyőre! (0,1,2,3...98,99)
            Console.WriteLine("Az első 100 természetes szám következik:");
            Console.ReadLine();
            i = 0;
            while (i < 100) //Nullától 99-ig, tehát 100-szor fut
            {
                Console.WriteLine(i); //ha a ciklusváltozót íratjuk ki, pont jó lesz
                i++;
            }
            //Itt használhatjuk a ciklusváltozót a kiíráshoz, ez nem mindig ilyen egyszerű.
            //Ha ennél összetettebb a feladat, akkor érdemes lehet egy új változót bevezetni, később lesz erre még példa.
            Console.ReadLine();
            //2. feladat:
            //Írjuk ki az első 100 darab 2-vel osztható
            //természetes számot
            //a képernyőre! (0,2,4...)
            Console.WriteLine("Az első 100 darab 2-vel osztható természetes szám következik:");
            Console.ReadLine();
            i = 0;
            int db = 0;
            while (db < 100) //itt arra koncentrálunk, hogy biztos pontosan 100-szor fusson
                //ezért nem jó az i, mert 100-nál több számot kell végignéznünk egyesével
                //és az i-t arra használjuk, hogy ezeken végigmenjünk
            {
                if (i % 2 == 0)
                {
                    Console.WriteLine(i);
                    db++; //csak akkor emeljük ezt az értéket, ha tényleg találtunk egy feltételnek megfelelő számot
                }
                i++; //mivel minden számot meg kell nézni, egyesével növeljük az i-t
            }
            Console.ReadLine();
            //3. feladat:
            //Írjuk ki az első 10 darab 10-zel osztható
            //természetes számot
            //a képernyőre!
            //(Nagyon hasonlít az előzőre.)
            Console.WriteLine("Az első 10 10-zel osztható természetes szám következik:");
            Console.ReadLine();
            i = 0;
            db = 0;
            while (db < 10)
            {
                if (i % 10 == 0)
                {
                    Console.WriteLine(i);
                    db++;
                }
                i++;
            }
            Console.ReadLine();
            //4. feladat:
            //Kérjünk be karaktereket a felhasználótól
            //egy 5 elemű tömbbe!
            Console.WriteLine("5 karakter bekérése következik.");
            char[] karakterek = new char[5];
            i = 0;
            while (i < karakterek.Length)
            {
                Console.WriteLine("Kérek egy karaktert!");
                karakterek[i] = Convert.ToChar(Console.ReadLine());
                i++;
            }
            Console.ReadLine();
            //5. feladat:
            //Addig írjuk ki a képernyőre a számokat egyesével
            //százegytől indulva, amíg nem találunk egy olyan számot,
            //ami osztható 23-mal.
            Console.WriteLine("Ami 23-mal osztható, azt már nem írjuk ide:");
            Console.ReadLine();
            i = 101; //itt beállítjuk a kezdőértéket, az első számot; amit először ki kell írni
            while (!(i % 23 == 0)) //addig menjen, amíg MÉG NEM talált a feltételnek megfelelőt
                //1. a feltételt könnyen meg tudjuk fogalmazni, mert az oszthatóságot könnyen kiszámoljuk
                //2. eztán már csak tagadni kell, hogy fusson az a ciklus...
            {
                Console.WriteLine(i); //mivel egyesével minden számot ki kell írni, használhatjuk a ciklusváltozót
                i++;
            }
            Console.ReadLine();
            //6. feladat:
            //Addig írjuk ki a képernyőre a számokat egyesével
            //20-tól indulva, amíg nem találunk egy olyan számot,
            //ami osztható 3-mal, 4-gyel, és 5-tel is.
            //(3*4*5=60 előtt kell neki megállni.)
            Console.WriteLine("Ami osztható 3-mal, 4-gyel, és 5-tel is, előtte megállunk:");
            Console.ReadLine();
            i = 20;
            while (!(i % 3 == 0 && i % 4 == 0 && i % 5 == 0))
                //mint az előző feladat, csak összetett a feltétel
                //1. fogalmazzuk meg úgy, mintha csak a 3-mal oszthatóságot kellene figyelni
                //2. találjuk ki, milyen logikai operátor (művelet) kell ahhoz, hogy együtt legyen igaz a 3-mal, és a 4-gyel való oszthatóság, ez az:&&
                //3. bővítsük ki az utolsó résszel
                //4. tagadjuk, hogy addig fusson a ciklus, míg ilyet nem talál
            {
                Console.WriteLine(i);
                i++;
            }
            Console.ReadLine();
            //Tehát a for ciklusnál rugalmasabb ciklus abból a szempontból,
            //hogy nincs előre meghatározva a lépésszáma.

2023.02.10. Lépésenkénti futtatás

 


             Random rnd = new Random();
            int[] szamok = new int[5];
            Console.WriteLine("Csak akkor írja ki, ha akarom...");
            for (int i = 0; i < szamok.Length; i++)
            {
                szamok[i] = rnd.Next();
                Console.WriteLine(szamok[i]);
            }          
            Console.ReadLine();

2023. február 9., csütörtök

2023.02.10. Foreach - fontos tudnivaló

 Vizsgáld meg ezt a programot, és magyarázd el a működését.

Használd a következő szavakat: szintaktikai, szemantikai, futási

int[] tomb = new int[5];
            Random rnd = new Random();
            for (int i = 0; i < tomb.Length; i++)
            {
                tomb[i] = rnd.Next();
                Console.WriteLine(tomb[i]);
            }
            Console.WriteLine("Itt mi történik?");
            foreach (int x in tomb)
            {
                Console.WriteLine(tomb[x]);
            }
            Console.ReadLine();
            //////////////////////////////////////////////////
            for (int i = 0; i < tomb.Length; i++)
            {
                tomb[i] = rnd.Next(0,5);
                Console.WriteLine(tomb[i]);
            }
            Console.WriteLine();
            Console.WriteLine("És itt mi történik?");
            foreach (int x in tomb)
            {
                Console.WriteLine(tomb[x]);
            }
            Console.ReadLine();


megoldás

  int[] tomb = new int[5];
            Random rnd = new Random();
            for (int i = 0; i < tomb.Length; i++)
            {
                tomb[i] = rnd.Next();
                Console.WriteLine(tomb[i]);
            }
            Console.WriteLine("Itt mi történik?");
            foreach (int x in tomb)
            {
                Console.WriteLine(tomb[x]); //véletlenül a tömb elemeit akartuk így kiírni
            }
            //nincs szintaktikai hiba, de futási hiba van,
            //mert a véletlenszám, ami a tömbben van, az kerül az x helyére,
            //és nem lesznek ennyiedik tömbelemek
            Console.ReadLine();
            //////////////////////////////////////////////////
            for (int i = 0; i < tomb.Length; i++)
            {
                tomb[i] = rnd.Next(0, 5);
                Console.WriteLine(tomb[i]);
            }
            Console.WriteLine();
            Console.WriteLine("És itt mi történik?");
            foreach (int x in tomb)
            {
                Console.WriteLine(tomb[x]);
            }
            //itt nincs szintaktikai hiba,
            //nincs futási hiba,
            //de szemantikai hiba van (rendellenes működés),
            //mert az x maga a tömbelem, és bár a tömbből nem futunk ki,
            //nem a sorban következő tömbelemeket írjuk ki
            Console.ReadLine();

2023.02.09. SQL

Majdnem végig megoldottuk a Hajó adatbázis feladatsorát. Itt folytatjuk.

2023. február 8., szerda

2023.02.08. SQL

 Ellenőriztük a Termék adatbázis feladatsorát, létrehoztuk, megbeszéltük a Hajó adatbázist, köv. órán jönnek a lekérdezések.

2025.02.19.[helyettesítés] SQL feladatmegoldás - AI alapú önálló gyakorlás

A következő feladatsor a dolgozatokra készít fel, ahol egészen hasonló feladatokat fogtok kapni. Kérem a hiányzókat is, hogy pótoljanak lehe...