Objektum elvu alkalmaza sok fejleszte se

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

Programozási technológia I. 1. beadandó feladatsor

1. beadandó feladat: objektumorientált konzol felületű alkalmazás

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

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

3. beadandó feladat: Osztályszerkezet megvalósítása. Közös követelmények:

Programozási nyelvek II. JAVA

OAF Gregorics Tibor: Minta dokumentáció a 3. házi feladathoz 1.

Programozás(A szakirány) II. beadandó feladat Farkas András HP6S15 1. csoport Veszprémi Anna / Hudoba Péter

Programozás Minta programterv a 1. házi feladathoz 1.

ELTE SAP Excellence Center Oktatóanyag 1

Dokumentáció. 1. Beadandó feladat

C++ programozási nyelv

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

Programozás 2. gyakorlat

Algoritmizálás és adatmodellezés tanítása beadandó feladat: Algtan1 tanári beadandó /99 1

A Java nyelv. Dialógus ablakok. Elek Tibor

Programozási nyelvek Java

Programozási nyelvek II.: JAVA

Rendszerterv. Makoviczki András. Neptun: JJ26AR

Egyetemi könyvtári nyilvántartó rendszer

Programozási nyelvek Java

Programozási nyelvek II.: JAVA

Programozási nyelvek II. JAVA

2. Készítsen awk szkriptet, amely kiírja az aktuális könyvtár összes alkönyvtárának nevét, amely februári keltezésű (bármely év).

3. Osztályok II. Programozás II

Bevezetés a programozásba I 4. gyakorlat. PLanG: Szekvenciális fájlkezelés. Szekvenciális fájlkezelés Fájlok használata

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

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?

Bevezetés a programozásba I 4. gyakorlat. PLanG: Szekvenciális fájlkezelés

Gyakorlati vizsgatevékenység A

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

Flex tutorial. Dévai Gergely

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

BASH SCRIPT SHELL JEGYZETEK

Entity Framework alapú adatbáziselérés

Algoritmizálás és adatmodellezés tanítása beadandó feladat: Algtan1 tanári beadandó /99 1

I. Specifikáció készítés. II. Algoritmus készítés

WEBFEJLESZTÉS 2. ADATBÁZIS-KEZELÉS, OSZTÁLYOK

Miután létrehoztuk, szeretnénk neki beszédesebb nevet adni. A név változtatásához a következőt kell tenni:

Objektumorientált programozás C# nyelven

Mintavételes szabályozás mikrovezérlő segítségével

INFORMATIKAI ALAPISMERETEK

Elemi alkalmazások fejlesztése I. Olvassunk be egy fájlból egész számokat egy tömbbe. Keressük meg a tömb valamely

Java és web programozás

length (s): Az s karaklerlánc hossza, substr(s,m,n): Az s mezőben levő karakterláncnak az m-edik karakterétől kezdődő, n darab karaktert vágja ki.

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

INFORMATIKAI ALAPISMERETEK

Az SQL*Plus használata

Pénzügyi algoritmusok

A függvény kód szekvenciáját kapcsos zárójelek közt definiáljuk, a { } -ek közti részt a Bash héj kód blokknak (code block) nevezi.

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

Egyetemi könyvtári nyilvántartó rendszer

Bevezetés a programozásba I 10. gyakorlat. C++: alprogramok deklarációja és paraméterátadása

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

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

Gyakorló feladatok az 1. nagy zárthelyire

Programozás I gyakorlat

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

Java és web programozás

C++ programozási nyelv Konstruktorok-destruktorok

RESIDENT EVIL CODENAME: NIK

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 II. 3. gyakorlat Objektum Orientáltság C++-ban

A gyakorlat során az alábbi ábrán látható négy entitáshoz kapcsolódó adatbevitelt fogjuk megoldani.

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

Objektum elvű alkalmazások fejlesztése 3. beadandó

Szkriptnyelvek. 1. UNIX shell

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

Objektumorientált Programozás V.

Készítette: Nagy Tibor István

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!

Elemi Alkalmazások Fejlesztése II.

MODULATOR Számítógépes program Commodore 64-re a párhuzamos rezgések összetételének tanulmányozására

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

Algoritmusok, adatszerkezetek, objektumok

