Vezérlőpult
B9. Gyakorló feladatok · Változók és típusok

B blokk · Változók és típusok · 9. tananyag — gyakorló feladatgyűjtemény

Gyakorló feladatok: minden, amit a B blokkban tanultál

Új anyag ma nincs. Helyette 15 életszerű feladat, amelyben neked kell eldöntened, milyen típust, műveletet és formázást használsz — a feladatszöveg szándékosan nem árulja el. Pont úgy, mint az igazi programozásban.

1 tanóra + otthoni gyakorlás15 feladat⭐ – ⭐⭐⭐ szintek

Ezt gyakorlod

1Hogyan dolgozz a feladatokkal?

  1. Először tervezz, aztán gépelj. Milyen adataid vannak? Melyikhez milyen típus illik? Mi az, ami állandó a programban — annak const jár, beszédes névvel.
  2. Minden feladat megoldható az eddig tanultakkal — elágazás és ciklus nélkül, egyszerű, felülről lefelé futó programmal. Ha elakadsz, ne új eszközt keress: lapozd fel a blokok megfelelő fejezetét.
  3. A bevitelnél feltételezzük, hogy a felhasználó helyes értéket ír be — mehet bátran a Parse. (Hogy mit tegyen a program, ha mégsem? Ez lesz az első dolgunk a C blokkban.)
  4. A kiírás is a feladat része. Mondatszerű, helyesen fogalmazott, jól formázott kimenetet várunk — a program nemcsak számol, hanem kommunikál is.
  5. Feladatonként új projekt (pl. Gyakorlo01), és minden kész feladat után commit (A7) — így a gyakorlásod története is megmarad.
ℹ️ MI AZ A „MAGIC NUMBER”?

Magyarázat nélküli szám a kód közepén — pl. egy * 1.27, amiről két hét múlva senki sem tudja, mit keres ott. Helyette nevesített konstans (B1): a név elmondja a jelentést, és az érték egyetlen helyen módosítható. Több feladat kifejezetten kéri, hogy kerüld a "magic number"-öket — de igazából mindegyikben kerüld.

💡 SZÍNEZÉS MONDATON BELÜL

A B8-as Konzol osztály teljes sorokat színez. Ha egy mondat közepén kell színes érték, darabokban írd ki a sort: Write (mondat eleje) → szín be → Write (érték) → ResetColor → WriteLine (mondat vége). A mintafeladat megoldásában pontosan ezt látod.

2Kidolgozott mintafeladat

Így érdemes nekiállni egy feladatnak — a feladat, a gondolatmenet és egy lehetséges megoldás:

MINTA⭐⭐

Készíts programot, amelyben megfelelően megválasztott adattípusokban tárolod két termék nettó árát, készleten lévő darabszámát és megnevezését. Írasd ki a konzolra, mennyibe kerülne 1-1 db egymástól függetlenül bruttó áron, ha az ÁFA értéke 27%. A kiírások a konzolon legyenek mondatszerűek, helyesen megfogalmazva. Az eredmények (összegek) legyenek elszínezve a mondatokban. Kerüld a „mágikus számok” használatát!

A gondolatmenet

  1. Milyen adatok, milyen típusok? Megnevezés → string; darabszám → int (egész darab); ár → decimal — pénzről van szó (B3).
  2. Mi állandó? Az ÁFA kulcsa: const decimal AfaKulcs = 0.27m; — így a 0,27 nem magic number, és egy helyen átírható.
  3. Hogyan számolunk? brutto = netto * (1 + AfaKulcs) — az 1 a nettó ár 100%-a, a képlet egy lépésben ad bruttót.
  4. Hogyan színezünk mondaton belül? Darabokban írunk (lásd az 1. szakasz tippjét).
  5. Formázás: pénz egész forintra kerekítve, ezres tagolással → :N0 (B5).

Egy lehetséges megoldás

const decimal AfaKulcs = 0.27m;

string elsoNev = "Vezeték nélküli egér";
decimal elsoNetto = 12990m;
int elsoKeszlet = 34;

string masodikNev = "Mechanikus billentyűzet";
decimal masodikNetto = 38490m;
int masodikKeszlet = 12;

decimal elsoBrutto = elsoNetto * (1 + AfaKulcs);
decimal masodikBrutto = masodikNetto * (1 + AfaKulcs);

Console.Write($"A(z) {elsoNev} ({elsoKeszlet} db van készleten) bruttó ára ");
Console.ForegroundColor = ConsoleColor.Green;
Console.Write($"{elsoBrutto:N0} Ft");
Console.ResetColor();
Console.WriteLine(" lenne darabonként.");

