Információs Technológia

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

Download "Információs Technológia"

Átírás

1 Információs Technológia Sor és verem adatszerkezet Fodor Attila Pannon Egyetem Műszaki Informatikai Kar Villamosmérnöki és Információs Rendszerek Tanszék november 19.

2 Alapötlet Sor adatszerkezet Sor adatszerkezet Az egymás után beírt adatokat a beírás sorrendjében vehetjük ki FIFO - First In First Out Például: Eszközök közötti átvitel biztosítása Az érkező adatok feldolgozási sorrendje fontos, de azokat bizonyos esetekben nem tudnánk folyamatosan feldolgozni ezért eltároljuk Billentyűzet kezelése, I/O műveletek (File kezelés/file rendszer), Memória kezelés Értelmezhető utasítások IN Egy elemet betesz a sorba Ha megtelt a sor hibaüzenetet kell adni OUT Kiveszi a sor következő elemét Ha a sor üres akkor hibaüzenet, vagy olyan adatot adunk vissza ami nem fordulhat elő egyébként (pl.: NULL) EMPTY - Leelenőrzi, hogy tartalmaz-e adatot a sor FULL - Leelenőrzi, hogy megtelt-e a sor Fodor A. (Pannon Egyetem) Információs technológia november / 41

3 Sor megvalósítása Sor adatszerkezet Sor adatszerkezet Statikus adatokkal Egy 1 dimenziós tömb Adatok tárolása Index (szám érték) Következő üres elemre mutat Sor elejére mutat Pointerekkel Egy 1 dimenziós mutatótömbbel Adatokra mutató mutatók tárolása Mutatók Következő üres elemre mutat Sor elejére mutat Speciálisan kezelt láncolt listával Fodor A. (Pannon Egyetem) Információs technológia november / 41

4 FIFO megvalósítása Sor adatszerkezet Sor adatszerkezet megvalósítása Adatszerkezet az adatok eltárolására #define MAX_MEMBER 10 typedef struct int First, Last; int v[max_member]; FIFO_TYPE; FIFO adatszerkezet inicializálása void FIFO_init(FIFO_TYPE *fifo) fifo->first = 0; fifo->last = 0; Fodor A. (Pannon Egyetem) Információs technológia november / 41

5 FIFO megvalósítása Sor adatszerkezet Sor adatszerkezet megvalósítása Új adat sorba való berakása int FIFO_in(FIFO_TYPE *fifo, int data) if (fifo->last == MAX_MEMBER) return 1; fifo->v[fifo->last] = data; fifo->last++; return 0; Adat sorból való kivétele int FIFO_out(FIFO_TYPE *fifo, int *data) if (fifo->first == fifo->last) return 1; *data = fifo->v[fifo->first]; fifo->first++; return 0; Fodor A. (Pannon Egyetem) Információs technológia november / 41

6 FIFO megvalósítása Sor adatszerkezet Sor adatszerkezet megvalósítása Sor első tagjának megtekintése int FIFO_lookfirst(FIFO_TYPE *fifo, int *data) if (fifo->first == fifo->last) return 1; *data = fifo->v[fifo->first]; return 0; Sor ürességének tesztelése int FIFO_empty(FIFO_TYPE *fifo) return (fifo->last == fifo->first)?1:0; Megtelt-e a sor int FIFO_full(FIFO_TYPE *fifo) return (fifo->last == MAX_MEMBER)?1:0; Fodor A. (Pannon Egyetem) Információs technológia november / 41

7 FIFO használata Sor adatszerkezet Sor adatszerkezet megvalósítása Adatszerkezet függvényeinek meghívása FIFO_TYPE fifo; int i, j; FIFO_init(&fifo); for(i=0; i<15; i++) FIFO_in(&fifo, i); for(i=0; i<15; i++) if (!FIFO_out(&fifo, &j)) printf("%d ", j); Futás eredménye Fodor A. (Pannon Egyetem) Információs technológia november / 41

8 FIFO használata Sor adatszerkezet Sor adatszerkezet megvalósítása Adatszerkezet függvényeinek meghívása FIFO_TYPE fifo; int i, j; FIFO_init(&fifo); for(i=0; i<5; i++) FIFO_in(&fifo, i); for(i=0; i<15; i++) if (!FIFO_out(&fifo, &j)) printf("%d ", j); for(i=0; i<15; i++) FIFO_in(&fifo, i); for(i=0; i<15; i++) if (!FIFO_out(&fifo, &j)) printf("%d ", j); Futás eredménye Fodor A. (Pannon Egyetem) Információs technológia november / 41

9 Sor adatszerkezet FIFO használata (problémák) Sor adatszerkezet megvalósítása Probléma a sor ilyen kezelésénél Sok adat ki és berakása esetén: A sor elején üresek a tömb mezői Ha a sor végére érünk nem tudunk további adatot berakni Megoldás Ha nincsen adat a sorban, akkor visszaáll a 0 értékre Nem biztos, hogy kiürül a sor Ez csak félmegoldás Az adatszerkezet ciklikus módon történő kezelése Ha a végére értünk a tömbnek, akkor azt az elejétől kezdjük feltölteni. Fodor A. (Pannon Egyetem) Információs technológia november / 41

10 Sor adatszerkezet FIFO megvalósítása (ciklikus módon) Sor adatszerkezet megvalósítása ciklikus módon Adatszerkezet az adatok eltárolására typedef struct int First, Last, N; int v[max_member]; cfifo_type; FIFO adatszerkezet inicializálása void cfifo_init(cfifo_type *fifo) fifo->first = 0; fifo->last = 0; fifo->n = 0; Fodor A. (Pannon Egyetem) Információs technológia november / 41

11 Sor adatszerkezet FIFO megvalósítása (ciklikus módon) Sor adatszerkezet megvalósítása ciklikus módon Új adat sorba való berakása int cfifo_in(cfifo_type *fifo, int data) if (fifo->n == MAX_MEMBER) return 1; if (fifo->last == MAX_MEMBER-1) fifo->v[fifo->last] = data; fifo->last = 0; else fifo->v[fifo->last] = data; fifo->last++; fifo->n++; return 0; Fodor A. (Pannon Egyetem) Információs technológia november / 41

12 Sor adatszerkezet FIFO megvalósítása (ciklikus módon) Sor adatszerkezet megvalósítása ciklikus módon Adat sorból való kivétele int cfifo_out(cfifo_type *fifo, int *data) if (fifo->n == 0) return 1; *data = fifo->v[fifo->first]; if (fifo->first == MAX_MEMBER-1) fifo->first=0; else fifo->first++; fifo->n--; return 0; Fodor A. (Pannon Egyetem) Információs technológia november / 41

