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.



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

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

Programozási nyelvek II. JAVA

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

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

1. beadandó feladat: Programozási tételek alkalmazása. Közös követelmények:

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

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

Occam 1. Készítette: Szabó Éva

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

BASH script programozás II. Vezérlési szerkezetek

INFORMATIKAI ALAPISMERETEK

Algoritmizálás, adatmodellezés tanítása 6. előadás

1. Alapok. #!/bin/bash

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

7. Laboratóriumi gyakorlat: Vezérlési szerkezetek II.

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

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

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

Programozás I. gyakorlat

Magas szintű programozási nyelvek 1 beugró (levelező tagozat) május 19.

Konzolalkalmazások gyors tesztelése

file./script.sh > Bourne-Again shell script text executable << tartalmat néz >>

ÉVFOLYAM ZH PRÓBA. Feladat (projekt- és exe-név: miki; tömörített fájl neve: EHA-kód)

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

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

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

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

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

Felvételi tematika INFORMATIKA

INFORMATIKAI ALAPISMERETEK

Operációs rendszerek. 9. gyakorlat. BASH recap, reguláris kifejezések UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

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

HASZNÁLATI ÚTMUTATÓ DOLGOZÓK IMPORTÁLÁSA KULCS BÉR PROGRAMBA AZ ONLINE MUNKAIDŐ NYILVÁNTARTÓ RENDSZERBŐL. Budapest, november 08.

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

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

Szkriptnyelvek. 1. UNIX shell

Operációs Rendszerek II. labor. 2. alkalom

INFORMATIKAI ALAPISMERETEK

Kinek szól a könyv? A könyv témája A könyv felépítése Mire van szükség a könyv használatához? A könyvben használt jelölések. 1. Mi a programozás?

Bevezetés a programozásba I 3. gyakorlat. PLanG: Programozási tételek. Programozási tételek Algoritmusok

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

Programtervezés. Dr. Iványi Péter

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

Munka állományokkal. mv: áthelyezés (átnevezés) rm: törlés. rmdir: üres könyvtár törlése. -r, -R: rekurzív (könyvtár) -r, -R: rekurzív (könyvtár)

INFORMATIKA tétel 2019

Bevezetés az informatikába

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.

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

Operációs rendszerek. 9. gyakorlat. Reguláris kifejezések - alapok, BASH UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

INFORMATIKAI ALAPISMERETEK

A félév során előkerülő témakörök

Megoldások a mintavizsga kérdések a VIMIAC04 tárgy ellenőrzési technikák részéhez kapcsolódóan (2017. május)

1. Egyszerű (primitív) típusok. 2. Referencia típusok

Specifikáció alapú teszttervezési módszerek

Specifikáció alapú teszttervezési módszerek

Példatár a bevezetés a Matlab programozásába tárgyhoz

Megjegyzés: A programnak tartalmaznia kell legalább egy felhasználói alprogramot. Példa:

Programozási nyelvek Java

Regionális forduló november 18.

Programozási nyelvek a közoktatásban alapfogalmak I. előadás

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

Bevezetés a programozásba I.

3. modul - Szövegszerkesztés

S z á m í t ó g é p e s a l a p i s m e r e t e k

AWK programozás Bevezetés

Mérnöki programozás 7. Szerkesztette: dr. Vass Péter Tamás

end function Az A vektorban elõforduló legnagyobb és legkisebb értékek indexeinek különbségét.. (1.5 pont) Ha üres a vektor, akkor 0-t..

MŰSZAKI TESZTTERVEZÉSI TECHNIKÁK A TESZT FEJLESZTÉSI FOLYAMATA A TESZTTERVEZÉSI TECHNIKÁK KATEGÓRIÁI

INFORMATIKAI ALAPISMERETEK

Ismerkedjünk tovább a számítógéppel. Alaplap és a processzeor

Térinformatikai algoritmusok Elemi algoritmusok

3. ZH-ban a minimum pontszám 15

