Gyakorló: Tömbök
Ezen az oldalon tömbökkel kapcsolatos gyakorlófeladatokat találsz. Ezen feladatok egy részéhez a struktúrák ismerete is szükséges, azonban az első néhány feladatot enélkül is meg tudod oldani.
A tavaszi C# alapozó bootcampünk tananyagait továbbra is megvásárolhatod! Bár az élő előadásokon már túl vagyunk, az összes előadás anyaga továbbra is visszanézhető!
Irány a bootcamp1. Feladat: Az alábbi részfeladatok megoldásához az alábbi mintaadatokat használd:
int[] matek = {4,5,4,4,1,3,2,4,4,5,4,2,3,4};
int[] szuletes = {2004,2003,2001,2007,1998,2003,2005};
string[] gyumolcsok = {"alma","narancs","szilva","szőlő","szeder","körte","áfonya"};
1a. Feladat: Írassuk ki az összes gyümölcs nevét, az alábbi mintának megfelelő formátumban:
- Az 1. gyümölcs: alma - A 2. gyümölcs: narancs - A 3. gyümölcs: szilva ...
1b. Feladat: Hány ötöst kaptunk matematikából? A megoldáshoz a matek tömböt használd!
1c. Feladat: Hányas volt a legjobb jegyünk matematikából?
1d. Feladat: Hány éves a legkorábban született diák?
1e. Feladat: Hányan születtek 2004 előtt?
1f. Feladat: Írd ki a 3-asnál rosszabb jegyeket!
1g. Feladat: Van a gyümölcsök között szőlő?
1h. Feladat: Mindenki 1999 után született?
1i. Feladat: Hányadik gyümölcs a szeder?
1j. Feladat: Mennyi az átlagunk matematikából?
2. Feladat: A fájlban egy könyvtár 10 db könyvének adatai találhatóak. A megoldáshoz felhasználhatod, hogy tudjuk, hogy 10 darab könyv van. A könyvek adatait pontosvesszővel elválasztva találod, az alábbi adatok találhatók meg a fájlban:
- Szerző (szöveg)
- Cím (szöveg)
- Kiadás éve (egész szám)
- Polc sorszáma (egész szám)
Olvasd be és tárold le az adatokat egy struktúrákból álló tömbben, majd oldd meg az alábbi feladatokat!
2a. Feladat: Melyik könyvet adták ki a legrégebben? Írd ki a kötet szerzőjét, címét, és a kiadás évét!
2b. Feladat: Hány könyv található a 3-as polcon?
2c. Feladat: Van olyan kötet, amit 2001 és 2005 között adtak ki?
2d. Feladat: Hány olyan kötet van, amelynek a kiadási éve páratlan?
2e. Feladat: Kérd be egy szerző nevét a felhasználótól, majd irasd ki az adott szerző könyvének a címét! Ha nem található könyv a szerzőtől,írd ki a "nincs tőle könyv" feliratot!
2f. Feladat: Írd ki hogy melyik könyvet hány éve adták ki! Jelenjen meg minden könyv címe, és mellette hogy hány éve került kiadásra! (idén 2023 van)
2g. Feladat: Ki írta a Never Enough című kötetet? Írd ki a könyv szerzőjét!
2h. Feladat: Kérj be egy évszámot a felhasználótól, és írd ki az abban az évben kiadott könyvek szerzőjét, címét, és hogy melyik polcon találhatóak!
2i. Feladat: Barátunk, Norbert alacsony, nem éri fel a 3-as polcot. Hány könyv közül válogathat így? (azaz hány könyv van az 1-es és 2-es polcon összesen)
3. Feladat: A fájlban egy utazási iroda egy utazására jelentkező 15 fő adatai találhatók. A megoldáshoz felhasználhatod, hogy tudjuk, hogy 15 résztvevő van az utazáson. A vendégek adatait pontosvesszővel elválasztva találod, az alábbi adatok találhatók meg a fájlban:
- Név: a személy teljes neve (szöveg)
- Magasság: testmagasság cm-ben (egész)
- Születés: csak év (egész)
- Nyelvvizsga: van-e nyelvvizsgája az illetőnek (van/nincs)
- Szobaszám: a szoba sorszáma, ahol a vendég lakni fog (egész)
- Étkezés: kér-e étkezést az adott személy (igen/nem)
Olvasd be és tárold le az adatokat egy struktúrákból álló tömbben, majd oldd meg az alábbi feladatokat!
3a. Feladat: Az utazási iroda a foglalások rögzítésekor 2 embernek nem tudta biztosan a születési dátumát, így hozzájuk egy
0-t rögzítettek az input fájlba. Megtudtuk, hogy ezek az emberek 2002-ben születtek! Javítsd a beolvasott adatok között
ezt a két születési évet, hogy a program a többi feladatnál már helyes évszámmal tudjon majd dolgozni! (az input fájlt ne módosítsd!)
3b. Feladat: Azok számára, akik kértek étkezést, az út ára 230 000 Ft, míg akik nem kértek étkezést, azok számára 195 000 Ft. Akiknek van nyelvvizsgája, azok egy promóció keretében 15 000 Ft kedvezményt kapnak az út árából. Írasd ki, hogy kinek mennyit kellett fizetni az utazásért, alatta a végösszeggel, az alábbi formátumban (a mintán az adatok természetesen nem jók).
FIZETENDŐ DÍJAK: ======================================== 170000 Ft Fekete Ádám 185000 Ft Kovács Géza 210000 Ft Nagy Jázmin ======================================== ÖSSZESEN: 565000 Ft
3c. Feladat: Kérd be egy szoba azonosítóját a felhasználótól, és írd ki, hogy az adott szobában hány fő került elszállásolásra, és kik azok!
3d. Feladat: A nyelvvizsgával rendelkezők hány százaléka kért étkezést?
3e. Feladat: Hány éves idén a legfiatalabb olyan utazó, akinek van nyelvvizsgája?
3f. Feladat: Az utazás része, hogy a vendégek áthaladnak egy olyan alagúton, amelynek a belmagassága 168 cm. A vendégek közül azok, akik páros sorszámú szobában vannak, pénteken, a páratlan sorszámú szobákban lakók pedig szombaton vesznek részt ezen a programon. A pénteki és a szombati csoportból (külön-külön) hány embernek kell mindenképp lehajolnia az alagútban? A választ az alábbi minta szerint jelenítsd meg (a mintán az eredmény természetesen nem jó):
PÉNTEK: 20 fő SZOMBAT: 20 fő
3g. Feladat: Kérj be egy nevet a felhasználótól, és írd ki, hogy az adott ember kikkel volt egy szobában!
3h. Feladat: Azokban a szobákban, ahol legalább 2 ember lakik (tehát a 3-as és a 6-os kivételével az összes többi szoba), egy ember számára minden esetben emeleti ágy áll rendelkezésre. Az emeleti ágyat minden ilyen szobában a legalacsonyabb ember kapja . Melyik szobában kinek kell az emeleti ágyon aludnia?
4. Feladat: A Konrad Grebel Általános Iskola diákjai számára a rendszergazda lehetőséget biztosít arra, hogy minden diák egy saját weboldalon bemutatkozhasson. A saját bemutatkozó oldalt a rendszergazdánál lehet kérvényezni, aki a beérkezett kéréseket egy tabulátorral tagolt szövegfájlban (diakoldal.txt) tárolja, amely az alábbi adatokat tartalmazza:
- Név: az igénylő neve (szöveg)
- Osztály: az igénylő osztálya - amennyiben az igénylő tanár, úgy a tanar szó fog itt szerepelni (szöveg)
- Fájlnév: az igényelt oldalhoz tartozó fájl neve
A fájl 10 sort tartalmaz. Ezt az információt felhasználhatod a feladataid megoldása során. Olvasd be az adatokat egy struktúrákból álló tömbbe, és oldd meg a feladatokat!
4a. Feladat: Hozd létre az igénylők oldalait a rendelkezésre álló oldalsablon (do-sablon.html) alapján! A sablonból készíts egy
példányt minden igénylő számára, amelynek kódjában a {NEV} szövegrészletet az igénylő nevére, az {OSZTALY}
szövegrészletet pedig az igénylő osztályára cserélj le! A fájlok neve legyen a fájlnév oszlopban meghatározott név, .html
kiterjesztéssel.
4b. Feladat: Az iskola weboldalán szeretnék egy listában megjeleníteni a diákok és tanárok weboldalait! Generáld ki az
ehhez szükséges HTML kódot az alábbi sablon alapján, és mentsd el a sablon.txt fájlba!
<h2>Tanári oldalak</h2> <ul> <li><a href="oldalneve.html">Tanár Neve</a></li> <li><a href="oldalneve.html">Tanár Neve</a></li> </ul> <h2>Diák oldalak</h2> <ul> <li><a href="oldalneve.html">Diák Neve</a></li> <li><a href="oldalneve.html">Diák Neve</a></li> </ul>
4c. Feladat: A saját weboldalt igénylő diákok nevét, osztályát, és a weboldaluk fájljának nevét mentsd le egy pontosvesszővel
tagolt fájlba, ellenorizni.csv néven! Ügyelj rá, hogy ebben a fájlban a tanárok oldalai ne legyenek listázva!!!
5. Feladat: Néhány napon keresztül minden nap megmértük, hogy hány mm csapadék hullott a kertünkben, ezen mérések adatait tartalmazza az alábbi tömb.
int[] csapadek = {0,0,0,8,3,0,0,5,0,0,1,0,3,14,30,12,0,0,3,4,7,0,3,2,9,0,2,0,0};
5a. Feladat: Hány olyan nap volt, amikor nem esett csapadék? (azaz 0 mm)
5b. Feladat: Mennyi volt a legnagyobb csapadékmennyiség, ami egy nap alatt leesett?
5c. Feladat: A napok hány %-án volt csapadék?
5d. Feladat: Volt olyan nap, amikor 25 mm-nél több csapadék esett?
5e. Feladat: Mennyi csapadék esett átlagosan?
5f. Feladat: Hány olyan nap volt, amikor esett csapadék, de legfeljebb 5 mm?
5g. Feladat: Átlagosan hány mm csapadék esett az első 10 napban?
5h. Feladat: Összesen hány mm csapadék hullott ezeken a napokon?
5i. Feladat: Volt olyan alkalom, amikor egymás után két napon is 10 mm fölötti csaadékmennyiség volt?
5j. Feladat: Melyik volt az utolsó olyan nap, amikor volt csapadék?
5k. Feladat: Többször is előfordult, hogy egymás utáni napokon volt csapadék. Hány nap volt a leghosszabb olyan időszak, amikor minden nap esett az eső?
6. Feladat: Egy programból kiexportáltuk a forint-svédkorona árfolyam alakulását egy 2 hetes időszakra, így az alábbi adatsort kaptuk:
35,13 35,03 35,24 35,24 35,24 35,15 34,94 35,12 35,31 35,27 35,27 35,25 35,26 35,68
Az adatsor 14 darab, szóközzel elválasztott tizedestörtet tartalmaz. Minden szám azt mutatja, hogy az adott napon 1 svéd korona hány magyar forintnak felelt meg.
Másoljuk be az adatsort a programunkba egy string változóba, dolgozzuk fel (azaz vágjuk szét,
majd a számokból alakítsunk ki egy double adattípusú tömböt), majd oldjuk meg vele kapcsolatban az alábbi feladatokat:
6a. Feladat: Határozzuk meg az adathalmaz néhány fontosabb statisztikai mutatóját:
- Minimum: azaz a legkisebb elem
- Maximum: azaz a legnagyobb elem
- Átlag
- Terjedelem: azaz a legnagyobb és a legkisebb elem közötti különbség
6b. Feladat: Kérjük be a felhasználótól egy napnak a sorszámát (1-14), és írjuk ki, hogy 1 korona aznap hány forintot ért.
6c. Feladat: Kérjünk be egy számot a felhasználótól, és írjuk ki, hogy a legelső napon hány Ft-ot kellett volna fizetni ennyi korona vásárlásáért! (feltételezzük, hogy az eladási és vásárlási árfolyam azonos, és egyéb tranzakciós díj nem terheli a vásárlást)
6d. Feladat: Volt olyan nap, amikor az árfolyam 35 alá esett? Ha igen, írasd ki a napok sorszámát. Ha nem, írasd ki a "Nem volt ilyen nap" feliratot.
6e. Feladat: Ha minden nap vásároltunk 10 koronát az aznapi aktuális árfolyamon, akkor összesen hány forintot kellett fizetnünk a két hét során?