13 Sor adatszerkezet FIFO megvalósítása (ciklikus módon) Sor első tagjának megtekintése int cfifo_lookfirst(cfifo_type *fifo, int *data) if (!fifo->n) return 1; *data = fifo->v[fifo->first]; return 0; Sor ürességének tesztelése int cfifo_empty(cfifo_type *fifo) return fifo->n?1:0; Megtelt-e a sor int cfifo_full(cfifo_type *fifo) return (fifo->n == MAX_MEMBER)?1:0; Sor adatszerkezet megvalósítása ciklikus módon Fodor A. (Pannon Egyetem) Információs technológia november / 41

14 Sor adatszerkezet Ciklikus módon kezelt FIFO használata Sor adatszerkezet megvalósítása ciklikus módon Adatszerkezet függvényeinek meghívása int i, j; cfifo_type cfifo; cfifo_init(&cfifo); for(i=0; i<5; i++) cfifo_in(&cfifo, i); for(i=0; i<15; i++) if (!cfifo_out(&cfifo, &j)) printf("%d ", j); for(i=0; i<15; i++) cfifo_in(&cfifo, i); for(i=0; i<15; i++) if (!cfifo_out(&cfifo, &j)) printf("%d ", j); Futás eredménye Fodor A. (Pannon Egyetem) Információs technológia november / 41

15 Sor adatszerkezet Sor adatszerkezet megvalósítására használható struktúrák Sor adatszerkezet megvalósítására használható struktúrák Az adatok helyet adatokra mutató mutató alkalmazása (tömbbe szervezve) typedef struct int First, Last, N; void *v[max_member]; cfifo_type_pointer; Az adatok helyet adatokra mutató mutató alkalmazása (tömbbe szervezve) Index helyett mutató alkalmazása (kezdő és a vég elemre mutat) typedef struct void *First, *Last; unsigned long int N; void *v[max_member]; cfifo_type_pointer2; Fodor A. (Pannon Egyetem) Információs technológia november / 41

16 Sor adatszerkezet FIFO megvalósítása (láncolt listával) Sor adatszerkezet megvalósítása láncolt listával Kettő megvalósítási filozófia 1. Filozófia A lista végére rakjuk az új adatot A lista elejéröl vesszük ki az adatot 2. Filozófia A lista elejére rakjuk az új adatot A lista végéről vesszük ki az adatot Lista adattag struct lista_elem void *adat; struct lista_elem *kov; ; lista_elem *kezd; Fodor A. (Pannon Egyetem) Információs technológia november / 41

17 Sor adatszerkezet FIFO megvalósítása (láncolt listával - 1.) A lista végére rakjuk az új adatot Sor adatszerkezet megvalósítása láncolt listával lista_elem* beszur_vege(lista_elem **kezd, int ujadat) lista_elem *uj, *akt; if (*kezd == NULL) *kezd = (lista_elem*) malloc(sizeof(lista_elem)); if (*kezd == NULL) return NULL; (*kezd)->adat = ujadat; (*kezd)->kov = NULL; return *kezd; else akt = *kezd; while (akt->kov!= NULL) akt = akt->kov; uj = (lista_elem*) malloc(sizeof(lista_elem)); if (uj == NULL) return NULL; akt->kov = uj; uj->kov = NULL; uj->adat = ujadat; return uj; Fodor A. (Pannon Egyetem) Információs technológia november / 41

18 Sor adatszerkezet FIFO megvalósítása (láncolt listával - 1.) Sor adatszerkezet megvalósítása láncolt listával A lista elejéről vesszük ki az adatot int torol_eleje(lista_elem **kezd, int *adat) lista_elem *del; if (*kezd == NULL) return -1; else del = *kezd; *kezd = (*kezd)->kov; *adat = del->adat; free(del); return 0; Fodor A. (Pannon Egyetem) Információs technológia november / 41

19 Sor adatszerkezet Sor adatszerkezet megvalósítása láncolt listával Láncolt listával (1. filozófia) felépített FIFO használata Adatszerkezet függvényeinek meghívása lista_elem *kezd; kezd = NULL; for(i=0; i<15; i++) beszur_vege(&kezd, i); for(i=0; i<20; i++) if (!torol_eleje(&kezd, &j)) printf("%d ", j); Futás eredménye Fodor A. (Pannon Egyetem) Információs technológia november / 41

20 Sor adatszerkezet FIFO megvalósítása (láncolt listával - 2.) Sor adatszerkezet megvalósítása láncolt listával A lista elejére szurjuk be az új adatot lista_elem* beszur_eleje(lista_elem **kezd, int ujadat) lista_elem *uj; if (*kezd == NULL) *kezd = (lista_elem*) malloc(sizeof(lista_elem)); if (*kezd == NULL) return NULL; (*kezd)->adat = ujadat; (*kezd)->kov = NULL; else uj = (lista_elem*) malloc(sizeof(lista_elem)); if (uj == NULL) return NULL; uj->kov = *kezd; *kezd = uj; uj->adat = ujadat; return uj; Fodor A. (Pannon Egyetem) Információs technológia november / 41

21 Sor adatszerkezet FIFO megvalósítása (láncolt listával - 2.) A lista végéről vesszük ki az adatot Sor adatszerkezet megvalósítása láncolt listával int torol_vege(lista_elem **kezd, int *adat) lista_elem *del, *ujveg; if (*kezd == NULL) return -1; else del = *kezd; ujveg = NULL; while (del->kov!= NULL) ujveg = del; del = del->kov; if (ujveg!= NULL) ujveg->kov = NULL; else *kezd = NULL; *adat = del->adat; free(del); return 0; Fodor A. (Pannon Egyetem) Információs technológia november / 41

22 Sor adatszerkezet Sor adatszerkezet megvalósítása láncolt listával Láncolt listával (2. filozófia) felépített FIFO használata Adatszerkezet függvényeinek meghívása lista_elem *kezd; kezd = NULL; for(i=0; i<15; i++) beszur_eleje(&kezd, i); for(i=0; i<20; i++) if (!torol_vege(&kezd, &j)) printf("%d ", j); Futás eredménye Fodor A. (Pannon Egyetem) Információs technológia november / 41

23 Sor adatszerkezet Láncolt listával felépített FIFO Sor adatszerkezet megvalósítása láncolt listával Kettő megvalósítási filozófia 1. Filozófia A lista végére rakjuk az új adatot A lista elejéröl vesszük ki az adatot 2. Filozófia A lista elejére rakjuk az új adatot A lista végéről vesszük ki az adatot Példa #ifdef LISTA_FILOZOFIA_1 #define LISTABA beszur_vege #define LISTABOL torol_eleje #else #define LISTABA beszur_eleje #define LISTABOL torol_vege #endif lista_elem *kezd; kezd = NULL; for(i=0; i<15; i++) LISTABA(&kezd, i); for(i=0; i<20; i++) if (!LISTABOL(&kezd, &j)) printf("%d ", j); Fodor A. (Pannon Egyetem) Információs technológia november / 41