Console.Write($"A(z) {masodikNev} ({masodikKeszlet} db van készleten) bruttó ára ");
Console.ForegroundColor = ConsoleColor.Green;
Console.Write($"{masodikBrutto:N0} Ft");
Console.ResetColor();
Console.WriteLine(" lenne darabonként.");

A kimenet (a zöld részek a konzolon tényleg zöldek):

A(z) Vezeték nélküli egér (34 db van készleten) bruttó ára 16 497 Ft lenne darabonként.
A(z) Mechanikus billentyűzet (12 db van készleten) bruttó ára 48 882 Ft lenne darabonként.
⚠️ A TE MEGOLDÁSOD LEHET MÁS

Egy feladatnak sok helyes megoldása van. A kérdés mindig ugyanaz: jók-e a típusok, helyes-e az eredmény, szép-e a kimenet — nem az, hogy betűre egyezik-e bárkiével.

3Alapfeladatok ⭐

Bemelegítés

Néhány változó, egy-két számítás, gondos kiírás — de a típusokon és a műveleteken már itt is gondolkodni kell.

B9.1⭐Telt ház

Egy koncertterem 24 sorból áll, soronként 18 szék van, egy jegy 8 500 Ft-ba kerül. Tárold ezeket az adatokat megfelelően megválasztott típusú változókban, majd írasd ki mondatszerűen, hány néző fér be a terembe, és mekkora bevétel származik egy telt házas koncertből. Az összeg ezres tagolással jelenjen meg, és legyen kiemelve színnel.

B9.2⭐Pizzaest

Hat barát pizzát rendel, a számla végösszege 14 380 Ft. Írj programot, amely kiszámolja, mennyit fizet egy fő, ha egyenlően osztoznak — de csak egész forintot tudnak egymásnak adni! Írasd ki mondatszerűen, mennyi jut egy főre, és hány forint marad ki az osztozkodásból (azt valakinek állnia kell).

B9.3⭐Bringatúra

Kérd be a felhasználótól, hány kilométert tekert a hétvégi túrán, és hány percig tartott az út. Számold ki és írasd ki mondatszerűen az átlagsebességét km/h-ban, egy tizedesjegyre kerekítve, színnel kiemelve.

B9.4⭐Hány napot éltél?

Kérd be a felhasználó nevét és születési évét. Írasd ki mondatszerűen, hány éves lesz idén, és ez körülbelül hány napot jelent — egy évet 365 nappal számolj. A név és a számok legyenek eltérő színnel kiemelve a mondatban. A program a végén várjon egy billentyűleütésre, mielőtt bezárul. Az aktuális évszámot ne írd bele többször a kódba!

B9.5⭐Nyaralási pénzváltás

Nyaralás előtt eurót váltasz. Kérd be, hány forintot szánsz a váltásra, és számold ki, hány eurót kapsz érte, ha az árfolyam 1 € = 395,50 Ft. Az eredmény két tizedessel jelenjen meg, mondatszerű, színes kiírással. Az árfolyamot úgy tárold, hogy a program egyetlen pontján kelljen átírni, ha változik.

4Haladó feladatok ⭐⭐

Itt már el lehet csúszni

Mindegyikben van legalább egy pont, ahol a gondolkodás nélküli megoldás rossz eredményt ad. Ellenőrizd az eredményeidet fejben vagy számológéppel is!

B9.6⭐⭐Amerikai recept

Egy amerikai sütirecept szerint a sütőt 350 °F-ra kell előmelegíteni, és a tésztát 75 °F-os konyhában kell pihentetni. Írj programot, amely mindkét értéket átszámolja Celsius-fokra a C = (F − 32) · 5⁄9 képlettel, és mondatszerűen, egy tizedesjegyre kerekítve kiírja.

B9.7⭐⭐Fekete péntek

Egy webshopban a 269 990 Ft-os robotporszívóra 35% kedvezmény van. Írasd ki mondatszerűen az eredeti árat, a kedvezmény mértékét százalék formátumban, a megtakarított összeget (zölddel!) és az akciós árat (kiemelt színnel). Minden összeg ezres tagolással, egész forintra kerekítve jelenjen meg. Kerüld a „magic number”-öket!

B9.8⭐⭐Vetítés vége

A mozifilm 154 perc hosszú, előtte 25 perc reklám és előzetes megy, a vetítés 18:00-kor kezdődik. Írj programot, amely kiszámolja és mondatszerűen kiírja, hány óra hány perckor ér véget a vetítés. A kezdés, a filmhossz és a reklámidő ne legyen „magic number”!