Szöveges fájl kezelése (a Caesar-kód feltörése) A kód feltörésének statisztikai háttere

Objektum Orientált Programozás V.

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

OOP. Alapelvek Elek Tibor

Í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!

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

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

4. Gy: JAVA osztályok

Programozási alapismeretek 4.

BME MOGI Gépészeti informatika 8.

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

III. OOP (objektumok, osztályok)

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

Oktatási Hivatal. A 2014/2015 tanévi Országos Középiskolai Tanulmányi Verseny döntő fordulójának feladatai. II. (programozás) kategória

Operációs rendszerek. 4. gyakorlat. BASH bevezetés, script írása, futtatása UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

Bevezetés a programozásba I.

ELTE, Informatikai Kar december 12.

Programozás alapjai 2.Gy: A C nyelv alapjai P R O

Ezek után már csak a Mentés és a Lekérdezés Futtatása (az ellenőrzés miatt) van hátra. Ügyeljünk, hogy a mentésnél a megadott (Kezd) nevet adjuk meg.

AWK programozás Bevezetés

Java és web programozás

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

Szerző Lővei Péter LOPSAAI.ELTE IP-08PAEG/25 Daiki Tennó

Bevezetés a programozásba I.

Átírás:

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ő fajtájú növények élnek, minden növény tápanyagot használ. Ha egy növény tápanyaga elfogy (a mennyisége 0 lesz), a növény elpusztul. A bolygón három fajta sugárzást különböztetünk meg: alfa sugárzás, delta sugárzás, nincs sugárzás. A sugárzásra a különböző fajtájú élő növények eltérő módon reagálnak. A reakció tartalmazza a tápanyag változását, illetve a következő napi sugárzás befolyásolását. A másnapi sugárzás alakulása: ha az alfa sugárzásra beérkezett igények összege legalább hárommal meghaladja a delta sugárzás igényeinek összegét, akkor alfa sugárzás lesz; ha a delta sugárzásra igaz ugyanez, akkor delta sugárzás lesz; ha a két igény közti eltérés háromnál kisebb, akkor nincs sugárzás. Az első nap sugárzás nélküli. Szimuláljuk a növények viselkedését és minden lépésben írjuk ki az összes növényt a rájuk jellemző tulajdonságokkal, valamint az aktuális sugárzást! Minden növény jellemzői: az egyedi neve (string), a rendelkezésre álló tápanyag mennyisége (egész), hogy él-e (logikai). A szimulációban részt vevő növények fajtái a következők: puffancs, deltafa, parabokor. A következőkben megadjuk, hogy az egyes fajták miként reagálnak a különböző sugárzásokra. Először a tápanyag változik, és ha a növény ezután él, akkor befolyásolhatja a sugárzást. A program egy szövegfájlból olvassa be a szimuláció adatait! Az első sorban a növények száma szerepel. A következő sorok tartalmazzák a növények adatait szóközökkel elválasztva: a növény nevét, a fajtáját és a kezdetben rendelkezésére álló tápanyag mennyiségét. A fajtát egy karakter azonosít: a - puffancs, d - deltafa, p -parabokor. A növényeket leíró részt követő sorban a szimuláció napjainak száma adott egész számként. A program kérje be a fájl nevét, majd jelenítse meg a túlélők nevét! (Feltehetjük, hogy a fájl formátuma helyes.) 3. beadandó feladat 1

Statikus osztálymodell Simulation A Simulation osztály futtatja a szimulációt, tárolja a résztvevő növényeket és a sugárzás mértékét. A metódusok közül (a konstruktoron és a destruktoron kívül) csak a Run publikus. Adattagjai: numberofplants: a szimulációban résztvevő növények száma plnats: tárolja a szimulációban résztvevő növényeket days: a szimuláció hossza input: a futtatáshoz szükséges adatokat tartalmazó fájl HAARP: a napi sugárzás fajtája Metódusai: Simulation: konstruktor, megnyitja az input fájlt és beolvassa a növények és napok számát, valamint a növények adatait ~Simulation: destruktor, törli a növényeket tartalmazó tömböt és bezárja az input fájlt sethaarp: beállítja a napi sugárzást a növények sugárzásigényének megfelelően gethaarp: kiírja, hogy jelenleg milyen sugárzás hat a növényekre listplants: kilistázza az összes növényt, és azok minden adatát, illetve azt is kijelzi, hogy az adott növény elpusztult-e listsurvivors: kilistázza azoknak a növényeknek a nevét, akik életben vannak Run: lefuttatja a szimulációt Sugárzás Egy felsoroló, amely a lehetséges sugárzásokat tartalmazza. Értékei a következők lehetnek: Alpha Delta None 3. beadandó feladat 2

