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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Mikroprocesszor CPU. C Central Központi. P Processing Számító. U Unit Egység

Mikroprocesszor CPU. C Central Központi. P Processing Számító. U Unit Egység Mikroprocesszor CPU C Central Központi P Processing Számító U Unit Egység A mikroprocesszor általános belső felépítése 1-1 BUSZ Utasítás dekóder 1-1 BUSZ Az utasítás regiszterben levő utasítás értelmezését

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

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

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

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

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

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

Programozás II. 4. Dr. Iványi Péter Programozás II. 4. Dr. Iványi Péter 1 inline függvények Bizonyos függvények annyira rövidek, hogy nem biztos hogy a fordító függvényhívást fordít, hanem inkább az adott sorba beilleszti a kódot. #include

Részletesebben

Érdekes informatika feladatok

Érdekes informatika feladatok A keres,kkel és adatbázissal ellátott lengyel honlap számos díjat kapott: Spirit of Delphi '98, Delphi Community Award, Poland on the Internet, Golden Bagel Award stb. Az itt megtalálható komponenseket

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

ADATSTRUKTÚRÁK ÉS ALGORITMUSOK

ADATSTRUKTÚRÁK ÉS ALGORITMUSOK Írta: ADONYI RÓBERT ADATSTRUKTÚRÁK ÉS ALGORITMUSOK Egyetemi tananyag 2011 COPYRIGHT: 2011 2016, Dr. Adonyi Róbert, Pannon Egyetem Műszaki Informatikai Kar Rendszer- és Számítástudományi Tanszék LEKTORÁLTA:

Részletesebben

INFORMATIKAI ALAPISMERETEK

INFORMATIKAI ALAPISMERETEK Informatikai alapismeretek középszint 1021 ÉRETTSÉGI VIZSGA 2011. május 13. INFORMATIKAI ALAPISMERETEK KÖZÉPSZINTŰ ÍRÁSBELI ÉRETTSÉGI VIZSGA JAVÍTÁSI-ÉRTÉKELÉSI ÚTMUTATÓ NEMZETI ERŐFORRÁS MINISZTÉRIUM

Részletesebben

