2023. február 28., kedd

2023. február 22., szerda

2023.02.22., 28. Vízállás sql feladat

 Kész, ellenőriztük.

/*Vízállás

1. feladat*/
CREATE DATABASE vizallas
  CHARACTER SET utf8
  COLLATE utf8_hungarian_ci;
/*3. feladat
Adja meg lekérdezés segítségével, hogy
 2002 szilveszterén (2002. 12. 31.)
az egyes településeken milyen vízállást mértek!
A lekérdezés a város nevét és a vízállást jelenítse meg! */
SELECT varos, vizallas
FROM meres
WHERE meres.datum = '2002-12-31';

/*4. feladat
Lekérdezés segítségével jelenítse meg, hogy
 mely városok szerepelnek az adatbázisban!
 A városok nevét rendezze ábécé sorrendbe,
  és mindegyik csak egyszer jelenjen meg! */
SELECT meres.varos
FROM meres
GROUP BY meres.varos
ORDER BY meres.varos;

SELECT  distinct varos
FROM meres
ORDER BY meres.varos;

/*5.feladat
Készítsen lekérdezést, amely megadja, hogy a Tiszán
hány alkalommal mértek 9 méternél nagyobb vízállást! */
SELECT COUNT(meres.id)
FROM meres
WHERE (meres.folyo like 'Tisza')
 AND (meres.vizallas > 900);

/*6. feladat
Készítsen lekérdezést, amely megadja,
hogy Budapesten a legmagasabb vízállást
mely napon mérték! */
SELECT datum
FROM meres
WHERE varos like 'Budapest'
ORDER BY vizallas DESC
LIMIT 1 ;

////////////////////////////////////////////////////////////////////////
/*RÁVEZETŐ FELADATOK (nem a helyes megoldások):
Ez a megoldás kiírja az összes mérési dátumot Budapesten
(nem felel meg a feladatnak):*/
  SELECT datum
FROM meres
WHERE meres.varos like 'Budapest';

/*Ez kiírja a helyes maximális vízállást Budapesten
 (nem ezt a mezőt kérte a feladat).*/
SELECT max(vizallas)
FROM meres
WHERE meres.varos like 'Budapest';

/*Ez kiírja a helyes maximális vízállást Budapesten,
viszont előtte a budapesti összes dátumból
 az első jelenik csak meg. (rossz megoldás)*/
SELECT datum, max(vizallas)
FROM meres
WHERE meres.varos like 'Budapest';

/*Ez kiírja a helyes maximális vízállást Budapesten
 (nem ezt kérte a feladat).
(Emellé már nem tudunk más mezőt kiírni korrekten.)*/
SELECT max(vizallas)
FROM meres
GROUP BY varos
HAVING varos = 'Budapest';

/*Végképp rossz megoldás:
Ez kiírja a helyes maximális vízállást Budapesten, de a mellette levő dátum
a táblába bevitt legelső dátum lesz - és ezek nem tartoznak egymáshoz.*/
/*SELECT max(vizallas), datum
FROM meres
GROUP BY varos
HAVING varos = 'Budapest';*/

/*Az alselect megkeresi a maximális budapesti vízállást
 és a fő lekérdezés kiírja azt a két dátumot,
amikor az volt a vízállás.*/
SELECT datum
FROM meres
WHERE vizallas =
(SELECT max(vizallas) FROM meres
 WHERE meres.varos like 'Budapest');

/*Az alselect megkeresi a maximális budapesti vízállást és a fő lekérdezés kiírja azt az első dátumot,
amikor az volt a vízállás.*/
SELECT datum
FROM meres
WHERE vizallas = (SELECT max(vizallas) FROM meres
 WHERE meres.varos like 'Budapest')
ORDER BY datum desc
LIMIT 1;

////////////////////////////////////////////////////////////////////////

/*7. feladat
Az adatbázisban nyilvántartott legmagasabb vízállás 928 cm.
 Készítsen lekérdezést, amely megadja, hogy ezzel egy napon
 a Duna mentén melyik településen milyen vízállást mértek!*/
SELECT meres.varos
FROM meres
WHERE (meres.folyo like 'Duna') AND
(meres.datum = (SELECT meres.datum FROM meres
WHERE (meres.vizallas = 928)));

/*8. feladat
Készítsen lekérdezést, amely folyónként kiírja a vízállásokat,
 és a mérés dátumát, a dátum szerinti  növekvő sorrendben. */
select meres.folyo, meres.vizallas, meres.datum
  from meres
  order by folyo, datum;


/*9. feladat
  Készítsen lekérdezést, amely folyónként kiírja
   a legalacsonyabb vízállást. */
  select folyo, min(meres.vizallas)
    from meres
  group by folyo;


2023. február 17., péntek

2023.02.17. Online programozó oldalak

 Leetcode

Coding Game

2023.02.17. Csillagok kiírása ciklussal

Csillagok kiírása ciklussal

1. Mit csinál ez a kód?
2. Alakítsd át úgy, hogy a for ciklust cseréld le while ciklusra.  
using System;

namespace kiiro
{
    class Program
    {
        static void Main(string[] args)
        {
            for (int i = 0; i < 80; i++)
            {
                Console.Write("*");
            }
            Console.ReadLine();
            Console.Clear();
            int sor = 0;
            int oszlop = 0;
            for (int i = 0; i < 80; i++)
            {
                Console.SetCursorPosition(oszlop,sor );
                Console.Write("*");
                oszlop++;
                sor++;
            }  
            Console.ReadLine();
            Console.Clear();
            sor = 0;
            oszlop = 79;
            for (int i = 0; i < 80; i++)
            {
                Console.SetCursorPosition(oszlop, sor);
                Console.Write("*");
                oszlop--;
                sor++;
            }
            Console.ReadLine();
        }
    }
}