Plants Ez egy absztrakt osztály, melyből az összes növény származik. Adattagjai: name: a növény neve nutrition: a növény tápanyagszintje HAARPinfluence: a növény sugárigénye life: értéke igaz, ha még él a növény Metódusai: Plant: konstruktor, kötelező megadni a növény nevét és a kezdeti tápanyagértékét. Emellett a life változót igazra állítja, és nullázza a sugárigényt. setnutrition: absztrakt metódus, a napi sugárzás függvényében beállítja a növény tápanyagszintjét sethaarpinfluence: absztrakt metódus, beállítja a növény napi sugárigényét gethaarpinfluence: visszaadja a növény napi sugárigényének mértékét getname: visszaadja a növény nevét killattempt: absztrakt metódus, megpróbálja megölni a növényt. Alapértelmezett esetben a növény akkor pusztul el, ha tápanyagszintje 0, vagy az alá kerül. isdead: megadja, hogy elpusztult-e a növény Puffancs és metódusai nincsenek. Viselkedését az alábbi táblázat írja le. Sugárzás típusa Tápanyag változása Alpha +2 Delta -2 None -1 A növény minden esetben 10-tápanyag mértékben növeli az Alpha sugárzás mértékét. A növény elpusztul, ha a tápanyag mértéke 10 fölé emelkedik. Deltafa és metódusai nincsenek. Viselkedését az alábbi táblázatok írják le. Sugárzás típusa Tápanyag változása Alpha -3 Delta +4 None -1 Tápanyag mennyisége Sugárigény < +4 Delta - 10 +1 Delta > 10-3. beadandó feladat 3

Parabokor és metódusai nincsenek. Akár alfa, akár delta sugárzás hatására a tápanyag mennyisége eggyel nő. Sugárzás nélküli napon a tápanyag eggyel csökken. A másnapi sugárzást nem befolyásolja. Megvalósítás A szimulációt a Simulation osztály vezérli. A főprogramban egy ilyen osztályt hozunk létre, és a szimulációt a Run()metódussal futtatjuk le. Először kiírja a kezdőállapotot, tehát a konsturktor által beolvasott adatokat. Ezután egy ciklus következik, amely annyiszor fut le, ahány napig tart a szimuláció. Minden egyes nap először beállítjuk a növények tápanyagmennyiségét, majd ellenőrizzük, hogy életben maradt-e, és ha igen, akkor beállítjuk a napi sugárigényét. Miután ezt minden növénnyel megtettük, akkor beállítjuk a következő nap sugárzását és kiírjuk a növények új adatait. Végül, a ciklus lefutása után listázzuk az életben maradt növények neveit. Tesztelési terv A példában megadott bemenet (teszt.txt) 4 Falánk a 2 Sudár d Köpcös p 4 Nyúlánk d 3 10 Sudár Nyúlánk Csak Puffancsok (puffancs.txt) 4 Puff a 7 Paff a 4 Piff a 3 Peff a 7 Piff Csak Deltafák (delta.txt) 3 Deltinátor d 6 Deltina d 3 Della d 4 7 Deltinátor Deltina Della 3. beadandó feladat 4

Csak Parabokrok (para.txt) 3 Paraúr p 6 Paráné p 3 Parácska p 2 Paraúr 0 db növény (nulla.txt) 0 0 napig futtatott szimuláció (nulla_nap.txt) Para p Puff a 4 Deltorio d 2 Levélke a 2 Epszilon d 3 0 Para Puff Deltorio Levélke Epszilon Nem létező fájl megadása esetén a program újból bekéri a fájl nevét Helytelenül kitöltött fájl esetén a program helytelenül működik 3. beadandó feladat