Géptermi zh-írás forgatókönyve



Hasonló dokumentumok
Programozási alapismeretek :: beadandó feladat. Felhasználói dokumentáció. Molnár Tamás MOTIABT.ELTE

117. AA Megoldó Alfréd AA 117.

Programozási alapismeretek 2009/2010

Bevezetés a C++ programozásba

Körkörös listák. fej. utolsó. utolsó. fej

0.1. Mi az a standard be- és kimenet? A két mintafeladat leírása

Programozás II gyakorlat. 4. Öröklődés

Országzászlók (2015. május 27., Sz14)

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

4. Öröklődés. Programozás II

Programozás alapjai II. (9. ea) C++ többszörös öröklés, cast, perzisztencia

OPERÁCIÓS RENDSZEREK 1. ÁTIRÁNYÍTÁSOK, SZŰRŐK

Programozás I gyakorlat. 5. Struktúrák

Objektumorientált programozás C# nyelven III.

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

STL. Algoritmus. Iterátor. Tároló. Elsődleges komponensek: Tárolók Algoritmusok Bejárók

Algoritmizálás + kódolás C++ nyelven és Pascalban

3. Gyakorlat Ismerkedés a Java nyelvvel

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!

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

Információs Technológia

Programozás C++ -ban 2007/4

Maximum kiválasztás tömbben

Hardver modellezés SystemC-vel és SDL grafikus könyvtárral Visual Stúdió alatt

Rekurzió. Horváth Gyula.

C# feladatgyűjtemény Kovács Emőd, Radványi Tibor, Király Roland, Hernyák Zoltán

Elemi alkalmazások fejlesztése IV. Adatbázis-kezelő GUI alkalmazás készítése 3. Összetett tábla karbantartása

Egységes és objektumközpontú adatbázis-kezelés (2. rész)

INFORMATIKAI ALAPISMERETEK

Bevezetés a programozásba 2

Bevezetés a programozásba. 8. Előadás: Függvények 2.

Tartalomjegyzék. Bevezetés...2

Algoritmizálás + kódolás C++ nyelven és Pascalban

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

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

INFORMATIKA tétel 2017

Programozás C nyelven (3. ELŐADÁS) Sapientia EMTE

Programozási nyelvek I. 5. előadás (Gregorics Tibor anyagának felhasználásával)

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

Programozási alapismeretek 1. előadás

1. Alapok. Programozás II

Adatbázis alapú rendszerek gyakorlat Adatbázis alapú alkalmazásfejlesztés Java, C# környezetben


INFORMATIKAI ALAPISMERETEK

Programozás 3. Dr. Iványi Péter

Rekurzió. 1. Feladat: Sorbaállítások száma. 2. Feladat: Zsebpénz. Horváth Gyula Megoldás. Megoldás

Objektumorientált programozás C# nyelven


















XML adatkezelés. 11. témakör. Az XQuery nyelv alapjai. XQuery. XQuery célja egy imperatív lekérdező nyelv biztosítása. XQuery.

INFORMATIKA tétel 2019

INFORMATIKAI ALAPISMERETEK

Bevezetés a C programozási nyelvbe. Az Általános Informatikai Tanszék C nyelvi kódolási szabványa

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

Programozás alapjai C nyelv 5. gyakorlat. Írjunk ki fordítva! Írjunk ki fordítva! (3)

C# nyelv alapjai. Krizsán Zoltán 1. Objektumorientált programozás C# alapokon tananyag. Általános Informatikai Tanszék Miskolci Egyetem

A lista eleme. mutató rész. adat rész. Listaelem létrehozása. Node Deklarálás. Létrehozás. Az elemet nekünk kell bef zni a listába

Bevezetés a programozásba. 11. Előadás: Esettanulmány

A C++ Standard Template Library rövid összefoglalás

C# feladatok gyűjteménye

Bevezetés a Programozásba II 11. előadás. Adatszerkezetek megvalósítása. Adatszerkezetek megvalósítása Adatszerkezetek

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

