Objektumorientált programozás XI. OOP gyakorlás

Hasonló dokumentumok
Programozás II gyakorló feladatok

Programozási Paradigmák és Technikák

Programozás I. Gyakorlás egydimenziós tömbökkel Többdimenziós tömbök Gyakorló feladatok V 1.0 ÓE-NIK-AII,

Objektumorientált Programozás VI.

Programozás II. labor

Programozás I. Matematikai lehetőségek Műveletek tömbökkel Egyszerű programozási tételek & gyakorlás V 1.0 OE-NIK,

Objektum Orientált Programozás VII.

Objektumorientált Programozás III.

Programozás I. Szöveges fájlok kezelése Felsorolástípus Objektumtömb Gyakorló feladatok

Objektumorientált Programozás VI.

OOP I. Egyszerő algoritmusok és leírásuk. Készítette: Dr. Kotsis Domokos

Objektumorientált programozás C# nyelven

Vizuális, eseményvezérelt programozás XI.

Objektumorientált Programozás IV.

Objektum Orientált Programozás IV.

Vizuális és eseményvezérelt programozás , II. félév BMF NIK

Gyakorló feladatok az 1. nagy zárthelyire

Vizuális és eseményvezérelt programozás , II. félév BMF NIK

Objektumorientált programozás C# nyelven

1. Az allergiás betegekről azt tartjuk nyilván, hogy mire allergiások.

Bevezetés a programozásba I.

Alkalmazott modul: Programozás

OOP: Java 8.Gy: Gyakorlás

Nagy HF u tmutato 2011/2012 II. fe le v

Programozás I. Metódusok C#-ban Egyszerű programozási tételek. Sergyán Szabolcs

1. feladat Készítse el szövegszerkesztővel, majd mentse osztály.txt néven a következő tartalmú szöveges fájlt:

Szoftvertechnolo gia gyakorlat

Tájékoztató. Használható segédeszköz: -

Programozási tételek feladatok

6. gyakorlat Egydimenziós numerikus tömbök kezelése, tömbi algoritmusok

HÁZI FELADAT PROGRAMOZÁS I. évf. Fizikus BSc. 2009/2010. I. félév

Hozd létre az atestat_2011 adatbázisban a diakok táblát a következő szerkezettel: 1. Töltsd fel az adattáblát legkevesebb 5 bejegyzéssel (rekorddal).

OOP: Java 8.Gy: Abstract osztályok, interfészek

Bánsághi Anna 2014 Bánsághi Anna 1 of 68

1. Feladat: beolvas két számot úgy, hogy a-ba kerüljön a nagyobb

Írjon olyan programot a standard könyvtár alkalmazásával, amely konzolról megadott valós adatokból meghatározza és kiírja a minimális értékűt!

Szerző. Varga Péter ETR azonosító: VAPQAAI.ELTE cím: Név: Kurzuskód:

KÖTELEZŐ PROGRAM, SZÁMONKÉRÉSEK. Részletek

Algoritmusok és adatszerkezetek 2.

Dióbundás camambert 10 adag

Savaria Egyetemi Könyvtár Katalógusa. Böngészés Keresés Találatok megjelenítése Adatbázis választás Olvasói tranzakciók

Objektumorientált programozás C# nyelven

Tömbök kezelése. Példa: Vonalkód ellenőrzőjegyének kiszámítása

Programozás II. ATM példa Dr. Iványi Péter

Java II. I A Java programozási nyelv alapelemei

Készítette: Nagy Tibor István

Tájékoztató. Használható segédeszköz: -

Kereső függvények és használatuk a Microsoft Excel programban. dr. Nyári Tibor

Objektum Orientált Programozás V.

Java Programozás 1. Gy: Java alapok. Ismétlés ++

Programozás II. labor

Objektumorientált programozás C# nyelven III.

Felvételi vizsga mintatételsor Informatika írásbeli vizsga

Tájékoztató. Használható segédeszköz: -

Bánsághi Anna 2014 Bánsághi Anna 1 of 33

OOP. #6 (VMT és DMT) v :33:00. Eszterházy Károly Főiskola Információtechnológia tsz. Hernyák Zoltán adj.

Gábor Dénes Számítástechnikai Emlékverseny 2005/2006 Alkalmazói kategória, III. korcsoport Második forduló

Lekérdezések I. Egyszerű választó lekérdezések

Web-programozó Web-programozó

Programozás II gyakorlat. 6. Polimorfizmus

3. Osztályok II. Programozás II

Programozás I. házi feladat

ADATBÁZISOK gyakorlat: SQL 2. rész SELECT

