Programozás 2. gyakorlat

Méret: px
Mutatás kezdődik a ... oldaltól:

Download "Programozás 2. gyakorlat"

Átírás

1 Programozás 2. gyakorlat Kötelező programok listája Tartalom Első projektmunka feladatok (Határidő: október :00) Intervallum Igazolvány Telefon Tanulmányi rendszer Játékok Hibrid autók Boltok... 8 Második projektmunka feladatok (Határidő: november :00) Intervallum Igazolványtartó tok Telefon katalógus Tanulmányi rendszer Játékok Hibrid Autók Boltok...15

2 Első projektmunka feladatok (Határidő: október :00) 1. Intervallum Hozz létre egy Interval osztályt, ami egy zárt intervallumot reprezentál kezdő és végponttal (double). Legyen: Egy olyan konstruktora, ami a paraméterként várja a két végpontot Egy olyan konstruktora, ami a konzolról olvassa be a két végpontot Egy olyan konstruktora, ami egy paraméterben kapott fájlból olvassa be a két végpontot (a fájl szöveges legyen, a két végpont szóközzel legyen elválasztva) Egy save függvénye, ami a paraméterül kapott fájlba elmenti a végpontokat Egy print függvénye, ami [ kezdőpont, végpont ] formában kiírja a konzolra az Intervallumot Egy positive függvénye, ami visszaadja, hogy az intervallumban csak pozitív számok tartoznak bele Egy length függvénye, ami visszatér az Intervallum hosszával. Származtass le az Interval osztályból egy ColorInterval osztályt, aminek színe is van (char*). Legyen: Konstruktora, ami paraméterül várja a két végpontot és a színt Legyen egy changecolor függvénye, ami megváltoztatja az intervallum színét az alábbi 6 szín közül valamelyikre véletlenszerűen: piros, kék, zöld, sárga, fehér, rózsaszín. Ha a kiválasztott szín ugyanaz, mint az intervallum aktuális színe, akkor az intervallum színe legyen fekete. Legyen egy isspecialinterval() függvénye, ami igazzal térjen vissza, ha az intervallum fekete színű, csak nemnegatív számokat tartalmaz, és a hossza legfeljebb 10. Felüldefiniált print függvénye, ami [ kezdőpont, végpont ] (szín) - speciális_e formában kiírja a konzolra az Intervallumot Készíts egy main függvényt, ami az elkészült osztályokat (függvényeivel együtt) teszteli!

