Programozás alapjai C nyelv 11. gyakorlat. Preprocesszor. Makrók (#define)

Méret: px
Mutatás kezdődik a ... oldaltól:

Download "Programozás alapjai C nyelv 11. gyakorlat. Preprocesszor. Makrók (#define)"

Átírás

1 Programozás alapjai C nyelv 11. gyakorlat Szeberényi Imre BME IIT Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I Preprocesszor A forrás szöveges előfeldolgozását végzi. # -kal kezdődő sorok Bárhol megjelenhetnek, hatásuk a fordítási egység végéig tart. Feldolgozás menete: trigráf karakterek (ISO ANSI pl:??[ = { ) \sorvége tokenizálás, kommentek eldobása makrók és fordítási direktívák végrehajtása Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I Makrók (#define) #define azonosító token_sorozat #define N 52 /* elemek száma */ #define TRUE 1 /* igaz logikai konstans */ #define FALSE 0 int a[n]; for (i = 0; i < N; ) a[i++] = FALSE; int a[52]; for (i = 0; i < 52; ) a[i++] = 0; Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I

2 Makrók (2) #define azonosító token_sorozat #define azonosító ( azonosító_lista ) token_sorozat #define MAX(a, b) a > b? a : b int a = MAX(3, i); float f = MAX(3.12, f8); int a = 3 > i? 3 : i; float f = 3.12 > f8? 3.12 : f8; Tetszőleges típusú lehet, rugalmasabb mint a fv. Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I Makrók (3) a = MAX(c & 7, d); a = c & 7 > d? c & 7 : d; A precedenciából adódó problémákat elfedi, nehéz az ilyen hibát megtalálni! Zárójelek!!! #define MAX(a, b) (a) > (b)? a : b a = (c & 7) > (d)? c & 7 : d; #undef azonosító #undef MAX #undef TRUE Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I #include <fájlnév> #include fájlnév #include token_sorozat #include fájl Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I

3 Feltételes fordítás #if konstans_kifejezés... #elif konstans_kifejezés... #else... #endif #if DEBUG... #else... #endif A makrók a fordításkor kívülről (pl. parancssorból) is definiálhatók, így a forráshoz hozzá sem kell nyúlni. Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I Feltételes fordítás (2) #ifdef azonosító #else #endif #ifndef azonosító #else #endif A konstans kifejezésben használható a defined (azonosító) kifejezés, ami 1L, vagy 0L értékkel helyettesítődik. Így a #if defined(azonosíto) és a #ifdef azonosító valamint a #if!defined(azonosító) és a #ifndef azonosító direktívák egyenértékűek. Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I Állomány (Fájl) Állomány: Elvileg végtelen hosszúságú adatszerkezet rekord mező byte Tartalom szerint szöveg adat adatbázis Hozzáférés szerint soros véletlen Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I

4 Állománykezelés C nyelv kialakulásakor kezdetben az operációs rendszer (UNIX) fájlkezelését támogatta a nyelv. Ez ma is elérhető, de nem ANSI szabvány (alacsony szintű I/O, nem árt ismerni /open, read, write,.../) ANSI C stream szemlélete fopen, fscanf, fprintf, fgetc, fputc, ungetc, feof, fread, fwrite, fseek, ftell, fflush, fclose, remove, rename, tmpfile,... Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I FILE típus stdio.h-ban definiált struktúra, ami adminiszrációs területet, és a műveletek gyorsítására buffert tartalmaz A fájl megnyitásakor a fopen(...) egy ilyen területre mutató címmel (FILE *) tér vissza. Minden további műveletkor erre kell hivatkozni. Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I fopen() FILE *fopen(char *name, char *mod) megnyitás módja: r - csak olvasás w - írás és olvasás (létrehozza) a - hozzáfűzés (létrehozza) r+ - írás és olvasás w+ - írás és olvasás (létrehozza) a+ - hozzáfűzés (írás és olvasás, létrehozza) Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I

5 fopen() példa #include <stdio.h> main() { FILE *fp; char *nev = adat.txt ; int i; if ((fp = fopen(nev, r )) == NULL) { printf( A %s fájl nem nyitható\n, nev); exit(-1); fscanf(fp, %d, &i);... Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I Feladat: mycopy Írjuk programot, ami lemásol egy állományt! A program paraméterként kapja a forrás ill. cél állományok neveit. mycopy file_1 file_2 Indítási paraméter v. parancsnyelvi argumentum: Az operációs rendszer által a program indításakor átadott adat. Rendszerint szóközökkel határolt karaktersorozat. A pontos szintaxis az op.rendszertől függ. Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I A main paraméterei int main(int argc, char *argv[]) argc - Megadja a paraméterek számát (a program neve is egy paraméter, tehát argc >= 1). argv - Paraméterekre, mint karaktersorozatokra mutató pointerek tömbje (argv[0] a program nevére mutat). A karaktersorozatokat \0 határolja (string) Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I

6 mycopy program #include <stdio.h> main(int argc, char *argv[]) program neve { FILE *fpin, *fpout; int ch; if (argc!= 3) { printf( Használat: %s forrás cél\n, argv[0]); return(1); if ((fpin = fopen(argv[1], r )) == NULL) { printf( A %s fájl nem nyitható\n, argv[1]); return(2); if ((fpout = fopen(argv[2], w )) == NULL) { printf( A %s fájl nem hozható létre\n, argv[2]); return(3); Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I int függvény!! mycopy program (2) while ((ch = fgetc(fpin))!= EOF) fputc(ch, fpout); fclose(fpin); fclose(fpout); return (0); A main-ből való kilépes exit(n) hivást fog eredményezni. Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I feof() while (!feof(fpin) { ch = fgetc(fpin); fputc(ch, fpout); while (!feof(fpin) { ch = fgetc(fpin); if (ch!= EOF) fputc(ch, fpout); Eltérően a Pascal EOF-tól, nem jós, hanem utólag okos függvény. Így használata nem jár különös előnyökkel. Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I

7 stdin, stdout, stderr Egy program indulásakor automatikusan megnyílnak (szabványos bemenet, kimenet és hiba kimenet). scanf, printf, perror ezeket használja perror(s) fprintf(stderr, %s: %s\n, s, hiba ) getchar() getc(stdin) fgetc(stdin) putchar(c) putc(c, stdout) fputc(c, stdout) stb. Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I Bináris és szöveg fájl Megnyitásnál t, vagy b (pl: rt, a+t ) Miért kell? A UNIX rendszerben a szöveges állományok sorait csak egyetlen karakter határolja a \n. A nem UNIX rendszerekben - hagyományi okok miatt - többnyire két karaktert tárolnak minden sor végén. ( \r, \n ) A C programok nagy része csak a \n -t várja ill. írja ki. Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I A probléma megoldása Beolvasáskor minden \r\n sorozatból \n-t csinálunk. Kiíráskor minden \n-t \r\n sorozattal helyettesítünk. CSAK SZÖVEG esetén kell konvertálni! Más esetben KÁROS! Általában a text az alapértelmezett (_fmode). Fontos a helyes beállítás. Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I

8 fread(), frwite() Rekord szemlélet size_t fread(void *p, size_t m, size_t n, FILE *fp); size_t fwrite(void *p, size_t m, size_t n, FILE *fp); n darab m méretű rekord olvasása ill. írása Hibakezelés: feof(), ferror(), int errno Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I Pozicionálás az állományban Író/olvasó pointer bájtot címez. int fseek(file *fp, long offset, int bazis); long ftell(file *fp); int fgetpos(file *fp, fpos_t *p); int fsetpos(file *fp, const fpos_t *p); Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I Feladat 1 Tároljuk el a hallgatók adatait (név, átlag) tankörönként, azon belül névsorba rendezve. A tankörök számát ismerjük nem ismerjük Válasszunk adatszerkezetet! Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I

9 Adatszerkezet Tankörönként építünk láncot. A láncok névsor szerint rendezettek, és a végükön van strázsa. Ha a tankörök száma ismert, akkor láncok kezdőpointerét egy a tankörszámmal indexelt tömbbe tehetjük. Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I Adatszerkezet ADAT ADAT ADAT... ADAT ADAT ADAT Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I Adatszerkezet typedef char nev_t[41]; typedef struct hallg_str { nev_t nev; float atl; struct hallg_str *kov; hallg_t, *h_poi; h_poi tankorok[10]; Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I

10 Bonyolultabb adatszerkezet Gyakran több szempont (kulcs) szerint kell rendezni, pl. tankörönként, azon belül névsorban. Ha egyik szempont szerint sem ismert a bemenő adatok száma, akkor több, vagy többszörösen láncolt listát célszerű építeni. Megfelelő pointerláncok kialakításával biztosítható, hogy az adatok csak egyszeresen legyenek tárolva. Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I Fésű adatszerkezet FEJ LE FEJ LE FEJ LE LE ADAT ADAT Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I Feladat 1 (kiegészítés) Olvassuk be a hallgatók adatait az indítási paraméterkén megadott állományból! Ebben soronként vannak a hallgatók adatai: név 40 karakter tankörszám (egész) elválasztó szóköz átlag (valós szám) Írjuk a ki tankörönként a hallgatók névsorát és átlagát! Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I

11 Vázlat (adatszerkezet) typedef char nev_t[nevh+1]; typedef struct hallg_str { nev_t nev; float atl; struct hallg_str *kovh; hallg_t, *h_poi; typedef struct tankor_str { int tk; struct tankor_str *kovtk; struct hallg_str *kovh; tankor_t, *t_poi; Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I Vázlat (adatszerkezet) typedef struct input_str { nev_t nev; int tk; float atl; inp_t; Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I Vázlat (algoritmus) kezdo = inic() fp = fopen(argv[1], r ) while beolvas(fp, &adat) fesul(kezdo, adat) kiir(kezdo) Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I

12 Alprogram spec. - inic t_poi inic(void); t_poi értékű függvény, amely beállítja a megfelelő kezdeti értékeket, létrehozza a strázsaelemet. bemenet: nincs kimenet: függvényérték: strázsára mutató pointer Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I Alprogram spec. - beolvas int beolvas(file *fp, inp_t *r); függvény, amely a paraméterként kapott állományból, beolvassa a következő hallgató adatait. Sikeres olvasás eseten 1 értékkel tér vissza. bemenet: megnyitott állomány pointere pointer a kimenő adatra kimenet: olvasott adat (pointer paraméter) függvényérték 1, ha sikerült az olvasás, egyébként 0 Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I Alprogram spec. - fesul h_poi fesul(t_poi tp, inp_t r); t_poi értékű üggvény, amely a paraméterként kapott fésűs láncra felveszi a szintén paraméterként kapott adatot. A láncot rendezve építi. A lánc végén van strázsa. bemenet: láncra mutató pointer felveendő adat kimenet: a lánc épül függvényérték NULL, ha elfogyott a memória Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I

13 Alprogram spec. - kiír void kiir(t_poi tp); A paraméterként kapott fésűs láncot végigjárja és kiírja az elemeket. bemenet: láncra mutató pointer kimenet: standard output Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I Algoritmus - fesul tp = tankor_lanc(tp, tk) hallgato_lanc(tp->kovh, adat) Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I Alprogram spec. - tankor_lancol t_poi tankor_lanc(t_poi tp, int tk); Függvény, amely a paraméterként kapott tankörláncon megkeresi, ill. felveszi a szintén paraméterként kapott tankört. A láncot rendezve építi. A lánc végén van strázsa. bemenet: láncra mutató pointer a keresett tankör száma kimenet: függvényérték: a lánc megfelelő elemére mutató pointer. NULL, ha elfogyott a memória Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I

14 Alprogram sp. - hallgato_lancol h_poi hallgato_lanc(h_poi hp, inp_t r); A paraméterként kapott hallgatóláncra felveszi a szintén paraméterként kapott hallgatói adatot. A láncot rendezve építi. A lánc végén van strázsa. bemenet: láncra mutató pointer a felveendő adat kimenet: függvényérték NULL, ha elfogyott a memória Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I A fésű TK TK H TK TK H TK TK H TK H NEV,ATL H H NEV,ATL H H H Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I Implementáció - tankor_lancol A tömörebb íráshoz vezessük be a new makrót, ami megfelelő méretű helyet foglal, és hibát is kezel (visszatér a NULL-lal): pointer változó tárolandó objektum típusa #define new(p, obj) \ if ((p = malloc(sizeof(obj))) == NULL) return(null) Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I

15 Implementáció - tankor_lancol t_poi tankor_lanc(t_poi tp, int tk) { t_poi uj; while (tp->kovtk && tp->tk < tk) tp = tp->kovtk; if (tp->kovtk == NULL tp->tk!= tk) { new(uj, tankor_t); *uj = *tp; tp->kovtk = uj; tp->tk = tk; new(tp->kovh, hallg_t); tp->kovh->kovh = NULL; return(tp); Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I Implementáció - hallgato_lancol h_poi hallgato_lanc(h_poi hp, inp_t r) { h_poi uj; stringek összehasonlítása while (hp->kovh && strcmp(hp->nev, r.nev) < 0) hp = hp->kovh; new(uj, hallg_t); *uj = *hp; hp->kovh = uj; strcpy(hp->nev, r.nev); hp->atl = r.atl; string másolása return(hp); Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I Karakterfüzérek (stringek) Nincs külön string változó, de konstans van. A stringeket olyan karakter tömbben tároljuk, melynek végén egy \0 van. Ezt figyelik a string-kezelő függvények (string.h). strcmp, strcpy, strncpy, strcat, strncat, strchr, strstr, strlen, strtok, stb. Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I

16 Implementáció - fesul t_poi fesul(t_poi tp, inp_t r) { if ((tp = tankor_lancol(tp, r.tk)) == NULL) return(null); return(hallgato_lancol(tp->kovh, r)); Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I void kiir(t_poi tp) { while (tp->kovtk) { h_poi hp; Implementáció - kiir a ciklusban érvényes printf( Tankör: %3d\n, tp->tk); hp = tp->kovh; while (hp->kovh) { printf( %50s%5.2f\n, hp->nev, hp->atl); hp = hp->kovh; tp = tp->kovtk; Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I Implementáció - beolvas int beolvas(file *fp, inp_t *r) { char buf[nevh+20]; teljes sor beolvasása if (fgets(buf, sizeof(buf), fp) == NULL) return(0); strncpy(r->nev, buf, NEVH); lezárás r->nev[nevh] = 0; sscanf(&buf[nevh], %d%f, &r->tk, &r->atl); return(1); beolvasás után könyebben mazsolázunk benne Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I

17 Implementáció - inic t_poi inic(void) { t_poi tp; new(tp, tankor_t); tp->kovtk = NULL; return(tp); nincs paramétere Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I Implementáció - program #include <stdio.h> #include <stdlib.h> #include <string.h> #define new(p, obj) \ if ((p = malloc(sizeof(obj))) == NULL) \ return(null) #define NEVH 40 Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I Implementáció - program typedef char nev_t[nevh+1]; typedef struct hallg_str { nev_t nev; float atl; struct hallg_str *kovh; hallg_t, *h_poi; typedef struct tankor_str { int tk; struct tankor_str *kovtk; struct hallg_str *kovh; tankor_t, *t_poi; Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I

18 Implementáció - program typedef struct input_str { nev_t nev; int tk; float atl; inp_t; main(int argc, char *argv[]) { FILE *fp; t_poi kezdo; inp_t adat; Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I Implementáció - program if (argc!= 2) { printf("használat: %s input_file\n", argv[0]); exit(1); if ((kezdo = inic()) == NULL) { printf( Nincs elég memória\n"); exit(2); if ((fp = fopen(argv[1], "r")) == NULL) { printf("nem lehet megnyitni a %s állományt\n", argv[1]); exit(3); Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I Implementáció - program while (beolvas(fp, &adat)) { if (fesul(kezdo, adat) == NULL) { printf("elfogyott a memória\n"); break; while-ból lép ki kiir(kezdo); return(0); Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I

19 Próba (input) Lancolt Jeno Elsos Pista Masodikos Joska Nagy Dodo Kiss Joco Major Anna Fellebeki Atmegel Oszkar Uszkar Gaz Geza Okos Toni Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I Próba (output) Tankor: 1 Elsos Pista 3.43 Gaz Geza 2.11 Major Anna 2.33 Nagy Dodo 4.63 Tankor: 2 Fellebeki Atmegel 3.91 Kiss Joco 3.53 Masodikos Joska 4.51 Okos Toni 5.00 Tankor: 3 Lancolt Jeno 3.56 Tankor: 8 Oszkar Uszkar 2.45 Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I

Preprocesszor. Programozás alapjai C nyelv 11. gyakorlat. Makrók (2) Makrók (#define) Makrók (3) #include

Preprocesszor. Programozás alapjai C nyelv 11. gyakorlat. Makrók (2) Makrók (#define) Makrók (3) #include Programozás alapjai C nyelv 11. gyakorlat Szeberényi Imre BME IIT Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I. 2005.11.28. -1- Preprocesszor A forrás szöveges előfeldolgozását

Részletesebben

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

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

Részletesebben

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

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

Részletesebben

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

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

Részletesebben

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

Részletesebben

Programozás alapjai C nyelv 9. gyakorlat. Rekurzió. Rekurzív algoritmus

Programozás alapjai C nyelv 9. gyakorlat. Rekurzió. Rekurzív algoritmus Programozás alapjai C nyelv 9. gyakorlat Szeberényi Imre BME IIT Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I. 2005.11.14. -1- Rekurzió A feladat algoritmusa eleve rekurzív

Részletesebben

Rekurzió. Programozás alapjai C nyelv 9. gyakorlat. Rekurzív algoritmus. Rekurzív algoritmus fajtái. Példa: n! (2) Példa: n!

Rekurzió. Programozás alapjai C nyelv 9. gyakorlat. Rekurzív algoritmus. Rekurzív algoritmus fajtái. Példa: n! (2) Példa: n! Programozás alapjai C nyelv 9. gyakorlat Szeberényi Imre BME IIT Rekurzió A feladat algoritmusa eleve rekurzív formában adott (ld: n!). A valójában nem rekurzív de valami hasznot húzunk

Részletesebben

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

A C programozási nyelv VI. Parancssori argumentumok File kezelés A C programozási nyelv VI. Parancssori argumentumok File kezelés Miskolci Egyetem Általános Informatikai Tanszék A C programozási nyelv VI. (Parancssori argumentum, file kezelés) CBEV6 / 1 Parancssori

Részletesebben

Programozás II. Fájlkezelés

Programozás II. Fájlkezelés Programozás II. Fájlkezelés Kocsis Zoltán Tamás 2013. 03. 28 Fájlkezelés Az stdio.h-ban megadott FILE* típusú pointerrel és függvényekkel lehet elérni a fájlunkat. FILE *fp; /* fájl mutató (file pointer/handle)

Részletesebben

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

Programozás C nyelven (10a. ELŐADÁS) Sapientia EMTE Programozás C nyelven (10a. ELŐADÁS) Sapientia EMTE 2015-16 1 Karakterláncok A karakterláncokat char-tömbökben tároljuk. Egy karakterlánc végét a karakterlánc-végjel jelzi: \0 char s[10] = sapi ;... s

Részletesebben

Függvények. Programozás alapjai C nyelv 7. gyakorlat. LNKO függvény. Függvények(2) LNKO függvény (2) LNKO függvény (3)

Függvények. Programozás alapjai C nyelv 7. gyakorlat. LNKO függvény. Függvények(2) LNKO függvény (2) LNKO függvény (3) Programozás alapjai C nyelv 7. gyakorlat Szeberényi Imre BME IIT Függvények C program egymás mellé rendelt függvényekből áll. A függvény (alprogram) jó absztrakciós eszköz a programok

Részletesebben

Programozás alapjai C nyelv 7. gyakorlat. Függvények. Függvények(2)

Programozás alapjai C nyelv 7. gyakorlat. Függvények. Függvények(2) Programozás alapjai C nyelv 7. gyakorlat Szeberényi Imre BME IIT Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I. 2005.11.05. -1- Függvények C program egymás mellé rendelt függvényekből

Részletesebben

Programozás C nyelven FELÜLNÉZETBŐL elhullatott MORZSÁK. Sapientia EMTE

Programozás C nyelven FELÜLNÉZETBŐL elhullatott MORZSÁK. Sapientia EMTE Programozás C nyelven FELÜLNÉZETBŐL elhullatott MORZSÁK Sapientia EMTE 2015-16 1 Felülnézet 1 Feltételes fordítás #if, #else, #elif, #endif, #ifdef, #ifndef stb. Felülnézet 2 #include: hatására a preprocesszor

Részletesebben

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

Programozás alapjai C nyelv 5. gyakorlat. Írjunk ki fordítva! Írjunk ki fordítva! (3) Programozás alapjai C nyelv 5. gyakorlat Szeberényi Imre BME IIT Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I. 2005.10.17. -1- Tömbök Azonos típusú adatok tárolására. Index

Részletesebben

Programozás C- és Matlab nyelven C programozás kurzus BMEKOKAM603 Mutatók. Dr. Bécsi Tamás 7. Előadás

Programozás C- és Matlab nyelven C programozás kurzus BMEKOKAM603 Mutatók. Dr. Bécsi Tamás 7. Előadás Programozás C- és Matlab nyelven C programozás kurzus BMEKOKAM603 Mutatók Dr. Bécsi Tamás 7. Előadás 5.3. Mutatók,tömbök A mutató vagy pointer olyan változó, amely egy másik változó címét tartalmazza.

Részletesebben

Példák tematikus csoportosításban

Példák tematikus csoportosításban 1. fejezet Példák tematikus csoportosításban 1.1. A legegyszerűbb feladatok 1.1. feladat. Írjon programot, amely billentyűzetről látható karaktereket olvas mindaddig, amíg a @ karaktert meg nem kapja.

Részletesebben

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

Részletesebben

Függvény pointer. Feladat: Egy tömbben soroljunk fel függvényeket, és hívjuk meg valahányszor.

Függvény pointer. Feladat: Egy tömbben soroljunk fel függvényeket, és hívjuk meg valahányszor. Függvény pointer Több feladat közül futási időben döntöm el, hogy melyiket hajtom végre. A függvényre mutató pointer a függvény kódjának a címére mutat, azon keresztül meghívhatom a függvényt. A pointernek

Részletesebben

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

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ő

Részletesebben

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

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

Részletesebben

7. gyakorlat Sorozatok, Fájlkezelés

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,

Részletesebben

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

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

Részletesebben

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

Részletesebben

C programozási nyelv

C programozási nyelv C programozási nyelv Előfeldolgozó utasítások Dr Schuster György 2011 május 3 Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 1 / 15 A fordítás menete Dr Schuster György

Részletesebben

C string műveletek (string.h alkalmazása)

C string műveletek (string.h alkalmazása) C string műveletek (string.h alkalmazása) A 3. előadás ZH során a string.h-ban található függvények alkalmazásával kell különböző, string kezeléssel kapcsolatos feladatokat megoldani. Ehhez szükséges ezen

Részletesebben

Pénzügyi algoritmusok

Pénzügyi algoritmusok Pénzügyi algoritmusok A C++ programozás alapjai Sztringek Osztályok alapjai Sztringek Szöveges adatok kezelése Sztring Karakterlánc (string): Szöveges adat Karaktertömbként tárolva A szöveg végét a speciális

Részletesebben

Mit tudunk már? Programozás alapjai C nyelv 4. gyakorlat. Legnagyobb elem keresése. Feltételes operátor (?:) Legnagyobb elem keresése (3)

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,

Részletesebben

Járműfedélzeti rendszerek II. 3. előadás Dr. Bécsi Tamás

Járműfedélzeti rendszerek II. 3. előadás Dr. Bécsi Tamás Járműfedélzeti rendszerek II. 3. előadás Dr. Bécsi Tamás 5.3. Mutatók,tömbök A mutató vagy pointer olyan változó, amely egy másik változó címét tartalmazza. A C nyelvű programokban gyakran használják a

Részletesebben

Programozás alapjai II. (7. ea) C++

Programozás alapjai II. (7. ea) C++ Programozás alapjai II. (7. ea) C++ Kiegészítő anyag: speciális adatszerkezetek Szeberényi Imre BME IIT M Ű E G Y E T E M 1 7 8 2 C++ programozási nyelv BME-IIT Sz.I. 2016.04.05. - 1

Részletesebben

Programozás C és C++ -ban

Programozás C és C++ -ban Programozás C és C++ -ban 2. További különbségek a C és C++ között 2.1 Igaz és hamis A C++ programozási nyelv a C-hez hasonlóan definiál néhány alap adattípust: char int float double Ugyanakkor egy új

Részletesebben

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

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

Részletesebben

Adatbázisrendszerek I. Fájlszintű adattárolás C-ben

Adatbázisrendszerek I. Fájlszintű adattárolás C-ben Adatbázisrendszerek I. Fájlszintű adattárolás C-ben Feladat: Tervezzen meg egy fájlszintű adatnyilvántartó rendszert és implementálja C nyelven. A tárolandó adatok: autó rendszáma, típusa, színe, gyártási

Részletesebben

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

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",

Részletesebben

A C programozási nyelv I. Bevezetés

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,

Részletesebben

A C programozási nyelv I. Bevezetés

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,

Részletesebben

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

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

Részletesebben

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

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

Részletesebben

12. gyakorlat Enum; Tárolási osztályok Preprocesszor utasítások; Moduláris programozás

12. gyakorlat Enum; Tárolási osztályok Preprocesszor utasítások; Moduláris programozás 12. gyakorlat Enum; Tárolási osztályok Preprocesszor utasítások; Moduláris programozás Házi (f0174) Egy sor kiíratási formátuma: "nev: %s; pont: %d;". Olvasd be a kiírt számot úgy, ha tudod, hogy a kiírt

Részletesebben

Járműfedélzeti rendszerek II. 2. előadás Dr. Bécsi Tamás

Járműfedélzeti rendszerek II. 2. előadás Dr. Bécsi Tamás Járműfedélzeti rendszerek II. 2. előadás Dr. Bécsi Tamás 4.11. A C előfeldolgozó rendszer A fordítás első lépése a C esetében a különböző nyelvi kiterjesztések feldolgozása: másik állomány tartalmának

Részletesebben

1.1. A forrásprogramok felépítése Nevek és kulcsszavak Alapvető típusok. C programozás 3

1.1. A forrásprogramok felépítése Nevek és kulcsszavak Alapvető típusok. C programozás 3 Darvay Zsolt Típusok és nevek a forráskódban Állandók és változók Hatókörök és az előfeldolgozó Bevitel és kivitel Kifejezések Utasítások Mutatók Függvények Struktúrák és típusok Állománykezelés C programozás

Részletesebben

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

Programozás 5. Dr. Iványi Péter Programozás 5. Dr. Iványi Péter 1 Struktúra Véges számú különböző típusú, logikailag összetartozó változó együttese, amelyeket az egyszerű kezelhetőség érdekében gyűjtünk össze. Rekord-nak felel meg struct

Részletesebben

7/8. gyakorlat Karaktertömbök és sztringkezelés

7/8. gyakorlat Karaktertömbök és sztringkezelés 7/8. gyakorlat Karaktertömbök és sztringkezelés 1. feladat: Karaktertömb kezelése Egy beolvasott karaktert lineáris kereső eljárással keressen meg az angol ábécében (az ábécé betűit tárolja inicializált

Részletesebben

A C programozási nyelv V. Struktúra Dinamikus memóriakezelés

A C programozási nyelv V. Struktúra Dinamikus memóriakezelés A C programozási nyelv V. Struktúra Dinamikus memóriakezelés Miskolci Egyetem Általános Informatikai Tanszék A C programozási nyelv V. (Struktúra, memóriakezelés) CBEV5 / 1 A struktúra deklarációja 1.

Részletesebben

Programozás alapjai C nyelv 10. gyakorlat. Standard függvények. Union

Programozás alapjai C nyelv 10. gyakorlat. Standard függvények. Union Programozás alapjai C nyelv 10. gyakorlat Szeberényi Imre BME IIT Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I. 2005.11.21. -1- Standard függvények Standard függvények amelyeket

Részletesebben

Programozás alapjai II. (1. ea) C++

Programozás alapjai II. (1. ea) C++ Programozás alapjai II. (1. ea) C++ C++ kialakulása, nem OO újdonságok: Szeberényi Imre, Somogyi Péter BME IIT M Ű E G Y E T E M 1 7 8 2 C++ programozási nyelv BME-IIT Sz.I. 2019.02.05.

Részletesebben

Programozás alapjai II. (1. ea) C++

Programozás alapjai II. (1. ea) C++ Programozás alapjai II. (1. ea) C++ C++ kialakulása, nem OO újdonságok: Szeberényi Imre, Somogyi Péter BME IIT M Ű E G Y E T E M 1 7 8 2 C++ programozási nyelv BME-IIT Sz.I. 2019.02.05.

Részletesebben

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

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

Részletesebben

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

Láncolt lista. az itt adott nevet csak a struct deklaráción belül használjuk Láncolt lista int szam char szoveg[10] következő elemre mutató pointer int szam char szoveg[10] következő elemre mutató pointer elem elem elem int szam char szoveg[10] következő elemre mutató pointer A

Részletesebben

Programozás alapjai II. (7. ea) C++ Speciális adatszerkezetek. Tömbök. Kiegészítő anyag: speciális adatszerkezetek

Programozás alapjai II. (7. ea) C++ Speciális adatszerkezetek. Tömbök. Kiegészítő anyag: speciális adatszerkezetek Programozás alapjai II. (7. ea) C++ Kiegészítő anyag: speciális adatszerkezetek Szeberényi Imre BME IIT M Ű E G Y E T E M 1 7 8 2 C++ programozási nyelv BME-IIT Sz.I. 2016.04.05. - 1

Részletesebben

Speciális adatszerkezetek. Programozás alapjai II. (8. ea) C++ Tömbök. Tömbök/2. N dimenziós tömb. Nagyméretű ritka tömbök

Speciális adatszerkezetek. Programozás alapjai II. (8. ea) C++ Tömbök. Tömbök/2. N dimenziós tömb. Nagyméretű ritka tömbök Programozás alapjai II. (8. ea) C++ Kiegészítő anyag: speciális adatszerkezetek Szeberényi Imre BME IIT Speciális adatszerkezetek A helyes adatábrázolás választása, a helyes adatszerkezet

Részletesebben

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

Programozás C nyelven (10. ELŐADÁS) Sapientia EMTE Programozás C nyelven (10. ELŐADÁS) Sapientia EMTE 2015-16 1 const ódosító jelző int x = 1914; // I. világháború ++x; // HELYES, mert x változó Vedd észre, hogy bár: x *p ++x helyes és ++(*p) helytelen

Részletesebben

malloc free malloc free int sum(int a[4]) { return a[0] + a[1] + a[2] + a[3]; }

malloc free malloc free int sum(int a[4]) { return a[0] + a[1] + a[2] + a[3]; } malloc free malloc free int sum(int a[4]) { return a[0] + a[1] + a[2] + a[3]; int main() { int b[4] = {1, 2, 3, 4}; printf("%d\n", sum(b)); return 0; \ \t \n \r \r\n \r string char* \0 a l m a \0 "alma"

Részletesebben

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

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

Részletesebben

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

Programozás alapjai 9.Gy: Struktúra 2. Programozás alapjai 9.Gy: Struktúra 2. Ördögi részletek P R O A L A G 35/1 B ITv: MAN 2018.11.10 Euró árfolyam statisztika Az EURO árfolyamát egy negyedéven keresztül hetente nyilvántartjuk (HUF / EUR).

Részletesebben

Programozás alapjai 6. előadás. Wagner György Általános Informatikai Tanszék

Programozás alapjai 6. előadás. Wagner György Általános Informatikai Tanszék Programozás alapjai 6. előadás Wagner György Általános Informatikai Tanszék Record A valós életben a nyilvántartásra kerülő adatok nem azonos típusúak. Pl.: Név Cím Telefon GySz Fiz Kis Béla Miskolc Török

Részletesebben

Tartalom Keresés és rendezés. Vektoralgoritmusok. 1. fejezet. Keresés adatvektorban. A programozás alapjai I.

Tartalom Keresés és rendezés. Vektoralgoritmusok. 1. fejezet. Keresés adatvektorban. A programozás alapjai I. Keresés Rendezés Feladat Keresés Rendezés Feladat Tartalom Keresés és rendezés A programozás alapjai I. Hálózati Rendszerek és Szolgáltatások Tanszék Farkas Balázs, Fiala Péter, Vitéz András, Zsóka Zoltán

Részletesebben

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

Országzászlók (2015. május 27., Sz14) Országzászlók (2015. május 27., Sz14) Írjon programot, amely a standard bemenetről állományvégjelig soronként egy-egy ország zászlójára vonatkozó adatokat olvas be! Az egyes zászlóknál azt tartjuk nyilván,

Részletesebben

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

Részletesebben

Programozás I. 5. Előadás: Függvények

Programozás I. 5. Előadás: Függvények Programozás I 5. Előadás: Függvények Függvény Egy alprogram Egy C program általában több kisméretű, könnyen értelmezhető függvényből áll Egy függvény megtalálható minden C programban: ez a main függvény

Részletesebben

10. gyakorlat Tömb, mint függvény argumentum

10. gyakorlat Tömb, mint függvény argumentum 10. gyakorlat Tömb, mint függvény argumentum 1. feladat: A 6. gyakorlat 1. feladatát oldja meg a strukturált programtervezési alapelv betartásával, azaz minden végrehajtandó funkciót külön függvényben

Részletesebben

Adatbázisrendszerek I. File-szintű adattárolás C-ben. 1. gyakorlat

Adatbázisrendszerek I. File-szintű adattárolás C-ben. 1. gyakorlat Adatbázisrendszerek I. File-szintű adattárolás C-ben 1. gyakorlat Feladat: Tervezzen meg egy fájlszintű adatnyilvántartó rendszert és implementálja C nyelven. A tárolandó adatok: autó rendszáma, típusa,

Részletesebben

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

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

Részletesebben

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

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

Részletesebben

C programozás. 1 óra Bevezetés

C programozás. 1 óra Bevezetés C programozás 1 óra Bevezetés A C nyelv eredete, fő tulajdonságai 1. Bevezető C nyelv alapelemei többsége a BCPL (Basic Combined Programming Language {1963}) Martin Richards B nyelv Ken Thompson {1970}

Részletesebben

1. Alapok. Programozás II

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

Részletesebben

Keresés és rendezés. A programozás alapjai I. Hálózati Rendszerek és Szolgáltatások Tanszék Farkas Balázs, Fiala Péter, Vitéz András, Zsóka Zoltán

Keresés és rendezés. A programozás alapjai I. Hálózati Rendszerek és Szolgáltatások Tanszék Farkas Balázs, Fiala Péter, Vitéz András, Zsóka Zoltán Keresés Rendezés Feladat Keresés és rendezés A programozás alapjai I. Hálózati Rendszerek és Szolgáltatások Tanszék Farkas Balázs, Fiala Péter, Vitéz András, Zsóka Zoltán 2016. november 7. Farkas B., Fiala

Részletesebben

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

Részletesebben

C programozás. 6 óra Függvények, függvényszerű makrók, globális és

C programozás. 6 óra Függvények, függvényszerű makrók, globális és C programozás 6 óra Függvények, függvényszerű makrók, globális és lokális változók 1.Azonosítók A program bizonyos összetevőire névvel (azonosító) hivatkozunk Első karakter: _ vagy betű (csak ez lehet,

Részletesebben

INFORMATIKA javítókulcs 2016

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.

Részletesebben

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.

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

Részletesebben

Információs Technológia

Információs Technológia Információs Technológia A C programozási nyelv elemei, rendező algoritmusok Fodor Attila Pannon Egyetem Műszaki Informatikai Kar Villamosmérnöki és Információs Rendszerek Tanszék foa@almos.vein.hu 2010.

Részletesebben

6. gyakorlat Egydimenziós numerikus tömbök kezelése, tömbi algoritmusok

6. gyakorlat Egydimenziós numerikus tömbök kezelése, tömbi algoritmusok 6. gyakorlat Egydimenziós numerikus tömbök kezelése, tömbi algoritmusok 1. feladat: Az EURO árfolyamát egy negyedéven keresztül hetente nyilvántartjuk (HUF / EUR). Írjon C programokat az alábbi kérdések

Részletesebben

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ó 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

Részletesebben

5. gyakorlat. Konstansok Tömbök Stringek

5. gyakorlat. Konstansok Tömbök Stringek 5. gyakorlat Konstansok Tömbök Stringek Konstansok A C nyelvben a konstansok preprocesszor makrókkal vannak megvalósítva. Konstansdefiniálás alakja: #define NÉV érték Az érték bármi lehet, később a fordítás

Részletesebben

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

Programozás alapjai. (GKxB_INTM023) Dr. Hatwágner F. Miklós szeptember 27. Széchenyi István Egyetem, Gy r Programozás alapjai (GKxB_INTM023) Széchenyi István Egyetem, Gy r 2018. szeptember 27. Háromszög szerkeszthet ségének ellen rzése ANSI C (C89) megvalósítás #i n c l u d e i n t main ( v

Részletesebben

Struktúrák (struct) A struktúra szerkezetét meghatározó deklaráció általános formája:

Struktúrák (struct) A struktúra szerkezetét meghatározó deklaráció általános formája: Struktúrák (struct) A struktúra egy olyan összetett adatszerkezet, amely nemcsak azonos típusú elemeket rendelhet össze. A struktúra definíciójában leírjuk, hogy a struktúra hogyan épül fel. A struktúra

Részletesebben

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

Programozás alapjai. (GKxB_INTM023) Dr. Hatwágner F. Miklós augusztus 29. Széchenyi István Egyetem, Gy r Programozás alapjai (GKxB_INTM023) Széchenyi István Egyetem, Gy r 2019. augusztus 29. Feladat: írjuk ki az els 10 természetes szám négyzetét! #i n c l u d e i n t main ( v o i d ) { p r

Részletesebben

Programozás I. gyakorlat

Programozás I. gyakorlat Programozás I. gyakorlat 1. gyakorlat Alapok Eszközök Szövegszerkesztő: Szintaktikai kiemelés Egyszerre több fájl szerkesztése pl.: gedit, mcedit, joe, vi, Notepad++ stb. Fordító: Szöveges file-ban tárolt

Részletesebben

Adatbázis rendszerek Gy: Algoritmusok C-ben

Adatbázis rendszerek Gy: Algoritmusok C-ben Adatbázis rendszerek 1. 1. Gy: Algoritmusok C-ben 53/1 B ITv: MAN 2015.09.08 Alapalgoritmusok Összegzés Megszámlálás Kiválasztás Kiválasztásos rendezés Összefésülés Szétválogatás Gyorsrendezés 53/2 Összegzés

Részletesebben

A PROGAMOZÁS ALAPJAI 1. Függvény mint függvény paramétere. Függvény mint függvény paramétere. Függvény mint függvény paramétere

A PROGAMOZÁS ALAPJAI 1. Függvény mint függvény paramétere. Függvény mint függvény paramétere. Függvény mint függvény paramétere 2012. április 10. A PROGAMOZÁS ALAPJAI 1 Vitéz András egyetemi adjunktus BME Híradástechnikai Tanszék vitez@hit.bme.hu Miről lesz ma szó? alaki szabályok használata - mintapélda használata - mintapélda

Részletesebben

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

OOP I. Egyszerő algoritmusok és leírásuk. Készítette: Dr. Kotsis Domokos OOP I. Egyszerő algoritmusok és leírásuk Készítette: Dr. Kotsis Domokos Hallgatói tájékoztató A jelen bemutatóban található adatok, tudnivalók és információk a számonkérendı anyag vázlatát képezik. Ismeretük

Részletesebben

Programozás alapjai II. (2. ea) C++

Programozás alapjai II. (2. ea) C++ Programozás alapjai II. (2. ea) C++ C++ kialakulása, nem OOP újdonságok: Szeberényi Imre BME IIT M Ű E G Y T E M 1 7 8 2 C++ programozási nyelv BME-IIT Sz.I. 2011.02.15. -1- C++ kialakulása

Részletesebben

Programozás alapjai II. (2. ea) C++

Programozás alapjai II. (2. ea) C++ Programozás alapjai II. (2. ea) C++ C++ kialakulása, nem OOP újdonságok: Szeberényi Imre BME IIT Veszélyforrások csökkentése C + javítások C++ kialakulása C++ Objektum orientált szemlélet

Részletesebben

ISA szimulátor objektum-orientált modell (C++)

ISA szimulátor objektum-orientált modell (C++) Budapesti Műszaki és Gazdaságtudományi Egyetem ISA szimulátor objektum-orientált modell (C++) Horváth Péter Elektronikus Eszközök Tanszéke 2015. február 12. Horváth Péter ISA szimulátor objektum-orientált

Részletesebben

Listák, szótárak, fájlok Listák, szótárak, fájlok

Listák, szótárak, fájlok Listák, szótárak, fájlok lista fogalma, használata listák másolása (alap szintű, teljes körű) szótárak fogalma, használata adatbázis alkalmazás fejlesztése műveletek fájlokkal (megnyítás, írás, olvasás, lezárás) rejtjelező alkalmazás

Részletesebben

Karakter- és sztringkezelő függvények, matematikai függvények

Karakter- és sztringkezelő függvények, matematikai függvények Alkalmazott Informatikai Tanszék MŰSZAKI INFORMATIKA dr.dudás László 30/0. Karakter- és sztringkezelő függvények, matematikai függvények Karakterkezelő könyvtári függvények Mintaprogram a karakterosztályozásra

Részletesebben

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

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

Részletesebben

INFORMATIKA tétel 2018

INFORMATIKA tétel 2018 INFORMATIKA tétel 2018 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 minden i = n,1,-1 végezd

Részletesebben

Példatár a Programozás 1 tárgyhoz

Példatár a Programozás 1 tárgyhoz Kósa Márk Pánovics János Példatár a Programozás 1 tárgyhoz Juhász István feladatsoraiból mobidiák könyvtár Kósa Márk Pánovics János Példatár a Programozás 1 tárgyhoz Juhász István feladatsoraiból mobidiák

Részletesebben

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

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

Részletesebben

Programozás C++ -ban

Programozás C++ -ban Programozás C++ -ban 4. Bevezetés az osztályokba 4.1 Az adatokhoz való hozzáférés ellenőrzése Egy C programban a struktúrák minden része mindig elérhető. Ugyanakkor ez nem a legkedvezőbb helyzet. Több

Részletesebben

/* Az iter függvény meghívása és a visszatérő érték átadása a gyok változóba */ gyok = iter( n, a, e ) ;

/* Az iter függvény meghívása és a visszatérő érték átadása a gyok változóba */ gyok = iter( n, a, e ) ; 1. Írjunk programot, amely függvény alkalmazásával meghatározza n a értékét, (a az n-edik gyök alatt), az általunk megadott pontossággal, iterációval. Az iteráció képlete a következő: ahol : n-1 x uj =

Részletesebben

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

Bevezetés a C programozási nyelvbe. Az Általános Informatikai Tanszék C nyelvi kódolási szabványa Miskolci Egyetem Általános Informatikai Tanszék Bevezetés a C programozási nyelvbe Az Általános Informatikai Tanszék C nyelvi kódolási szabványa Oktatási segédletek a levelező műszaki informatikus hallgatók

Részletesebben

11. gyakorlat Sturktúrák használata. 1. Definiáljon dátum típust. Olvasson be két dátumot, és határozza meg melyik a régebbi.

11. gyakorlat Sturktúrák használata. 1. Definiáljon dátum típust. Olvasson be két dátumot, és határozza meg melyik a régebbi. 11. gyakorlat Sturktúrák használata I. Új típus új műveletekkel 1. Definiáljon dátum típust. Olvasson be két dátumot, és határozza meg melyik a régebbi. typedef struct datum { int ev; int ho; int nap;

Részletesebben

Pénzügyi algoritmusok

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:

Részletesebben

INFORMATIKA tétel 2019

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

Részletesebben

Gregorics Tibor Tanácsok modularizált programok készítéséhez 1

Gregorics Tibor Tanácsok modularizált programok készítéséhez 1 Gregorics Tibor Tanácsok modularizált programok készítéséhez 1 Modularizált programon azt értjük, amely több, jól körülhatárolható részfeladat megoldásaiból épül fel. Egy-egy részfeladat gyakran szabványos

Részletesebben

Például számokból álló, egyszeresen láncolt lista felépítéséhez az alábbi struktúra definíciót használhatjuk:

Például számokból álló, egyszeresen láncolt lista felépítéséhez az alábbi struktúra definíciót használhatjuk: 8. előadás Ismétlés Dinamikus adatszerkezetek: listák (egyszeresen vagy többszörösen láncolt), fák. Kétfelé ágazó fa: bináris fa Dinamikus adatszerkezetek - önhivatkozó adatstruktúrák: adatok és reájuk

Részletesebben

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

Programozási alapismeretek :: beadandó feladat. Felhasználói dokumentáció. Molnár Tamás MOTIABT.ELTE motiabt@inf.elte. Programozási alapismeretek :: beadandó feladat Készítő adatai Név: Molnár Tamás EHA: MOTIABT.ELTE E-mail cím: motiabt@inf.elte.hu Gyakorlatvezető: Horváth László Feladat sorszáma: 23. Felhasználói dokumentáció

Részletesebben

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

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

Részletesebben