Pontosan adtuk meg a mérkőzésen a gólok számát és a negyeddöntőt tévén közvetítő országok számát.

ALAPOK. 0 és 255 közé eső számértékek tárolására. Számértékek, például távolságok, pontszámok, darabszámok.

// keressük meg a legnagyobb faktoriális értéket, ami kisebb, // mint százmillió

Dr. Pál László, Sapientia EMTE, Csíkszereda WEB PROGRAMOZÁS 2.ELŐADÁS. Objektumorientált programozás

EGYSZERŰ, NEM IRÁNYÍTOTT (IRÁNYÍTATLAN) GRÁF

Programozási technikák Pál László. Sapientia EMTE, Csíkszereda, 2009/2010

Programozási tételek. Dr. Iványi Péter

Szövegek C++ -ban, a string osztály

1. Jelölje meg az összes igaz állítást a következők közül!

Adattípusok, vezérlési szerkezetek. Informatika Szabó Adrienn szeptember 14.

Programozási nyelvek II. JAVA EA+GY 1. gyakolat

Rezsimegtakarítás modul a Társasház-Érték 2009 rendszerben

Egyszerű példaprogramok gyakorláshoz

ASTER motorok. Felszerelési és használati utasítás

1. Pál kertje téglalap alakú, 15 méter hosszú és 7 méter széles. Hány métert tesz meg Pál, ha körbesétálja a kertjét?

RESIDENT EVIL CODENAME: NIK

Tartalomjegyzék. Általános Információ! 2. Felhasználói dokumentáció! 3. Feladat! 3. Környezet! 3. Használat! 3. Bemenet! 3. Példa!

HASZNÁLATI ÚTMUTATÓ. F-sorozat

NULLADIK MATEMATIKA ZÁRTHELYI

*Ezen felületet kell kitölteni saját fiók létrehozásáho z

II. Mérés SZÉCHENYI ISTVÁN EGYETEM GYŐR TÁVKÖZLÉSI TANSZÉK

OOP. Alapelvek Elek Tibor

Interfészek. PPT 2007/2008 tavasz.

A C# programozási nyelv alapjai

MATEMATIKAI FÜGGVÉNYEK

Objektumorientált Programozás V.

Szoftvertervezés és -fejlesztés I.

VI. Felkészítő feladatsor

BME MOGI Gépészeti informatika 8.

Operációs rendszerek. 11. gyakorlat. AWK - szintaxis, vezérlési szerkezetek UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

Felvételi tematika INFORMATIKA

1. Olvassuk be két pont koordinátáit: (x1, y1) és (x2, y2). Határozzuk meg a két pont távolságát és nyomtassuk ki.

XI.4. FŐZŐCSKE. A feladatsor jellemzői

KÖNYVTÁRI KATALÓGUS HASZNÁLATI ÚTMUTATÓ

Adatbázis Rendszerek II. 3. SQL alapok

AB1 ZH mintafeladatok. 6. Minősítse az állításokat! I-igaz, H-hamis

Programozási alapismeretek beadandó feladat: ProgAlap beadandó feladatok téma 99. feladat 1

Átírás:

Objektumorientált programozás XI. OOP gyakorlás ÓE-NIK, 2011 1

Hallgatói tájékoztató A jelen bemutatóban található adatok, tudnivalók és információk a számonkérendő anyag vázlatát képezik. Ismeretük szükséges, de nem elégséges feltétele a sikeres zárthelyinek, illetve vizsgának. Sikeres zárthelyihez, illetve vizsgához a jelen bemutató tartalmán felül a kötelező irodalomként megjelölt anyag, a gyakorlatokon szóban, illetve a táblán átadott tudnivalók ismerete, valamint a gyakorlatokon megoldott példák és az otthoni feldolgozás céljából kiadott feladatok önálló megoldásának képessége is szükséges. ÓE-NIK, 2011 2

Gyakorló feladat Egy számítógép-alkatrész webbolt adatbázisa 100 termékből áll. Minden Terméknek van ára, valamint típusa (pl. proceszor, memória, alaplap) és gyártója. A típust, a gyártót és az árat is véletlenszerűen sorsoljuk ki (az ár 20000-60000 Ft-ig legyen valamekkora). A feladatunk az adatbázis egyes kereső funkcióinak megvalósítása. Az adatbázist reprezentáljuk osztállyal, és a feladatokat az Adatbázis osztály metódusaival valósítsuk meg. Minden kereső funkciónak egy tömbbel kell visszatérnie, amely a keresésnek megfelelő elemeket tartalmazza. Lehessen keresni típus alapján. Lehessen keresni gyártó alapján, mégpedig úgy, hogy több gyártót is lehessen megadni. Több gyártó megadása esetén az összes megadottnak a termékeit kapjuk vissza. Lehessen keresni egy bizonyos típusból "olcsó", illetve "drága" termékeket. Olcsó az a termék, aminek az ára a típus átlagára alá esik vagy egyenlő azzal, drága, ami az átlagár felett van. ÓE-NIK, 2011 3