3 2. Igazolvány Hozz létre egy Igazolvány osztályt, ami egy személyes okmányt valósít meg. Minden igazolvány valaki nevére szól (char* vagy string), illetve mindegyiknek van egy kiállítási dátuma (pl.: ÉÉÉÉHHNN formátumban, szövegként tárolva). Legyen az osztálynak: Egy olyan konstruktora, ami a paraméterként várja a nevet és a kiállítási dátumot Egy olyan konstruktora, ami csak a nevet várja paraméterül, a kiállítási dátumot tetszőleges értékre állítja be. Egy olyan konstruktora, ami a konzolról olvassa be a fenti adatokat. Egy leolvas() függvénye, ami kiírja az alapértelmezett kimenetre a tulajdonos nevét, valamint az igazolvány kiállítási dátumát. (Pl.: Ez az igazolvány <Név> tulajdona, és <ÉÉÉÉ>.<HH>.<NN>. dátummal állították ki.) Egy azonosít függvénye, ami paraméterben egy stringet vár, és ellenőrzi, hogy az igazolvány tulajdonosa a paraméterben megadott nevű ember-e. Ennek megfelelően logikai értékkel térjen vissza a függvény. Egy save függvénye, ami a paraméterül kapott fájlba elmenti az adatokat. Származtass le az Igazolvány osztályból egy SzemélyiIgazolvány osztályt, amiben tároljuk még a személyi igazolvány számát (pontosan 8 karakterből álló tömb), valamint azt, hogy új fajta igazolványról van-e szó. Az osztálynak legyen Konstruktora, ami paraméterül várja a nevet, kiállítási dátumot, igazolványszámot (abban az esetben, ha ez nem egy 8 karakterből álló tömb, az alapértelmezett hibakimeneten jelezzük, és állítsunk be egy tetszőleges értéket (ezt érdemes lehet pl. #define makróval definiálni). Felüldefiniált leolvas() függvénye, ami kiírja az alapértelmezett kimenetre a tulajdonos nevét, valamint az igazolvány kiállítási dátumát és számát. (Pl.: Ez az igazolvány <Név> tulajdona, és <ÉÉÉÉ>.<HH>.<NN>. dátummal állították ki, száma: <XXXXXXXX>) Készíts egy main függvényt, ami az elkészült osztályokat (függvényeivel együtt) teszteli!

4 3. Telefon Hozz létre egy Telefon osztályt, ami egy telefont reprezentál. A telefonnak legyen száma (9 jegyű szám, vagy 9 karakteres tömb), valamint felhasználható internet mennyiségét (double, megabájtban számolva). Az osztálynak legyen: Egy olyan konstruktora, ami a paraméterként várja a számot, és a felhasználható internet mennyiségét Egy olyan konstruktora, ami a konzolról olvassa be az adatokat. Egy internethasznál() függvénye, amely a paraméterben megadott számmal csökkenti a felhasználható internet mennyiségét. Amennyiben paraméter nélkül hívjuk meg a függvényt, pontosan 1.2 megabájttal csökkenjen a felhasználható keret. Egy feltölt() függvény, amely pontosan 500 megabájtot ad hozzá a felhasználható internethez, de ügyelj rá, hogy a felhasználható keret legfeljebb 1500 megabájt legyen. Ezen érték felé ne emelkedhessen a szám! Egy adatok() függvény, ami kiírja az alapértelmezett kimenetre a számot és a felhasználható internet mennyiségét. Származtass le az Telefon osztályból egy SzuperNetezőTelefon osztályt, ami tárolja magáról, hogy használhat-e 4G-t vagy sem (bool). Az osztálynak legyen: Egy olyan konstruktora, ami a paraméterként várja a számot, a felhasználható internet mennyiségét, és azt, hogy használhat-e 4G-t. Egy save függvénye, ami a paraméterül kapott fájlba elmenti az adatokat. Felüldefiniált internethasznál() függvénye, amely a paraméterben megadott számmal csökkenti a felhasználható internet mennyiségét. Amennyiben paraméter nélkül hívjuk meg a függvényt, pontosan 23.5 megabájttal csökkenjen a felhasználható keret. Felüldefiniált feltölt() függvénye, amely pontosan 500 megabájtot ad hozzá a felhasználható internethez, korlátozás nélkül. Készíts egy main függvényt, ami az elkészült osztályokat (függvényeivel együtt) teszteli!

5 4. Tanulmányi rendszer Hozz létre egy TanulmanyiRendszer osztályt, amely egy tanulmányi rendszert reprezentál. Ügyelj rá, hogy az osztályból ne lehessen objektumot létrehozni. Az osztálynak legyen: Egy url adattagja, amely a tanulmányi rendszer url-jét tartalmazza (char* vagy string), és amelyet csak az osztályból, illetve annak gyerekosztályaiból lehet elérni. Egy paraméteres konstruktora, amely az url-t várja paraméterül Egy bejelentkezes() metódusa, amely logikai értéket ad vissza, hogy sikeres volt-e a művelet. Ne várjon paramétereket. Ehhez a metódushoz ne tartozzon implementáció, a gyerekosztályokban kelljen megvalósítani. Egy kurzusfelvetel() metódusa, amely logikai értéket ad vissza, és egy paramétert vár, a felvenni kívánt kurzus kódját (char* vagy string). Ehhez a metódushoz se tartozzon implementáció, a gyerekosztályokban kelljen megvalósítani. Származtass le a TanulmanyiRendszer osztályból egy ETR nevű osztályt. Legyen neki egy paraméteres konstruktora, ami az url-t várja, és inicializálja az ősosztály megfelelő adattagját. Definiáld felül a bejelentkezes() metódust. Írja ki a képernyőre, hogy sikeres bejelentkezés, és térjen vissza igazzal. Definiáld felül a kurzusfelvetel() metódusát: írja ki, hogy Az ETR tanulmányi rendszer án 16:00-kor leállt.. Származtass le a TanulmanyiRendszer osztályból egy Neptun nevű osztályt. Legyen neki egy adattagja, ami a felület színét (témát) várja (char* vagy string). Legyen neki egy paraméteres konstruktora, ami az url-t és a témát várja, és beállítja őket a megfelelő adattagoknak. Definiáld felül a bejelentkezes() metódust, ami 90% eséllyel sikeres. Ha sikeres, írja ki a képernyőre, hogy Sikeres bejelentkezés, majd térjen vissza igazzal. Egyéb esetben írja ki, hogy The service is unavailable. és hamissal térjen vissza. Definiáld felül a kurzusfelvetel() metódusát, ami 20% eséllyel sikertelen. Ezesetben írja ki, hogy Hiba! A kurzusfelvétel nem sikerült, mert nem sikerült a tárgyfelvétel. Egyébként nézze meg, hogy a paraméterül kapott kurzuskód benne van-e a kurzusok.txt fájlban (minden sorban egy kurzuskód szerepel). Ha nincs, akkor írja bele, és térjen vissza igazzal. Ha benne van, akkor szintén írja ki a képernyőre a fenti hibaüzenetet, és hamissal térjen vissza. Készíts egy tematvalt() metódust, ami a kapott paraméter (char* vagy string) értékét beállítja a téma adattagnak, majd kiírja, hogy Az új téma: <szín> (a szín helyére a kapott paraméter kerül). Készíts egy main() függvényt, amely az elkészült tanulmányi rendszerek funkcióit próbálja ki.

6 5. Játékok Készíts egy Jatek nevű osztályt, amely egy számítógépes játékot reprezentál. Tárold el a játék nevét (char* vagy string), árát (valós szám, euróban), átlagos értékelését (valós szám), illetve a játékosok számát (egész szám). Ezeket az adattagokat csak az osztály, illetve annak gyerekosztályai láthassák. Az osztálynak legyen: Egy paraméteres konstruktora, amely a 4 adattag értékét várja paraméterül, és beállítja nekik a megfelelő értékeket. Egy paraméteres konstruktora, amely a játék nevét és árát várja paraméterül, a játékosok számát 0-ra, az értékelést 1-re állítja. Egy learaz() metódusa, ami paraméterben egy 5 és 95 közötti egész számot vár, és a játékot ennyi százalékkal leárazza. Egy vasarol() metódusa, ami növeli a játékosok számát eggyel. Egy ertekel() metódusa, ami egy logikai értéket vár paraméterként. Ha igazat kapott, akkor növelje meg a játék értékelését a jelenlegi értékelés reciprokával (tehát ha 3 az értékelés, akkor legyen 3 + ⅓ = 3,33...), ha pedig hamisat, akkor csökkentse ugyanennyivel. Ügyelj rá, hogy az értékelés ne csökkenhessen 1 alá. Egy ajanlott() metódusa, ami igazzal tér vissza, ha az értékelés és a játékosok számának gyökének hányadosa nagyobb, mint 1,25, egyébként hamissal. igazzal térjen vissza: Származtass le a Jatek osztályból egy RageGame nevű osztályt. Ennek legyen egy új adattagja, ami az idegességi tényezőt tárolja (pozitív valós szám). Az osztálynak legyen: Egy olyan konstruktora, ami az ősosztály adattagjai mellé várja az idegességi tényező értékét is Egy biztonsagos() metódusa, amelynek két paramétere van: a játékos nyugalmi állapotának mértéke (pozitív egész szám), illetve a játékkal eltöltött idő percben (pozitív egész szám). A metódus igaz értékkel térjen vissza, ha: Definiáld felül az ajanlott medósust úgy, hogy ha az ősosztály igazzal tér vissza, akkor is 50% eséllyel hamist adjon vissza. Készíts egy main() függvényt, amely az elkészült osztályok funkcióit kipróbálja.

7 6. Hibrid autók Készíts egy BenzinesAuto nevű osztályt. Tárold el az autó típusát (char* vagy string), az üzemanyag tank űrtartalmát (egész szám) és a 100 kilométerenkénti fogyasztást (literben, valós szám). Ennek az osztálynak legyen: Konstruktora, ami paraméterben várja a három tulajdonságot és beállítja őket. Konstruktora, ami nem vár paramétert és standard inputról olvassa be a három tulajdonságot. Konstruktora, ami paraméterben egy fájl nevét várja, és onnan olvassa be a tulajdonságokat. Legyen hatotav() nevű metódusa, ami visszaadja, hogy teli tankkal és átlagos fogyasztással számolva, hány km-t tud megtenni az autó Legyen egy kiir() metódusa, ami kiírja az autó nevét és a hatótávját a standard kimenetre. Legyen egy ment() metódusa, ami a paraméterben kapott fájlba kiírja az autó három tulajdonságát (típus, tank mérete és fogyasztás) Származtass a BenzinesAuto osztályból egy HibridAuto nevű osztályt. Ez az örökölt adattagokon kívül rendelkezzen még egy elektromoshatotav nevű adattaggal, ami km-ben tárolja, hogy tisztán elektromosan hány km-t tudna megtenni, illetve egy logikai típusú adattaggal, ami jelzi, hogy önvezető-e? Legyen egy olyan konstruktora, ami az örökölt adattagok mellett várja még az elektromos hatótáv értékét és azt, hogy önvezető-e? Definiáld felül a hatotav() metódust úgy, hogy a benzines hatótávhoz hozzáadod az elektromosan elérhető hatótáv mértékét. Írj egy main() függvényt, amiben néhány példával teszteled a programod működését!

8 7. Boltok Készíts egy Bolt osztályt! Adattagként tárold el a bolt nevét, valamint a nyitás és zárás időpontját (csak az órát tárold el, egész számként). Az osztálynak legyen: Konstruktora, ami paraméterben várja a bolt nevét, és a nyitási-zárási időpontokat. Egy konstruktora, ami egy fájlnevet vár és onnan olvassa be a bolt nevét és az időpontokat! Legyen egy statikus vasarlokszama nevű adattagja, ami boltba betérő vásárlókat fogja számolni. Legyen egy napizaras() metódusa, amely paraméterben egy fájlnevet vár, és kiírja oda a bolt nevét, valamint azt, hogy hányan voltak eddig a boltban. Legyen egy nyitvae() metódusa, ami paraméterként egy órát és egy percet vár, és eldönti, hogy az adott időpontban nyitva van-e az adott üzlet? (Ha a bolt 18:00-kor zár, akkor 17:59-kor még nyitva van, de 18:00-kor már nem.) Ha nem adunk meg ennek a metódusnak perc paramétert, akkor az automatikusan 00 értéket jelent. Származtass le egy EjjelNappali nevű osztályt a Bolt osztályból. Legyen egy paraméteres konstruktora, ami csak a bolt nevét várja, a nyitás és zárás idejét pedig beállítja 0:00-ra és 24:00-ra. Definiáld felül a nyitvae() metódust, hogy mindig igaz értékkel térjen vissza! Definiáld felül a napizaras() metódust úgy, hogy kiíráskor a bolt neve mellé odaírja, hogy Nonstop. Írj egy main() függvényt, amiben néhány példával teszteled a programod működését!

9 Második projektmunka feladatok (Határidő: november :00) 1. Intervallum Hozz létre egy IntervalSet nevű osztályt, ami Interval objektumok tárolására alkalmas (mivel a ColorInterval az Interval-ból származik, ezért azokat is legyen képes tárolni). Legyen egy konstruktora, amely paraméterül vár egy számot. Ennyi Interval objektumra mutató pointernek foglajon dinamikusan helyet. Definiáld felül a += operátort, amely egy paraméterül kapott Interval vagy ColorInterval objektumot (amelyet pointerként kap meg) teszi hozzá a tároltakhoz, ha még van hely - ha nincs, akkor jelezzen hibát. A += operátor működjön úgy, hogy a paraméterül kapott objektumról készítsen másolatot, és azt vegye hozzá a halmazhoz (legyen egy copy nevű virtuális függvénye az Interval és ColorInterval osztályoknak, ami másolatot készít róluk). Készíts destruktort, amely felszabadítja a tárolt objektumokat, és a tárulásokra használt pointer tömböt. Definiáld felül a suffix -- operátort, ami csinálja azt, hogy a legutoljára hozzávett elemet kiveszi a halmazból - megfelelő memóriakezeléssel. Definiáld felül az ostream << operátorát, hogy azzal ki tudd íratni a tárolt intervallumokat. (Ehhez használd az Interval és ColorInterval print függvényét, és hogy jól működjön, tedd azokat virtuális függvénnyé.) Készíts copy konstruktort az osztályhoz Készíts egy main függvényt, amely: Létrehoz egy IntervalSet objektumot, amiben helyet foglaltat 10 intervallumnak. Adj hozzá += operátorral 3 Interval és 3 ColorInterval objektumot. Írasd ki << operátorral ( cout << ). Szabadítsd föl minden lefoglalt memóriaterületet.

10 2. Igazolványtartó tok Hozz létre egy IgazolványtartóTok osztályt, ami Igazolvány objektumokat tud tárolni. Ezek lehetnek SzemélyiIgazolvány vagy sima Igazolvány objektumok. Legyen egy konstruktora, amely paraméterül vár egy számot, ennyi lapos lesz a tok. A szám*2 Igazolvány objektumra mutató pointernek foglajon dinamikusan helyet (hiszen egy lap mindkét oldalára tehetünk igazolványt). Definiáld felül a += operátort, amely paraméterül egy Igazolvány referenciát kap. A kapott igazolvány másolatát tárolja el a tömbben. Ha elfogyott a hely a tömbben, ne csináljon semmit. Definiáld felül a függvényoperátort, amely paraméterben két számot vár, az első szám mondja meg, hogy melyik lapban lévő igazolvány érdekel, a második szám (ez csak 1 vagy 2 lehet, erre ügyelj!) pedig azt mondja meg, hogy a lap felső vagy oldalán lévő igazolványt szeretnénk megnézni. (Pl.: ha a 4, 2 paraméterekkel hívjuk meg a függvényt, az azt jelenti, hogy a 4. oldalon a hátulsó igazolványra vagyunk kíváncsiak, ami a 8. igazolvány lesz a tömbben (1. oldalon van az 1-2 igazolvány., 2. oldalon a 3-4. igazolvány, stb.) Ennek az igazolványnak hívjuk meg a leolvas() függvényét. Amennyiben nem létezik az adott helyen igazolvány, írja ki a függvény, az adott helyen nincs igazolvány. Készíts egy valid() függvényt, amely az alábbiak szerint működjön: minden egy tömbelem tulajdonosát kérdezze le, és ha a nevek az összes létező igazolvány esetében megegyeznek, akkor térjen vissza igazzal, különben hamissal. Definiáld felül az ostream << operátorát, aminek segítségével írasd ki azt, hogy hány igazolvány fér el a tömbben, valamint azt, hogy jelenleg hány darab van benne. Készíts egy main függvényt, amely: Létrehoz egy IgazolványtartóTok objektumot, amiben helyet foglaltat 10 igazolványnak. Adj hozzá legalább 4 tetszőleges igazolvány objektumot Használd a függvényoperátort. Hívd meg a valid függvényt, írasd ki az eredményét. Írasd ki << operátorral ( cout << ). Szabadítsd föl minden lefoglalt memóriaterületet.

11 3. Telefon katalógus Hozz létre egy TelefonKatalógus nevű osztályt, ami Telefon objektumokat tud tárolni. Legyen egy konstruktora, amely paraméterül vár egy számot. Ennyi Telefon objektumra mutató pointernek foglajon dinamikusan helyet. Készíts egy add metódust (ami logikai értékkel tér vissza), amely a telefon katalógushoz hozzáadja a paraméterből érkező telefon objektumot (A telefon objektumról másolatot készítsünk, copy konstruktorral), egészen addig, amíg van van hely. Ha nincs már hely, ne csináljon semmit, csak térjen vissza false értékkel. Definiáld felül a prefix ++ operátort, amely az összes telefon felhasználható internet mennyiségét megnöveli 100 megabájttal. Definiáld felül a tömbindex operátort, amely térjen vissza a tárolt telefonok közül a paraméterben megadott indexűvel, amennyiben az létezik. Amennyiben nem, térjen vissza az utolsó tárolt indexen lévő telefonnal Definiáld felül az ostream << operátorát, aminek segítségével írasd ki az összes tárolt telefon darabszámát, és a telefonokra egyesével hívja meg az adatok() függvényt. Készíts destruktort, amely felszabadítja a tárolt objektumokat, és a tárulásokra használt pointer tömböt. Készíts egy main függvényt, amely: Létrehoz egy TelefonKatalógus objektumot, amiben helyet foglaltat 100 telefonnak Adj hozzá 2 Telefon és 3 SzuperNetezőTelefon objektumot. Írasd ki << operátorral ( cout << ). Hívd meg a ++ operátort. Szabadítsd föl minden lefoglalt memóriaterületet.

12 4. Tanulmányi rendszer Egészítsd ki a meglévő programot. Hozz létre egy ETRArmy nevű osztályt, ami ETR objektumok tárolására alkalmas. Legyen egy konstruktora, amely paraméterül vár egy pozitív egész számot, ennyi ETR objektumra mutató pointernek foglaljon helyet dinamikusan. Készíts destruktort, amely felszabadítja a tárolt objektumokat, és a tárolásukra használt tömböt. Hozz létre egy init() függvényt, ami egy string tömböt vár, amelyek a létrehozandó ETR objektumok url-jét tartalmazzák. Ezek alapján inicializáld a tömböt (feltehetjük, hogy a paraméterként kapott tömb mérete pontosan akkora, mint ahány ETR elfér a saját tömbünkben)! Ügyelj rá, hogy ez a függvény csak első alkalommal működjön így. Ha már másodjára hívjuk meg, írja ki a képernyőre az alábbi szöveget: Új ETR nem csatlakozhat a sereghez, és a meglévők is hamarosan Neptunná válnak!. Definiáld felül a függvény operátort, amely egy számot kap paraméterül, és törli a tömbből az azon a pozíción lévő ETR objektumot, továbbá kiírja a képernyőre, hogy Egy ETR rendszert sikeresen eltávolítottunk, de aggodalomra semmi ok, hamarosan Neptunként visszatér közénk! Definiáld felül a tömbindex operátort, amely visszaadja a tömbnek a megfelelő indexű elemét, ha még ott ETR van. Ha már töröltük, akkor NULL-t adjon vissza, de írja ki a képernyőre, hogy Itt már nincs ETR, kérlek nézz vissza később Neptunért, az egységes tanulmányi rendszerért! Készíts egy main függvényt, amely: Létrehoz egy ETRArmy példányt, ami 3 db ETR objektumot tárol. Hozz létre egy 3 méretű sztringtömböt, és tegyél bele 3 url-t. Add hozzá ezt a 3 ETR-t az init() függvény segítségével. Töröld egymás után mind a három ETR-t, majd ellenőrizd is, hogy tényleg törlődtek-e. Szabadítsd fel a lefoglalt memóriaterületet

13 5. Játékok Egészítsd ki a meglévő programot az alábbiak szerint: hozz létre egy Jatekos nevű osztály, ami Jatek objektumok tárolására alkalmas. Egy Játékosnak van továbbá egy nyugalmi állapotát tároló adattagja (pozitív egész szám) Legyen egy konstruktora, amely paraméterül vár egy pozitív egész számot, ennyi Jatek objektumra mutató pointernek foglaljon helyet dinamikusan. Ezen kívül második paraméterként várja a nyugalmi állapotának értékét, amivel a megfelelő adattagot inicializálja. Készíts destruktort, amely felszabadítja a tárolt objektumokat, és a tárolásukra használt tömböt. Definiáld felül a += operátort, aminek a jobb oldali operandusa egy játékra mutató referencia. Ezt a játékot vegye fel a játékos játékai közé, ha van még hely, egyébként írjon figyelmeztetést a standard hibacsatornára. Legyen egy jatszik() metódusa, ami két számot vár, és nincs visszatérési értéke. Az első szám a játék indexe a tömbben, amivel játszik, a második paraméter pedig a játékkal töltött idő. Ha az adott játék RageGame típusú, akkor hívd meg a biztonsagos() metódusát, és ha az hamisat ad vissza, akkor írd ki a képernyőre, hogy: Egészségügyi szempontokat figyelembe véve ezzel a játékkal jelenleg nem érdemes játszani. Definiáld felül a postfix ++ operátort, ami a játékos nyugalmi állapotát megnöveli 1-gyel Definiáld felül a postfix -- operátort, ami a játékos nyugalmi állapotát csökkenti 1-gyel Készíts egy main függvényt, amely: Létrehoz egy Jatekos objektumot, ami 3 játékot tárol Hozz létre 3 Jatek objektumot, melyek közül legalább egy legyen RageGame Vedd fel a létrehozott játékokat a játékos játékai közé Hívd meg a jatszik metódust mindegyik játékra Szabadítsd fel a lefoglalt memóriaterületet

14 6. Hibrid Autók Bővítsd ki az előző programodat egy AutoKolcsonzo nevű osztállyal, ami különböző típusú autókat tárol és egy kölcsönzőt reprezentál. Ez az osztály rendelkezzen az alábbi adattagokkal és metódusokkal: Legyen egy konstruktora, ami paraméterben egy egész számot vár, a kölcsönző kapacitását (azaz, hány autó számára van helyük). Foglalj le dinamikus memóriafoglalással egy tömböt az autók számára (egy tömbben tárold a benzines és hibrid autókat is). Definiáld felül a += operátort, aminek a jobb oldali operandusa egy autóra (benzines, vagy hibrid) mutató referencia. Ez az operátor felveszi a megadott autót a a kölcsönző kínálatába, ha van még szabad hely, egyébként nem csinál semmit. (Az eredeti autót teszi be, nem egy másolatot.) Definiáld felül a tömbindex operátort, ami az autókölcsönzést valósítja meg. Ha van olyan indexű autó, akkor visszaadja azt az autót, kiveszi a tömbből, és kiírja a képernyőre, hogy Jó utat a következő x km-en! (ahol x a kikölcsönzött autó hatótávja). Ha nincs, akkor adjon vissza NULL-t, és írja ki, hogy Nincs bent ilyen számú autó. Definiáld felül a << operátort, ami kiírja a kölcsönzőben bentlévő autók típusát és hatótávját, amihez a korábban megírt hatotav() metódust használod. Készíts copy konstruktort és destruktort az AutoKolcsonzo osztályodhoz. Írj egy main függvényt. Ebben Hozz létre egy kölcsönzőt 5 autó kapacitással. Hozz létre 3 autót (vegyesen benzinest és hibridet). Vedd fel ezeket az autókat a kölcsönződbe. Kölcsönözz ki egy autót, majd próbálj kikölcsönözni egy nem létező indexű autót is. << operátor felhasználásával írasd ki a kölcsönzőben található autókat. Figyelj oda a dinamikus memóriafoglalással kapcsolatos teendőkre! Gondoskodj róla, hogy a HibridAuto esetén a helyes hatotav() metódus hívódjon meg.

15 7. Boltok Bővítsd ki az előző feladatodat egy Plaza osztállyal, ami egy plázát fog jelképezni és tárolja a benne található üzleteket. Ennek az osztálynak az alábbi adattagjai és metódusai legyenek: Legyen egy konstruktora, ami paraméterben az üres üzlethelységek számát várja, és létrehoz egy Bolt objektumokat tároló tömböt dinamikusan. (Egy tömbben tárold a hagyományos és az éjjel-nappal nyitvatartó boltokat.) Definiáld felül az osztály *= operátorát, aminek a jobboldali operandusa egy bolt referencia, és beteszi a megadott boltot az első üres helyre, ha van. Ha nincs, akkor kiírja, hogy Sajnáljuk, megteltünk. és nem csinál semmit. Definiáld felül a Bolt osztály ++ operátorát, ami növeli eggyel az aznapi látogatók számát. Definiáld felül a függvényhívás operátort a Plaza osztályban, ami paraméterben egy órát és egy percet vár. A plázában található boltok nyitvatartása alapján megállapítja, hogy a pláza nyitva van-e még. Egészen addig nyitva van, amíg van benne legalább egy nyitvatartó üzlet. Ehhez használd fel a korábban megírt nyitvae() metódust. Ha a pláza zárva (tehát minden bolt bezárt a megadott időpontig), akkor írd ki, hogy Zárva vagyunk. és a térj vissza hamis logikai értékkel. Egyébként írd ki a még nyitvatartó üzletek nevét és növeld meg a vásárlók számát eggyel (az előbb megírt ++ operátort használva) és térj vissza igaz értékkel. Írj egy main függvényt, amiben: Létrehozol egy Plaza objektumot és pont annyi üzletet, amennyi belefér. Ezeket tedd bele a plázába. Próbáld ki tetszőleges időpontokra, hogy a pláza zárva vagy nyitva van-e? Teszteld a programodat úgy, hogy csak hagyományos boltok vannak, és úgy is, hogy van legalább egy éjjel-nappali. Figyelj oda a dinamikus memóriafoglalással kapcsolatos teendőkre! Gondoskodj róla, hogy az EjjelNappali bolt esetén a helyes nyitvae() metódus hívódjon meg.

3. Osztályok II. Programozás II

3. Osztályok II. Programozás II 3. Osztályok II. Programozás II Bevezető feladat Írj egy Nevsor osztályt, amely legfeljebb adott mennyiségű nevet képes eltárolni. A maximálisan tárolható nevek számát a konstruktorban adjuk meg. Az osztályt

Részletesebben

Programozási nyelvek II. JAVA

Programozási nyelvek II. JAVA Programozási nyelvek II. JAVA 8. gyakorlat 2017. november 6-10. Általános tudnivalók A feladatmegoldás során fontos betartani az elnevezésekre és típusokra vonatkozó megszorításokat, illetve a szövegek

Részletesebben

RESIDENT EVIL CODENAME: NIK

RESIDENT EVIL CODENAME: NIK RESIDENT EVIL CODENAME: NIK Gyakorló zárthelyi dolgozat Figyelem! A feladat mennyiségre több anyagot tartalmaz, mint a zárthelyi dolgozat, amely az órán várható. Ennek oka, hogy több gyakorlásra legyen

Részletesebben

Programozás II gyakorlat. 8. Operátor túlterhelés

Programozás II gyakorlat. 8. Operátor túlterhelés Programozás II gyakorlat 8. Operátor túlterhelés Kezdő feladat Írjunk egy Vector osztályt, amely n db double értéket tárol. A konstruktor kapja meg az elemek számát. Írj egy set(int idx, double v) függvényt,

Részletesebben

C++ programozási nyelv Konstruktorok-destruktorok

C++ programozási nyelv Konstruktorok-destruktorok C++ programozási nyelv Konstruktorok-destruktorok Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet Soós Sándor 2004. szeptember A C++ programozási nyelv Soós Sándor 1/20 Tartalomjegyzék

Részletesebben

Programozás alapjai gyakorlat. 4. gyakorlat Konstansok, tömbök, stringek

Programozás alapjai gyakorlat. 4. gyakorlat Konstansok, tömbök, stringek Programozás alapjai gyakorlat 4. gyakorlat Konstansok, tömbök, stringek Házi ellenőrzés (f0069) Valósítsd meg a linuxos seq parancs egy egyszerűbb változatát, ami beolvas két egész számot, majd a kettő

Részletesebben

Programozás I ZH, Név:... A. csoport EHA: pont Gyakorlatvezető:...

Programozás I ZH, Név:... A. csoport EHA: pont Gyakorlatvezető:... A. csoport EHA:... 1. Készíts egy Hallgato osztályt! Tárold egy hallgató nevét, EHA kódját, valamint egy valós értékben a hallgató szorgosságát (ez 0-1 közötti érték lehet, beállításkor ellenőrizd le,

Részletesebben

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

OOP: Java 8.Gy: Abstract osztályok, interfészek OOP: Java 8.Gy: Abstract osztályok, interfészek 26/1 B ITv: MAN 2019.04.03 Abszrakt metódus és absztrakt osztály. Gyakran előfordul a tervezés során, hogy egy osztály szintjén tudjuk, hogy valamilyen metódus

Részletesebben

C++ programozási nyelv

C++ programozási nyelv C++ programozási nyelv Gyakorlat - 13. hét Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet Soós Sándor 2004. december A C++ programozási nyelv Soós Sándor 1/10 Tartalomjegyzék Objektumok

Részletesebben

Globális operátor overloading

Globális operátor overloading Programozás II. 9. gyakorlat Operátor overloading 2: Unáris operátorok, globálisan megvalósított operátorok, > operátorok Kivételkezelés, IO library Globális operátor overloading Előző alkalommal

Részletesebben

500. AA Megoldó Alfréd AA 500.

500. AA Megoldó Alfréd AA 500. Programozás alapjai 2. NZH 2010.05.13. gyakorlat: / Hiány:0 ZH:0 MEGOLD IB.027/51. Hftest: 0 Minden beadandó megoldását a feladatlapra, a feladat után írja! A megoldások során feltételezheti, hogy minden

Részletesebben

Programozás II. 3. gyakorlat Objektum Orientáltság C++-ban

Programozás II. 3. gyakorlat Objektum Orientáltság C++-ban Programozás II. 3. gyakorlat Objektum Orientáltság C++-ban Tartalom OOP ismétlés Osztályok létrehozása Adattagok láthatóságai, elnevezési ajánlások Konstruktor, destruktor this pointer Statikus és dinamikus

Részletesebben

Programozási nyelvek Java

Programozási nyelvek Java Programozási nyelvek Java 2. gyakorlat Függvények Általános prototípus Módosítószavak Láthatóság: public, protected, private. Ha nem definiált, akkor úgynevezett package-private láthatóság. Lehet abstract

Részletesebben

8. gyakorlat Pointerek, dinamikus memóriakezelés

8. gyakorlat Pointerek, dinamikus memóriakezelés 8. gyakorlat Pointerek, dinamikus memóriakezelés Házi ellenőrzés Egy számtani sorozat első két tagja A1 és A2. Számítsa ki a sorozat N- dik tagját! (f0051) Egy mértani sorozat első két tagja A1 és A2.

Részletesebben

Objektum elvu alkalmaza sok fejleszte se

Objektum elvu alkalmaza sok fejleszte se Objektum elvu alkalmaza sok fejleszte se 3. beadandó feladat Szerző Név: Budai Martin Neptun-kód: PLAB9E E-mail: budai.martin@outlook.com Kurzuskód: 4 Feladat sorszáma: 2 Feladat Egy bolygón különböző

Részletesebben

Bevezetés a programozásba II. 5. Előadás: Másoló konstruktor, túlterhelés, operátorok

Bevezetés a programozásba II. 5. Előadás: Másoló konstruktor, túlterhelés, operátorok Bevezetés a programozásba II 5. Előadás: Másoló konstruktor, túlterhelés, operátorok Emlékeztető struct Vektor { int meret, *mut; Vektor(int meret); int szamlal(int mit); }; int Vektor::szamlal(int mit)

Részletesebben

OOP #14 (referencia-elv)

OOP #14 (referencia-elv) OOP #14 (referencia-elv) v1.0 2003.03.19. 21:22:00 Eszterházy Károly Főiskola Információtechnológia tsz. Hernyák Zoltán adj. e-mail: aroan@ektf.hu web: http://aries.ektf.hu/~aroan OOP OOP_14-1 - E jegyzet

Részletesebben

1. Alapok. Programozás II

1. Alapok. Programozás II 1. Alapok Programozás II Elérhetőség Név: Smidla József Elérhetőség: smidla dcs.uni-pannon.hu Szoba: I916 2 Irodalom Bjarne Stroustrup: A C++ programozási nyelv 3 Irodalom Erich Gamma, Richard Helm, Ralph

Részletesebben

Programozás II. 2. gyakorlat Áttérés C-ről C++-ra

Programozás II. 2. gyakorlat Áttérés C-ről C++-ra Programozás II. 2. gyakorlat Áttérés C-ről C++-ra Tartalom Új kommentelési lehetőség Változók deklarációjának helye Alapértelmezett függvényparaméterek Névterek I/O műveletek egyszerűsödése Logikai adattípus,

Részletesebben

A C programozási nyelv V. Struktúra Dinamikus memóriakezelés

A C programozási nyelv V. Struktúra Dinamikus memóriakezelés A C programozási nyelv V. Struktúra Dinamikus memóriakezelés Miskolci Egyetem Általános Informatikai Tanszék A C programozási nyelv V. (Struktúra, memóriakezelés) CBEV5 / 1 A struktúra deklarációja 1.

Részletesebben

C memóriakezelés. Mutató típusú változót egy típus és a változó neve elé írt csillag karakterrel hozhatjuk létre.

C memóriakezelés. Mutató típusú változót egy típus és a változó neve elé írt csillag karakterrel hozhatjuk létre. C memóriakezelés Ez a kis segédanyag az adatszerkezetek órán használt eszközök megértését hivatott elősegíteni. A teljesség igénye nélkül kerül bemutatásra a mutató típus és a dinamikus memóriakezelés.

Részletesebben

1. Template (sablon) 1.1. Függvénysablon Függvénysablon példányosítás Osztálysablon

1. Template (sablon) 1.1. Függvénysablon Függvénysablon példányosítás Osztálysablon 1. Template (sablon) 1.1. Függvénysablon Maximum függvény megvalósítása függvénynév túlterheléssel. i n l i n e f l o a t Max ( f l o a t a, f l o a t b ) { return a>b? a : b ; i n l i n e double Max (

Részletesebben

Programozás II gyakorlat. 6. Polimorfizmus

Programozás II gyakorlat. 6. Polimorfizmus Programozás II gyakorlat 6. Polimorfizmus Típuskonverziók C-ben: void * ptr; int * ptr_i = (int*)ptr; Ez működik C++-ban is. Használjuk inkább ezt: int * ptr_i = static_cast(ptr); Csak egymással

Részletesebben

Bevezetés a Python programozási nyelvbe

Bevezetés a Python programozási nyelvbe Bevezetés a Python programozási nyelvbe 7. Gyakorlat osztályok, objektumok (utolsó módosítás 2018. aug. 28.) Szathmáry László Debreceni Egyetem Informatikai Kar 2018-2019, 1. félév OO programozás Pythonban

Részletesebben

5. Gyakorlat. struct diak {

5. Gyakorlat. struct diak { Rövid elméleti összefoglaló 5. Gyakorlat Felhasználó által definiált adattípusok: A typedef egy speciális tárolási osztály, mellyel érvényes típusokhoz szinonim nevet rendelhetünk. typedef létező_típus

Részletesebben

Osztályok. 4. gyakorlat

Osztályok. 4. gyakorlat Osztályok 4. gyakorlat Az osztály fogalma Az objektumok formai leírása, melyek azonos tulajdonsággal és operációkkal rendelkeznek. Osztályból objektum készítését példányosításnak nevezzük. Minden objektum

Részletesebben

HORVÁTH ZSÓFIA 1. Beadandó feladat (HOZSAAI.ELTE) ápr 7. 8-as csoport

HORVÁTH ZSÓFIA 1. Beadandó feladat (HOZSAAI.ELTE) ápr 7. 8-as csoport 10-es Keressünk egy egész számokat tartalmazó négyzetes mátrixban olyan oszlopot, ahol a főátló alatti elemek mind nullák! Megolda si terv: Specifika cio : A = (mat: Z n m,ind: N, l: L) Ef =(mat = mat`)

Részletesebben

C# Nyelvi Elemei. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) C# Nyelvi Elemei / 18

C# Nyelvi Elemei. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) C# Nyelvi Elemei / 18 C# Nyelvi Elemei Tóth Zsolt Miskolci Egyetem 2013 Tóth Zsolt (Miskolci Egyetem) C# Nyelvi Elemei 2013 1 / 18 Tartalomjegyzék 1 Object 2 Típusok 3 String 4 RegEx Tóth Zsolt (Miskolci Egyetem) C# Nyelvi

Részletesebben

STL gyakorlat C++ Izsó Tamás május 9. Izsó Tamás STL gyakorlat/ 1

STL gyakorlat C++ Izsó Tamás május 9. Izsó Tamás STL gyakorlat/ 1 STL gyakorlat C++ Izsó Tamás 2016. május 9. Izsó Tamás STL gyakorlat/ 1 Komponensek kapcsolata Deklarálja az alábbi osztálydiagramon szereplő osztályok közül az A, AA és AB osztályokat! A konstruktorokat

Részletesebben

Programozási Nyelvek: C++

Programozási Nyelvek: C++ Programozási Nyelvek: C++ Gyakorló feladatkönyv Umann Kristóf #include "CppStudent.h" int main() { CppStudent *reader = new CppStudent(); reader->readbook(); while(!reader->doesunderstand()) { reader->exercise();

Részletesebben

Szoftvertechnolo gia gyakorlat

Szoftvertechnolo gia gyakorlat Szoftvertechnolo gia gyakorlat Dr. Johanyák Zsolt Csaba http://johanyak.hu 1. Dependency Injection (függőség befecskendezés) tervezési minta A tervezési minta alapgondolata az, hogy egy konkrét feladatot

Részletesebben

BME MOGI Gépészeti informatika 13.

BME MOGI Gépészeti informatika 13. BME MOGI Gépészeti informatika 13. 1. feladat Készítsen alkalmazást, mely elvégzi a következő feladatokat! a. Állítson elő adott intervallumba eső, adott számú véletlen számot, és írja ki a számokat egy

Részletesebben

Smart Pointer koncepciója

Smart Pointer koncepciója Smart Pointer koncepciója ( Egyszerű Smart Pointer implementálása C++ nyelven ) Bevezetés Mik a smart pointer-ek 1? A válasz egyszerű; a smart pointer-ek olyan mutatók amik okosak. Mit is jelent ez pontosan?

Részletesebben

Programozás I. 3. gyakorlat. Szegedi Tudományegyetem Természettudományi és Informatikai Kar

Programozás I. 3. gyakorlat. Szegedi Tudományegyetem Természettudományi és Informatikai Kar Programozás I. 3. gyakorlat Szegedi Tudományegyetem Természettudományi és Informatikai Kar Antal Gábor 1 Primitív típusok Típus neve Érték Alap érték Foglalt tár Intervallum byte Előjeles egész 0 8 bit

Részletesebben

Dokumentáció. 1. Beadandó feladat

Dokumentáció. 1. Beadandó feladat Ballai Brigitta XG3077 gittacska91@gmail.com 2013.11.25. Dokumentáció 1. Beadandó feladat Feladat : A feladat egy kellően bonyolult osztálystruktúra megtervezése és implementálása Java nyelven. Minimális

Részletesebben

OOP: Java 8.Gy: Gyakorlás

OOP: Java 8.Gy: Gyakorlás OOP: Java 8.Gy: Gyakorlás 43/1 B ITv: MAN 2019.04.10 43/2 Egy régebbi beszámoló anyaga 1. Feladat: Készítsen egy Szemely nevű osztályt a szokásos konvenciók betartásával, amely tárolja egy ember nevét

Részletesebben

A feladat lényege egy felhasználói típusnak a zsák típusnak a megvalósítása.

A feladat lényege egy felhasználói típusnak a zsák típusnak a megvalósítása. Feladat Készítsen egy egész számokat tartalmazó zsák típust! A zsákot dinamikusan lefoglalt tömb segítségével ábrázolja! Implementálja a szokásos műveleteket (elem betevése, kivétele, üres-e a halmaz,

Részletesebben

Pelda öröklődésre: import java.io.*; import java.text.*; import java.util.*; import extra.*;

Pelda öröklődésre: import java.io.*; import java.text.*; import java.util.*; import extra.*; Java osztály készítése, adattagok, és metódusok, láthatóság, konstruktor, destruktor. Objektum létrehozása, használata, öröklés. ( Előfeltétel 12. Tétel ) Az osztály egy olyan típus leíró struktúra, amely

Részletesebben

Programozás. (GKxB_INTM021) Dr. Hatwágner F. Miklós április 4. Széchenyi István Egyetem, Gy r

Programozás. (GKxB_INTM021) Dr. Hatwágner F. Miklós április 4. Széchenyi István Egyetem, Gy r Programozás (GKxB_INTM021) Széchenyi István Egyetem, Gy r 2018. április 4. Számok rendezése Feladat: Fejlesszük tovább úgy a buborék rendez algoritmust bemutató példát, hogy a felhasználó adhassa meg a

Részletesebben

Számítástechnika II. BMEKOKAA Előadás. Dr. Bécsi Tamás

Számítástechnika II. BMEKOKAA Előadás. Dr. Bécsi Tamás Számítástechnika II. BMEKOKAA153 5. Előadás Dr. Bécsi Tamás Kivételkezelés try Azon utasítások kerülnek ide, melyek hibát okozhatnak, kivételkezelést igényelnek catch( típus [név]) Adott kivételtípus esetén

Részletesebben

10. gyakorlat Struktúrák, uniók, típusdefiníciók

10. gyakorlat Struktúrák, uniók, típusdefiníciók 10. gyakorlat Struktúrák, uniók, típusdefiníciók Házi - (f0218) Olvass be 5 darab maximum 99 karakter hosszú szót úgy, hogy mindegyiknek pontosan annyi helyet foglalsz, amennyi kell! A sztringeket írasd

Részletesebben

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

Programozás I. Gyakorlás egydimenziós tömbökkel Többdimenziós tömbök Gyakorló feladatok V 1.0 ÓE-NIK-AII, Programozás I. Gyakorlás egydimenziós tömbökkel Többdimenziós tömbök Gyakorló feladatok V 1.0 ÓE-NIK-AII, 2016 1 Hallgatói Tájékoztató A jelen bemutatóban található adatok, tudnivalók és információk a

Részletesebben

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

Szövegek C++ -ban, a string osztály Szövegek C++ -ban, a string osztály A string osztály a Szabványos C++ könyvtár (Standard Template Library) része és bár az objektum-orientált programozásról, az osztályokról, csak később esik szó, a string

Részletesebben

Algoritmusok és adatszerkezetek gyakorlat 06 Adatszerkezetek

Algoritmusok és adatszerkezetek gyakorlat 06 Adatszerkezetek Algoritmusok és adatszerkezetek gyakorlat 06 Adatszerkezetek Tömb Ugyanolyan típusú elemeket tárol A mérete előre definiált kell legyen és nem lehet megváltoztatni futás során Legyen n a tömb mérete. Ekkor:

Részletesebben

OEP Gregorics Tibor: Minta dokumentáció a 3. házi feladathoz 1. Feladat. Elemzés 1

OEP Gregorics Tibor: Minta dokumentáció a 3. házi feladathoz 1. Feladat. Elemzés 1 OEP Gregorics Tibor: Minta dokumentáció a 3. házi feladathoz 1. Feladat Különféle élőlények egy túlélési versenyen vesznek részt. A lények egy pályán haladnak végig, ahol váltakozó terep viszonyok vannak.

Részletesebben

500. CC Megoldó Alfréd CC 500.

500. CC Megoldó Alfréd CC 500. Programozás alapjai 2. PótZH 2010.05.20. gyakorlat: G1/IB.146 Hiány:3 ZH:7,71 MEGOLD SCH/500. Hftest: 0 ZHp: Minden beadandó megoldását a feladatlapra, a feladat után írja! A megoldások során feltételezheti,

Részletesebben

Pénzügyi algoritmusok

Pénzügyi algoritmusok Pénzügyi algoritmusok A C++ programozás alapjai Folyamok kezelése Fájlok írása/olvasása Folyamok kezelése Szabvány folyamok Eddig Kiírás a szöveges konzolra:

Részletesebben

1. Mi a fejállományok szerepe C és C++ nyelvben és hogyan használjuk őket? 2. Milyen alapvető változókat használhatunk a C és C++ nyelvben?

1. Mi a fejállományok szerepe C és C++ nyelvben és hogyan használjuk őket? 2. Milyen alapvető változókat használhatunk a C és C++ nyelvben? 1. Mi a fejállományok szerepe C és C++ nyelvben és hogyan használjuk őket? 2. Milyen alapvető változókat használhatunk a C és C++ nyelvben? 3. Ismertesse a névtér fogalmát! 4. Mit értünk a "változó hatóköre"

Részletesebben

Objektum Orientált Programozás. 11. Kivételkezelés 44/1B IT MAN

Objektum Orientált Programozás. 11. Kivételkezelés 44/1B IT MAN Objektum Orientált Programozás 11. Kivételkezelés 44/1B IT MAN B IT v: 2016.05.03 MAN Pici elmélet A Java kivételkezelésének célja a programfutás során keletkezett hibák kiszűrése és megfelelő kezelése.

Részletesebben

OOP. Alapelvek Elek Tibor

OOP. Alapelvek Elek Tibor OOP Alapelvek Elek Tibor OOP szemlélet Az OOP szemlélete szerint: a valóságot objektumok halmazaként tekintjük. Ezen objektumok egymással kapcsolatban vannak és együttműködnek. Program készítés: Absztrakciós

Részletesebben

7. fejezet: Mutatók és tömbök

7. fejezet: Mutatók és tömbök 7. fejezet: Mutatók és tömbök Minden komolyabb programozási nyelvben vannak tömbök, amelyek gondos kezekben komoly fegyvert jelenthetnek. Először is tanuljunk meg tömböt deklarálni! //Tömbök használata

Részletesebben

Programozas 1. Strukturak, mutatok

Programozas 1. Strukturak, mutatok Programozas 1 Strukturak, mutatok Strukturak Tömb: több egyforma típusú változó együttese Struktúra: több különböző típusú de logikailag egybetartozó változó együttese, amelyet az egyszerű kezelhetőség

Részletesebben

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

Programozás I. Szöveges fájlok kezelése Felsorolástípus Objektumtömb Gyakorló feladatok Programozás I. Szöveges fájlok kezelése Felsorolástípus Objektumtömb Gyakorló feladatok 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

Részletesebben

Programozási nyelvek Java

Programozási nyelvek Java Programozási nyelvek Java 9. gyakorlat Fájlkezelés A fájlkezelés Java-ban különböző osztályok összekapcsolásával történik. Minden egyes osztály valamilyen minimális szolgáltatást tesz hozzá a többihez.

Részletesebben

4. Gy: JAVA osztályok

4. Gy: JAVA osztályok Objektum Orientált Programozás 4. Gy: JAVA osztályok 25/1B IT MAN B IT v: 2016.02.24 MAN Feladatok 1. Készítsen egy Teglalap osztályt - legyen adattagja a két oldal tárolására (egészek) - legyen konstruktora,

Részletesebben

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

Java Programozás 1. Gy: Java alapok. Ismétlés ++ Java Programozás 1. Gy: Java alapok Ismétlés ++ 24/1 B ITv: MAN 2018.02.18 Feladat Készítsünk egy komplett konzolos alkalmazást, mely generál egy számot 0 és 100 között (mindkét határt beleértve), feladatunk

Részletesebben

Programozás II. 4. Dr. Iványi Péter

Programozás II. 4. Dr. Iványi Péter Programozás II. 4. Dr. Iványi Péter 1 inline függvények Bizonyos függvények annyira rövidek, hogy nem biztos hogy a fordító függvényhívást fordít, hanem inkább az adott sorba beilleszti a kódot. #include

Részletesebben

A C programozási nyelv I. Bevezetés

A C programozási nyelv I. Bevezetés A C programozási nyelv I. Bevezetés Miskolci Egyetem Általános Informatikai Tanszék A C programozási nyelv I. (bevezetés) CBEV1 / 1 A C nyelv története Dennis M. Ritchie AT&T Lab., 1972 rendszerprogramozás,

Részletesebben

A C programozási nyelv I. Bevezetés

A C programozási nyelv I. Bevezetés A C programozási nyelv I. Bevezetés Miskolci Egyetem Általános Informatikai Tanszék A C programozási nyelv I. (bevezetés) CBEV1 / 1 A C nyelv története Dennis M. Ritchie AT&T Lab., 1972 rendszerprogramozás,

Részletesebben

BME MOGI Gépészeti informatika 8.

BME MOGI Gépészeti informatika 8. BME MOGI Gépészeti informatika 8. 1. feladat Készítse beosztottak és vezetők munkahelyi adatait kezelő alkalmazást! A feladat megoldásához hozza létre a következő osztályokat! Beosztott osztály: adatmező

Részletesebben

JAVA PROGRAMOZÁS 2.ELŐADÁS

JAVA PROGRAMOZÁS 2.ELŐADÁS Dr. Pál László, Sapientia EMTE, Csíkszereda JAVA PROGRAMOZÁS 2.ELŐADÁS 2014-2015 tavasz Tömbök, osztályok, objektumok, konstruktorok Tömbök 2 Referencia típusú változó Elemtípus Primitív Referencia: osztály,

Részletesebben

Java II. I A Java programozási nyelv alapelemei

Java II. I A Java programozási nyelv alapelemei Java II. I A Java programozási nyelv alapelemei Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2008. 02. 19. Java II.: Alapelemek JAVA2 / 1 A Java formalizmusa A C, illetve az annak

Részletesebben

feladat pont min elért

feladat pont min elért NEPTUN kód: NÉV: Aláírás: Programozás 2. NZH, 2017. május 11. BME-TTK, fizika BSc Arcképes igazolvány hiányában nem kezdheted meg a ZH-t. A feladatok megoldására összesen 90 perc áll rendelkezésre. A feladatlapot

Részletesebben

és az instanceof operátor

és az instanceof operátor Java VIII. Az interfacei és az instanceof operátor Krizsán Zoltán Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2005. 10. 24. Java VIII.: Interface JAVA8 / 1 Az interfészről általában

Részletesebben

Java VIII. Az interfacei. és az instanceof operátor. Az interfészről általában. Interfészek JAVA-ban. Krizsán Zoltán

Java VIII. Az interfacei. és az instanceof operátor. Az interfészről általában. Interfészek JAVA-ban. Krizsán Zoltán Java VIII. Az interfacei és az instanceof operátor Krizsán Zoltán Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2005. 10. 24. Java VIII.: Interface JAVA8 / 1 Az interfészről általában

Részletesebben

BME MOGI Gépészeti informatika 7.

BME MOGI Gépészeti informatika 7. BME MOGI Gépészeti informatika 7. 1. feladat Írjon Windows Forms alkalmazást egy kör és egy pont kölcsönös helyzetének vizsgálatára! A feladat megoldásához hozza létre a következő osztályokat! Pont osztály:

Részletesebben

Pénzügyi algoritmusok

Pénzügyi algoritmusok Pénzügyi algoritmusok A C++ programozás alapjai Sztringek Osztályok alapjai Sztringek Szöveges adatok kezelése Sztring Karakterlánc (string): Szöveges adat Karaktertömbként tárolva A szöveg végét a speciális

Részletesebben

Visual C++ osztály készítése, adattagok, és metódusok, láthatóság, konstruktor, destruktor. Objektum létrehozása, használata, öröklés.

Visual C++ osztály készítése, adattagok, és metódusok, láthatóság, konstruktor, destruktor. Objektum létrehozása, használata, öröklés. Visual C++ osztály készítése, adattagok, és metódusok, láthatóság, konstruktor, destruktor. Objektum létrehozása, használata, öröklés. Az osztály egy olyan típus leíró struktúra, amely tartalmaz adattagokat

Részletesebben

Feladat. Bemenő adatok. Bemenő adatfájlok elvárt formája. Berezvai Dániel 1. beadandó/4. feladat 2012. április 13. Például (bemenet/pelda.

Feladat. Bemenő adatok. Bemenő adatfájlok elvárt formája. Berezvai Dániel 1. beadandó/4. feladat 2012. április 13. Például (bemenet/pelda. Berezvai Dániel 1. beadandó/4. feladat 2012. április 13. BEDTACI.ELTE Programozás 3ice@3ice.hu 11. csoport Feladat Madarak életének kutatásával foglalkozó szakemberek különböző településen különböző madárfaj

Részletesebben

Gyakorlati vizsgatevékenység A

Gyakorlati vizsgatevékenység A Gyakorlati vizsgatevékenység A Szakképesítés azonosító száma, megnevezése: 481 04 0000 00 00 Web-programozó Vizsgarészhez rendelt követelménymodul azonosítója, megnevezése: 1189-06 Web-alkalmazás fejlesztés

Részletesebben

INFORMATIKA javítókulcs 2016

INFORMATIKA javítókulcs 2016 INFORMATIKA javítókulcs 2016 ELMÉLETI TÉTEL: Járd körbe a tömb fogalmát (Pascal vagy C/C++): definíció, egy-, két-, több-dimenziós tömbök, kezdőértékadás definíciókor, tömb típusú paraméterek átadása alprogramoknak.

Részletesebben

Felhasználó által definiált adattípus

Felhasználó által definiált adattípus Felhasználó által definiált adattípus C++ Izsó Tamás 2017. február 24. Izsó Tamás Felhasználó által definiált adattípus/ 1 Irodalom Izsó Tamás Felhasználó által definiált adattípus/ 2 Programtervezési

Részletesebben

Programozás alapjai gyakorlat. 2. gyakorlat C alapok

Programozás alapjai gyakorlat. 2. gyakorlat C alapok Programozás alapjai gyakorlat 2. gyakorlat C alapok 2016-2017 Bordé Sándor 2 Forráskód, fordító, futtatható állomány Először megírjuk a programunk kódját (forráskód) Egyszerű szövegszerkesztőben vagy fejlesztőkörnyezettel

Részletesebben

Rendszerterv. Makoviczki András. Neptun: JJ26AR 2012.11.29.

Rendszerterv. Makoviczki András. Neptun: JJ26AR 2012.11.29. Rendszerterv Makoviczki András Neptun: JJ26AR 2012.11.29. Rendszerterv 2. Tartalomjegyzék 1. A program célja... 3 2. A rendszerterv célja... 3 3. A program adatkezelése... 3 3.1. Adatfájlok... 4 4. A program

Részletesebben

Java és web programozás

Java és web programozás Budapesti M szaki Egyetem 2013. szeptember 25. 3. El adás User public class User { private String realname_; private String nickname_; private String password_; public User(String realname, String nickname)

Részletesebben

Programozás alapjai II. (4. ea) C++

Programozás alapjai II. (4. ea) C++ Programozás alapjai II. (4. ea) C++ konstruktor és értékadás, dinamikus szerkezetek Szeberényi Imre BME IIT M Ű E G Y T E M 1 7 8 2 C++ programozási nyelv BME-IIT Sz.I. 2011.03.01. -1-

Részletesebben

Programozás C++ -ban 2007/7

Programozás C++ -ban 2007/7 Programozás C++ -ban 2007/7 1. Másoló konstruktor Az egyik legnehezebben érthető fogalom C++ -ban a másoló konstruktor, vagy angolul "copy-constructor". Ez a konstruktor fontos szerepet játszik az argumentum

Részletesebben

INFORMATIKAI ALAPISMERETEK

INFORMATIKAI ALAPISMERETEK Informatikai alapismeretek középszint 0721 ÉRETTSÉGI VIZSGA 2007. október 24. INFORMATIKAI ALAPISMERETEK KÖZÉPSZINTŰ ÍRÁSBELI ÉRETTSÉGI VIZSGA JAVÍTÁSI-ÉRTÉKELÉSI ÚTMUTATÓ OKTATÁSI ÉS KULTURÁLIS MINISZTÉRIUM

Részletesebben

Programozás I gyakorlat

Programozás I gyakorlat Programozás I. - 2. gyakorlat Változók, kiiratás, bekérés Tar Péter 1 Pannon Egyetem M szaki Informatikai Kar Számítástudomány Alkalmazása Tanszék Utolsó frissítés: September 24, 2007 1 tar@dcs.vein.hu

Részletesebben

128. AA Megoldó Alfréd AA 128.

128. AA Megoldó Alfréd AA 128. Programozás alapjai 2. PótZH 2010.05.20. gyakorlat: Hiány:0 ZH: MEGOLD SEHOL/5. Hftest: 0 ZHp: Minden beadandó megoldását a feladatlapra, a feladat után írja! A megoldások során feltételezheti, hogy minden

Részletesebben

Objektumorientált programozás C# nyelven

Objektumorientált programozás C# nyelven Objektumorientált programozás C# nyelven 2. rész Öröklés és többalakúság Nemvirtuális metódusok, elrejtés Virtuális metódusok, elrejtés Típuskényszerítés, az is és as operátorok Absztrakt osztályok, absztrakt

Részletesebben

Programozás C++ -ban

Programozás C++ -ban 8. Dinamikus objektumok Programozás C++ -ban Ahhoz hogy általános prolémákat is meg tudjunk oldani, szükség van arra, hogy dinamikusan hozhassunk létre vagy szüntethessünk meg objektumokat. A C programozási

Részletesebben

Bevezetés a programozásba Előadás: Tagfüggvények, osztály, objektum

Bevezetés a programozásba Előadás: Tagfüggvények, osztály, objektum Bevezetés a programozásba 2 1. Előadás: Tagfüggvények, osztály, objektum Ismétlés int main() { string s; s; s= bla ; cout

Részletesebben

ELTE SAP Excellence Center Oktatóanyag 1

ELTE SAP Excellence Center Oktatóanyag 1 Oktatóanyag 1 Oktatóanyag 2 Az oktatás folyamán használt példák a fent látható egyszerű modell implementációi. Oktatóanyag 3 A definíciós részben definiálja a fejlesztő az egyes attribútumokat, metódusokat,

Részletesebben

Programozási nyelvek Java

Programozási nyelvek Java Programozási nyelvek Java Kozsik Tamás előadása alapján Készítette: Nagy Krisztián 13. előadás Throwable Error Exception RuntimeException IOException Saját (általában) Nem ellenörzött kivételek (Unchecked

Részletesebben

Programozás I. - 11. gyakorlat

Programozás I. - 11. gyakorlat Programozás I. - 11. gyakorlat Struktúrák, gyakorlás Tar Péter 1 Pannon Egyetem M szaki Informatikai Kar Rendszer- és Számítástudományi Tanszék Utolsó frissítés: November 16, 2009 1 tar@dcs.vein.hu Tar

Részletesebben

C programozási nyelv Pointerek, tömbök, pointer aritmetika

C programozási nyelv Pointerek, tömbök, pointer aritmetika C programozási nyelv Pointerek, tömbök, pointer aritmetika Dr. Schuster György 2011. június 16. C programozási nyelv Pointerek, tömbök, pointer aritmetika 2011. június 16. 1 / 15 Pointerek (mutatók) Pointerek

Részletesebben

AWK programozás, minták, vezérlési szerkezetek

AWK programozás, minták, vezérlési szerkezetek 10 AWK programozás, minták, vezérlési szerkezetek AWK adatvezérelt szkriptnyelv text processing, adat kiterjesztés, tagolt adatok automatizált soronkénti feldolgozása a forrásállományt soronként beolvassa

Részletesebben

Programozás alapjai. 10. előadás

Programozás alapjai. 10. előadás 10. előadás Wagner György Általános Informatikai Tanszék Pointerek, dinamikus memóriakezelés A PC-s Pascal (is) az IBM PC memóriáját 4 fő részre osztja: kódszegmens adatszegmens stackszegmens heap Alapja:

Részletesebben

A következő táblázat tartalmazza az egyes fajták jellemzőit.

A következő táblázat tartalmazza az egyes fajták jellemzőit. Az alábbi feladatok megoldásához több olyan osztályt kell használni, amelyek egy közös ősosztályból származnak és felüldefiniálják az ősosztály virtuális metódusait. Ezen osztályok objektumait egy gyűjteménybe

Részletesebben

Statikus adattagok. Statikus adattag inicializálása. Speciális adattagok és tagfüggvények. Általános Informatikai Tanszék

Statikus adattagok. Statikus adattag inicializálása. Speciális adattagok és tagfüggvények. Általános Informatikai Tanszék Speciális adattagok és tagfüek Miskolci Egyetem Általános Informatikai Tanszék CPP7 / 1 Statikus adattagok Bármely adattag lehet static tárolási osztályú A statikus adattag az osztály valamennyi objektuma

Részletesebben

HTML ÉS PHP ŐSZI FÉLÉV

HTML ÉS PHP ŐSZI FÉLÉV 1 HTML ÉS PHP ŐSZI FÉLÉV Szövegek kezelése PHP-val 2 Szövegek tárolása Az UTF-8 kicsit részletesebben 3 Az UTF-8 minden karaktert 1-6 bájton tárol Ez összesen 1 111 998 különböző karakter tárolását teszi

Részletesebben

OOP: Java 11.Gy: Enumok, beágyazott osztályok. 13/1 B ITv: MAN

OOP: Java 11.Gy: Enumok, beágyazott osztályok. 13/1 B ITv: MAN OOP: Java 11.Gy: Enumok, beágyazott osztályok 13/1 B ITv: MAN 2019.04.24 ArrayList Rugalmas tömb A tömbök korlátai Fix méret, nem lehet menet közben megnövelni Ha túl nagyra választjuk, fölösleges helyfoglalás

Részletesebben

Bevezetés a programozásba I.

Bevezetés a programozásba I. Bevezetés a programozásba I. 6. gyakorlat C++ alapok, szövegkezelés Surányi Márton PPKE-ITK 2010.10.12. Forrásfájlok: *.cpp fájlok Fordítás: a folyamat, amikor a forrásfájlból futtatható állományt állítunk

Részletesebben

GenerikusOsztály<objektumtípus> objektum = new GenerikusOsztály<objektumtípus>();

GenerikusOsztály<objektumtípus> objektum = new GenerikusOsztály<objektumtípus>(); BME MOGI Gépészeti informatika 17. A C# nyelv generikus típusait a System.Collections.Generics névtérben találhatjuk meg. Ez a névtér számos osztályt és interfészt tartalmaz, amelyek lehetővé teszik előre

Részletesebben

Keresés és rendezés. A programozás alapjai I. Hálózati Rendszerek és Szolgáltatások Tanszék Farkas Balázs, Fiala Péter, Vitéz András, Zsóka Zoltán

Keresés és rendezés. A programozás alapjai I. Hálózati Rendszerek és Szolgáltatások Tanszék Farkas Balázs, Fiala Péter, Vitéz András, Zsóka Zoltán Keresés Rendezés Feladat Keresés és rendezés A programozás alapjai I. Hálózati Rendszerek és Szolgáltatások Tanszék Farkas Balázs, Fiala Péter, Vitéz András, Zsóka Zoltán 2016. november 7. Farkas B., Fiala

Részletesebben

Készítette: Nagy Tibor István

Készítette: Nagy Tibor István Készítette: Nagy Tibor István A változó Egy memóriában elhelyezkedő rekesz Egy értéket tárol Van azonosítója (vagyis neve) Van típusa (milyen értéket tárolhat) Az értéke értékadással módosítható Az értéke

Részletesebben

Az osztályok csomagokba vannak rendezve, minden csomag tetszőleges. Könyvtárhierarhiát fed: Pl.: java/util/scanner.java

Az osztályok csomagokba vannak rendezve, minden csomag tetszőleges. Könyvtárhierarhiát fed: Pl.: java/util/scanner.java Függvények, csomagok Csomagok Az osztályok csomagokba vannak rendezve, minden csomag tetszőleges számú osztályt tartalmazhat Pl.: java.util.scanner Könyvtárhierarhiát fed: Pl.: java/util/scanner.java Célja:

Részletesebben

Programozási alapismeretek 4.

Programozási alapismeretek 4. Programozási alapismeretek 4. Obejktum-Orientált Programozás Kis Balázs Bevezetés I. Az OO programozási szemlélet, egy merőben más szemlélet, az összes előző szemlélettel (strukturális, moduláris, stb.)

Részletesebben

Smalltalk 3. Osztályok létrehozása. Készítette: Szabó Éva

Smalltalk 3. Osztályok létrehozása. Készítette: Szabó Éva Smalltalk 3. Osztályok létrehozása Készítette: Szabó Éva Metaosztály fogalma Mint korában említettük, a Smalltalkban mindent objektumnak tekintünk. Még az osztályok is objektumok. De ha az osztály objektum,

Részletesebben