24 Alapötlet Verem adatszerkezet Verem adatszerkezet Az egymás után beírt adatokat fordított sorrendben vehetjük ki A veremből mindig az utoljára bevitt adatot vehetjük ki először LIFO - Last In First Out Stack Alkalmazása például: Programokban a függvények meghívásakor Operációs rendszer, hardware Megszakítások (INT), eljárás hívás (CALL) Értelmezhető utasítások PUSH Egy elemet betesz a verembe Ha megtelt hibaüzenetet kell adni POP Kiveszi az utolsónak berakott elemet Ha a üres a verem akkor hibaüzenet, vagy olyan adatot adunk vissza ami nem fordulhat elő egyébként (pl.: NULL) EMPTY - Leelenőrzi, hogy tartalmaz-e adatot a verem FULL - Leelenőrzi, hogy megtelt-e a verem Fodor A. (Pannon Egyetem) Információs technológia november / 41

25 Verem megvalósítása Verem adatszerkezet Verem adatszerkezet Statikus adatokkal Egy 1 dimenziós tömb Adatok tárolása Indexek (szám érték) Következő üres elemre mutat Pointerekkel Egy 1 dimenziós mutatótömbbel Adatokra mutató mutatók tárolása Mutatók Következő üres elemre mutat Speciálisan kezelt láncolt listával Fodor A. (Pannon Egyetem) Információs technológia november / 41

26 LIFO megvalósítása Verem adatszerkezet Verem adatszerkezet Adatszerkezet az adatok eltárolására #define MAX_MEMBER 10 typedef struct int top; int v[max_member]; LIFO_TYPE; LIFO adatszerkezet inicializálása void LIFO_init(LIFO_TYPE *lifo) lifo->top = 0; Fodor A. (Pannon Egyetem) Információs technológia november / 41

27 LIFO megvalósítása Verem adatszerkezet Verem adatszerkezet PUSH - Új adat verembe való berakása int LIFO_push(LIFO_TYPE *lifo, int data) if (lifo->top == MAX_MEMBER) return 1; lifo->v[lifo->top] = data; lifo->top++; return 0; POP - Adat veremből való kivétele int LIFO_pop(LIFO_TYPE *lifo, int *data) if (!lifo->top) return 1; *data = lifo->v[lifo->top-1]; lifo->top--; return 0; Fodor A. (Pannon Egyetem) Információs technológia november / 41

28 LIFO megvalósítása Verem adatszerkezet Verem adatszerkezet Verem felső tagjának megtekintése int LIFO_lookfirst(LIFO_TYPE *lifo, int *data) if (!lifo->top) return 1; *data = lifo->v[lifo->top-1]; return 0; Verem ürességének tesztelése int LIFO_empty(LIFO_TYPE *lifo) return (lifo->top==0)?1:0; Megtelt-e a verem int LIFO_full(LIFO_TYPE *lifo) return (lifo->top == MAX_MEMBER)?1:0; Fodor A. (Pannon Egyetem) Információs technológia november / 41

29 LIFO megvalósítása Verem adatszerkezet Verem adatszerkezet Adatszerkezet függvényeinek meghívása int i, j; LIFO_TYPE lifo; LIFO_init(&lifo); for(i=0; i<15; i++) LIFO_push(&lifo, i); for(i=0; i<15; i++) if (!LIFO_pop(&lifo, &j)) printf("%d ", j); Futás eredménye Fodor A. (Pannon Egyetem) Információs technológia november / 41

30 Verem adatszerkezet LIFO megvalósítása (láncolt listával) Verem adatszerkezet megvalósítása láncolt listával Kettő megvalósítási filozófia 1. Filozófia A lista elejére rakjuk az új adatot A lista elejéről vesszük ki az adatot 2. Filozófia A lista végére rakjuk az új adatot A lista végéről vesszük ki az adatot Lista adattag struct lista_elem void *adat; struct lista_elem *kov; ; lista_elem *kezd; Fodor A. (Pannon Egyetem) Információs technológia november / 41

31 Verem adatszerkezet LIFO megvalósítása (láncolt listával - 1.) Verem adatszerkezet megvalósítása láncolt listával A lista elejére rakjuk be az új adatot lista_elem* beszur_eleje(lista_elem **kezd, int ujadat) lista_elem *uj; if (*kezd == NULL) *kezd = (lista_elem*) malloc(sizeof(lista_elem)); if (*kezd == NULL) return NULL; (*kezd)->adat = ujadat; (*kezd)->kov = NULL; else uj = (lista_elem*) malloc(sizeof(lista_elem)); if (uj == NULL) return NULL; uj->kov = *kezd; *kezd = uj; uj->adat = ujadat; return uj; Fodor A. (Pannon Egyetem) Információs technológia november / 41

32 Verem adatszerkezet LIFO megvalósítása (láncolt listával - 1.) Verem adatszerkezet megvalósítása láncolt listával A lista elejéről vesszük ki az adatot int torol_eleje(lista_elem **kezd, int *adat) lista_elem *del; if (*kezd == NULL) return -1; else del = *kezd; *kezd = (*kezd)->kov; *adat = del->adat; free(del); return 0; Fodor A. (Pannon Egyetem) Információs technológia november / 41

33 Verem adatszerkezet Verem adatszerkezet megvalósítása láncolt listával Láncolt listával (1. filozófia) felépített LIFO használata Adatszerkezet függvényeinek meghívása lista_elem *kezd; kezd = NULL; for(i=0; i<15; i++) beszur_eleje(&kezd, i); for(i=0; i<20; i++) if (!torol_eleje(&kezd, &j)) printf("%d ", j); Futás eredménye Fodor A. (Pannon Egyetem) Információs technológia november / 41

34 Verem adatszerkezet Verem adatszerkezet megvalósítása láncolt listával Láncolt listával (1. filozófia) felépített LIFO használata Adatszerkezet függvényeinek meghívása #define PUSH #define POP beszur_eleje torol_eleje lista_elem *kezd; kezd = NULL; for(i=0; i<15; i++) PUSH(&kezd, i); for(i=0; i<20; i++) if (!POP(&kezd, &j)) printf("%d ", j); Futás eredménye Fodor A. (Pannon Egyetem) Információs technológia november / 41

