2023. február 6., hétfő

2023.02.07./1. Foreach –összegzés tétele – gyakorló feladat (helyettesítés)

 Foreach –összegzés tétele – gyakorló feladat

//Modellezzük a januári napi átlaghőmérséklet számítását.

            //-     Az éjszakai hőmérséklet modellezésére tölts föl egy 31 elemű tömböt véletlen egész számokkal, melynek értékei -28 és -5 (fok) között vannak.

            //-     A nappali hőmérséklet modellezésére tölts föl egy másik 31 elemű tömböt véletlen egész számokkal, melynek értékei -15 és 15 (fok) között vannak.

            //- Írd ki a tömböket foreach ciklussal.

            //-     Add meg a januári éjszakai középhőmérsékletet.

            //-     Add meg a januári nappali középhőmérsékletet.

            //Add meg a januári napi középhőmérsékletet.

2023.02.07. /0. Rögzített lépésszámú ciklusok: for, foreach - mintafeladatsor megoldás - (helyettesítés)

Versenyre viszek ma 3 diákot az osztályomból, úgyhogy ma önállóan kell dolgoznotok.

Először ellenőrizzétek a házi feladatot. 

További feladat a következő bejegyzésben.


A házi feladat egy lehetséges megoldása

using System;
namespace rogzitettLepesszamuCiklusok
{
    class Program
    {
        static void Main(string[] args)
        {
            //1.Feladat:
            //Töltsünk fel véletlenszámból képzett sorozattal
            //egy 10 elemű tömböt a következő módon:
            //Egy valódi kicsi véletlenszámot szorozzunk meg 2 négyzetgyökével,
            //ez legyen az első szám.
            //A keletkezett számot minden ciklusmagban növeljük meg
            //hárommal, ezzel töltsük fel a többi tömbelemet.
            //Írjunk ki minden tömbelemet ugyanabban a ciklusban.

            double[] szamok = new double[10];
            Random rnd = new Random();

            double a = rnd.NextDouble() * Math.Sqrt(2);
            Console.WriteLine("Tört számok tömbje:");
            for (int i = 0; i < szamok.Length; i++)
            {
                szamok[i] = a;
                Console.WriteLine(szamok[i]);
                a = a + 3;
            }
            Console.ReadLine();

            //2. feladat:
            //Hozz létre egy új 100 elemű tömböt egész számoknak.
            //Ebbe az eredeti tömb számjegyeinek egész részei
            //fognak kerülni.
            int[] egeszSzamok = new int[10];
            Console.WriteLine("Egésszé alakított számok tömbje:");
            for (int i = 0; i < egeszSzamok.Length; i++)
            {
                //egeszSzamok[0] = szamok[0]; ez nem működik
                egeszSzamok[i] = (int)szamok[i];
                //típuskényszerítés: egész számmá alakítjuk a törtet,
                //közben elveszik a tizedespont utáni rész,
                //most éppen ez a cél
                Console.WriteLine($"Az új tömb {i + 1}. eleme: {egeszSzamok[i]}");
            }
            Console.ReadLine();

            //3. feladat:
            //Írjuk ki a tömb tartalmát a foreach ciklussal!
            //x: az adott tömbelem, mindig az aktuális
            //a típusát meg kell adni, egyezzen a tömbelemek típusával - a var kulcsszó bármilyen típusnak megfelel
            //in kulcsszó után kell megadni a tömb nevét
            //Minden tömbelemet ki tudunk olvasni,
            //de megváltoztatni nem tudjuk.        
            //foreach (var item in collection)
            //{

            //}
            Console.WriteLine("A tömb tartalma foreach ciklussal:");
            foreach (int x in egeszSzamok)
            {
                Console.WriteLine(x);
            }
            Console.ReadLine();

            //4. feladat:
            //Írjuk ki a tömb tartalmát visszafelé!
            //(Utolsó elemtől az elsőig, egyesével visszafelé lépkedve.)
            Console.WriteLine("A tömb tartalma visszafelé:");
            for (int i = egeszSzamok.Length - 1; i >= 0; i--)
            {
                Console.WriteLine($"Az új tömb {i + 1}. eleme: {egeszSzamok[i]}");
            }
            Console.ReadLine();
            //5. feladat:
            //Összegzés tétele: határozd meg a tömbelemek összegét!
            int osszeg = 0;

            for (int i = 0; i < egeszSzamok.Length; i++)
            {
                osszeg = osszeg + egeszSzamok[i]; //osszeg += egeszSzamok[i];
            }
            Console.WriteLine($"A tömbelemek összege: {osszeg}");
            Console.ReadLine();

            osszeg = 0;
            foreach (int x in egeszSzamok)
            {
                osszeg += x;
            }
            Console.WriteLine($"A tömbelemek összege foreach ciklussal: {osszeg}");
            Console.ReadLine();
            //6. feladat:
            //Összegzés tétele:határozd meg a páros tömbelemek összegét!
            int parosOsszeg = 0;
            for (int i = 0; i < egeszSzamok.Length; i++)
            {
                if (egeszSzamok[i] % 2 == 0)
                    parosOsszeg = parosOsszeg + egeszSzamok[i]; //parosOsszeg += egeszSzamok[i];
            }
            Console.WriteLine($"A páros elemek összege: {parosOsszeg}");
            Console.ReadLine();

            parosOsszeg = 0;
            foreach (int x in egeszSzamok)
            {
                if (x % 2 == 0)
                    parosOsszeg += x;
            }
            Console.WriteLine($"A páros elemek összege foreach ciklussal: {parosOsszeg}");
            Console.ReadLine();
            //7. feladat:
            //Összegzés tétele:határozd meg a páratlan tömbelemek összegét!
            int paratlanOsszeg = 0;
            for (int i = 0; i < egeszSzamok.Length; i++)
            {
                if (egeszSzamok[i] % 2 != 0)
                    paratlanOsszeg = paratlanOsszeg + egeszSzamok[i]; //paratlanOsszeg += egeszSzamok[i];
            }
            Console.WriteLine($"A páratlan elemek összege: {paratlanOsszeg}");
            Console.ReadLine();

            paratlanOsszeg = 0;
            foreach (int x in egeszSzamok)
            {
                if (x % 2 != 0)
                    paratlanOsszeg += x;
            }
            Console.WriteLine($"A páratlan elemek összege foreach ciklussal: {paratlanOsszeg}");
            Console.ReadLine();

            //8. feladat:
            //Összegzés tétele:határozd meg a 50-nel osztható tömbelemek szorzatát!
            //Kikötés: a nulla értékű tömbelemeket ne vegyük figyelembe.
            int szorzat = 1;
            for (int i = 0; i < egeszSzamok.Length; i++)
            {
                if (egeszSzamok[i] != 0 && egeszSzamok[i] % 50 == 0)
                {
                    szorzat = szorzat * egeszSzamok[i]; //szorzat *= egeszSzamok[i];
                }
            }
            if (szorzat == 1)
            {
                Console.WriteLine("Nincs 50-nel osztható elem (a nullákat nem vizsgáltuk).");
            }
            else
            {
                Console.WriteLine($"Az 50-nel osztható elemek szorzata: {szorzat}");
            }
            //vagy:
            Console.WriteLine("Foreach ciklussal:");
            szorzat = 1;
            foreach (int x in egeszSzamok)
            {
                if (x != 0 && x % 50 == 0)
                {
                    szorzat *= x;
                }
            }
            if (szorzat == 1)
            {
                Console.WriteLine("Nincs 50-nel osztható elem (a nullákat nem vizsgáltuk).");
            }
            else
            {
                Console.WriteLine($"Az 50-nel osztható elemek szorzata: {szorzat}");
            }

            Console.ReadLine();

            //9. feladat:
            //Írjunk ki 50 egész számot a képernyőre 100-zal kezdődően kettesével!
            //100, 102, 104, ... 198 - a fölső határban tévedhetsz, hagyd a számolást a programra
            Console.WriteLine("Ajánlott módszer: 50 egész szám 100 - zal kezdődően kettesével");
            int szam = 100;
            for (int i = 0; i < 50; i++)
            {
                Console.WriteLine($"{i + 1}. {szam}");
                szam = szam + 2; //szam += 2;
            }
            Console.ReadLine();

            Console.WriteLine("NEM ajánlott módszerrel: 50 szám 100 - zal kezdődően kettesével");
            szam = 0;
            for (int i = 100; i < 200; i += 2) // i = i + 2
            // Itt a megállási feltételt neked kell kiszámolni, könnyen tévedhetsz.
            //Nem "tiszta" a kód, nem átlátható, külön ki kell számolni, hányszor is fut a ciklus.
            //A for ciklust nem illik így használni,
            //ha pedig ki kell írni egy sorszámot, úgyis be kell vezetned egy plusz változót.
            {
                Console.WriteLine($"{szam + 1}. {i}");
                szam++;
            }
            Console.ReadLine();

            //10. feladat:
            //Írjunk ki 50 egymást követő egész számot 1000-től kezdődően visszafelé!
            Console.WriteLine("50 egymást követő egész szám 1000-től kezdődően visszafelé");
            szam = 1000;
            for (int i = 0; i < 50; i++)
            {
                Console.WriteLine($"{i + 1}. {szam}");
                szam--;
            }
            Console.ReadLine();

            //11. feladat:
            //Írjunk ki a képernyőre sorfolytonosan (szóközzel elválasztva)
            //10 db egész számot,amelyek közül az első az 1, és minden
            //rákövetkező a duplája.
            Console.WriteLine("10 db egész szám, amelyek közül az első az 1, és minden rákövetkező a duplája");
            int b = 1;
            for (int i = 0; i < 10; i++)
            {
                Console.Write("{0} ", b);
                b = b * 2; // b *= 2;
            }
            Console.WriteLine();
            Console.ReadLine();

            //12. feladat:
            //Írjunk ki a képernyőre egy 10 elemű sorozatot,
            //melynek első tagja -10000, minden következő tag
            //az előző -0.5-szerese.
            Console.WriteLine("Egy 10 elemű sorozat, melynek első tagja -10000, minden következő tag az előző -0.5-szerese.");
            double c = -10000;
            for (int i = 0; i < 10; i++)
            {
                Console.WriteLine(c);
                c = c * -0.5; //c*=-0.5
            }
            Console.ReadLine();
        }
    }
}