5. Gyakorlat. struct diak {

5. Gyakorlat. struct diak { Rövid elméleti összefoglaló 5. Gyakorlat Felhasználó által definiált adattípusok: A typedef egy speciális tárolási osztály, mellyel érvényes típusokhoz szinonim nevet rendelhetünk. typedef létező_típus

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

A gyakorlat során az alábbi ábrán látható négy entitáshoz kapcsolódó adatbevitelt fogjuk megoldani.

A gyakorlat során az alábbi ábrán látható négy entitáshoz kapcsolódó adatbevitelt fogjuk megoldani. Vizuális programozás 1. A gyakorlat célja A gyakorlat célja a Könyvtár alkalmazás folytatása az előző gyakorlaton elkészített grafikus felület felhasználásával. Elsőként lemásoljuk az előző gyakorlat eredményeként

Részletesebben

Elemi adatszerkezetek

Elemi adatszerkezetek 2015/10/14 13:54 1/16 Elemi adatszerkezetek < Programozás Elemi adatszerkezetek Szerző: Sallai András Copyright Sallai András, 2011, 2014 Licenc: GNU Free Documentation License 1.3 Web: http://szit.hu

Részletesebben

Adatszerkezetek és algoritmusok

Adatszerkezetek és algoritmusok 2010. január 8. 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ó Láncolt lista Lassú

Részletesebben

Programozás I. zárthelyi dolgozat

Programozás I. zárthelyi dolgozat Programozás I. zárthelyi dolgozat 2013. november 11. 2-es szint: Laptopot szeretnénk vásárolni, ezért írunk egy programot, amelynek megadjuk a lehetséges laptopok adatait. A laptopok árát, memória méretét

Részletesebben

tétel: különböző típusú adatokat csoportosít, ezeket egyetlen adatként kezeli, de hozzáférhetünk az elemeihez is

tétel: különböző típusú adatokat csoportosít, ezeket egyetlen adatként kezeli, de hozzáférhetünk az elemeihez is A tétel (record) tétel: különböző típusú adatokat csoportosít, ezeket egyetlen adatként kezeli, de hozzáférhetünk az elemeihez is A tétel elemei mezők. Például tétel: személy elemei: név, lakcím, születési

Részletesebben

Számláló rendezés. Példa

Számláló rendezés. Példa Alsó korlát rendezési algoritmusokra Minden olyan rendezési algoritmusnak a futását, amely elempárok egymással való összehasonlítása alapján működik leírja egy bináris döntési fa. Az algoritmus által a

Részletesebben

Számítógép architektúrák

Számítógép architektúrák Számítógép architektúrák Kártyás ajtónyitó tervezése 2016. március 7. Budapest Horváth Gábor docens BME Hálózati Rendszerek és Szolgáltatások Tanszék ghorvath@hit.bme.hu Számítógép Architektúrák Horváth

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

Programozás. C++ típusok, operátorok. Fodor Attila

Programozás. C++ típusok, operátorok. Fodor Attila Programozás C++ típusok, operátorok Fodor Attila Pannon Egyetem Műszaki Informatikai Kar Villamosmérnöki és Információs Rendszerek Tanszék foa@almos.vein.hu 2010. március 4. Deklaráció és definíció C++

Részletesebben

Generikus Típusok, Kollekciók

Generikus Típusok, Kollekciók Generikus Típusok, Kollekciók Tóth Zsolt Miskolci Egyetem 2013 Tóth Zsolt (Miskolci Egyetem) Generikus Típusok, Kollekciók 2013 1 / 26 Tartalomjegyzék 1 Enumeráció 2 Generikus Típusok 3 Kollekciók System.Collections

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. február 25. Osztályok C++ osztályok Bevezetés Objektum-orientáltság

Részletesebben

Bevezetés a C++ programozási nyelvbe

Bevezetés a C++ programozási nyelvbe Miskolci Egyetem Általános Informatikai Tanszék Bevezetés a C++ programozási nyelvbe Oktatási segédlet Összeállította: Ficsor Lajos 2001. 1. A C++ programozási nyelv története A C++ programozási nyelv

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

Processzusok (Processes), Szálak (Threads), Kommunikáció (IPC, Inter-Process Communication)

Processzusok (Processes), Szálak (Threads), Kommunikáció (IPC, Inter-Process Communication) 1 Processzusok (Processes), Szálak (Threads), Kommunikáció (IPC, Inter-Process Communication) 1. A folyamat (processzus, process) fogalma 2. Folyamatok: műveletek, állapotok, hierarchia 3. Szálak (threads)

Részletesebben

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

Programozás 3. Dr. Iványi Péter Programozás 3. Dr. Iványi Péter 1 Egy operandus művelet operandus operandus művelet Operátorok Két operandus operandus1 művelet operandus2 2 Aritmetikai műveletek + : összeadás -: kivonás * : szorzás /

Részletesebben

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

C++ programozási nyelv Struktúrák a C++ nyelvben C++ programozási nyelv Struktúrák a C++ nyelvben Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet Soós Sándor 2004. szeptember A C++ programozási nyelv Soós Sándor 1/37 Bevezetés A

Részletesebben

10. tétel. Adatszerkezetek és algoritmusok vizsga Frissült: 2013. január 28.

10. tétel. Adatszerkezetek és algoritmusok vizsga Frissült: 2013. január 28. 10. tétel Adatszerkezetek és algoritmusok vizsga Frissült: 2013. január 28. 2-3 fák Hatékony keresőfa-konstrukció. Ez is fa, de a binárisnál annyival bonyolultabb hogy egy nem-levél csúcsnak 2 vagy 3 fia

Részletesebben

INFORMATIKAI ALAPISMERETEK

INFORMATIKAI ALAPISMERETEK Informatikai alapismeretek emelt szint 0802 ÉRETTSÉGI VIZSGA 2008. október 20. INFORMATIKAI ALAPISMERETEK EMELT SZINTŰ ÍRÁSBELI ÉRETTSÉGI VIZSGA JAVÍTÁSI-ÉRTÉKELÉSI ÚTMUTATÓ OKTATÁSI ÉS KULTURÁLIS MINISZTÉRIUM

Részletesebben

WEBFEJLESZTÉS 2. ADATBÁZIS-KEZELÉS, OSZTÁLYOK

WEBFEJLESZTÉS 2. ADATBÁZIS-KEZELÉS, OSZTÁLYOK WEBFEJLESZTÉS 2. ADATBÁZIS-KEZELÉS, OSZTÁLYOK Horváth Győző Egyetemi adjunktus 1117 Budapest, Pázmány Péter sétány 1/C, 2.420 Tel: (1) 372-2500/1816 2 Ismétlés Ismétlés 3 Fájl/Adatbázis 3 4 Szerver 2 CGI

Részletesebben

Az AVR programozás alapjai. Előadja: Both Tamás

Az AVR programozás alapjai. Előadja: Both Tamás Az AVR programozás alapjai Előadja: Both Tamás Fordító C nyelven programozunk Ehhez az AVR-GCC fordító áll rendelkezésre Ennek használatához a WinAVR-t kell telepíteni Teljes értékű C fordító, minden megengedett,

Részletesebben

A raktártechnológia ismérvei. Tervezési elsődlegesség Elsőbbség a technikával szemben A raktártechnológia egyedi jellege

A raktártechnológia ismérvei. Tervezési elsődlegesség Elsőbbség a technikával szemben A raktártechnológia egyedi jellege Raktártechnológia A raktártechnológia mindazon tényezőket foglalja egységbe, amelyek a raktár működését jellemzik. A raktártehnológia a feladatoknak megfelelő raktári munkafolyamatok, módszerek és munkaerő

Részletesebben

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

C# nyelv alapjai. Krizsán Zoltán 1. Objektumorientált programozás C# alapokon tananyag. Általános Informatikai Tanszék Miskolci Egyetem C# nyelv alapjai Krizsán Zoltán 1 Általános Informatikai Tanszék Miskolci Egyetem Objektumorientált programozás C# alapokon tananyag Tartalom Bevezetés Lokális változó Utasítások Szójáték Why do all real

Részletesebben

Java programozási nyelv

Java programozási nyelv Java programozási nyelv 2. rész Vezérlő szerkezetek Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet Soós Sándor 2005. szeptember A Java programozási nyelv Soós Sándor 1/23 Tartalomjegyzék

Részletesebben

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

OAF Gregorics Tibor: Minta dokumentáció a 3. házi feladathoz 1. OAF Gregorics Tibor: Minta dokumentáció a 3. házi feladathoz 1. Feladat Szimuláljuk különféle élőlények túlélési versenyét. A lények egy pályán haladnak végig, ahol váltakozó viszonyok vannak. Egy lénynek

Részletesebben

REKURZIÓ. Rekurzív: önmagát ismétlő valami (tevékenység, adatszerkezet stb.) Rekurzív függvény: függvény, amely meghívja saját magát.

REKURZIÓ. Rekurzív: önmagát ismétlő valami (tevékenység, adatszerkezet stb.) Rekurzív függvény: függvény, amely meghívja saját magát. 1. A REKURZIÓ FOGALMA REKURZIÓ Rekurzív: önmagát ismétlő valami (tevékenység, adatszerkezet stb.) Rekurzív függvény: függvény, amely meghívja saját magát. 1.1 Bevezető példák: 1.1.1 Faktoriális Nemrekurzív

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

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

Fejlett programozási nyelvek C++ Sablonok és adatfolyamok Fejlett programozási nyelvek C++ Sablonok és adatfolyamok 11. előadás Antal Margit 2009 slide 1 Témakörök Sablonok Függvénysablon Osztálysablon Sablon metaprogramozás Adatfolyamok Operátorok és manipulátorok

Részletesebben

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

Programozás alapjai II. (9. ea) C++ többszörös öröklés, cast, perzisztencia Öröklés ism. Programozás alapjai II. (9. ea) C++ többszörös öröklés, cast, perzisztencia Szeberényi Imre BME IIT Egy osztályból olyan újabb osztályokat származtatunk, amelyek rendelkeznek

Részletesebben

Készítette: Nagy Tibor István

Készítette: Nagy Tibor István Készítette: Nagy Tibor István A változó Egy memóriában elhelyezkedő rekesz Egy értéket tárol Van azonosítója (vagyis neve) Van típusa (milyen értéket tárolhat) Az értéke értékadással módosítható Az értéke

Részletesebben

Szerző. Varga Péter ETR azonosító: VAPQAAI.ELTE Email cím: Név: vp.05@hotmail.com Kurzuskód:

Szerző. Varga Péter ETR azonosító: VAPQAAI.ELTE Email cím: Név: vp.05@hotmail.com Kurzuskód: Szerző Név: Varga Péter ETR azonosító: VAPQAAI.ELTE Email cím: vp.05@hotmail.com Kurzuskód: IP-08PAEG/27 Gyakorlatvezető neve: Kőhegyi János Feladatsorszám: 20 1 Tartalom Szerző... 1 Felhasználói dokumentáció...

Részletesebben

Programozás I. Metódusok C#-ban Egyszerű programozási tételek. Sergyán Szabolcs sergyan.szabolcs@nik.uni-obuda.hu

Programozás I. Metódusok C#-ban Egyszerű programozási tételek. Sergyán Szabolcs sergyan.szabolcs@nik.uni-obuda.hu Programozás I. 3. előadás Tömbök a C#-ban Metódusok C#-ban Egyszerű programozási tételek Sergyán Szabolcs sergyan.szabolcs@nik.uni-obuda.hu Óbudai Egyetem Neumann János Informatikai Kar Szoftvertechnológia

Részletesebben

Algoritmusok pszeudókód... 1

Algoritmusok pszeudókód... 1 Tartalomjegyzék Algoritmusok pszeudókód... 1 Abszolút érték... 1 Hányados ismételt kivonással... 1 Legnagyobb közös osztó... 2 Páros számok szűrése... 2 Palindrom számok... 2 Orosz szorzás... 3 Minimum

Részletesebben

Adatszerkezetek és algoritmusok

Adatszerkezetek és algoritmusok Adatszerkezetek és algoritmusok Jegyzet dr. Juhász István előadása alapján Készítette Csordás Annamária és Mohai Gábor A valós világban rendszerekről beszélünk. A dolgok összetevői egymással kölcsönhatásban

Részletesebben

Tartalomjegyzék Algoritmusok - pszeudókód... 1 42

Tartalomjegyzék Algoritmusok - pszeudókód... 1 42 Tartalomjegyzék Algoritmusok - pszeudókód... 1 42 Abszolút érték...1 Hányados ismételt kivonással...1 Legnagyobb közös osztó... 1 2 Páros számok szűrése...2 Palindrom számok... 2 3 Orosz szorzás...3 Minimum

Részletesebben

SQLServer. Particionálás

SQLServer. Particionálás SQLServer 11. téma DBMS particiók, LOG shipping Particionálás Tábla, index adatinak szétosztása több FileGroup-ra 1 Particionálás Előnyök: Nagy méret hatékonyabb kezelése Részek önálló mentése, karbantartása

Részletesebben

Funkcionális Nyelvek 2 (MSc)

Funkcionális Nyelvek 2 (MSc) Funkcionális Nyelvek 2 (MSc) Páli Gábor János pgj@elte.hu Eötvös Loránd Tudományegyetem Informatikai Kar Programozási Nyelvek és Fordítóprogramok Tanszék Tematika A (tervezett) tematika rövid összefoglalása

Részletesebben