35 Verem adatszerkezet LIFO megvalósítása (láncolt listával - 2.) A lista végére rakjuk az új adatot Verem adatszerkezet megvalósítása láncolt listával lista_elem* beszur_vege(lista_elem **kezd, int ujadat) lista_elem *uj, *akt; if (*kezd == NULL) *kezd = (lista_elem*) malloc(sizeof(lista_elem)); if (*kezd == NULL) return NULL; (*kezd)->adat = ujadat; (*kezd)->kov = NULL; return *kezd; else akt = *kezd; while (akt->kov!= NULL) akt = akt->kov; uj = (lista_elem*) malloc(sizeof(lista_elem)); if (uj == NULL) return NULL; akt->kov = uj; uj->kov = NULL; uj->adat = ujadat; return uj; Fodor A. (Pannon Egyetem) Információs technológia november / 41

36 Verem adatszerkezet LIFO megvalósítása (láncolt listával - 2.) A lista végéről vesszük ki az adatot Verem adatszerkezet megvalósítása láncolt listával int torol_vege(lista_elem **kezd, int *adat) lista_elem *del, *ujveg; if (*kezd == NULL) return -1; else del = *kezd; ujveg = NULL; while (del->kov!= NULL) ujveg = del; del = del->kov; if (ujveg!= NULL) ujveg->kov = NULL; else *kezd = NULL; *adat = del->adat; free(del); return 0; Fodor A. (Pannon Egyetem) Információs technológia november / 41

37 Verem adatszerkezet Verem adatszerkezet megvalósítása láncolt listával Láncolt listával (2. filozófia) felépített LIFO használata Adatszerkezet függvényeinek meghívása lista_elem *kezd; kezd = NULL; for(i=0; i<15; i++) beszur_vege(&kezd, i); for(i=0; i<20; i++) if (!torol_vege(&kezd, &j)) printf("%d ", j); Futás eredménye Nem praktikus a használata (listán végig kell menni) Fodor A. (Pannon Egyetem) Információs technológia november / 41

38 Verem adatszerkezet Láncolt listával felépített verem Verem adatszerkezet megvalósítása láncolt listával Kettő megvalósítási filozófia 1. Filozófia A lista elejére rakjuk az új adatot A lista elejéről vesszük ki az adatot 2. Filozófia A lista végére rakjuk az új adatot A lista végéről vesszük ki az adatot Példa #ifdef LISTA_FILOZOFIA_1 #define Push beszur_eleje #define Pop torol_eleje #else #define Push beszur_vege #define Pop torol_vege #endif lista_elem *kezd; kezd = NULL; for(i=0; i<15; i++) Push(&kezd, i); for(i=0; i<20; i++) if (!Pop(&kezd, &j)) printf("%d ", j); Fodor A. (Pannon Egyetem) Információs technológia november / 41

39 Lineáris keresés Kereső algoritmusok Velétlenszerűen elhelyezkedő adatokban Első adattól indul a keresés Végignézi az összes adatot int lin_keres(int v[], int n, int mit) int i; for(i=0; (i<n)&& (v[i]!= mit); i++ ); if (i == n) return -1; if (v[i]!= mit) return -1; return i; Fodor A. (Pannon Egyetem) Információs technológia november / 41

40 Lineáris keresés Kereső algoritmusok Rendezett adatokban Első adattól indul a keresés Végignézi az összes adatot, ameddig azok kisebbek, mint a keresendő int lin_keres(int v[], int n, int mit) int i; for(i=0; (i<n)&& (v[i] < mit); i++ ); if (i == n) return -1; if (v[i]!= mit) return -1; return i; Fodor A. (Pannon Egyetem) Információs technológia november / 41

41 Bináris keresés Kereső algoritmusok Rendezett adatokban Folyamatosan felezi az intervallumot, melyben keres Végignézi az összes adatot, ameddig azok kisebbek, mint a keresendő A keresés az elemszammal log 2 N kapcsolatban van int bin_keres(int v[], int Also, int Felso, int mit) int Kozepso; Kozepso = int ((Also+Felso)/2); while ((Also <= Felso) && (v[kozepso]!= mit)) if (v[kozepso] > mit) Felso = Kozepso-1; else Also = Kozepso+1; Kozepso = int ((Also+Felso)/2); if (v[kozepso] == mit) return Kozepso; else return -1; Fodor A. (Pannon Egyetem) Információs technológia november / 41

Adatszerkezetek Tömb, sor, verem. Dr. Iványi Péter

Adatszerkezetek Tömb, sor, verem. Dr. Iványi Péter Adatszerkezetek Tömb, sor, verem Dr. Iványi Péter 1 Adat Adat minden, amit a számítógépünkben tárolunk és a külvilágból jön Az adatnak két fontos tulajdonsága van: Értéke Típusa 2 Adat típusa Az adatot

Részletesebben

Adatszerkezetek 1. Dr. Iványi Péter

Adatszerkezetek 1. Dr. Iványi Péter Adatszerkezetek 1. Dr. Iványi Péter 1 Adat Adat minden, amit a számítógépünkben tárolunk és a külvilágból jön Az adatnak két fontos tulajdonsága van: Értéke Típusa 2 Adat típusa Az adatot kódoltan tároljuk

Részletesebben

Miről lesz ma szó? A PROGAMOZÁS ALAPJAI 1. Dinamikus adatszerkezetek. Dinamikus adatszerkezetek. Önhivatkozó struktúrák. Önhivatkozó struktúrák

Miről lesz ma szó? A PROGAMOZÁS ALAPJAI 1. Dinamikus adatszerkezetek. Dinamikus adatszerkezetek. Önhivatkozó struktúrák. Önhivatkozó struktúrák 2012. március 27. 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ó? Dinamikus adatszerkezetek Önhivatkozó struktúra keresés, beszúrás,

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

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

Információs Technológia

Információs Technológia Információs Technológia Rekurzió, Fa adatszerkezet Fodor Attila Pannon Egyetem Műszaki Informatika Kar Villamosmérnöki és Információs Rendszerek Tanszék foa@almos.vein.hu 2010. november 18. Rekurzió Rekurzió

Részletesebben

Információs Technológia

Információs Technológia Információs Technológia ZH feladatok megoldása (2009.11.26.) Fodor Attila Pannon Egyetem Műszaki Informatikai Kar Villamosmérnöki és Információs Rendszerek Tanszék foa@almos.vein.hu 2009. november 26.

Részletesebben

félstatikus adatszerkezetek: verem, várakozási sor, hasítótábla dinamikus adatszerkezetek: lineáris lista, fa, hálózat