Segítség a feladathoz A típus és akár a gyártó véletlenszerű kisorsolásához is pl. a felsorolás típust alkalmazhatjuk. enum AlkatreszTipus { Processzor, Memoria, Alaplap } A felsorolás minden tagjának megfeleltethetünk egy egész (numerikus) értéket. Ha mást nem adunk meg, akkor alapértelmezés szerint a számozás nullától kezdődik és deklaráció szerinti sorrendben eggyel növekszik. Használata: AlkatreszTipus tipus = AlkatreszTipus.Alaplap; //alaplap lesz a típus if (tipus == AlkatreszTipus.Memoria) {... } De a számokkal való megfeleltetés miatt akár véletlenszerűen is kisorsolhatjuk: Random rand = new Random(); //véletlenszerű típus: AlkatreszTipus tipus2 = (AlkatreszTipus)rand.Next(0, 3); ÓE-NIK, 2011 4

GPS alapú túraútvonal-tervező programot készítünk. A program adatbázisában látványosságok vannak eltárolva. A látványosságok mindegyikének x és y koordinátája van, amelyek -10-10 közöttiek lehetnek (ez a jelenlegi pozíciónkhoz viszonyított, km-ben mért helyzetüket jelzi), és van 0-1000 közötti tengerszint feletti magasságuk is. Ha a programnak megadunk egy pontot, ahonnan indulni akarunk (-10,10 közötti koordinátákkal), akkor visszaad egy útvonaljavaslatot, amely az adott kiindulóponthoz 5 km-nél közelebb lévő látványosságokat tartalmazza. Egy útvonaljavaslatot reprezentáljunk Utvonal osztállyal. Az összes, a program által ismert látványosság egy tömbben helyezkedik el, amelyet úgy hozzunk létre, hogy 50-100 db véletlenszerű látványosságot tartalmazzon. Az Utvonalba ezek közül vesszük bele a közel lévőket. Az Utvonal osztály tartalmazza a következő funkciókat: Tavolsag(), amely visszaadja a teljes út légvonalban vett hosszát (a magassággal nem kell számolni). Szintemelkedes(), amely visszaadja a szintemelkedést (a legmagasabb és a legmélyebb pont közötti különbséget). Szures(x), amely egy új Utvonalat készít az aktuális útvonal alapján, de úgy, hogy az új Utvonalban nem szerepelnek az aktuális útvonal x-nél magasabb pontjai. Két útvonalat lehessen összekapcsolni is, azaz előállítani belőlük egy olyan új Utvonalat, amely mindkét útvonal pontjait tartalmazza, de úgy, hogy egy pontot sem tartalmazhat többször. ÓE-NIK, 2011 5

Programozási tételek összeépítése (1) Feladat - mintaadatok Állatkertünkben háromféle állat tárolunk különböző méretű ketrecekben az alábbi mintaadatok szerint Kormos 20 kg Mici Nőstény 320 kg Kajás 40 kg Killer 3 kg Kaller 5 kg 1. ketrec Nóri 4 kg Marcsi Nőstény 320 kg Nándi 4 kg 2. ketrec Morgó 310 kg Morcos 320 kg Kolbász 40 kg Kati Nőstény 13 kg Karesz 15 kg 3. ketrec Nindzsa 2 kg Nyami Nőstény 12 kg Kicsi Nőstény 10 kg Norbi 5 kg Krumpli 10 kg 4. ketrec

Osztályok, típusok ÓE-NIK, 2011 7

Programozási tételek összeépítése (2) Feladat - kérdések Válaszoljuk meg az alábbi kérdéseket az előző oldalon látható mintaadatokból felépített modell alapján. Az összetett feladatok során próbáljuk a már megismert programozási tételek (illetve az előzőleg elkészült részfeladatok) segítségével elkészíteni a megoldást. Tételek összeépítésénél használható mindhárom előadáson megismert összeépítési technika. Egyszerű programozási tételek (N 1) Megadott ketrecben hány darab megadott fajú állat található? int FajDarab(Allat[ ] A, AllatFaj faj) Megadott ketrecben van-e megadott fajú és nemű állat? bool FajEsNemVanE(Allat[ ] A, AllatFaj faj, bool himnemu) Egyszerű programozási tételek (N N) Megadott ketrecben melyek a megadott fajú állatok? Allat[ ] FajAllatok(Allat[ ] A, AllatFaj faj)

