Bevezetés a programozásba I.

Hasonló dokumentumok
Bevezetés a programozásba I.

Bevezetés a programozásba I.

Bevezetés a programozásba I 7. gyakorlat. C++: szövegkezelés, szekvenciális fájlkezelés. Szövegkezelés Karakterkezelés

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

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

Alkalmazott modul: Programozás 2. előadás. Procedurális programozás: adatfolyamok, adatsorok kezelése

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

Pénzügyi algoritmusok

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

Alkalmazott modul: Programozás 2. előadás. Procedurális programozás: adatfolyamok, adatsorok kezelése. Adatfolyamok kezelése. Adatfolyamok kezelése

Bevezetés a programozásba I.

Flex tutorial. Dévai Gergely

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

Programozás alapjai. (GKxB_INTM023) Dr. Hatwágner F. Miklós szeptember 27. Széchenyi István Egyetem, Gy r

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

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

Programozás C++ -ban 2007/1

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

7. gyakorlat Sorozatok, Fájlkezelés

1. Alapok. Programozás II

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

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

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 C és C++ -ban

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

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

Programozási nyelvek Java

Bevezetés a programozásba I.

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

Gregorics Tibor Egyszerű programok C++ nyelvi elemei 1

2018, Funkcionális programozás

8. Gyakorlat. Rövid elméleti összefoglaló: Fájlkezelés

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

A C++ nyelvben a függvény nevek túlterhelésével biztonságosabbá tehetnénk az adatok kiírását és beolvasását.

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

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

Bevezetés a C++ programozásba

Bevezetés a programozásba I.

Fejlett programozási nyelvek C++ Sablonok és adatfolyamok

INFORMATIKA javítókulcs 2016

Gregorics Tibor Egyszerű programok C++ nyelvi elemei 1

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

7. gyakorlat. Fájlkezelés IO haladó Függvények haladó

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

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

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

Programozás I gyakorlat. 10. Stringek, mutatók

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

A C programozási nyelv VI. Parancssori argumentumok File kezelés

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

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

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.

Bevezetés a programozásba. 9. Előadás: Rekordok

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

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

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

Alkalmazott modul: Programozás 4. előadás. Procedurális programozás: iteratív és rekurzív alprogramok. Alprogramok. Alprogramok.

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

Programozás I gyakorlat

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

Láncolt lista. az itt adott nevet csak a struct deklaráción belül használjuk

Informatika terméktervezőknek

Objektumok inicializálása

Programozás I gyakorlat

Regionális forduló november 19.

Maximum kiválasztás tömbben

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

Bevezetés a programozásba Előadás: Objektumszintű és osztályszintű elemek, hibakezelés

Bevezetés a programozásba II 1. gyakorlat. A grafikus könyvtár használata, alakzatok rajzolása

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

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

A C programozási nyelv I. Bevezetés

A C programozási nyelv I. Bevezetés

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

ELTE SAP Excellence Center Oktatóanyag 1

Programozás alapjai. (GKxB_INTM023) Dr. Hatwágner F. Miklós október 11. Széchenyi István Egyetem, Gy r

EAF I C++ nyelvi elemek felsorolása 1. Alapvet típusok

Programozási alapismeretek 2009/2010

Gregorics Tibor Egyszerű programok C++ nyelvi elemei 1

AWK programozás Bevezetés

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

Programozás I gyakorlat

Bevezetés Kiíratás Beolvasás Formázás Fájlkezelés Gyakorló feladatok C++ I/O. Bevezetés. Izsó Tamás február 20. Izsó Tamás C++ I/O / 1

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

Regionális forduló november 19.

A programozás alapjai 1 Rekurzió

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

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

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?

Programozás alapjai gyakorlat. 2. gyakorlat C alapok

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

Python tanfolyam Python bevezető I. rész

Programozás alapjai C nyelv 8. gyakorlat. Mutatók és címek (ism.) Indirekció (ism)

Mutatók és címek (ism.) Programozás alapjai C nyelv 8. gyakorlat. Indirekció (ism) Néhány dolog érthetőbb (ism.) Változók a memóriában

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

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

Forráskód formázási szabályok

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

Programozási nyelvek II. JAVA

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

Átírás:

Bevezetés a programozásba I. 8. gyakorlat Fájlkezelés Surányi Márton PPKE-ITK 2010.11.02.

Fájlkezelés C++-ban C++-ban van lehet ségünk fájlok kezelésére. Itt már tényleges fájlokkal dolgozunk, nem pedig szimuláljuk a m ködésüket (PlanG). Megkülönböztetünk be- illetve kimeneti fájlokat.

Megynitás a bemeneti fájl típusa: ifstream deklarálás: ifstream [változónév]; (Pl: ifstream f;) a kimeneti fájl típusa: ofstream, deklarálás hasonlóan

Megnyitás megnyitás: [változónév].open([fizikai-fájlnév]) Például: f.open("myfile.txt"); FONTOS! Ha string-et akarunk átadni a fájlnévként, akkor azt el ször karaktertömbbé kell konvertálni: Például: f.open(fname.c_str()); (másképpen fordítási hiba)