félstatikus adatszerkezetek: verem, várakozási sor, hasítótábla dinamikus adatszerkezetek: lineáris lista, fa, hálózat Listák félstatikus adatszerkezetek: verem, várakozási sor, hasítótábla dinamikus adatszerkezetek: lineáris lista, fa, hálózat A verem LIFO lista (Last In First Out) angolul stack, románul stivă bevitel

Részletesebben

Adatszerkezetek Adatszerkezet fogalma. Az értékhalmaz struktúrája

Adatszerkezetek Adatszerkezet fogalma. Az értékhalmaz struktúrája Adatszerkezetek Összetett adattípus Meghatározói: A felvehető értékek halmaza Az értékhalmaz struktúrája Az ábrázolás módja Műveletei Adatszerkezet fogalma Direkt szorzat Minden eleme a T i halmazokból

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

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 I. - 11. gyakorlat

Programozás I. - 11. gyakorlat Programozás I. - 11. gyakorlat Struktúrák, gyakorlás Tar Péter 1 Pannon Egyetem M szaki Informatikai Kar Rendszer- és Számítástudományi Tanszék Utolsó frissítés: November 16, 2009 1 tar@dcs.vein.hu Tar

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

5. SOR. Üres: S Sorba: S E S Sorból: S S E Első: S E

5. SOR. Üres: S Sorba: S E S Sorból: S S E Első: S E 5. SOR A sor adatszerkezet is ismerős a mindennapokból, például a várakozási sornak számos előfordulásával van dolgunk, akár emberekről akár tárgyakról (pl. munkadarabokról) legyen szó. A sor adattípus

Részletesebben

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

Programozás I gyakorlat. 5. Struktúrák Programozás I gyakorlat 5. Struktúrák Bemelegítés Írj programot, amely beolvassa 5 autó adatait, majd kiírja az adatokat a képernyőre. Egy autóról a következőket tároljuk: maximális sebesség fogyasztás

Részletesebben

Verem Verem mutató 01

Verem Verem mutató 01 A számítástechnikában a verem (stack) egy speciális adatszerkezet, amiben csak kétféle művelet van. A berak (push) egy elemet a verembe rak, a kivesz (pop) egy elemet elvesz a verem tetejéről. Mindig az

Részletesebben

Adatszerkezetek 7a. Dr. IványiPéter

Adatszerkezetek 7a. Dr. IványiPéter Adatszerkezetek 7a. Dr. IványiPéter 1 Fák Fákat akkor használunk, ha az adatok között valamilyen alá- és fölérendeltség van. Pl. könyvtárszerkezet gyökér () Nincsennek hurkok!!! 2 Bináris fák Azokat a

Részletesebben

Kupac adatszerkezet. A[i] bal fia A[2i] A[i] jobb fia A[2i + 1]

Kupac adatszerkezet. A[i] bal fia A[2i] A[i] jobb fia A[2i + 1] Kupac adatszerkezet A bináris kupac egy majdnem teljes bináris fa, amely minden szintjén teljesen kitöltött kivéve a legalacsonyabb szintet, ahol balról jobbra haladva egy adott csúcsig vannak elemek.

Részletesebben

Láncolt Listák. Adat1 Adat2 Adat3 ø. Adat1 Adat2 ø Adat3

Láncolt Listák. Adat1 Adat2 Adat3 ø. Adat1 Adat2 ø Adat3 Láncolt Listák Adatszerkezetek Adatszerkezet: Az adatelemek egy olyan véges halmaza, amelyben az adatelemek között szerkezeti összefüggések vannak Megvalósítások: - Tömb, Láncolt lista, Fa, Kupac, Gráf,

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

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

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

Láncolt listák. Egyszerű, rendezett és speciális láncolt listák. Programozás II. előadás. Szénási Sándor

Láncolt listák. Egyszerű, rendezett és speciális láncolt listák. Programozás II. előadás.  Szénási Sándor Láncolt listák Egyszerű, rendezett és speciális láncolt listák előadás http://nik.uni-obuda.hu/prog2 Szénási Sándor szenasi.sandor@nik.uni-obuda.hu Óbudai Egyetem,Neumann János Informatikai Kar Láncolt

Részletesebben

Egyirányban láncolt lista

Egyirányban láncolt lista Egyirányban láncolt lista A tárhely (listaelem) az adatelem értékén kívül egy mutatót tartalmaz, amely a következő listaelem címét tartalmazza. A láncolt lista első elemének címét egy, a láncszerkezeten

Részletesebben

Amortizációs költségelemzés

Amortizációs költségelemzés Amortizációs költségelemzés Amennyiben műveleteknek egy M 1,...,M m sorozatának a futási idejét akarjuk meghatározni, akkor egy lehetőség, hogy külön-külön minden egyes művelet futási idejét kifejezzük

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

Adatszerkezetek 1. előadás

Adatszerkezetek 1. előadás Adatszerkezetek 1. előadás Irodalom: Lipschutz: Adatszerkezetek Morvay, Sebők: Számítógépes adatkezelés Cormen, Leiserson, Rives, Stein: Új algoritmusok http://it.inf.unideb.hu/~halasz http://it.inf.unideb.hu/adatszerk

Részletesebben

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

Körkörös listák. fej. utolsó. utolsó. fej Körkörös listák fej utolsó fej utolsó Példa. Kiszámolós játék. Körben áll n gyermek. k-asával kiszámoljuk őket. Minden k-adik kilép a körből. Az nyer, aki utolsónak marad. #include using namespace

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

A lista adatszerkezet A lista elemek egymásutániságát jelenti. Fajtái: statikus, dinamikus lista.

A lista adatszerkezet A lista elemek egymásutániságát jelenti. Fajtái: statikus, dinamikus lista. Lista adatszerkezet A lista adatszerkezet jellemzői 1 Különböző problémák számítógépes megoldása során gyakran van szükség olyan adatszerkezetre, amely nagyszámú, azonos típusú elem tárolására alkalmas,

Részletesebben

Információs Technológia

Információs Technológia Információs Technológia (Struktúra, mutatók, függvényhívás) Fodor Attila Pannon Egyetem Műszaki Informatika Kar Villamosmérnöki és Információs Rendszerek Tanszék foa@almos.vein.hu 2010 október 14/21. Struktúra

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

Láncolt listák. PPT 2007/2008 tavasz.

Láncolt listák. PPT 2007/2008 tavasz. Láncolt listák szenasi.sandor@nik.bmf.hu PPT 2007/2008 tavasz http://nik.bmf.hu/ppt 1 Témakörök Láncolt listák elvi felépítése Egyirányú egyszerű láncolt lista Egyirányú rendezett láncolt lista Láncolt

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

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