2023.02.07. SQL feladatmegoldás (helyettesítés)

Ma egy új adatbázist kell elkészítenetek. A forrásokat a Feladatok meghajtón a 11.c mappájában megtaláljátok, de innen kimásolva is elindulhattok. Az adatbázis létrehozása után (az adatbázis legyen kiválasztva)  egy SQL ablakban futtassátok le a tábla létrehozásához és az adatfeltöltéshez tartozó kódokat, akár egyszerre, és már mehet is a feladatmegoldás.

Termék adatbázis:


CREATE TABLE termékcsoportok(

  csoport_azonosító varchar(3),
  csoportnév varchar(20) NOT NULL,
  CONSTRAINT pk_csoport PRIMARY KEY (csoport_azonosító));

CREATE TABLE termékek(
  termékkód int,
  terméknév varchar(30) NOT NULL,
  termék_ár int  NOT NULL,
  csoport_azonosító varchar(3) NOT NULL,
  CONSTRAINT pk_termék PRIMARY KEY (termékkód),
  CONSTRAINT fk_termék_termékcsoportok FOREIGN KEY (csoport_azonosító) REFERENCES termékcsoportok(csoport_azonosító));


INSERT INTO termékcsoportok(csoport_azonosító, csoportnév) VALUES
('01', 'vezérlőkártyák'),
('02', 'monitorok'),
('03', 'házak'),
('04', 'háttértárak'),
('05', 'egerek'),
('06', 'billentyűzetek');