Megnyitás ha a megynitás során hiba lépett fel (pl. nem létezik a fájl, vagy nincs jog az olvasáshoz), akkor a következ kifejezés igazat fog adni. [változónév].fail() Ezzel ellen rizhetjük, hogy sikerült-e a megnyitás. Például: if (f.fail()) { cout «"Hiba a megnyitasnal,kilepunk." «endl; return 0; }

Megnyitás - megjegyzés A megnyitást és deklarálás összevonhatjuk egy sorba: eredetileg így nézett ki: ifstream ifs; // deklarálás ifs.open("fajlnev"); // megnyitás helyette írhatjuk ezt: ifstream ifs("fajlnev"); Így egyb l megnyitja a fájlt.

Beolvasás Egy értéket így tudunk beolvasni: f» in; (ahol f egy ifstream tipusú változó) Attól függ en, hogy in milyen tipusú, olyan adatot fog beolvasni, illetve olyat vár. Ha nem olyat kap, akkor hibás lesz a beolvasás. Pl: ha int tipusú, és szöveget talál a fájlban, akkor nem lesz jó a beolvasás

Beolvasás Ha egy teljes sort szeretnénk beolvasni, akkor érdemes a getline függvényt használni, csakúgy, mint konzolos beolvasásnál. (az f str; csak egy szót fog beolvasni) getline(f, in); Szintaktikája: getline(honnan, hova) Nem kötelez tudni, de nagyon hasznos: a getline-nak megadható egy harmadik paraméter is: getline(f, in, a ) Szintaktikája: getline(honnan, hova, meddig) Ahol meddig egy karakter (char)!

EOF Mivel nem tudjuk, hogy a fájlban mennyi adat van, ezért szükség van az eof() tagfüggvényre, ami akkor ad igazat, ha vége van a fájlnak. (a függvény visszatérési típusa: bool) Használat: [változónév].eof(); f.eof(); Példa: Megjegyzés Érdemes az eof() helyett a good()-ot használni, ami több mindent ellen riz, és hamisat ad, (többek között) ha elértük a fájl végét.

Lezárás Bár a fájl a program befejeztével lezáródik, érdemes lezárni, ha már nem használjuk: f.close();

Fájlba írás A kimeneti fájl típusa: ofstream Megnyitás: bemenethez hasonlóan: f.open("fajlnev.txt"); Ha megnyitjuk a kimeneti fájlt, akkor a fájl létrejön (ha már létezett, akkor a tartalma kitörl dik!) Ha sikertelen a fájlmegnyitás (pl. nincs írási jog az adott mappába), akkor az f.fail() igazat fog adni. Írás: a operátorral: pl: f ki; Lezárás ugyanúgy: f.close();

Vegyes feldolgozás mixed.cpp: Adott egy fájl, benne keresztnevek és életkorok. Feladatok: Adjuk meg az átlagéletkort! Adjuk meg a legid sebb és a legatalabb ember nevét, és életkorát! Példa fájlra: nevek.txt Cili 12 Budapest Béla 23 Győr Gábor 20 Debrecen (táblánál megoldva)

Feladatok gy-8-1.cpp: Egy fájlban egész számok találhatóak. Adjuk meg az átlagot, az 5-nél nagyobbak számát, és a legkisebb számot! Ne a konzolra írjuk ki, hanem a kimenet.txt-be! gy-8-2.cpp: Egy fájlban számok találhatóak. Adjuk meg, hogy növekv sorrendben vannak-e! gy-8-3.cpp: Egy fájlban szavak találhatóak (egy sorban több szó is lehet!). Adjuk meg a leghosszabb szót! Adjuk meg a nem-whitespace karakterek, és a szavak számát! Figyeljünk a hibakezelésre ( f.fail() )!

Házi feladat III-36.cpp: Fájlban koordinátákkal adott pontsorozatban add meg az origótól legtávolabb es pontot! (feltesszük, hogy egy sorban egy pont adatai, tehát két szám van) III-21.cpp: Egy tetsz leges, fájlból beolvasott szövegr l add meg, hány számjegy, hány nagybet és hány kisbet van benne! (Tipp: ASCII-tábla) (FIGYELEM! Ha egy karakter nem kisbet, akkor nem biztos, hogy nagybet!) III-15a.cpp: Egy fájlból beolvasott, szigorúan növ egész számsorban add meg a legnagyobb ugrást (szomszédos elemek közötti legnagyobb el forduló különbséget)! Figyeljünk a hibakezelésre ( f.fail() )!

Szorgalmi feladat SZORGALMI.cpp Egy fájlban szavak és egész számok találhatóak (szóközökkel tagolva), de a sorrendjük nem ismert. Olvassuk be ket megfelel en! A számokat adjuk össze, írjuk ki; a szavak közül pedig keressük meg a leghosszabbat, és írjuk ki! (olyan is lehetséges, hogy több szó van egymás után! pl: 2 alma banán 12 körte 6 78)