Osztály és objektum fogalma

Osztály és objektum fogalma Osztály és objektum fogalma A C++ programozási nyelv I. CPP1/ 1 Az osztály (class) class: adatok és módszerek (method) (függvények) együttese, amely absztrakt adattípusként működik. objektum: egy osztály

Részletesebben

Fejlett programozási nyelvek C++ Iterátorok

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

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

Adatszerkezetek és algoritmusok

Adatszerkezetek és algoritmusok 2009. november 13. Ismétlés El z órai anyagok áttekintése Ismétlés Specikáció Típusok, kifejezések, m veletek, adatok ábrázolása, típusabsztakció Vezérlési szerkezetek Függvények, paraméterátadás, rekurziók

Részletesebben

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

C# osztályok. Krizsán Zoltán C# osztályok Krizsán Zoltán Fogalma Önálló hatáskőrrel rendelkező, absztrakt adattípus, amely több, különböző elemet tartalmazhat. Minden esetben a heap-en jön létre! A programozó hozza létre, de a GC

Részletesebben

Programozási módszertan. Mohó algoritmusok

Programozási módszertan. Mohó algoritmusok PM-08 p. 1/17 Programozási módszertan Mohó algoritmusok Werner Ágnes Villamosmérnöki és Információs Rendszerek Tanszék e-mail: werner.agnes@virt.uni-pannon.hu PM-08 p. 2/17 Bevezetés Dinamikus programozás

Részletesebben

Algoritmuselmélet 2. előadás

Algoritmuselmélet 2. előadás Algoritmuselmélet 2. előadás Katona Gyula Y. Budapesti Műszaki és Gazdaságtudományi Egyetem Számítástudományi Tsz. I. B. 137/b kiskat@cs.bme.hu 2002 Február 12. ALGORITMUSELMÉLET 2. ELŐADÁS 1 Buborék-rendezé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

Láncolt listák Témakörök. Lista alapfogalmak

Láncolt listák Témakörök. Lista alapfogalmak Láncolt listák szenasi.sandor@nik.bmf.hu PPT 2007/2008 tavasz http://nik.bmf.hu/ppt 1 Lista alapfogalmai Egyirányú egyszerű láncolt lista Egyirányú rendezett láncolt lista Speciális láncolt listák Témakörök

Részletesebben

ADATSZERKEZETEK (VEREM, SOR)

ADATSZERKEZETEK (VEREM, SOR) ADATSZERKEZETEK (VEREM, SOR) 1. ADATSZERKEZET FOGALMA Az adatszerkezet egymással kapcsolatban álló adatok összessége, amelyen meghatározott, az adatszerkezetre jellemző műveletek végezhetők el. Az adatok

Részletesebben

Programozás. C++ osztályok. Fodor Attila. Pannon Egyetem Műszaki Informatikai Kar Villamosmérnöki és Információs Rendszerek Tanszék foa@almos.vein.

Programozás. C++ osztályok. Fodor Attila. Pannon Egyetem Műszaki Informatikai Kar Villamosmérnöki és Információs Rendszerek Tanszék foa@almos.vein. Programozás C++ osztályok Fodor Attila Pannon Egyetem Műszaki Informatikai Kar Villamosmérnöki és Információs Rendszerek Tanszék foa@almos.vein.hu 2010. április 8. Csak bázisosztályként használt/értelmezhető

Részletesebben

Rekurzió. Dr. Iványi Péter