Programozási tételek összeépítése (3) Programozási tételek összeépítése Megadott ketrecben mennyi a megadott fajú állatok átlagos tömege? float AtlagFajTomeg(Allat[ ] A, AllatFaj faj) Megadott ketrecben melyik a legnehezebb megadott fajú állat? Allat FajLegnehezebb(Allat[ ] A, AllatFaj faj) Megadott ketrecben hány (a ketrecen belül a saját fajára számított) átlagosnál nehezebb állat van? int AtlagnalNehezebbDarab(Allat[ ] A) Melyik ketrecben van a legtöbb (a ketrecen belül a saját fajára számított) átlagosnál nehezebb állat? int LegtobbAtlagnalNehezebb(Ketrec[] K) Hány olyan ketrec van, ahol az előzőleg kiszámolt számú átlagosnál nehezebb állat található? int LegtobbAtlagnalNehezebbDarab(Ketrec[] K)

Programozási tételek összeépítése (4) Programozási tételek összeépítése Melyik ketrecben található a legtöbb megadott fajú állat? int LegtobbFaj(Ketrec[] K, AllatFaj faj) Megadott ketrecben van-e legalább egy azonos fajú, de ellenkező nemű egyedekből álló páros? bool AzonosFajEllenkezoNemVanE(Allat[ ] A) Megadott ketrecben tartozik-e mindenkihez legalább egy azonos fajú, de ellenkező nemű állat? (ahhoz nem ragaszkodunk, hogy mindenkihez egy kizárólagos pár tartozzon) bool AzonosFajEllenkezoNemMindenkinek(Allat[ ] A) Hány olyan ketrec van, ahol van legalább egy azonos fajú, de ellenkező nemű tagokból álló páros? int AzonosFajEllenkezoNemDarab(Ketrec[] K) Hányas számú ketrecekben nincs egy azonos fajú, de ellenkező nemű egyedből álló pár se? int[] AzonosFajEllenkezoNemNincs(Ketrec[] K)

Összetett feladatok megoldása (1) Feladat - mintaadatok Receptkönyv besamel tejberizs kijevi rostélyos rántott Liszt Rizs Vaj Vaj Hús hús 50 g 100 g 10 g 10 g 100 g Vaj Tej Hús Hús Liszt 50 g 100 g 100 g 100 g 10 g Tej Tej Vaj Liszt Tojás 50 g 200 g 50 g 10 g 10 g Tej Vaj Hagyma Hagyma 100 g 10 g 10 g 30 g Raktár Tej 300 g Vaj 300 g Liszt 300 g Rizs 300 g Hús 50 g Teri szereti Feri szereti szereti Mari allergiás Vendégek Hús Vaj Vaj Tojás Liszt Liszt Rizs Hús

Osztályok, típusok ÓE-NIK, 2011 12

Összetett feladatok megoldása (2) Feladat - kérdések Válaszoljuk meg az alábbi kérdéseket az előző oldalon látható mintaadatokból felépített modell alapján (zárójelben megadott osztályban). Egyszerű segéd metódusok Recept tartalmaz megadott alapanyagot? (Recept) bool TartalmazAlapanyagot(Alapanyag alapanyag) Mennyi egy recept hozzávalóinak összesített mennyisége? (Recept) public float ReceptOsszMennyiseg( ) Receptkönyv egy megadott nevű receptjének a kiválasztása (ReceptKonyv) Recept ReceptKivalasztas(string nev) Hány recept nem tartalmaz egy megadott alapanyagot? (ReceptKonyv) int HanyReceptNemtartalmazAlapanyagot(Alapanyag alapanyag) Melyik receptek tartalmaznak egy megadott alapanyagot? (ReceptKonyv) Recept[ ] AlapanyagotTartalmazoReceptek(Alapanyag alapanyag) Megadott vendég allergiás-e egy megadott alapanyagra? (AllergiasVendeg) bool AllergiasRa(Alapanyag alapanyag)