A számok kiíratásának formátuma

JUnit. JUnit használata. IDE támogatás. Parancssori használat. Teszt készítése. Teszt készítése

Operációs rendszerek 1.

Egyszerűbb a Google keresőbe beírni a Sharepoint Designer 2007 letöltés kulcsszavakat és az első találat erre a címre mutat.

Programozás II. előadás

Véletlen sorozatok ellenőrzésének módszerei. dolgozat

ELEMI PROGRAMOZÁSI TÉTELEK

Unit Teszt. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) Unit Teszt / 22

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

Dokumentáció az 1. feladatsorhoz (egyszerű, rövidített kivitelben)

Flex tutorial. Dévai Gergely

Térinformatikai algoritmusok Elemi algoritmusok

Programozás alapjai 9.Gy: Struktúra 2.

9. előadás. Programozás-elmélet. Programozási tételek Elemi prog. Sorozatszámítás Eldöntés Kiválasztás Lin. keresés Megszámolás Maximum.

Automatikus tesztgenerálás modell ellenőrző segítségével

PROGRAMOZÁS tantárgy. Gregorics Tibor egyetemi docens ELTE Informatikai Kar

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

XCZ állományok ellenőrzése, átadása elektronikus beküldésre és közvetlen beküldése parancssori funkcióval az ÁNYK programban

Programozás C nyelven 5. ELŐADÁS. Sapientia EMTE

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).

BASH SCRIPT SHELL JEGYZETEK

INFORMATIKAI ALAPISMERETEK

Adóhátralék kezelés egyszerűen. Használati útmutató

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

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

Objektumorientált programozás Pál László. Sapientia EMTE, Csíkszereda, 2014/2015

HTML ÉS PHP ŐSZI FÉLÉV

Átírás:

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 előfordulását tanulmányozzák. Egy adott időszakban megszámolták, hogy az egyes településen egy madárfajnak hány egyedével találkoztak. Melyik az a madárfaj, amelyik a leggyakrabban (azaz a legtöbb településen) fordult elő? Bemenő adatok A program billentyűzetről vagy fájlból is tud bemeneti adatokat fogadni. Kimenetét a konzolra írja, melyet fájlba irányíthatunk vagy megtekinthetünk a képernyőn. A bemeneti fájlt paraméterként kell megadni. Ha nincs paraméter, a program automatikusan billentyűzetről kezd olvasni. elepülés 1 elepülés 2 elepülés n elepülések száma Madárfaj 1 Madárfaj 2 Madárfaj m Bemenő adatfájlok elvárt formája { db madárfaj} { db településnév} { méretű mátri } A szöveges állomány formátumáról feltételezzük, hogy helyes. Például (bemenet/pelda.txt) eketerigó eréb Budapest Esztergom Pécs

Specifikáció eltételes ma imumkeresésbe ágyazott számlálás. Azért nem az egyszerűbb ma imumkiválasztás tételt választottam, mert ha minden madár előfordulása minden településen, akkor nem szeretnék megoldást visszaadni. Inkább kiírnám, hogy nincs elég madár. eltételes ma imumkeresés ( [ ]) ( [ ] [ ] ) ( ( [ ] [ ] [ ] ( [ ] [ ] [ ])) ) ( [ ]) A nem megengedett ( [ ]) értékadást kitranszformáljuk: Számlálás [ ] [ ] ( [ ] ) ( [ ]) [ ]

Implementáció Adattípusok megvalósítása Kódoláskor a vektort -ként deklaráljuk, amelynek méretei () és [ ] () alakban érhetők el. A és a vektorokban tároljuk a neveket. (Lehetne tömbben is.) Programozási trükkök / szükségletek C++-ban a vektorokat -tól inde eljük, ezért a tervbeli ciklus nem az [ ], hanem a [ ) jobb oldalon nyílt intervallumot futja be. A hármas ( ) értékadást a következőképpen oldottam meg. Először bevezettem egy nevű osztályt: { } Majd a feltételes ma imumkeresés végén létrehoztam ennek egy objektumát és feltöltöttem a visszatérési értékekkel: égül visszatértem vele: üggvények kapcsolódási szerkezete Az előző beadandómhoz képest most sokkal egyszerűbb függvényszerkezettel dolgoztam: () () () () ()