INSERT INTO termékek(termékkód, terméknév, termék_ár, csoport_azonosító) VALUES
(1001,'Samsung monitor', 45000, '02'),
(1800,'hálókártya',3900 , '01'),
(1900,'hangkártya',5800 , '01'),
(1952,'monitorvezérlő kártya', 6900, '01'),
(2555,'winchester', 35000, '04'),
(3210,'SSD',49000 , '04'),
(3985,'lézeres egér', 9800, '05'),
(4526,'midi számítógép ház', 15000, '03'),
(5006,'vezeték nélküli billentyűzet', 9700, '06');


---------------------------------
Hozatok létre Jegyzettömbben egy megoldasok.sql-t,
másoljátok bele ezeket a feladatokat,
és oldjátok meg őket legjobb tudásotok szerint.

1.  Listázd ki a képernyőre a termék nevét, és árát
a termék neve szerinti növekvő sorrendben.
2.  Listázd ki a képernyőre a termék nevét és a csoport nevét,
a második oszlop neve legyen: csoport.
3.  Listázd ki a képernyőre az első kettő termék csoportnevét
és a termék nevét a csoport neve szerinti csökkenő sorrendben.
4.  Listázd ki a képernyőre azoknak a termékeknek a nevét,
amelyekben szerepel a "kártya".
5.  Írd ki a képernyőre, hogy hány darab termék tartozik a 04-es csoportba
(egyenlő a 04-gyel).
6.  Írd ki a képernyőre a termékek átlag árát.
7.  Listázd ki a képernyőre termékcsoportonként (a termék csoportkódja jelenjen meg)
a maximális árat.
8.  Listázd ki a képernyőre termékcsoportonként (a termék csoportneve jelenjen meg)
a maximális árat.
9. Listázd ki a képernyőre termékcsoportonként a maximális árat
csak  az első három sornak.
10. Listázd ki a képernyőre termékcsoportonként a maximális árat
csak az utolsó 3 sornak.

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