2023.02.17. While ciklus - gyakorló feladat

  

While – gyakorló feladat

1       feladat:

       Kérd be a felhasználótól, hogy hány nap múlva lesz vége a tanévnek.

       Számolj visszafelé egyesével 1-ig, az aktuális értéket írd ki a képernyőre (élesben naponta egyet kellene kiírni).

2       feladat:

Monitorokat szállítasz ki a raktárból.

       A kezdőkészlet értékét kérd be (tehát hány db monitor van).

       A ciklus addig megy, amíg el nem fogy minden monitor.

       Minden cikluslépésben csökkents a készletet egy 1 és 10 közötti friss véletlenszámmal.

       Minden cikluslépésben írd ki, hogy hányat akar venni a vásárló, hány darab monitor van még, és a vásárlás után hány maradt. (A végén figyelj, hogy ne menj mínuszba.)

Máté megoldása:
using System;


namespace Orai20230217
{
    class Program
    {
        static void Main(string[] args)
        {
            Random rnd = new Random();
            //1       feladat:
            //−       Kérd be a felhasználótól, hogy hány nap múlva lesz vége a tanévnek.
            //−       Számolj visszafelé egyesével 1 - ig, az aktuális értéket írd ki a képernyőre(élesben naponta egyet kellene kiírni).
            Console.Write("Hány nap múlva ér véget a tanév?  ");
            int napok = Convert.ToInt32(Console.ReadLine());
            while (napok > 0)
            {
                Console.WriteLine($"Még {napok} nap maradt hátra a tanévből!");
                napok--;
            }
            Console.WriteLine();
            //2       feladat:
            //Monitorokat szállítasz ki a raktárból.
            //−       A kezdőkészlet értékét kérd be(tehát hány db monitor van).
            //−       A ciklus addig megy, amíg el nem fogy minden monitor.
            //−       Minden cikluslépésben csökkents a készletet egy 1 és 10 közötti friss véletlenszámmal.
            //−       Minden cikluslépésben írd ki, hogy hányat akar venni a vásárló, hány darab monitor van még, és a vásárlás után hány maradt. (A végén figyelj, hogy ne menj mínuszba.)
            Console.Write("Hány darab monitor van raktáron?  ");
            int monitorok = Convert.ToInt32(Console.ReadLine());
            int vétel = 0;
            while (monitorok > 0)
            {
                vétel = rnd.Next(1, 11);
                if (monitorok > vétel)
                {
                    Console.WriteLine($"Jelenleg {monitorok} darab monitor van raktáron, amiből a vevő {vétel} darabot vesz, így raktáron marad {monitorok - vétel} darab.");
                }
                else
                {
                    if (monitorok == vétel)
                    {
                        Console.WriteLine($"Jelenleg {monitorok} darab monitor van raktáron, a vevő {vétel} darabot vesz, és nem marad raktáron monitor.");
                    }
                    else
                    {
                        Console.WriteLine($"Jelenleg {monitorok} darab monitor van raktáron, a vevő {vétel} darabot akart venni, de mivel nincs elég, így a vevő csak {monitorok} darabot tud venni, és nem marad raktáron monitor.");
                    }
                }

                monitorok -= vétel;
            }
            Console.ReadLine();
        }
    }
}

Tamás megoldása alapján:
using System;
namespace kiiro
{
    class Program
    {
        static void Main(string[] args)
        {
           
            Console.Write("Hány nap múlva lesz vége a tanévnek: ");
            int tanevvege = Convert.ToInt32(Console.ReadLine());
           
            while (tanevvege >= 0)
            {
                Console.WriteLine(tanevvege);
                tanevvege--;
            }
            Console.ReadLine();

            Console.Write("Kérem a kezdőkészlet értékét: ");
            int kezdokeszlet = Convert.ToInt32(Console.ReadLine());

            Random rnd = new Random();
            int randomszam = 0;
           
            while (kezdokeszlet > 0)
            {
                randomszam = rnd.Next(1,11);
                Console.WriteLine($"Ennyi monitort szeretne: {randomszam}");
                Console.WriteLine($"Ennyi monitor van még: {kezdokeszlet}");
                kezdokeszlet -= randomszam;
                if (kezdokeszlet < 0)
                {
                    kezdokeszlet = kezdokeszlet * -1;
                    Console.WriteLine($"Elfogytak a monitorok szóval ennyi monitort nem kapott meg a vásárló: {kezdokeszlet}");
                    kezdokeszlet = 0;
                }
                else
                {
                    Console.WriteLine($"Ennyi maradt: {kezdokeszlet}");
                    Console.WriteLine();
                }
            }
            Console.ReadLine();
           
        }
    }

}





2023. február 15., szerda

2023.02.15. SQL - Szótár

 Befejeztük a Szótár adatbázist. Akinek még nincs kész, annak házi feladat befejezni. Következő óra elején ellenőrizzük.

Jövő héten a Hajó, Szótár adatbázisból röpi lesz.

Az otthon levők is pótoljanak lehetőség szerint.


Megoldás + további példák:

/*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 szolista.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(angol) 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;

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.

2024.04.25. Időjárás app

 Feladat: Időjárás app - OOP módszerekkel, haladóknak adatkötéssel Az alkalmazás célja, hogy a felhasználók hozzáadjanak és eltávolítsanak v...