Gyakorló: Listák
Ezen az oldalon listákkal kapcsolatos gyakorlófeladatokat találsz. Az első néhány feladat megoldásához elegendő a listák alapjainak ismerete, a további feladatokhoz azonban komplexebb szerkezetek (pl. egymásba ágyazott lista, szótár, vagy struktúra) használata is szükséges lehet.
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:
matek = [4,5,4,4,1,3,2,4,4,5,4,2,3,4]
szuletes = [2004,2003,2001,2007,1998,2003,2005]
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 listá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: 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 lista.
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]
2a. Feladat: Hány olyan nap volt, amikor nem esett csapadék? (azaz 0 mm)
2b. Feladat: Mennyi volt a legnagyobb csapadékmennyiség, ami egy nap alatt leesett?
2c. Feladat: A napok hány %-án volt csapadék?
2d. Feladat: Volt olyan nap, amikor 25 mm-nél több csapadék esett?
2e. Feladat: Mennyi csapadék esett átlagosan?
2f. Feladat: Hány olyan nap volt, amikor esett csapadék, de legfeljebb 5 mm?
2g. Feladat: Átlagosan hány mm csapadék esett az első 10 napban?
2h. Feladat: Összesen hány mm csapadék hullott ezeken a napokon?
2i. Feladat: Volt olyan alkalom, amikor egymás után két napon is 10 mm fölötti csaadékmennyiség volt?
2j. Feladat: Melyik volt az utolsó olyan nap, amikor volt csapadék?
2k. 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ő?
3. 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 float adattípusú listát), majd oldjuk meg vele kapcsolatban az alábbi feladatokat:
3a. 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
3b. 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.
3c. 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)
3d. 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.
3e. 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?
4. Feladat: A fájlban egy könyvtár 10 db könyvének adatai találhatóak. 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, majd oldd meg az alábbi feladatokat!
4a. 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!
4b. Feladat: Hány könyv található a 3-as polcon?
4c. Feladat: Van olyan kötet, amit 2001 és 2005 között adtak ki?
4d. Feladat: Hány olyan kötet van, amelynek a kiadási éve páratlan?
4e. 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!
4f. 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)
4g. Feladat: Ki írta a Never Enough című kötetet? Írd ki a könyv szerzőjét!
4h. 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!
4i. 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)
5. Feladat: A fájlban egy utazási iroda egy utazására jelentkező 15 fő adatai találhatók. 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, majd oldd meg az alábbi feladatokat!
5a. 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 tudj majd dolgozni! (az input fájlt ne módosítsd!)
5b. 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
5c. 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!
5d. Feladat: A nyelvvizsgával rendelkezők hány százaléka kért étkezést?
5e. Feladat: Hány éves idén a legfiatalabb olyan utazó, akinek van nyelvvizsgája?
5f. 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ő
5g. Feladat: Kérj be egy nevet a felhasználótól, és írd ki, hogy az adott ember kikkel volt egy szobában!
5h. 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?
6. 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. Olvasd be az adatokat egy struktúrákból álló tömbbe, és oldd meg a feladatokat!
6a. 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.
6b. 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>
6c. 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!!!
7. Feladat: A fájlban egy zöldséges üzlet leltára található. Minden sorban egy termék, annak mennyisége kg-ban, és annak kilogrammonkénti ára Ft-ban található meg, pontosvesszővel elválasztva. Olvasd be és tárold le az adatokat, majd oldd meg az alábbi feladatokat!
7a. Feladat: Hányféle termék található raktáron?
7b. Feladat: Hány olyan termék van,a mikből több mint 20 kg van a raktárban?
7c. Feladat: Írasd ki az összes olyan terméknek a nevét, amiknek a kilgrammonkénti ára több, mint 1500 Ft!
7d. Feladat: Összesen hány kg termék van a raktárban?
7e. Feladat: Mennyi a raktáron lévő termékek összesített értéke? (Ügyelj rá, hogy a fájlban a kilogrammonkénti ár szerepel!)
7f. Feladat: Írasd ki a raktáron lévő dinnyefajták neveit! (a dinnyefajták neve mindig a "dinnye" szórészletre végződik - feltételezhetjük, hogy nincs más olyan gyümölcs, aminek a neve bárhol tartalmazná a dinnye szórészletet)
7g. Feladat: Mi a legmagasabb kilogrammonkénti árral rendelkező termék a fájlban?
7h. Feladat: Kérd be egy termék nevét a felhasználótól, majd jelenítsd meg annak a kilogrammonkénti árát!
8. Feladat: A fájlban vonatjegy vásárlások adatai találhatóak. Minden sor 5 adatot tartalmaz: a vásárlás sorszámát, a jegyárat dollárban (egész szám), a célállomás nevét, a célállomás távolságát km-ben (egész szám), és a vevő nevét. Az adatok vesszővel tagoltak. Olvasd be és tárold le az adatokat, majd oldd meg az alábbi feladatokat!
8a. Feladat: Hány vásárlás adatai találhatók meg a fájlban?
8b. Feladat: Mennyibe került a legdrágább menetjegy?
8c. Feladat: Kérj be egy nevet a felhasználótól, majd add meg, hogy melyik célállomásra vásárolt menetjegyet!
8d. Feladat: Volt olyan menetjegy, aminek az ára 30 dollárnál kevesebb? A képernyőn az IGEN, vagy a NEM szó jelenjen meg.
8e. Feladat: Összesen hány km-nyi utazásra váltottak jegyet a fájlban szereplő utasok?
8f. Feladat: Van a fájlban két olyan utas, akik azonos célállomásra utaznak? A képernyőn válasként a VAN, vagy a NINCS szót jelenítsd meg.
8g. Feladat: Listázd ki azokat a célállomásokat, amik kevesebb, mint 500 km-re vannak. A listában jelenítsd meg a célállomás nevét, és a távolságát km-ben!
8h. Feladat: A vásárlások napján 1 dollár épp 368 Ft-ot ért. Hány forintot fizetett összesen az összes utazó a jegyeikért?
9. Feladat: A fájlban az Európai Unió tagállamainak az adatai találhatók meg, pontosvesszővel elválasztva. A fájl az alábbi adatokat tartalmazza:
- Országnév (szöveg)
- Csatlakozás dátuma (egész szám)
- Népesség (egész szám)
- Alapterület (egész szám)
- Pénznem (szöveg)
- Hivatalos nyelv(ek) (szöveg) - ha több is van, szóközzel elválasztva
A feladatok megoldásához ezeket az adatokat használd - ügyelj rá, hogy a megoldásod akkor is helyes legyen, ha a tagállamok száma megváltozik!
9a. Feladat: Hány tagállama van jelenleg az EU-nak?
9b. Feladat: Kérj be egy évszámot a felhasználótól, majd sorold fel azokat az országokat, amik abban az évben már az EU tagállamai voltak!
9c. Feladat: Melyik a legnagyobb népsűrűségű tagállam? Az ország nevét, és a népsűrűségét jelenítsd meg! (népsűrűség = népesség / alapterület)
9d. Feladat: Néhány országnak több hivatalos nyelve is van. Sorold fel ezeket az országokat, és a hivatalos nyelveiket!
9e. Feladat: Hány olyan EU tagállam van, amiknek a népessége kevesebb, mint Magyarországé?
9f. Feladat: Készíts statisztikát az EU tagállamokban használt pénznemekből! Jelenítsd meg az összes pénznemet, valamint hogy hány országban van használatban az adott pénznem!
9g. Feladat: Melyik ország csatlakozott a legkésőbb az EU-hoz?
9h. Feladat: Hány olyan tagállam van, amiknek hivatalos nyelve az angol? Ügyelj arra, hogy egyes országoknak több hivatalos nyelve is van!
9i. Feladat: Az EU tagállamok lakosságának hány %-a magyarország lakossága? A választ 4 tizedesjegyre kerekítve add meg! (ügyelj a megfelelő változótípusok megválasztására az esetleges túlcsordulás elkerülése érdekében)
9j. Feladat: Mennyi az EU tagállamok átlagos népessége?