Összetett feladatok megoldása (3) Receptek hozzávalóival kapcsolatos kérdések Recept hányféle egymástól különböző alapanyagot tartalmaz? (Recept) int KulonbozoAlapanyagokSzama( ) Melyik a legbonyolultabb recept (amelyik a legtöbb különböző alapanyagot tartalmazza)? (ReceptKonyv) public Recept LegbonyolultabbRecept( ) Az egyes hozzávalókból összesítve mennyire van szükség a recept elkészítéséhez? (Recept) public Hozzavalo[ ] HozzavalokOsszesitve( ) Megadott hozzávalókból elkészíthető-e a recept? (Recept) bool MegvalosithatoHozzavalokbol(Hozzavalo[ ] raktar) Hányféle receptet lehet elkészíteni megadott hozzávalókból? (ReceptKonyv) int HanyfeleReceptValosithatoMegHozzavalokbol(Hozzavalo[ ] raktar) Melyik recepteket lehet elkészíteni megadott hozzávalókból? (ReceptKonyv) Recept[ ] MelyikReceptekValosithatokMegHozzavalokbol(Hozzavalo[ ] raktar)

Összetett feladatok megoldása (4) Vendégekkel kapcsolatos kérdések Mennyire jónak értékel egy vendég egy receptet (az általa szeretett hozzávalók mennyiségének az összege)? (Vendeg) virtual float Ertekel(Recept recept) Valósítsuk meg az értékelést az allergiás vendégek esetén is (ha allergiás bármelyik hozzávalóra, akkor 0, egyébként a szokásos! (AllergiasVendeg) override float Ertekel(Recept recept) Megadott vendégnek melyik receptet ajánljuk? (ReceptKonyv) Recept SzemelyreszabottAjanlat(Vendeg vendeg) Mennyire jó egy recept egy társaság számára (a megadott vendégek értékelésének átlaga)? (Recept) float MennyireSikeres(Vendeg[ ] vendegek) Megadott társaság számára melyik a legsikeresebb recept? (ReceptKonyv) Recept LegsikeresebbRecept(Vendeg[ ] vendegek)

Programozási tételek házi feladat 1. Feladat Egy 364 napos tömbben tároljuk az egy év (52 hét) alatt mért napi átlaghőmérsékleteket. Ezek ismeretében válaszoljunk az alábbi kérdésekre: Hány napon érte el a hőmérséklet az éves maximum 90%-át? Melyik volt az év legmelegebb hete (maximális heti átlaghőmérséklet)? Hány olyan hét volt, amikor legalább egyszer fagyott? Hány olyan hét volt, amikor minden nap fagyott? Melyik napon volt a legnagyobb lehülés az előző naphoz képest? Hány olyan nap volt, amikor előző és következő nap fagyott, de aznap nem? Mikor volt a leghosszabb időszak, amikor folyamatosan esett a hőmérséklet? Hányszor volt az évben kánikula? (legalább 3 napig 35 C feletti hőmérséklet) Volt-e olyan min. 5 napos időszak, amely értékei megismétlődtek később? Milyen hosszú volt az a leghosszabb időszak, amikor egyszer se fagyott? Milyen hosszú volt az a leghosszabb időszak, amelyen belül egyszer se fagyott egymást követő 5 napon át?

Összetett feladatok megoldása házi feladat 2. Feladat Tervezzük meg és implementáljuk egy egyszerű szerszámkölcsönző cég rendszerét, amely megvalósítja az alábbi funkciókat: Tárolja az aktuális időpontot (az év hányadik napja), ami menüből léptethető Tárolja a kölcsönözhető eszközök adatait (típus {porszívó, fúrógép, lángvágó}, állapot {0..1}, alapdíj mértéke 10 napra, késedelmi díj mértéke ezt követően naponta) Tárolja a kölcsönző személyek adatait (név, aktuális kölcsönzési adatok eszköz, kölcsönzés ideje {max. 5 db}, előjegyzési lista {max. 5 db}) Kölcsönzéskor a megadott típus alapján automatikusan válasszuk ki a legjobb állapotú, legdrágább eszközt és rögzítsük a kölcsönzést. Legyen lehetőség listázni az összes kölcsönzést Ha nincs elérhető eszköz, vegyünk fel előjegyzést a legkorábban lejáró eszközre. Legyen lehetőség listázni az összes előjegyzést Legyen lehetőség visszaadni egy eszközt, a program számolja ki az alapdíj és a késedelmi díj alapján a fizetendő összeget (illetve csökkentse az eszköz állapotát nap/100-al). Ha volt előjegyzés az eszközre, akkor automatikusan kerüljön át az új személyhez. Legyen lehetőség meghosszabbítani egy kölcsönzést, de csak akkor, ha arra az eszközre még nincs előjegyzés Selejtezéskor töröljük az eszközt és helyettesítsük a rá vonatkozó előjegyzéseket egy hasonlóval Listázzuk eszköztípusonként, hogy aktuális napon mennyi bevételt hoznak a cégnek Töltsük fel a rendszert adatokkal, és menüvezérelt módon legyen lehetőség elérni a fenti funkciókat!