2. Alapfeltevések és a logisztikus egyenlet

500. CC Megoldó Alfréd CC 500.

KÖRNYEZETVÉDELMI TUDNIVALÓK

Szerző. Természetesen aktualizálandó adatok.

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

C++ programozási nyelv Struktúrák a C++ nyelvben Gyakorlat

128. AA Megoldó Alfréd AA 128.

Bevezetés a programozásba. 6. Előadás: C++ bevezető

Példa: Aktuális könyvtár tartalmának fájlba mentése, melynek neve az aktuális dátum és idő: ls l > `date+%f_%h-%m`.txt

! " #$ . / / 0. / / 1 2

Kalapácsvetés 2016 szöveges

Bevezetés a programozásba I.

Dinamikus csatolású függvénykönyvtár készítése és használata Plugin-szerű betöltés Egyszeű C++ osztályok készítése

Kati Fotó Fuji Labor internetes ügyfélprogram Verziószám: Felhasználói útmutató

500. AA Megoldó Alfréd AA 500.

Programozás C++ -ban 2007/7

INFORMATIKA tétel 2018

1. Írjunk programot mely beolvas két egész számot és kinyomtatja az összegüket.

Származtatási mechanizmus a C++ nyelvben

Objektumorientált programozás C# nyelven

Bevezetés a programozásba I 8. gyakorlat. C++: szövegfolyamok, intelligens tömbök

konfidencia-intervallum Logikai vektorok az R-ben március 14.

C# osztályok. Krizsán Zoltán

Átírás:

Géptermi zh-írás forgatókönyve 1. A feladat és a tesztelés körülményeinek a megértése A feladat több részbıl áll. A megoldó program kötött szerkezető fájlból kapja az adatokat, ezért azt komolyan kell venni! Az eredményt kötött szerkezető fájlba kell írni, ezért ezt is tiszteletben kell tartani! Az értékelés adott tesztesetek alapján fog történni, automatikusan. Egy tömörített formában letölthetı tesztkörnyezet áll rendelkezésre, amelyet azon drive gyökerébıl nyíló adott nevő könyvtárába kell kicsomagolni, amely drive-on lesz található a fejlesztendı program. 2. A tesztkörnyezet létrehozása A kapott tömörített tesztkörnyezet-fájlt egy választott drive (legyen most I: ) gyökerébıl kiinduló (a feladat szövege által rögzített nevő) könyvtárba (legyen most teszt ) kicsomagoljuk. 3. A fejlesztı környezet létrehozása Az elıbbi drive-on a Code::Blocks-szal létrehozzuk a fejlesztıi környezetet: 1. A Folder to create project in: beviteli mezıbe (most!) az I: drive-ot írjuk; 2. A Project title: mezıbe (most!) a lotto név kerül; 3. A forrás elsı néhány sorába beírjuk a szerzıt azonosító adatokat, komment sorokba (név+etr-azonosító+drótposta cím+ csoportsorszám+gyakorlatvezetı neve) 1

4. Kódolás Alább egy lehetséges megoldás látható: //név: Szlávi Péter //ETR-azonosító: SZPKAFT.ELTE //drótposta-cím: szlavip@elte.hu // #include <iostream> #include <fstream> using namespace std; //az _fn nevő fájlból beolvassa a _t[_n] tömböt int fajlbol_int_tombbe(string _fn, int &_n, int _t[], int _maxn); //lényegi eljárások: void A_elj(int _n, const int _t[], int &_nydb); void B_elj(int _n, const int _t[], int &_nyer); void C_elj(int _n, const int _t[], int _maxn, int &_db, int _pech[]); //kiírás fájlba: void fajlbairas(string _fn, int _nydb, int _nyer, int _pdb, const int _pech[]); int main() //Bemenet: const string befn="lotto.be";//bemeneti fájl neve const int maxn=100; int N; int tal[maxn]; //Kimenet: const string kifn="lotto.ki";//kimeneti fájl neve int nydb;//a) int nyer;//b) int pdb,pech[maxn];//c) if (fajlbol_int_tombbe(befn,n,tal,maxn)!=0) cout << "Hibas fajl\n\n"; else //a lényeg: A_elj(N,tal,nyDb); B_elj(N,tal,nyer); C_elj(N,tal,maxN,pDb,pech); fajlbairas(kifn,nydb,nyer,pdb,pech); return 0; 2