B9.9⭐⭐Lekötött betét

500 000 Ft-ot lekötsz évi 6,5%-os kamatra. Írasd ki mondatszerűen, mennyi pénzed lesz egy év múlva, és mennyi két év múlva, ha a kamatot mindig az aktuális összegre kapod. Az összegek ezres tagolással, színnel kiemelve jelenjenek meg, a kamatláb százalék formátumban. Se a kamatláb, se az induló összeg ne legyen „magic number”!

B9.10⭐⭐Mennyi másodperc?

Írj programot, amely kiszámolja és ezres tagolással kiírja, hány másodperc van egy napban, egy (365 napos) évben és egy évszázadban. Gondold végig előre, melyik eredmény melyik típusba fér bele — majd a kódban mutasd is meg, mi történne, ha rosszul választanál: a hibás eredmény piros, a helyesek zöld színnel jelenjenek meg.

B9.11⭐⭐Hány fotó fér rá?

Egy 64 GB-os pendrive-ra fotókat mentesz, egy fotó átlagosan 7 MB. Számold ki, hány MB a pendrive teljes kapacitása (1 GB = 1024 MB), legfeljebb hány fotó fér rá, és hány MB marad kihasználatlanul. A kiírás mondatszerű legyen, a darabszám színnel kiemelve, ezres tagolással.

B9.12⭐⭐Blokk a pénztárból

Egy kis bolt pénztárprogramjának nyugtáját készíted el. Tárold három termék nevét, egységárát és vásárolt mennyiségét megfelelő típusokban. Írasd ki a blokkot táblázatos formában: a terméknevek balra igazítva, az árak és részösszegek jobbra igazítva, két tizedessel jelenjenek meg — az oszlopokat igazítási formátummal alakítsd ki, ne kézzel beszúrt szóközökkel! A végén a fizetendő végösszeg színnel kiemelve szerepeljen.

5Kihívások ⭐⭐⭐

A blokk legszebb feladatai

Több részterület tudását kell egyszerre mozgósítani. Ha ezek mennek, a B blokk anyagát megtanultad.

B9.13⭐⭐⭐Névjegykártya

Kérd be a felhasználó vezetéknevét, keresztnevét és e-mail-címét. Készíts a képernyőre egy keretezett, színes „névjegykártyát”, amelyen szerepel a teljes név, a névből képzett monogram (a nevek első karakteréből!), az e-mail-cím, valamint a cég hálózati mappája: \\SZERVER\ugyfelek\nevjegyek. Az elérési utat kétféleképpen is írd ki: egyszer escape-szekvenciákkal, egyszer verbatim stringgel — a kettőnek ugyanazt kell mutatnia.

B9.14⭐⭐⭐Titkosírás

Két ügynök úgy üzen egymásnak, hogy a szó minden betűje helyett az ábécében 3-mal későbbi betűt írnak le. Kérd be a felhasználótól egy 3 betűs szót, és írasd ki a titkosított változatát, majd mellé „ellenőrzésként” a visszafejtését is. (Az egyszerűség kedvéért ékezet nélküli kisbetűkkel dolgozunk, és nem foglalkozunk az ábécé végével.)

B9.15⭐⭐⭐Tankolás előtt

Nyaralni indultok autóval. Kérd be a felhasználótól az út hosszát kilométerben, az autó átlagfogyasztását (liter/100 km) és az üzemanyag literenkénti árát. Számold ki és írasd ki mondatszerűen, hány liter üzemanyag fogy el az úton (egy tizedessel), és mennyibe kerül az út oda-vissza (egész forintra kerekítve, ezres tagolással, színnel kiemelve). Ügyelj rá, hogy magyar formátumban, tizedesvesszővel lehessen megadni az adatokat!

6Zárás — mielőtt továbblépsz

  1. Minden megoldott feladatnál nézz rá még egyszer a kódra: van-e benne magic number? Jók-e a változónevek? Szép-e a kimenet?
  2. Az eredményeket ellenőrizd fejben vagy számológéppel — a program attól, hogy lefut, még számolhat rosszul.
  3. Minden kész feladat után commit — beszédes üzenettel (pl. B9.7 Fekete pentek kesz).
  4. Ha egy feladat nem ment, az nem kudarc, hanem térkép: pontosan megmutatja, melyik fejezetet érdemes újra átnézned a témazáró előtt.
  5. A C blokkban a programjaid dönteni is megtanulnak — és ezek a feladatok ott új életre kelnek: a pénzváltó figyelmeztet majd, ha nincs elég pénzed, a titkosírás az ábécé végét is kezeli.