Rekurzió. Dr. Iványi Péter Rekurzió Dr. Iványi Péter 1 Függvényhívás void f3(int a3) { printf( %d,a3); } void f2(int a2) { f3(a2); a2 = (a2+1); } void f1() { int a1 = 1; int b1; b1 = f2(a1); } 2 Függvényhívás void f3(int a3) { printf(

Részletesebben

C programozás. { Márton Gyöngyvér, 2009 } { Sapientia, Erdélyi Magyar Tudományegyetem } http://www.ms.sapientia.ro/~mgyongyi

C programozás. { Márton Gyöngyvér, 2009 } { Sapientia, Erdélyi Magyar Tudományegyetem } http://www.ms.sapientia.ro/~mgyongyi C programozás Márton Gyöngyvér, 2009 Sapientia, Erdélyi Magyar Tudományegyetem http://www.ms.sapientia.ro/~mgyongyi 1 Könyvészet Kátai Z.: Programozás C nyelven Brian W. Kernighan, D.M. Ritchie: A C programozási

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

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

C programozási nyelv Pointerek, tömbök, pointer aritmetika C programozási nyelv Pointerek, tömbök, pointer aritmetika Dr. Schuster György 2011. június 16. C programozási nyelv Pointerek, tömbök, pointer aritmetika 2011. június 16. 1 / 15 Pointerek (mutatók) Pointerek

Részletesebben

Programozas 1. Strukturak, mutatok

Programozas 1. Strukturak, mutatok Programozas 1 Strukturak, mutatok Strukturak Tömb: több egyforma típusú változó együttese Struktúra: több különböző típusú de logikailag egybetartozó változó együttese, amelyet az egyszerű kezelhetőség

Részletesebben

Programozási segédlet

Programozási segédlet Programozási segédlet Programozási tételek Az alábbiakban leírtam néhány alap algoritmust, amit ismernie kell annak, aki programozásra adja a fejét. A lista korántsem teljes, ám ennyi elég kell legyen

Részletesebben

Adatszerkezetek Bevezetés Adatszerkezet Adatszerkezet típusok Műveletek Bonyolultság

Adatszerkezetek Bevezetés Adatszerkezet Adatszerkezet típusok Műveletek Bonyolultság datszerkezetek Bevezetés datszerkezet adatok rendszerének matematikai, logikai modellje elég jó ahhoz, hogy tükrözze a valós kapcsolatokat elég egyszerű a kezeléshez datszerkezet típusok Tömbök lineáris

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

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ÁSI NYELVEK - CPP. GYAKORLAT JEGYZET

PROGRAMOZÁSI NYELVEK - CPP. GYAKORLAT JEGYZET PROGRAMOZÁSI NYELVEK - CPP. GYAKORLAT JEGYZET Szerkesztette: Balogh Tamás 2013. április 12. Ha hibát találsz, kérlek jelezd a info@baloghtamas.hu e-mail címen! Ez a Mű a Creative Commons Nevezd meg! -

Részletesebben

... fi. ... fk. 6. Fabejáró algoritmusok Rekurzív preorder bejárás (elsőfiú-testvér ábrázolásra)

... fi. ... fk. 6. Fabejáró algoritmusok Rekurzív preorder bejárás (elsőfiú-testvér ábrázolásra) 6. Fabejáró algoritmusok Fa bejárásán olyan algoritmust értünk, amelynek bemenete egy F fa és egy M művelet, és az algoritmus adott sorrendben pontosan egyszer végrehajtja az M műveletet a fa pontjaiban

Részletesebben

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

1. Feladat: beolvas két számot úgy, hogy a-ba kerüljön a nagyobb 1. Feladat: beolvas két számot úgy, hogy a-ba kerüljön a nagyobb #include main() { int a, b; printf( "a=" ); scanf( "%d", &a ); printf( "b=" ); scanf( "%d", &b ); if( a< b ) { inttmp = a; a =

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

Bevezetés, a C++ osztályok. Pere László

Bevezetés, a C++ osztályok. Pere László Programozás módszertan II. p. Programozás módszertan II. Bevezetés, a C++ osztályok Pere László (pipas@linux.pte.hu) PÉCSI TUDOMÁNYEGYETEM TERMÉSZETTUDOMÁNYI KAR INFORMATIKA ÉS ÁLTALÁNOS TECHNIKA TANSZÉK

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

Programozás C++ -ban 2007/4

Programozás C++ -ban 2007/4 Programozás C++ -ban 2007/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 szempontból is hasznos

Részletesebben

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

STL. Algoritmus. Iterátor. Tároló. Elsődleges komponensek: Tárolók Algoritmusok Bejárók STL Elsődleges komponensek: Tárolók Algoritmusok Bejárók Másodlagos komponensek: Függvény objektumok Adapterek Allokátorok (helyfoglalók) Tulajdonságok Tárolók: Vektor (vector) Lista (list) Halmaz (set)

Részletesebben

Nagy HF u tmutato 2011/2012 II. fe le v

Nagy HF u tmutato 2011/2012 II. fe le v A programozás alapjai 1. BMEVIHIA106 Nagy HF u tmutato 2011/2012 II. fe le v Analízis (Nyelv független) 1. A Házi feladat téma szöveges leírása. 2. A feladat résztvevőinek azonosítása 3. A résztvevők tulajdonságai

Részletesebben

Emlékeztető: a fordítás lépései. Szimbólumtábla-kezelés. Információáramlás. Információáramlás. Információáramlás.

Emlékeztető: a fordítás lépései. Szimbólumtábla-kezelés. Információáramlás. Információáramlás. Információáramlás. Emlékeztető: a fordítás lépései Forrás-kezelő (source handler) Szimbólumtábla-kezelés Fordítóprogramok előadás (A, C, T szakirány) Lexikális elemző (scanner) Szintaktikus elemző (parser) Szemantikus elemző

Részletesebben

Adatszerkezetek 2. Dr. Iványi Péter

Adatszerkezetek 2. Dr. Iványi Péter Adatszerkezetek 2. Dr. Iványi Péter 1 Hash tábla A bináris fáknál O(log n) a legjobb eset a keresésre. Ha valamilyen közvetlen címzést használunk, akkor akár O(1) is elérhető. A hash tábla a tömb általánosításaként

Részletesebben

Architektúra, megszakítási rendszerek

Architektúra, megszakítási rendszerek Architektúra, megszakítási ek Mirıl lesz szó? Megszakítás fogalma Megszakítás folyamata Többszintű megszakítási ek Koschek Vilmos Példa: Intel Pentium vkoschek@vonalkodhu Koschek Vilmos Fogalom A számítógép

Részletesebben

Függvények. Programozás I. Hatwágner F. Miklós november 16. Széchenyi István Egyetem, Gy r

Függvények. Programozás I. Hatwágner F. Miklós november 16. Széchenyi István Egyetem, Gy r Programozás I. Széchenyi István Egyetem, Gy r 2014. november 16. Áttekintés kel kapcsolatos fogalmak deklaráció Több, kompatibilis változat is elképzelhet. Meg kell el znie a fv. hívását. Mindenképp rögzíti

Részletesebben

Objektum elvű alkalmazások fejlesztése. Verem típus osztály-sablonja

Objektum elvű alkalmazások fejlesztése. Verem típus osztály-sablonja Objektum elvű alkalmazások fejlesztése Verem típus osztály-sablonja Készítette: Gregorics Tibor Készítsünk olyan újra-felhasználható kódot, amellyel vermeket lehet létrehozni és használni. Egy verem-objektum

Részletesebben

PROGRAMOZÁSI NYELVEK - CPP. GYAKORLAT JEGYZET

PROGRAMOZÁSI NYELVEK - CPP. GYAKORLAT JEGYZET PROGRAMOZÁSI NYELVEK - CPP. GYAKORLAT JEGYZET Szerkesztette: Balogh Tamás 2013. március 31. Ha hibát találsz, kérlek jelezd a info@baloghtamas.hu e-mail címen! Ez a Mű a Creative Commons Nevezd meg! -

Részletesebben

2016, Diszkrét matematika

2016, Diszkrét matematika Diszkrét matematika 2. előadás Sapientia Egyetem, Műszaki és Humántudományok Tanszék Marosvásárhely, Románia mgyongyi@ms.sapientia.ro 2016, őszi félév Miről volt szó az elmúlt előadáson? Követelmények,

Részletesebben

Java II. I A Java programozási nyelv alapelemei

Java II. I A Java programozási nyelv alapelemei Java II. I A Java programozási nyelv alapelemei Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2008. 02. 19. Java II.: Alapelemek JAVA2 / 1 A Java formalizmusa A C, illetve az annak

Részletesebben

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

Programozás alapjai 9. előadás. Wagner György Általános Informatikai Tanszék 9. előadás Wagner György Általános Informatikai Tanszék Leszámoló rendezés Elve: a rendezett listában a j-ik kulcs pontosan j-1 kulcsnál lesz nagyobb. (Ezért ha egy kulcsról tudjuk, hogy 27 másiknál nagyobb,

Részletesebben

Alkalmazott modul: Programozás

Alkalmazott modul: Programozás Eötvös Loránd Tudományegyetem Informatikai Kar Alkalmazott modul: Programozás Feladatgyűjtemény Összeállította: Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto Frissítve: 2015.

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

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

3/1. tétel: Linearis adatszerkezetek és műveleteik

3/1. tétel: Linearis adatszerkezetek és műveleteik 3/1. tétel: Linearis adatszerkezetek és műveleteik A gyűjtemények (collections) közé sorolhatók a halmaz (set), a csomag (bag, multiset) és a vector (sequence, list). Gyűjtemények általánosan Értelmezzük

Részletesebben

Bevezetés a számítástechnikába

Bevezetés a számítástechnikába Bevezetés a számítástechnikába Megszakítások Fodor Attila Pannon Egyetem Műszaki Informatikai Kar Villamosmérnöki és Információs Rendszerek Tanszék foa@almos.vein.hu 2010. november 9. Bevezetés Megszakítások

Részletesebben

OOP #1 (Bevezetés) v1.0 2003.03.07. 18:39:00. Eszterházy Károly Főiskola Információtechnológia tsz. Hernyák Zoltán adj.

OOP #1 (Bevezetés) v1.0 2003.03.07. 18:39:00. Eszterházy Károly Főiskola Információtechnológia tsz. Hernyák Zoltán adj. OOP #1 (Bevezetés) v1.0 2003.03.07. 18:39:00 Eszterházy Károly Főiskola Információtechnológia tsz. Hernyák Zoltán adj. e-mail: aroan@ektf.hu web: http://aries.ektf.hu/~aroan OOP OOP_01-1 - E jegyzet másolata

Részletesebben

Óbudai Egyetem. C programozási nyelv

Óbudai Egyetem. C programozási nyelv Óbudai Egyetem Kandó Kálmán Villamosmérnöki Kar C programozási nyelv Struktúrák és Unionok Dr. Schuster György 2016. október 6. Óbudai Egyetem Kandó Kálmán Villamosmérnöki Kar C programozási 2016. októbernyelv

Részletesebben

Adatszerkezetek I. 7. előadás. (Horváth Gyula anyagai felhasználásával)

Adatszerkezetek I. 7. előadás. (Horváth Gyula anyagai felhasználásával) Adatszerkezetek I. 7. előadás (Horváth Gyula anyagai felhasználásával) Bináris fa A fa (bináris fa) rekurzív adatszerkezet: BinFa:= Fa := ÜresFa Rekord(Elem,BinFa,BinFa) ÜresFa Rekord(Elem,Fák) 2/37 Bináris

Részletesebben

Bevezetés a programozásba 2

Bevezetés a programozásba 2 Bevezetés a programozásba 2 7. Előadás: STL konténerek, sablonok http://digitus.itk.ppke.hu/~flugi/ Vector int int main() { vector v(10); int int sum=0; for for (int i=0;i

Részletesebben

Nagy HF ke szı te si u tmutato

Nagy HF ke szı te si u tmutato A programozás alapjai 1. BMEVIHIAA01 Nagy HF ke szı te si u tmutato Analízis és Specifikáció (Nyelv független) 0. A Házi feladat témája 1. A Házi feladat téma szöveges leírása 2. A feladat résztvevőinek

Részletesebben

1. Az utasítás beolvasása a processzorba

1. Az utasítás beolvasása a processzorba A MIKROPROCESSZOR A mikroprocesszor olyan nagy bonyolultságú félvezető eszköz, amely a digitális számítógép központi egységének a feladatait végzi el. Dekódolja az uatasításokat, vezérli a műveletek elvégzéséhez

Részletesebben

Programozás I. 3. gyakorlat. Szegedi Tudományegyetem Természettudományi és Informatikai Kar

Programozás I. 3. gyakorlat. Szegedi Tudományegyetem Természettudományi és Informatikai Kar Programozás I. 3. gyakorlat Szegedi Tudományegyetem Természettudományi és Informatikai Kar Antal Gábor 1 Primitív típusok Típus neve Érték Alap érték Foglalt tár Intervallum byte Előjeles egész 0 8 bit

Részletesebben

Adatszerkezetek és algoritmusok

Adatszerkezetek és algoritmusok 2009. november 20. Bevezet El z órák anyagainak áttekintése Ismétlés Adatszerkezetek osztályozása Sor, Verem, Lengyelforma Statikus, tömbös reprezentáció Dinamikus, láncolt reprezentáció El z órák anyagainak

Részletesebben

Információs Technológia

Információs Technológia Információs Technológia A C programozási nyelv (Típusok és operátorok) Fodor Attila Pannon Egyetem Műszaki Informatika Kar Villamosmérnöki és Információs Rendszerek Tanszék foa@almos.vein.hu 2010 szeptember

Részletesebben

algoritmus Törlés tömbből

algoritmus Törlés tömbből Egy adott indexű elem törlésének algoritmusa az elem felszabaduló helyének megfelelően az elem mögött állókat feltömöríti, egy hellyel előre lépteti. Az algoritmusban használni fogjuk a DEC függvényt,

Részletesebben

Programozás C++ -ban 2007/7

Programozás C++ -ban 2007/7 Programozás C++ -ban 2007/7 1. Másoló konstruktor Az egyik legnehezebben érthető fogalom C++ -ban a másoló konstruktor, vagy angolul "copy-constructor". Ez a konstruktor fontos szerepet játszik az argumentum

Részletesebben

C++ programozási nyelv

C++ programozási nyelv C++ programozási nyelv Gyakorlat - 13. hét Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet Soós Sándor 2004. december A C++ programozási nyelv Soós Sándor 1/10 Tartalomjegyzék Objektumok

Részletesebben

Algoritmusok és adatszerkezetek II.

Algoritmusok és adatszerkezetek II. Algoritmusok és adatszerkezetek II. Horváth Gyula Szegedi Tudományegyetem Természettudományi és Informatikai Kar horvath@inf.u-szeged.hu 3. Kiegyensúlyozott keresőfák A T tulajdonság magasság-egyensúlyozó

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

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

Java II. I A Java programozási nyelv alapelemei

Java II. I A Java programozási nyelv alapelemei Java2 / 1 Java II. I A Java programozási nyelv alapelemei Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2009. 02. 09. Java II.: Alapelemek JAVA2 / 1 A Java formalizmusa A C, illetve

Részletesebben

Kivételkezelés a C++ nyelvben Bevezetés

Kivételkezelés a C++ nyelvben Bevezetés Kivételkezelés a C++ nyelvben Bevezetés Miskolci Egyetem Általános Informatikai Tanszék Kivételkezelés a C++ nyelvben CPP9 / 1 Hagyományos hibakezelés Függvény visszatérési értéke (paramétere) hátrányai:

Részletesebben

mul : S T N 1 ha t S mul(s, t) := 0 egyébként Keresés Ezt az eljárást a publikus m veletek lenti megvalósításánál használjuk.

mul : S T N 1 ha t S mul(s, t) := 0 egyébként Keresés Ezt az eljárást a publikus m veletek lenti megvalósításánál használjuk. Érdi Gerg EF II. 2/2. Feladat Készítsen egy zsák típust! lkalmazzon osztályt! zsákokat rendezett láncolt listával ábrázolja! Implementálja a szokásos m veleteket, egészítse ki az osztályt a kényelmes és

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