esztelési terv A feladat specifikációjára épülő (fekete doboz) tesztesetek: 1. eltételes ma imumkeresés, Számlálás, és Intervallumaik: a. Üres fájl (ures.txt) b. Egy-egy érték (egyertek.txt) c. Minden 0 (minden0.txt) d. Utolsó a ma (utolsomax.txt) e. Első a ma (elsomax.txt) f. Első 0 (elso0.txt) g. Utolsó 0 (utolso0.txt) 2. Különleges értékek esetei (Billentyűzetről tesztelendő): a. Üres sztring, mint érték ( igyelmen kívül hagyja, tovább vár a bemenetre, mintha misem történt volna.) b. Negatív számok (Hibaüzenetet ír ki.) c. Betűt tartalmazó értékek esete ( igyelmen kívül hagyja a betűt.) d. Speciális karakterek esete (Hibaüzenetet ír ki) A megoldó programra épülő (fehér doboz) tesztesetek: 1. Hibás vagy nem létező állománynév megadása. (Hasznos hibaüzenetet ír ki.) 2. Paraméterként megadott fájlnév. (Az elvárt módon működik.) 3. Ismételt futtatás kipróbálása. (Az elvárt módon működik.) 4. Olyan állomány olvasása, ahol az utolsó sort nem zárja sorvége jel. (pelda.txt) 5. Stressz-teszt, 1.000.000 értékkel. (stresszteszt.txt), (!stressz-teszt.bat) A () és az () függvények tesztelése 1. Minden 0 (minden0.txt) 2. Első 0 (elso0.t t) 3. Utolsó 0 (utolso0.t t) 4. Első a ma (elsoma.t t) 5. Utolsó a ma (utolsoma.t t) 6. Ezen kívül még lehetne tesztelni például a darabszámok növelésszámára (0, 1, több) Minden teszteset (kivéve stressz teszt) lefuttatása egyszerre:!teszt.bat Még paraméter tesztet is raktam bele. (Nem létező fájl.123)

Stressz teszt Előszeretettel generálok hatalmas tesztfájlokat és csodálkozom rá a számítógépek többmagos processzorainak számítási sebességére újra és újra. Ha majd CUDA programozással foglalkozzunk, még gyorsabb lesz minden: 20 billió helyett 1000 billió számítás/másodperc. Az elemű, soros, oszlopos méretű stressz-tesztesetet a mellékelt BED ACI.ZIP/bemenet/Stressz teszt. ls E cel fájl létrehozásával és t t-ként mentésével készítettem. (A tabulátorokat lecseréltem szóközre, ami 100% CPU kihasználtság mellett is eltartott 2 percig.) A használt formula: ( ( )) Annak reményében bonyolítottam két véletlenszerű szám különbségére az egyszerűbb, ( ( )) formulát, mert így nagyobb valószínűséggel lesz az eredmény, ami csökkenti a fájlméretet és segíti a tömörítést. ( helyett lett, tömörítve mindössze.) Az így kapott egymillió szám átlaga, míg az egyszerűbb formulával kapottaké volt. (Miért nem? A lefelé kerekítés ( ) miatt.) Majd átneveztem néhány száz madarat Magyarországon honos fajokra (Wikipédiáról másoltam a neveket, annyi módosítással, hogy a kis kezdőbetűket átírtam nagyra) Legutolsó lépésként pedig népszerűsítettem a verebeket: 2 kivétellel minden településre raktam belőlük, hogy biztos nyerjenek. Az eredeti nyertes "Madár704" lett volna, 938 településsel.