//A) feladat: void A_elj(int _n, const int _t[], int &_nydb) _nydb=0; for (int i=0;i<_n;++i) if (_t[i]>1) ++_nydb; //B) feladat: void B_elj(int _n, const int _t[], int &_nyer) int i=0; while ((i<_n) && (_t[i]!=5)) ++i; if (i<_n) _nyer=i+1; else _nyer=-1; //C) feladat: void C_elj(int _n, const int _t[], int _maxn, int &_db, int _pech[]) _db=0; for (int i=0;i<_n;++i) if (_t[i]==0) _pech[_db++]=i+1; //az _fn nevő fájlból beolvassa a _t[_n] tömböt: int fajlbol_int_tombbe(string _fn, int &_n, int _t[], int _maxn) /* _fn fájlból feltölti a _t[n] tömböt egészekkel; elvárások: LÉTEZİFÁJL(fN) ÉS 0<=_n<=_maxN ÉS FÁJL_SORAI_SZÁMA(_fN)=_n+1 Uf: NEM LÉTEZİFÁJL(_fN) => eredmény=1 ÉS */ NEM 0<=_n<=_maxN => eredmény=2 ÉS FÁJL_SORAI_SZÁMA(_fN)<>_n+1 => eredmény=3 ÉS hibátlanfájl(_fn) => eredmény=0 int hibakod=0;//nincs hiba ifstream if(_fn.c_str()); if (!if.is_open()) hibakod=1;//nem létezı fájl else if >> _n; string tmp; getline(if,tmp,'\n');//az 1. sor maradékát eldobjuk if (_n>_maxn) hibakod=2;//túl sok adat 3

else int i=0; while (!if.eof() && i<=_maxn) if >> _t[i++]; getline(if,tmp,'\n');//az 1. sor maradékát eldobjuk if (i!=_n) hibakod=3;//inkonzisztens fájl ; if.close(); return hibakod; //kiírás fájlba: void fajlbairas(string _fn, int _nydb, int _nyer, int _pdb, const int _pech[]) ofstream of(_fn.c_str()); of << _nydb << "\n"; of << _nyer << "\n"; of << _pdb << " "; for (int i=0;i<_pdb;++i) of << _pech[i] << " "; of.close(); 5. A helyesség ellenırzése A fejlesztıi környezet finomabb szerkezete a fentiek után: (Most!) Az I:\lotto\bin\Debug könyvtárba belépve pl. TotalCommander-rel végrehajtatjuk az I:\teszt\ könyvtárban található t.bat batch-fájlt: I:\teszt\t. 4

Ugyanezt megtehetjük a parancsablak vagy konzolablak (Start Futtatás : cmd) megnyitása után, a kellı parancsok kiadásával: I: + cd lotto\bin\debug\ + \teszt\t. Ha tesztelés sikeres volt formai szempontból, akkor számos fájl keletkezett ebben a könyvtárban: Minket az EREDMENY.TXT fájl érdekel, ui. ebbıl derül ki, hogy mennyire volt helyes a megoldó programunk. A legsikeresebb esetben effélét láthatjuk ebben a fájlban: 5

6. A munkánk gyümölcsének feltöltése A feladatlap tartalmazni fogja azt a helyet, ahova fogd és vidd módszerrel be kell húzni az addigra már tömörített és EHA-kódunkról elnevezett fejlesztıi környezetet, azaz az I:\lotto\ teljes könyvtárat (és nem az I:\teszt\ könyvtárat). 6