Alkalmazott modul: Programozás 2. előadás. Procedurális programozás: adatfolyamok, adatsorok kezelése
|
|
- Ilona Kelemen
- 9 évvel ezelőtt
- Látták:
Átírás
1 Eötvös Loránd Tudományegyetem Informatikai Kar Alkalmazott modul: Programozás 2. előadás Procedurális programozás: adatfolyamok, adatsorok kezelése 2015 Giachetta Roberto
2 Adatfolyamok C++-ban Adatfolyamnak nevezzünk az adatok összefüggő, nem strukturált, de az elemek sorrendjét megtartó halmazt, amely írható, illetve olvasható pl. konzol képernyő, fájl, hálózati csatorna A C++ az adatfolyamokat hasonló módon kezeli, jórészt ugyanazon műveletek használhatóak minden adatfolyamra hasonló viselkedéssel látja el, pl. ugyanolyan állapotlekérdezést, helyreállítást biztosít olvasó és író műveletekkel látja el: << (olvasás), >> (írás), getline(<adatfolyam>,<szöveg>) (sor olvasás) ELTE IK, Alkalmazott modul: Programozás 2:2
3 Adatfolyamok olvasása Az adatfolyamokból egyenként olvashatunk adatokat a >> operátorral (szöveg esetén szóközig olvas), vagy soronként Soronként olvasáshoz használható a teljes sor beolvasása egy szövegbe: getline(<adatfolyam>, <szöveg változó>) a sor egy részének beolvasása adott (határoló) karakterig: getline(<adatfolyam>, <szöveges változó>, <határoló karakter>) a határoló karaktert az adatfolyam eldobja, és a következő olvasó művelet utána kezd ha nem találja a határoló karaktert, a teljes sort beolvassa ELTE IK, Alkalmazott modul: Programozás 2:3
4 Adatfolyam manipulátorok Az adatfolyamok működését számos módon befolyásolhatjuk, pl.: sortörés (endl), vízszintes tagolás (left, right, internal) kiírás számrendszere (dec, hex, oct), valós számok formátuma (fixed, scientific) whitespace karakterek átugrása (skipws, noskipws) További manipulátorok találhatóak az iomanip fájlban, pl.: kitöltő karakter beállítása (setfill(<karakter>)), mező szélesség beállítása (setw(<szám>)) tizedes jegyek száma (setprecision(<szám>)) ELTE IK, Alkalmazott modul: Programozás 2:4
5 Példa Feladat: Olvassunk be egy valós számot, majd írjuk ki 5 tizedes jegy pontosan egy 15 széles mezőben, amelyet pontokkal töltünk ki. Megoldás: int main(){ double nr; cout << "Kérek egy számot: "; cin >> nr; cout << right << fixed << setfill('.') << setw(15) << setprecision(5) << nr << endl; // formázás beállítása, majd kiírás return 0; ELTE IK, Alkalmazott modul: Programozás 2:5
6 Végjelig történő feldolgozás Amennyiben tetszőleges számú adatot akarunk elemenként feldolgozni, az olvasást végezhetjük egy lezáró adatig, úgynevezett végjelig A végjelig történő feldolgozásban a végjel általában már nem kerül feldolgozásra, ezért mindig ellenőriznünk kell, hogy nem a végjelet olvastuk-e be, pl.: while ( ) // olvasó ciklus { cin >> data; // olvassuk a következő adatot if (data == ) // ha az adat a végjel break; // kilépünk a ciklusból // különben feldolgozzuk az adatot ELTE IK, Alkalmazott modul: Programozás 2:6
7 Végjelig történő feldolgozás Az ellenőrzés egyszerűsíthető az előreolvasási technika segítségével, ekkor már a ciklus előtt beolvassuk az első adatot a következő adatot a ciklusmag végén olvassuk, így a ciklusfeltétel ellenőrzése rögtön követi azt pl.: cin >> data; // előreolvasás while (data!= ) // amíg nem értünk a végjelhez { // feldolgozzuk az adatot cin >> data; // olvassuk a következő adatot ELTE IK, Alkalmazott modul: Programozás 2:7
8 Példa Feladat: Adjuk meg a bemenetről olvasott egész számok között hány páros szám található. A számsorozatot 0-val zárjuk. számlálás programozási tételt használunk, a szám páros, ha kettővel osztva 0-t ad maradékul a 0 a végjel karakter, amit már nem veszünk figyelembe előreolvasási technikát alkalmazunk Megoldás: int main(){ int nr; int c = 0; // számláló ELTE IK, Alkalmazott modul: Programozás 2:8
9 Példa Megoldás: cout << "Kérem a számokat: "; cin >> nr; // előreolvasás while (nr!= 0) // a 0-val kilépünk { if (nr % 2 == 0) // ha a szám páros c++; // növeljük a számlálót cin >> nr; // olvassuk a következő számot cout << "A számok közül " << c << " volt páros." << endl; return 0; ELTE IK, Alkalmazott modul: Programozás 2:9
10 Adatfolyamok hibakezelése Az adatfolyamok állapotellenőrzésére több művelet áll rendelkezésünkre a good() művelet megadja, hogy az adatfolyam konzisztens állapotban van-e és elérhető a fail() művelet megadja, hogy hiba történt-e az adatfolyamban az eof() művelet megadja, hogy az adatfolyamnak vége van-e a clear() művelet törli az adatfolyam hibás állapotát továbbá minden beolvasás (>>, getline) visszatérési értéke felhasználható állapotfelmérésre ELTE IK, Alkalmazott modul: Programozás 2:10
11 Adatfolyamok hibakezelése Pl.: int num; cin >> num; // megpróbálunk számot beolvasni if (cin.fail()) // ha sikertelen volt a művelet cout << "A megadott érték nem szám!"; else cout << "A beolvasás sikeres!"; // ugyanez: if (cin >> num) // sikeres volt a beolvasás cout << "A beolvasás sikeres!"; else cout << "A megadott érték nem szám!"; ELTE IK, Alkalmazott modul: Programozás 2:11
12 Példa Feladat: Írjuk ki egy számnak a rákövetkezőjét. Ha nem számot adott meg a felhasználó, lépjünk ki. Megoldás: int main(){ int nr; cout << "Kérek egy egész számot: "; if (cin >> nr) // ha be tudtuk olvasni cout << ++nr << endl; else // ha nem tudtuk beolvasni cout << "A megadott érték nem egész szám!" << endl; return 0; ELTE IK, Alkalmazott modul: Programozás 2:12
13 Adatfolyamok hibakezelése A hibás állapotot helyre kell állítanunk a clear() utasítással Amennyiben nem megfelelő adat kerül a bemenetre, a sikertelen beolvasás nem törli az adatot, csak jelzi a hibát a hibás adat átugrását az ignore(<karakterek száma>, <termináló karakter>) utasítással végezhetjük Pl.: if (cin.fail()){ cin.clear(); // töröljük a hibajelzést cin.ignore(256, '\n'); // karakterek átugrása a sortörésig cin >> num; // megpróbálunk újra olvasni ELTE IK, Alkalmazott modul: Programozás 2:13
14 Példa Feladat: Írjuk ki egy számnak a rákövetkezőjét. Ha nem számot ad meg a felhasználó, akkor kérjük be újra. egy ciklusban ellenőrizzük a beolvasást, töröljük az állapotot, és újra bekérjük a számot mivel azt ellenőrzést a beolvasás után végezzük, használhatunk előreolvasást Megoldás: int main() { int nr; cout << "Kérek egy egész számot: "; cin >> nr; // előreolvasás ELTE IK, Alkalmazott modul: Programozás 2:14
15 Példa Megoldás: while (cin.fail()) // ha sikertelen a beolvasás { cout << "A megadott érték nem egész szám!" << endl; cin.clear(); // töröljük a hibajelzést cin.ignore(256, '\n'); // karakterek átugrása a sortörésig cout << "Kérek egy egész számot: "; cin >> nr; cout << ++nr << endl; return 0; ELTE IK, Alkalmazott modul: Programozás 2:15
16 Fájlkezelés Fájlkezelés során az adatfolyamot egy fájl biztosítja, amelybe ugyanúgy tudunk írni és olvasni adatok, mint a képernyő esetén, de olvasás esetén előre adott a tartalom az adatok különféle módon lehetnek eltárolva a fájlban, ilyen tekintetben a legegyszerűbb a szöveges fájl, de lehet bináris fájl, vagy összetettebb (pl. DOC, XML, PDF) ha az adatokat sorban olvassuk be, illetve írjuk ki, akkor szekvenciális fájlról beszélünk tudjuk, mikor van vége az állománynak, ugyanis minden fájl végén egy fájl vége jel (end of file: EOF), és le tudjuk kérdezni, hogy ezt sikerült-e beolvasni ELTE IK, Alkalmazott modul: Programozás 2:16
17 Fájltípusok A fájlok szolgálhatnak bemenetként, illetve kimenetként is általában egy fájlt egyszerre csak egy célra használunk, és ez megjelenik a forráskódban is, de lehetőség van felváltva írni, illetve olvasni egy fájlból A fájlkezelésben megkülönböztetjük a fizikai fájlt: a háttértáron, elérési útvonallal kapcsolt tartalom logikai fájlt: a fájl megjelenése a programkódban, lényegében egy adott típusú változó a logikai és fizikai fájlt a programban társítanunk kell ELTE IK, Alkalmazott modul: Programozás 2:17
18 Szekvenciális fájlkezelés C++-ban a szöveges fájlok kezelését az fstream fájl biztosítja, amely az std névtérben található Három logikai fájltípust használhatunk: bemeneti fájl: ifstream kimeneti fájl: ofstream be- és kimeneti fájl: fstream A fizikai fájl társítását és megnyitását az open(<fizikai fájlnév>) paranccsal végezhetjük, pl.: ifstream f; // f nevű logikai fájl f.open("adatok.txt"); // társítás és megnyitás ELTE IK, Alkalmazott modul: Programozás 2:18
19 Szekvenciális fájlkezelés A létrehozás és a megnyitás egyesíthető, ha közvetlenül megadunk egy fájlnevet, pl.: ifstream f("adatok.txt"); A megnyitásnál alapértelmezett tevékenységeket végez (pl. írás esetén ha nem létezett a fájl, létrehozza, ha létezett, törli a tartalmát), amelyeket felülírhatunk az üzemmód megadásával, úgymint hozzáfűzésre (ios::app), vagy csak megnyitás (ios::nocreate), stb. az üzemmódokat kombinálhatjuk is a operátorral pl.: ofstream f; // f nevű logikai fájl f.open("adatok.txt", ios::nocreate ios::app); // nem hozza létre, hozzáfűzi a tartalmat ELTE IK, Alkalmazott modul: Programozás 2:19
20 Szekvenciális fájlkezelés Fizikai fájlnévként karaktertömb (char[]) típusú adatokat adhatunk meg, amit lehet változó is Ha string típusú változóba szeretnénk bekérni a fájlnevet, akkor azt át kell alakítanunk a szöveg típusban található egy olyan függvény, amely karaktertömbbé alakítja a szöveget, ezt használjuk: <változónév>.c_str() pl.: ifstream file; // logikai fájl string fname; // egy string cin >> fname; // beolvassuk a stringet file.open(fname.c_str()); // a beolvasott fájlnevet próbáljuk megnyitni ELTE IK, Alkalmazott modul: Programozás 2:20
21 Szekvenciális fájlkezelés Ha nem sikerült a fájl megnyitása, az adatfolyam állapota hibás lesz, amely a fail()művelettel ellenőrizhető, és a clear() művelettel helyreállítható Pl.: f.open("data/bemenet.dat"); // megnyitás if (f.fail()) { // ha nem sikerült megnyitni cout << "Nem sikerült megnyitni a fájlt!"; f.clear(); // állapot helyreállítása cout << "Kérek a fájlnevet: "; string fname; cin >> fname; f.open(fname.c_str()); ELTE IK, Alkalmazott modul: Programozás 2:21
22 Szekvenciális fájlkezelés Fizikai fájlt használat után be kell zárni a close() utasítással a bezárás automatikusan megtörténik a program végén, de azért célszerű mindenképpen külön bezárást végezni, amint befejeztük a programban a fájl használatát bezárást követően a logikai fájlnevet újra használhatjuk másik fizikai fájl kezelésére pl.: ifstream input("adat.txt"); // adat.txt megnyitása input.close(); // adat.txt bezárása input.open("adat2.txt"); // adat2.txt megnyitása ELTE IK, Alkalmazott modul: Programozás 2:22
23 Szekvenciális fájlkezelés Bemeneti fájlból olvashatunk (>>, getline), kimeneti fájlba írhatunk (<<) olvasásnál célszerű mindig ellenőrizni a beolvasott adatot, illetve a fájl állapotát egyszerű adatok esetén a végjelig történő feldolgozást könnyű ciklusba foglalni, pl.: ifstream f("adatok.txt"); // megnyitás ellenőrzése while (f >> data) { // amíg sikerül adatokat beolvasni // addig feldolgozzuk f.close(); // fájl bezárása ELTE IK, Alkalmazott modul: Programozás 2:23
24 Szekvenciális fájlkezelés Részletesebb ellenőrzést is végezhetünk, ha nem akarjuk megszakítani a fájlolvasást az első hiba esetén, pl.: f >> data; // beolvasás előreolvasással while (!f.eof()) { // amíg nincs vége a fájlnak if (f.fail()){ // sikertelen beolvasás f.clear(); // állapot törlése f.ignore(1024, '\n'); // adatok átugrása else { // sikeres beolvasás, feldolgozzuk f >> data; // következő adat beolvasása f.close(); ELTE IK, Alkalmazott modul: Programozás 2:24
25 Példa Feladat: Írjuk ki a képernyőre a szamok.txt fájlban tárolt egész számok összegét. bementi fájlt feldolgozzuk összegzés tételével bármennyi szám lehet a fájlban, ezért addig dolgozunk, amíg sikeres a beolvasás (egész számot olvastunk be) Megoldás: int main(){ int nr, sum = 0; ifstream f("szamok.txt"); // megnyitás if (f.fail()) // ha nem sikerült cout << "Rossz fájlnév!" << endl; ELTE IK, Alkalmazott modul: Programozás 2:25
26 Példa Megoldás: else { // ha sikerült while (f >> nr){ // amíg sikerül adatot olvasnunk sum += nr; f.close(); // fájl bezárása cout << "A számok összege: " << sum << endl; return 0; ELTE IK, Alkalmazott modul: Programozás 2:26
27 Példa Feladat: Határozzuk meg egy fájlban tárolt soroknak a hosszát, és írjuk a képernyőre. a fájlnevet kérjük be a felhasználótól, sikertelen esetben lépjünk ki a programból Megoldás: int main(){ string filename, line; ifstream f; cout << "Bemenő adatok fájlja: "; cin >> filename; f.open(filename.c_str()); ELTE IK, Alkalmazott modul: Programozás 2:27
28 Példa Megoldás: if (f.fail()){ // ha sikertelen cout << "Nem található a fájl!" << endl; return 1; // kilépés // ha sikeres: while(getline(f, line)) { // egész sorok olvasása cout << line.length() << endl; // sor hossza f.close(); return 0; ELTE IK, Alkalmazott modul: Programozás 2:28
29 Példa Feladat: Egy telkonyv.txt fájlban a következő formátumban vannak a sorok: vezetéknév keresztnév,cím,telefonszám. Írjuk ki az adatokat az uj_telkonyv.txt fájlba a következő formátumba: keresztnév vezetéknév,telefonszám (15 hosszan, jobbra igazítva), cím. feltételezzük, hogy a fájl létezik, és a formátuma helyes négy lépésben olvassuk be a sort négy szöveg változóba előreolvasási technikát használunk kiíráskor megfelelő manipulátorokkal (right, setw) módosítjuk a kimenetet ELTE IK, Alkalmazott modul: Programozás 2:29
30 Példa Megoldás: int main() { string sname, gname, addr, nr; ifstream phb("telkonyv.txt"); ofstream nphb("uj_telkonyv.txt"); // sor beolvasása 4 lépésben: getline(phb, sname, ' '); // olvasás az első szóközig, a szóköz karakter // elveszik getline(phb, gname, ','); getline(phb, addr, ','); getline(phb, nr); // olvasás a sor végéig ELTE IK, Alkalmazott modul: Programozás 2:30
31 Példa Megoldás: while(phb.good()){ // formázott kiírás: nphb << gname << " " << sname << ","; nphb << right << setw(15) << nr << ","; nphb << addr << endl; // következő sor beolvasása: getline(phb, sname, ' '); getline(phb, gname, ','); getline(phb, addr, ','); getline(phb, nr); phb.close(); nphb.close(); return 0; ELTE IK, Alkalmazott modul: Programozás 2:31
32 Szövegfolyamok A szövegfolyamok olyan adatfolyamok, ahol az írás és olvasás szövegen keresztül történik a memóriában típusa a stringstream, használatához szükséges az sstream fájl és az std névtér tetszőleges típusú változót írhatunk be (<<) és olvashatunk ki (>>, getline), a sorrend megmarad alkalmas olyan típuskonverziókat elvégezni, amik automatikusan nem történnek meg (pl. szöveg-szám) az str() művelet egyben, szövegként tudja kiadni a szövegfolyam tartalmát, míg az str(<szöveg>) kitörli a korábbi tartalmat, és a paraméterben megadottat helyezi be ELTE IK, Alkalmazott modul: Programozás 2:32
33 Szövegfolyamok Szám-szöveg konverzió esetén a szövegfolyam hasonló feladatot lát el, mint a korábbi itoa és atoi műveletek, amelyek csak karaktersorozatokkal tudnak dolgozni Pl. szám átalakítása szöveggé: int num; // num értéket kap stringstream converter; // az átalakítást szövegfolyammal végezzük converter << num; // behelyezzük a számot string output = converter.str(); // szövegként kapjuk meg a tartalmat // ugyanez: // converter >> output; ELTE IK, Alkalmazott modul: Programozás 2:33
34 Szövegfolyamok Pl. szöveg átalakítása számmá: int num; string input; cin >> input; // beolvassuk a számot szövegesen stringstream converter; converter << input; // behelyezzük a szövegfolyamba converter >> num; // megpróbáljuk kiolvasni számként if (converter.fail()) // ha sikertelen az átalakítás cout << converter.str() << " nem szám!"; // kiírjuk a szövegfolyam tartalmát ELTE IK, Alkalmazott modul: Programozás 2:34
35 Példa Feladat: Írjuk ki egy számnak a rákövetkezőjét. Ha nem számot adott meg a felhasználó, lépjünk ki. a bemenetet nem rögtön számként, hanem szövegként olvassuk be használjunk szövegfolyamot a konverzió elvégzésére, csak akkor végezzük el a növelést, ha sikeres a konverzió Megoldás: int main() { string textinp; int numinp; stringstream sstr; // szövegfolyam ELTE IK, Alkalmazott modul: Programozás 2:35
36 Példa Megoldás: cout << "Kérek egy számot: "; cin >> textinp; sstr << textinp; // beírjuk a szöveget sstr >> numinp; // kiolvasunk egy számot if (sstr.fail()) // ha lehetett konvertálni cout << sstr.str() << " nem szám!"; else // ha nem lehetett konvertálni cout << ++numinp << endl; return 0; ELTE IK, Alkalmazott modul: Programozás 2:36
37 Adatsorozatok kezelése Egyszerű tömbök A C++ biztosít számunkra egy egyszerű tömb típust, amelyen az egyedüli értelmezett művelet az indexelő operátor használata pl.: int t[10]; // 10 méretű tömb létrehozása cin >> t[0]; // tömb első eleme értéket kap ezzel a tömbbel több probléma is felmerül: nem lehet lekérdezni a méretét (korlátozottan használható a sizeof operátor erre a célra, de ez nem praktikus) csak konstans adható meg méretként nem lehet a méretét futás közben megváltoztatni ELTE IK, Alkalmazott modul: Programozás 2:37
38 Adatsorozatok kezelése Intelligens tömbök A C++ ezért biztosít egy speciális tömb típust vector néven, amely a korábbi hiányosságokat pótolja használatához szükséges a vector fájl és az std névtér létrehozásához speciálisan kell megadnunk az elemtípust, illetve a méretet (amely lehet változó, illetve 0 is, csak negatív szám nem), pl.: vector<int> v1(10); // 10 elemű egész tömb int size = 5; vector<string> v2(size); // 5 elemű szövegtömb a méretet nem kötelező megadni, ekkor egy 0 méretű tömböt hoz létre, pl.: vector<int> v3; // 0 elemű egész tömb ELTE IK, Alkalmazott modul: Programozás 2:38
39 Adatsorozatok kezelése Intelligens tömbök mindig ismeri a méretét, és ez lekérdezhető futás közben átméretezhető, akár teljesen ki is üríthető fontosabb műveletei: elem lekérdezés, módosítás: <változónév>[<index>] méret lekérdezése: <változónév>.size() kiürítés: <változónév>.clear() átméretezés: <változónév>.resize(<új méret>) új elem behelyezése a tömb végére (és egyúttal a méretnövelése): <változónév>.push_back(<érték>) utolsó elem kivétele (és egyúttal a méret csökkentése): <változónév>.pop_back() ELTE IK, Alkalmazott modul: Programozás 2:39
40 Adatsorozatok kezelése Példa Feladat: Olvassunk be valós számokat a bemenetről amíg 0-t nem írunk, majd adjuk meg az átlagnál nagyobb elemek számát. előbb egy összegzést (az eredményt osztjuk a számok számával), majd egy számlálást kell végeznünk ehhez azonban el kell tárolnunk az elemeket mivel nem tudjuk az elemek számát, olyan adatszerkezet kell, amelynek mérete növelhető futás közben, tehát vector-t kell használnunk, és annak a push_back függvényét beolvasáskor érdemes ellenőrizni, hogy számot kaptunk-e ELTE IK, Alkalmazott modul: Programozás 2:40
41 Adatsorozatok kezelése Példa Megoldás: #include <vector> // használjuk a vector-t int main(){ vector<float> v; // float típusú vector, alapból 0 hosszú lesz float act; while (cin >> act && act!= 0) { // amíg számot kaptunk, amely nem a végjel v.push_back(akt); // berakjuk a végére ELTE IK, Alkalmazott modul: Programozás 2:41
42 Adatsorozatok kezelése Példa Megoldás: float avg = 0; // összegzés for (int i = 0; i < v.size(); i++) avg += v[i]; // kiolvasunk minden elemet avg /= v.size(); // mérettel osztunk int c = 0; // számlálás for (int i = 0; i < v.size(); i++) if (v[i] > avg) c++; cout << "Az átlagnál " << c << " elem nagyobb." << endl; return 0; ELTE IK, Alkalmazott modul: Programozás 2:42
43 Adatsorozatok kezelése Mátrixok Mivel egy tömb tetszőleges típusú elemek sorozata, az elemtípus maga is lehet tömb, így létrehozhatjuk tömbök tömbjét, azaz a mátrixot a tömb dimenziószáma az egymásba ágyazás mértéke az egy dimenziós tömbök a vektorok, a két, illetve magasabb dimenziósok a mátrixok pl.: int t[10][5]; // egy 10, 5 elemű egészekből álló tömbből álló // tömb, vagyis 10x5 méretű egész típusú mátrix cin >> t[0][3]; // az első sor negyedik elemének bekérése ELTE IK, Alkalmazott modul: Programozás 2:43
44 Adatsorozatok kezelése Példa Feladat: Adott 10 tanuló egyenként 5 jeggyel, állapítsuk meg a legjobb átlaggal rendelkező tanulót. ehhez használjunk egy mátrixot, kérjük be a jegyeket egyenként határozzuk meg minden hallgatóra az átlagot, majd abból keressük meg a maximumot, tehát több programozási tételt is alkalmazzunk a megoldáshoz Megoldás: int main() { int m[10][5]; // jegyek mátrixának létrehozása float avg[10]; // átlagok tömbjének létrehozása ELTE IK, Alkalmazott modul: Programozás 2:44
45 Adatsorozatok kezelése Példa Megoldás: for (int i = 0; i < 10; i++) for (int j = 0; j < 5; j++){ cout << i+1 << ". tanuló " << j+1 << ". jegye: "; cin >> m[i][j]; // jegyek beolvasása // összegzés hallgatónként: for (int i = 0; i < 10; i++){ avg[i] = 0; for (int j = 0; j < 5; j++) avg[i] += m[i][j]; avg[i] /= 5; // átlagot számítunk ELTE IK, Alkalmazott modul: Programozás 2:45
46 Adatsorozatok kezelése Példa Megoldás: int max = 0; // maximumkeresés az átlagok vektorán for (int i = 1; i < 10; i++){ if (avg[i] > avg[max]) max = i; cout << "Legjobban a(z) " << max+1 << ". tanuló teljesített." << endl; return 0; ELTE IK, Alkalmazott modul: Programozás 2:46
47 Adatsorozatok kezelése Mátrixok A vector típus is felhasználható mátrixok létrehozására a létrehozása kissé körülményes, mivel csak a külső tömb mérete adható meg közvetlenül, a belső tömböket külön kell átméretezni pl. egy 10 5-ös egészmátrix létrehozása: vector<vector<int> > m(10); // külső tömb létrehozása for (int i = 0; i < m.size(); i++) m[i].resize(5); // belső tömbök létrehozása ezután az indexelés a megszokott módon történik, pl.: m[0][0] ELTE IK, Alkalmazott modul: Programozás 2:47
48 Adatsorozatok kezelése Példa Feladat: Adott 10 tanuló egyenként 5 jeggyel, állapítsuk meg a legjobb átlaggal rendelkező tanulót. használjunk intelligens vektor alapú mátrixot Megoldás: int main(){ vector<vector<int> > m(10); // sorok létrehozása for (int i = 0; i < m.size(); i++){ m[i].resize(5); // oszlopok létrehozása // innentől használható a mátrix vector<float> avg(m.size()); // átlagok tömbje ELTE IK, Alkalmazott modul: Programozás 2:48
49 Adatsorozatok kezelése Példa Megoldás: for (int i = 0; i < m.size(); i++) for (int j = 0; j < m[i].size(); j++){ cout << i+1 << ". tanuló " << j+1 << ". jegye: "; cin >> m[i][j]; // jegyek beolvasása // összegzés soronként: for (int i = 0; i < m.size(); i++){ avg[i] = 0; for (int j = 0; j < m[i].size(); j++) avg[i] += m[i][j]; avg[i] /= m[i].size(); // átlagot számítunk ELTE IK, Alkalmazott modul: Programozás 2:49
50 Adatsorozatok kezelése Példa Megoldás: int max = 0; // maximumkeresés az átlagok vektorán for (int i = 1; i < avg.size(); i++){ if (avg[i] > avg[max]) max = i; cout << "Legjobban a(z) " << max + 1 << ". tanuló teljesített." << endl; return 0; ELTE IK, Alkalmazott modul: Programozás 2:50
Alkalmazott modul: Programozás 2. előadás. Procedurális programozás: adatfolyamok, adatsorok kezelése. Adatfolyamok kezelése. Adatfolyamok kezelése
Eötvös Loránd Tudományegyetem Informatikai Kar Alkalmazott modul: Programozás 2. előadás Procedurális programozás: adatfolyamok, adatsorok kezelése Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto
Bevezetés a programozásba I 8. gyakorlat. C++: szövegfolyamok, intelligens tömbök. Adatfolyamok Hibalehetőségek
Pázmány Péter Katolikus Egyetem Információs Technológiai Kar Bevezetés a programozásba I 8. gyakorlat C++: szövegfolyamok, intelligens tömbök 2011.11.08. Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto
Bevezetés a programozásba I 8. gyakorlat. C++: szövegfolyamok, intelligens tömbök
Pázmány Péter Katolikus Egyetem Információs Technológiai Kar Bevezetés a programozásba I 8. gyakorlat C++: szövegfolyamok, intelligens tömbök 2011.11.08. Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto
Bevezetés a programozásba I 4. gyakorlat. PLanG: Szekvenciális fájlkezelés. Szekvenciális fájlkezelés Fájlok használata
Pázmány Péter Katolikus Egyetem Információs Technológiai Kar Bevezetés a programozásba I 4. gyakorlat PLanG: 2011.10.04. Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto Fájlok
Bevezetés a programozásba I.
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
Bevezetés a programozásba I 4. gyakorlat. PLanG: Szekvenciális fájlkezelés
Pázmány Péter Katolikus Egyetem Információs Technológiai Kar Bevezetés a programozásba I 4. gyakorlat PLanG: 2011.10.04. Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto Fájlok
Bevezetés a programozásba I 7. gyakorlat. C++: szövegkezelés, szekvenciális fájlkezelés. Szövegkezelés Karakterkezelés
Pázmány Péter Katolikus Egyetem Információs Technológiai Kar Bevezetés a programozásba I 7. gyakorlat C++: szövegkezelés, szekvenciális fájlkezelés 2011.10.25. Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto
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:
Bevezetés a programozásba I 10. gyakorlat. C++: alprogramok deklarációja és paraméterátadása
Pázmány Péter Katolikus Egyetem Információs Technológiai Kar Bevezetés a programozásba I 10. gyakorlat C++: alprogramok deklarációja és paraméterátadása 2011.11.22. Giachetta Roberto groberto@inf.elte.hu
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
C++ I/O Bevezetés Izsó Tamás 2014. február 20. Izsó Tamás C++ I/O / 1 Section 1 Bevezetés Izsó Tamás C++ I/O / 2 Irodalom Izsó Tamás C++ I/O / 3 Paraméter illesztés függvénynév túlterhelés esetén 1 Pontos
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.
1. Motiváció C nyelvben a printf és a scanf függvények használata a programozótól nagy körültekintést igényel. A változó számú argumentum miatt a fordító nem tudja ellenőrizni, hogy a formátum mezőben
Bánsághi Anna 2014 Bánsághi Anna 1 of 35
IMPERATÍV PROGRAMOZÁS Bánsághi Anna anna.bansaghi@mamikon.net 4. ELŐADÁS - ADATFOLYAMOK KEZELÉSE 2014 Bánsághi Anna 1 of 35 TEMATIKA I. ALAPFOGALMAK, TUDOMÁNYTÖRTÉNET II. IMPERATÍV PROGRAMOZÁS Imperatív
Alkalmazott modul: Programozás. Programozási tételek, rendezések. Programozási tételek Algoritmusok és programozási tételek
Eötvös Loránd Tudományegyetem Informatikai Kar Alkalmazott modul: Programozás, rendezések 2015 Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto Algoritmusok és programozási tételek
Alkalmazott modul: Programozás 4. előadás. Procedurális programozás: iteratív és rekurzív alprogramok. Alprogramok. Alprogramok.
Eötvös Loránd Tudományegyetem Informatikai Kar Alkalmazott modul: Programozás 4. előadás Procedurális programozás: iteratív és rekurzív alprogramok Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto
Bevezetés a programozásba I.
Bevezetés a programozásba I. 3. gyakorlat Tömbök, programozási tételek Surányi Márton PPKE-ITK 2010.09.21. ZH! PlanG-ból papír alapú zárthelyit írunk el reláthatólag október 5-én! Tömbök Tömbök Eddig egy-egy
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`)
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
Bevezetés a programozásba. 8. Előadás: Függvények 2.
Bevezetés a programozásba 8. Előadás: Függvények 2. ISMÉTLÉS Helló #include using namespace std; int main() cout
Maximum kiválasztás tömbben
ELEMI ALKALMAZÁSOK FEJLESZTÉSE I. Maximum kiválasztás tömbben Készítette: Szabóné Nacsa Rozália Gregorics Tibor tömb létrehozási módozatok maximum kiválasztás kódolása for ciklus adatellenőrzés do-while
Programozási nyelvek I. 5. előadás (Gregorics Tibor anyagának felhasználásával)
Programozási nyelvek I. 5. előadás (Gregorics Tibor anyagának felhasználásával) I. A nyelv története C++ C (ős: B???) 1972 Ritchie AT&T Bell laboratórium UNIX 1978 Kernighan & Ritchie az első tankönyv,
Programozás II. 2. Dr. Iványi Péter
Programozás II. 2. Dr. Iványi Péter 1 C++ Bjarne Stroustrup, Bell Laboratórium Első implementáció, 1983 Kezdetben csak precompiler volt C++ konstrukciót C-re fordította A kiterjesztés alapján ismerte fel:.cpp.cc.c
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
Bevezetés a programozásba I 3. gyakorlat. PLanG: Programozási tételek. Programozási tételek Algoritmusok
Pázmány Péter Katolikus Egyetem Információs Technológiai Kar Bevezetés a programozásba I 3. gyakorlat PLanG: 2011.09.27. Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto Algoritmusok
Programozás. (GKxB_INTM021) Dr. Hatwágner F. Miklós május 6. Széchenyi István Egyetem, Gy r
Programozás (GKxB_INTM021) Széchenyi István Egyetem, Gy r 2018. május 6. Parancssori paraméterek Parancssorban történ programindításkor a program nevét követ en szóközökkel elválasztva paraméterek (command
Alkalmazott modul: Programozás. Programozási tételek, rendezések Giachetta Roberto
Eötvös Loránd Tudományegyetem Informatikai Kar Alkalmazott modul: Programozás Programozási tételek, rendezések 2015 Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto Algoritmusok
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
II. Mérés SZÉCHENYI ISTVÁN EGYETEM GYŐR TÁVKÖZLÉSI TANSZÉK
Mérési Utasítás Linux/Unix jogosultságok és fájlok kezelése Linux fájlrendszerek és jogosultságok Linux alatt, az egyes fájlokhoz való hozzáférések szabályozása érdekében a fájlokhoz tulajdonost, csoportot
Bevezetés a programozásba I.
Bevezetés a programozásba I. 9. gyakorlat Intelligens tömbök, mátrixok, függvények Surányi Márton PPKE-ITK 2010.11.09. C++-ban van lehetőség (statikus) tömbök használatára ezeknek a méretét fordítási időben
C++ programozási nyelv Struktúrák a C++ nyelvben Gyakorlat
C++ programozási nyelv Struktúrák a C++ nyelvben Gyakorlat 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/12 Input-output
Mérnöki programozás 7. Szerkesztette: dr. Vass Péter Tamás
Mérnöki programozás 7 Szerkesztette: dr. Vass Péter Tamás Függvények Függvény (function) egyedi azonosítónévvel ellátott számítási egység. A függvények formájában kidolgozott programkódok viszonylag egyszerűbb
Programozás C++ -ban 2007/1
Programozás C++ -ban 2007/1 1. Különbségek a C nyelvhez képest Több alapvető különbség van a C és a C++ programozási nyelvek szintaxisában. A programozó szempontjából ezek a különbségek könnyítik a programozó
Objektumorientált programozás Pál László. Sapientia EMTE, Csíkszereda, 2014/2015
Objektumorientált programozás Pál László Sapientia EMTE, Csíkszereda, 2014/2015 Objektumorientált programozás - Pál László 12. ELŐADÁS Állomány-kezelés 2 Objektumorientált programozás - Pál László Mi a
Programozás Minta programterv a 1. házi feladathoz 1.
Programozás Minta programterv a 1. házi feladathoz 1. Gregorics Tibor 1. beadandó/0.feladat 2008. december 6. EHACODE.ELTE gt@inf.elte.hu 0.csoport Feladat Egy osztályba n diák jár, akik m darab tantárgyat
AWK programozás, minták, vezérlési szerkezetek
10 AWK programozás, minták, vezérlési szerkezetek AWK futtatási módok AWK parancs, közvetlen programkódmegadás: awk 'PROGRAMKÓD' FILE példa: ls -l awk '{print $1, $5}' a programkód helyére minden indentálás
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
INFORMATIKA tétel 2019
INFORMATIKA tétel 2019 ELIGAZÍTÁS: 1 pont hivatalból; Az 1-4 feladatokban (a pszeudokód programrészletekben): (1) a kiír \n utasítás újsorba ugratja a képernyőn a kurzort; (2) a / operátor osztási hányadost
Operációs rendszerek. 11. gyakorlat. AWK - szintaxis, vezérlési szerkezetek UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED
UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED AWK - szintaxis, vezérlési szerkezetek Operációs rendszerek 11. gyakorlat Szegedi Tudományegyetem Természettudományi és Informatikai Kar Csuvik
ELTE SAP Excellence Center Oktatóanyag 1
Oktatóanyag 1 A dataset egy az alkalmazás-szerveren megtalálható illetve ott létrejövő szekvenciális fájl. Szerveroldali fájlkezelésre használják az SAP-ban. Megjegyzés: Amennyiben kliens oldalon található
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
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.
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.
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
INFORMATIKA tétel 2017
INFORMATIKA tétel 2017 ELMÉLETI TÉTEL: Sorold fel a rekurzív függvények/eljárások jellemzőit! Szemléltesd a fogalmakat egy konkrét példán! [1 pont] GYAKORLATI TÉTEL: 1. Legyen az alábbi pszeudokód programrészlet
Operációs rendszerek. 9. gyakorlat. Reguláris kifejezések - alapok, BASH UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED
UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED Reguláris kifejezések - alapok, BASH Operációs rendszerek 9. gyakorlat Szegedi Tudományegyetem Természettudományi és Informatikai Kar Csuvik Viktor
Felvételi tematika INFORMATIKA
Felvételi tematika INFORMATIKA 2016 FEJEZETEK 1. Természetes számok feldolgozása számjegyenként. 2. Számsorozatok feldolgozása elemenként. Egydimenziós tömbök. 3. Mátrixok feldolgozása elemenként/soronként/oszloponként.
Bevezetés a programozásba. 11. Előadás: Esettanulmány
Bevezetés a programozásba 11. Előadás: Esettanulmány ISMÉTLÉS Függvényhívás #include #include #include #include using using namespace namespace std; std; double double
8. Gyakorlat. Rövid elméleti összefoglaló: Fájlkezelés
Rövid elméleti összefoglaló: Fájlkezelés 8. Gyakorlat Karakter írása és olvasása szükséges a fájlkezelő függvények használatához. Állomány nyitása írásra, például: ofstream Fir; Fir.open("adatok.dat");
7. gyakorlat Sorozatok, Fájlkezelés
7. gyakorlat Sorozatok, Fájlkezelés Házi ellenőrzés - f0124 Írj programot, amelyben a felhasználónak egy, a program által meghatározott számot kell kitalálnia! A felhasználó tippjét a program vagy elfogadja,
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
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
Programozás alapjai C nyelv 4. gyakorlat. Mit tudunk már? Feltételes operátor (?:) Típus fogalma char, int, float, double
Programozás alapjai C nyelv 4. gyakorlat Szeberényi Imre BME IIT Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I. 2005.10.10.. -1- Mit tudunk már? Típus fogalma char, int, float,
1. Egyszerű (primitív) típusok. 2. Referencia típusok
II. A Java nyelv eszközei 1. Milyen eszközöket nyújt a Java a programozóknak Korábban már említettük, hogy a Java a C nyelvből alakult ki, ezért a C, C++ nyelvben járatos programozóknak nem fog nehézséget
AWK programozás Bevezetés
09 AWK programozás Bevezetés 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 és feldolgozhatóvá
S z á m í t ó g é p e s a l a p i s m e r e t e k
S z á m í t ó g é p e s a l a p i s m e r e t e k 7. előadás Ami eddig volt Számítógépek architektúrája Alapvető alkotóelemek Hardver elemek Szoftver Gépi kódtól az operációs rendszerig Unix alapok Ami
Fejlett programozási nyelvek C++ Sablonok és adatfolyamok
Fejlett programozási nyelvek C++ Sablonok és adatfolyamok 11. előadás Antal Margit 2009 slide 1 Témakörök Sablonok Függvénysablon Osztálysablon Sablon metaprogramozás Adatfolyamok Operátorok és manipulátorok
Miről lesz ma szó? A PROGAMOZÁS ALAPJAI 1. Dinamikus változók. Dinamikus változók. Dinamikus változók. Dinamikus változók. 7.
Miről lesz ma szó? A PROGAMOZÁS ALAPJAI 1 Vitéz András egyetemi adjunktus BME Híradástechnikai Tanszék vitez@hit.bme.hu Dinamikus memóriakezelés Dinamikus tömbök Dinamikus stringek Program kapcsolata a
Bevezetés a C++ programozásba
Bevezetés a C++ programozásba A program fogalma: A program nem más, mint számítógép által végrehajtható utasítások sorozata. A számítógépes programokat különféle programnyelveken írhatjuk. Ilyen nyelvek
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
Operációs rendszerek gyak.
Operációs rendszerek gyak. AWK programozás Hirling Dominik Szegedi Tudományegyetem AWK AWK: a pattern scanning and processing language mintaelemző-és feldolgozó nyelv bármilyen szövegből minták alapján
1. Írjunk programot mely beolvas két egész számot és kinyomtatja az összegüket.
1. Írjunk programot mely beolvas két egész számot és kinyomtatja az összegüket. // változó deklaráció int number1; // első szám int number2; // második szám int sum; // eredmény std::cout
Programozás C nyelven (3. ELŐADÁS) Sapientia EMTE
Programozás C nyelven (3. ELŐADÁS) Sapientia EMTE 2015-16 Classic Empire - A turn Based Wargame Classic Empire is a real time, multiplayer, Internet-based game, featuring military, diplomatic, and economic
Dr. Pál László, Sapientia EMTE, Csíkszereda WEB PROGRAMOZÁS 6.ELŐADÁS. Fájlkezelés PHP-ben
Dr. Pál László, Sapientia EMTE, Csíkszereda WEB PROGRAMOZÁS 6.ELŐADÁS 2015-2016 Fájlkezelés PHP-ben Fájlok és könyvtárak kezelése 2 A PHP a Javascript-hez hasonlóan, nem képes a felhasználó merevlemezén
Fejlett programozási nyelvek C++ Iterátorok
Fejlett programozási nyelvek C++ Iterátorok 10. előadás Antal Margit 2009 slide 1 Témakörök I. Bevezetés II. Iterátor definíció III. Iterátorok jellemzői IV. Iterátorkategóriák V. Iterátor adapterek slide
BASH script programozás II. Vezérlési szerkezetek
06 BASH script programozás II. Vezérlési szerkezetek Emlékeztető Jelölésbeli különbség van parancs végrehajtása és a parancs kimenetére való hivatkozás között PARANCS $(PARANCS) Jelölésbeli különbség van
Mintavételes szabályozás mikrovezérlő segítségével
Automatizálási Tanszék Mintavételes szabályozás mikrovezérlő segítségével Budai Tamás budai.tamas@sze.hu http://maxwell.sze.hu/~budait Tartalom Mikrovezérlőkről röviden Programozási alapismeretek ismétlés
2018, Funkcionális programozás
Funkcionális programozás 6. előadás Sapientia Egyetem, Matematika-Informatika Tanszék Marosvásárhely, Románia mgyongyi@ms.sapientia.ro 2018, tavaszi félév Miről volt szó? Haskell modulok, kompilálás a
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
1.feladat (max02a) Olvassunk be egy fájlból egész számokat egy tömbbe. Keressük meg a tömb valamely maximális elemét. A tömb hosszát a fájl els ı eleme tartalmazza.a fájl nevét a szabványos bemeneten kérjük
Mit tudunk már? Programozás alapjai C nyelv 4. gyakorlat. Legnagyobb elem keresése. Feltételes operátor (?:) Legnagyobb elem keresése (3)
Programozás alapjai C nyelv 4. gyakorlat Szeberényi Imre BME IIT Mit tudunk már? Típus fogalma char, int, float, double változók deklarációja operátorok (aritmetikai, relációs, logikai,
Bevezetés a programozásba. 9. Előadás: Rekordok
Bevezetés a programozásba 9. Előadás: Rekordok ISMÉTLÉS Függvényhívás #include #include #include #include using using namespace namespace std; std; double double terulet(double
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.
Függvények 1.Függvények...1 1.1.A függvény deníció szintaxisa... 1..Függvények érték visszatérítése...3 1.3.Környezettel kapcsolatos kérdések...4 1.4.Lokális változók használata...4 1.5.Rekurzív hívások...5.kód
Programozás C és C++ -ban
Programozás C és C++ -ban 1. Különbségek a C nyelvhez képest Több alapvető különbség van a C és a C++ programozási nyelvek szintaxisában. A programozó szempontjából ezek a különbségek könnyítik a programozó
Programozás 6. Dr. Iványi Péter
Programozás 6. Dr. Iványi Péter 1 Előfeldolgozás része Makrók A forrás kódban elvégzi a helyettesítéseket a fordító Csak egyszer végez helyettesítést Nem olyan makrók, mint a LISP vagy Scheme esetén Csak
Occam 1. Készítette: Szabó Éva
Occam 1. Készítette: Szabó Éva Párhuzamos programozás Egyes folyamatok (processzek) párhuzamosan futnak. Több processzor -> tényleges párhuzamosság Egy processzor -> Időosztásos szimuláció Folyamatok közötti
Bevezetés a programozásba I.
Bevezetés a programozásba I. 5. gyakorlat Surányi Márton PPKE-ITK 2010.10.05. C++ A C++ egy magas szint programozási nyelv. A legels változatot Bjarne Stroutstrup dolgozta ki 1973 és 1985 között, a C nyelvb
7. gyakorlat. Fájlkezelés IO haladó Függvények haladó
7. gyakorlat Fájlkezelés IO haladó Függvények haladó Fájlkezelés A C-ben a fájlkezelés ún. fájlstream-eken keresztül történik, melyek puffereltek ha valamit a streamre küldünk, nem biztos, hogy rögtön
0.1. Mi az a standard be- és kimenet?... 1. 0.2. A két mintafeladat leírása
KöMaL Technikai tanácsok az I- és S-jelű pontversenyhez A standard be- és kimenet kezelése Tartalomjegyzék 0.1. Mi az a standard be- és kimenet?............................. 1 0.2. A két mintafeladat leírása.................................
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ő
Változók. Mennyiség, érték (v. objektum) szimbolikus jelölése, jelentése Tulajdonságai (attribútumai):
Python Változók Mennyiség, érték (v. objektum) szimbolikus jelölése, jelentése Tulajdonságai (attribútumai): Név Érték Típus Memóriacím A változó értéke (esetleg más attribútuma is) a program futása alatt
3. ZH-ban a minimum pontszám 15
1. HF 2. HF 3. HF 4. HF 5. HF 1. ZH 2. ZH 3. ZH Osszesen Jegy EHA kod 4 4 4 4 4 4 4 4 18 10 10 30 100 1 ARAPAFP.PTE 3.5 2.5 4 4 2 4 4 2 15 5 6 18 70 3 x 2 BAMPACP.PTE 4 4 4 4 4 4 4 4 18 10 8 26 94 5 x
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
Programozás C nyelven (13. ELŐADÁS) Sapientia EMTE
Programozás C nyelven (13. ELŐADÁS) Sapientia EMTE 2015-16 1 Olvasás/írás (ANSI C) ille tyűzetről/képer yőre (scanf/printf) scanf: olvasás a standard inputról (stdin) A sta dard i put i pli ite a ille
Gregorics Tibor Egyszerű programok C++ nyelvi elemei 1
Gregorics Tibor Egyszerű programok C++ nyelvi elemei 1 Egyszerű C++ program szerkezete A konzol alkalmazás projektjébe egyetlen cpp kiterjesztésű (alapértelmezésben main.cpp) forrásállomány tartozik. Az
Programozási alapismeretek 2009/2010
Szlávi-Zsakó: Programozási alapismeretek 7. előadás 1 Szlávi-Zsakó: Programozási alapismeretek 7. előadás 2 Szlávi-Zsakó: Programozási alapismeretek 7. előadás 3 Ennek a játék a betűkkel -szerű absztrakciónak
1. numere.txt n (1 n 10000) n növekvő kilenc a) Pascal/C++ Például: NUMERE.TXT
Az informatika érettségi harmadik tételsora tartalmaz egy feladatot, melyet hatékonyan kell megoldani. A program megírása mellett követelmény a megoldásban használt módszer rövid leírása, kitérve a módszer
Programozás(A szakirány) II. beadandó feladat Farkas András HP6S15 1. csoport Veszprémi Anna / Hudoba Péter
Programozás(A szakirány) II. beadandó feladat 2014.05.05. Farkas András HP6S15 fafee@fafeecorp.com 1. csoport Veszprémi Anna / Hudoba Péter Feladat: Egy szöveges állományban bekezdésekre tördelt szöveg
C programozás. { Márton Gyöngyvér, 2009 } { Sapientia, Erdélyi Magyar Tudományegyetem }
C programozás Márton Gyöngyvér, 2009 Sapientia, Erdélyi Magyar Tudományegyetem http://www.ms.sapientia.ro/~mgyongyi 1 Ciklusok for (ismétlés) while do while 2 for utasítás szöveg 10-szeri kiíratása: int
Bánsághi Anna 2014 Bánsághi Anna 1 of 68
IMPERATÍV PROGRAMOZÁS Bánsághi Anna anna.bansaghi@mamikon.net 3. ELŐADÁS - PROGRAMOZÁSI TÉTELEK 2014 Bánsághi Anna 1 of 68 TEMATIKA I. ALAPFOGALMAK, TUDOMÁNYTÖRTÉNET II. IMPERATÍV PROGRAMOZÁS Imperatív
Programozás I. házi feladat
Programozás I. házi feladat 2013. 6. hét, 1. rész A feladatsor 4 feladatot tartalmaz, amelyeket egy közös forráskódban kell megvalósítani. Annak érdekében, hogy a tesztelő egymástól függetlenül tudja tesztelni
hatására hátra lép x egységgel a toll
Ciklusszervező utasítások minden programozási nyelvben léteznek, így például a LOGO-ban is. LOGO nyelven, (vagy legalábbis LOGO-szerű nyelven) írt programok gyakran szerepelnek az iskola számítástechnikai
Programozás alapjai C nyelv 8. gyakorlat. Mutatók és címek (ism.) Indirekció (ism)
Programozás alapjai C nyelv 8. gyakorlat Szeberényi Imre BME IIT Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I. 2005.11.07. -1- Mutatók és címek (ism.) Minden változó és függvény
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 alapjai C nyelv 8. gyakorlat Szeberényi mre BME T Programozás alapjai. (C nyelv, gyakorlat) BME-T Sz.. 2005.11.07. -1- Mutatók és címek (ism.) Minden változó és függvény
Programozás I gyakorlat. 10. Stringek, mutatók
Programozás I gyakorlat 10. Stringek, mutatók Karakter típus A char típusú változókat karakerként is kiírhatjuk: #include char c = 'A'; printf("%c\n", c); c = 80; printf("%c\n", c); printf("%c\n",
Gregorics Tibor Egyszerű programok C++ nyelvi elemei 1
Gregorics Tibor Egyszerű programok C++ nyelvi elemei 1 Egyszerű C++ program szerkezete A konzol alkalmazás projektjébe egyetlen cpp kiterjesztésű (alapértelmezésben main.cpp) forrásállomány tartozik. Az
1. Jelölje meg az összes igaz állítást a következők közül!
1. Jelölje meg az összes igaz állítást a következők közül! a) A while ciklusban a feltétel teljesülése esetén végrehajtódik a ciklusmag. b) A do while ciklusban a ciklusmag után egy kilépési feltétel van.
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,
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.
9. Gyakorlat AWK 2 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. Ha az n-et elhagyjuk, akkor az m-ediktől
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,
7. Laboratóriumi gyakorlat: Vezérlési szerkezetek II.
7. Laboratóriumi gyakorlat: Vezérlési szerkezetek II. A gyakorlat célja: 1. A shell vezérlő szerkezetei használatának gyakorlása. A használt vezérlő szerkezetek: if/else/fi, for, while while, select, case,
Bevezetés a programozásba. 5. Előadás: Tömbök
Bevezetés a programozásba 5. Előadás: Tömbök ISMÉTLÉS Specifikáció Előfeltétel: milyen körülmények között követelünk helyes működést Utófeltétel: mit várunk a kimenettől, mi az összefüggés a kimenet és
Informatika terméktervezőknek
Informatika terméktervezőknek C# alapok Névterület (namespace) using Osztály (class) és Obejtumok Metódus (function, procedure, method) main() static void string[] arg Szintaxis // /* */ \n \t Névadások