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

2 Kommunikáció a program és az operációs rendszer között Operációs rendszer fő feladatai Program elindítása File kezelés Tárgazdálkodás Felhasználói felület Perifériák kezelés Erőforrásokkal való gazdálkodás Ütemezés Hálózatkezelés Programok és állományok védelme Fodor Attila (Pannon Egyetem) Információs technológia november / 40

3 Kommunikáció a program és az operációs rendszer között Program indítása, leállítása menete Program elindítása Programot tartalmazó állomány megkeresése a háttértárolón Programkód betöltése a háttértárból a memóriába Környezet átadásához a meghatározott memóriaterület lefoglalása, feltöltése Program neve Elérési út Paraméterek Vezérlés átadása a betöltött program meghatározott címére Program futtatása... Program visszatérési érték átadása az operációs rendszernek Program által használt memória felszabadítása Fodor Attila (Pannon Egyetem) Információs technológia november / 40

4 Kommunikáció a program és az operációs rendszer között Program elindítása Paraméterek átadása a programnak Program meghívása programneve param1 param2 param3 \eleresi\ut\programneve param1 param2 param3 Program kódja C nyelvben int main(int argc, char* argv[])... return 0; Fodor Attila (Pannon Egyetem) Információs technológia november / 40

5 Kommunikáció a program és az operációs rendszer között A main függvény változatai Program elindítása ANSI szabvány által megengedett void main( void ); int main( void ); int main( int argc[, char *argv[ ] [, char *envp[ ] ] ] ); Microsoft specifikus: int wmain( ); int wmain( int argc[, wchar_t *argv[ ] [, wchar_t *envp[ ] ] ] ); Paraméterek argc - Parancssor-argumentumok száma argv - Karaktersorozatokat tartalmazó tömböt címző mutató A 0. paraméter a program neve envp - Felhasználói környezetben lévő változók Fodor Attila (Pannon Egyetem) Információs technológia november / 40

6 Kommunikáció a program és az operációs rendszer között A main függvény változatai Program elindítása ANSI szabvány által megengedett void main( void ); int main( void ); int main( int argc[, char *argv[ ] [, char *envp[ ] ] ] ); Microsoft specifikus: int wmain( ); //int main( int argc, char *argv[ ], char *envp[ ] ) int main(int argc, char* argv[])... return 0; Fodor Attila (Pannon Egyetem) Információs technológia november / 40

7 Kommunikáció a program és az operációs rendszer között Program elindítása Paraméterek és környezeti változók feldolgozása int main( int argc, char *argv[ ], char *envp[ ] ) int i; for(i=0; i<argc; i++) printf("%d. parameter: %s\n", i, argv[i]);... \\paraméterek feldolgozása while (envp[i+1]!= NULL) printf("%d. körny. változó: %s\n", i, envp[i]);... \\környezeti változók feldolgozása i++;... return 0; Fodor Attila (Pannon Egyetem) Információs technológia november / 40

8 Kommunikáció a program és az operációs rendszer között Program elindítása Paraméterek és környezeti változók feldolgozása (példa) J:\FOA\Egyetem\Inf_tech\Orai_peldak\Inftech_lista\Debug\Inftech_lista.exe aaaa bbb c 0. parameter: J:\FOA\Egyetem\Inf_tech\Orai_peldak\Inftech_lista\Debug\Inftech_lista. 1. parameter: aaaa 2. parameter: bbb 3. parameter: ccc 4. korny. valtozo: ComSpec=C:\windows\system32\cmd.exe 5. korny. valtozo: DFSTRACINGON=FALSE 6. korny. valtozo: FARLANG=English 7. korny. valtozo: FP_NO_HOST_CHECK=NO 8. korny. valtozo: HOMEDRIVE=C: 9. korny. valtozo: HOMEPATH=\Users\fodora 10. korny. valtozo: INCLUDE=C:\Program Files\Microsoft Visual Studio.NET 2003\SDK\v 11. korny. valtozo: KMP_DUPLICATE_LIB_OK=TRUE 12. korny. valtozo: LIB=C:\Program Files\Microsoft Visual Studio.NET 2003\SDK\v1.1\ 13. korny. valtozo: LOCALAPPDATA=C:\Users\fodora\AppData\Local 14. korny. valtozo: LOGONSERVER=\\CHARON 15. korny. valtozo: MKL_SERIAL=YES 16. korny. valtozo: NIDAQmxSwitchDir=C:\Program Files\National Instruments\NI-DAQ\Sw 17. korny. valtozo: NIIVIPATH=C:\Program Files\IVI\ korny. valtozo: VXIPNPPATH=C:\Program Files\IVI Foundation\VISA\ 43. korny. valtozo: windir=c:\windows Fodor Attila (Pannon Egyetem) Információs technológia november / 40

9 Kommunikáció a program és az operációs rendszer között Program elindítása Paraméterek és környezeti változók feldolgozása (példa) Inftech_lista.exe aaaa bbb ccc 0. parameter: Inftech_lista.exe 1. parameter: aaaa 2. parameter: bbb 3. parameter: ccc 4. korny. valtozo: ComSpec=C:\windows\system32\cmd.exe 5. korny. valtozo: DFSTRACINGON=FALSE 6. korny. valtozo: FARLANG=English 7. korny. valtozo: FP_NO_HOST_CHECK=NO 8. korny. valtozo: HOMEDRIVE=C: 9. korny. valtozo: HOMEPATH=\Users\fodora 10. korny. valtozo: INCLUDE=C:\Program Files\Microsoft Visual Studio.NET 2003\SDK\v 11. korny. valtozo: KMP_DUPLICATE_LIB_OK=TRUE 12. korny. valtozo: LIB=C:\Program Files\Microsoft Visual Studio.NET 2003\SDK\v1.1\ 13. korny. valtozo: LOCALAPPDATA=C:\Users\fodora\AppData\Local 14. korny. valtozo: LOGONSERVER=\\CHARON 15. korny. valtozo: MKL_SERIAL=YES 16. korny. valtozo: NIDAQmxSwitchDir=C:\Program Files\National Instruments\NI-DAQ\Sw 17. korny. valtozo: NIIVIPATH=C:\Program Files\IVI\ korny. valtozo: VXIPNPPATH=C:\Program Files\IVI Foundation\VISA\ 43. korny. valtozo: windir=c:\windows Fodor Attila (Pannon Egyetem) Információs technológia november / 40

10 Goto C programozási nyelv Goto Nehezen átlátható Strukturált programozás elveivel ellentétes Minden olyan probléma, amely goto-val van megoldva megoldható struktúráltan is (Bizonyos esetekben a goto alkalmazása egyszerűbb megoldást eredményezne) Néha azonban megkerülése felesleges (Például: többszörösen egymásba ágyazott ciklusok) A cégek Coding Standard-jai általában tiltják!!! Fodor Attila (Pannon Egyetem) Információs technológia november / 40

11 Goto alkalmazása C programozási nyelv Goto Függvényen belüli (lokális) C nyelv által támogatott goto cimke_neve HELYETTE: break continue Függvényen kívül (globális) C nyelv által támogatott setjmp, longjmp TILOS!!! Ha mégis, akkor különösen indokolt esetben!!! Fodor Attila (Pannon Egyetem) Információs technológia november / 40

12 Goto (példa) C programozási nyelv Goto #include <stdio.h> int main() int i, j; for ( i = 0; i < 10; i++ ) printf( "Kulso ciklus i = %d\n", i ); for ( j = 0; j < 2; j++ ) printf( " Belso ciklus j = %d\n", j ); if ( i == 3 ) goto stop; /* Ezt nem irja ki... */ printf( "Ciklus vege i = %d\n", i ); stop: printf( "stop cimkere ugras i = %d\n", i ); Fodor Attila (Pannon Egyetem) Információs technológia november / 40

13 Typedef C programozási nyelv Typedef Olyan azonosítot definiál, amely későbbiekben saját típusnévként használható Így létrehozott típusok megnevezése: typedef nevek Valóságban nem vezet be új típust, csupán szinonímát hoz létre Létrehozása: Deklarátorban szereplő névhez hozzárendel egy típusnevet typedef int egeszszam, *egeszmutato; typedef struct double x, y, r; kor; Változó létrehozása, használata: egeszszam i; egeszmutato p; kor k; k.x = 1.23; Fodor Attila (Pannon Egyetem) Információs technológia november / 40

14 Függvénypointer C programozási nyelv Függvénypointer A változókhoz hasonlóan, függvényt is el lehet érni indirekten Alkalmazás oka: Függvény is átadható paraméterként A függvényekre mutató pointerek tömbökbe is szervezhetőek Sokkal rugalmasabb program készíthető Függvényre mutató pointer: int (*fp)(double x); int - visszatérési érték fp - pointer neve x - függvény paramétere (double típus) Fodor Attila (Pannon Egyetem) Információs technológia november / 40

15 C programozási nyelv Pointerek fajtái (áttekintés) Függvénypointer char a char *a char **a char *a[] char **a[] char (*a)[] char a() char *a() - karakter típusú változó - karakter típusú pointer - karakter típusú mutatóra mutató mutató - karakter típusú pointerek tömbje - karakter típusú mutatóra mutató mutatók tömbje - karakter típusú tömbre mutató pointer - karakter típusú függvény - karakter típusú pointerrel visszatérő függvény char (*a)() - karakter típusú függvényre mutató pointer char (*a[])() - karakter típusú függvényre mutató pointereket tartalmazó tömb Fodor Attila (Pannon Egyetem) Információs technológia november / 40

16 Rendezések Buborék rendezés 1. (ismétlés) Rendezések (ismétlés) egesz i, j, minind, tmp, v[], n n = egesz_tomb_merete / egy_elem_merete for(i=n-1; i>1; i-- ) for(j=0; j<i-1; j++) if (v[j] < v[j+1]) tmp = v[j+1]; v[j+1] = v[j]; v[j] = tmp; end if end for end for Összehasonlítás: N(N 1)/2 O(n 2 ) Mozgatás: 3N(N 1)/2 O(n 2 ) Fodor Attila (Pannon Egyetem) Információs technológia november / 40

17 Rendezések Buborék rendezés 1. (ismétlés) Rendezések (ismétlés) int i, j, minind, tmp, v[10], n; n=sizeof(v)/sizeof(int); for(i=n-1; i>1; i-- ) for(j=0; j<i-1; j++ ) if( v[j] < v[j+1] ) tmp = v[j+1]; v[j+1] = v[j]; v[j] = tmp; Fodor Attila (Pannon Egyetem) Információs technológia november / 40

18 Rendezések Buborék rendezés 2. (ismétlés) Rendezések (ismétlés) egesz i, j, minind, tmp, v[], n n = egesz_tomb_merete / egy_elem_merete for(i=0; i<n-1; i++ ) for(j=i+1; j<n; j++) if (v[j] < v[i]) tmp = v[i]; v[i] = v[j]; v[j] = tmp; end if end for end for Összehasonlítás: N(N 1)/2 O(n 2 ) Mozgatás: 3N(N 1)/2 O(n 2 ) Fodor Attila (Pannon Egyetem) Információs technológia november / 40

19 Rendezések Buborék rendezés 2. (ismétlés) Rendezések (ismétlés) int i, j, minind, tmp, v[10], n; n=sizeof(v)/sizeof(int); for(i=0; i<n-1; i++ ) for(j=i+1; j<n; j++ ) if( v[j] < v[i] ) tmp = v[i]; v[i] = v[j]; v[j] = tmp; Fodor Attila (Pannon Egyetem) Információs technológia november / 40

20 Rendezések Rendezések (ismétlés) Minimum kiválasztásos rendezés (ismétlés) egesz i, j, minind, tmp, n egesz v[] n = egesz_tomb_merete / egy_elem_merete for(i=0; i<n-1; i++) minind = i; for(j=i+1; j<n; j++) if( v[j] < v[minind] ) minind = j end if end for tmp = v[i] v[i] = v[minind] v[minind] = tmp end for // csere Összehasonlítás: N(N 1)/2 O(n 2 ) Mozgatás: 3(N 1) O(n) Fodor Attila (Pannon Egyetem) Információs technológia november / 40

21 Rendezések Rendezések (ismétlés) Minimum kiválasztásos rendezés (ismétlés) int i, j, minind, tmp; int v[10], n; n=sizeof(v)/sizeof(int); for(i=0; i<n-1; i++) minind = i; for(j=i+1; j<n; j++) if( v[j] < v[minind] ) minind = j; tmp = v[i]; v[i] = v[minind]; v[minind] = tmp; // csere Fodor Attila (Pannon Egyetem) Információs technológia november / 40

22 Koktél rendezés Rendezések Rendezések (ismétlés) Hasonlóan mőködik mint a buborék rendezés Kettő irányból történik a vizsgálat. A legrosszabb eset: is O(n 2 ) műveletre Majdnem rendezett lista esetén: körülbelül O(n) Fodor Attila (Pannon Egyetem) Információs technológia november / 40

23 Koktél rendezés Rendezések Rendezések (ismétlés) int bottom = 0; int top = n-1; int swap = TRUE; //csere volt while (swap == TRUE) swap = FALSE; for(int i=bottom; i<top; i++) if (a[i]>a[i+1]) swap = TRUE; tmp = a[i]; a[i] = a[i+1]; a[i+1] = tmp; top--; // top = top-1; for(int i=top; i>bottom; i--) if (a[i]<a[i-1]) swap = TRUE; tmp = a[i]; a[i] = a[i-1]; a[i-1] = tmp; bottom++ ; // bottom = bottom+1; Fodor Attila (Pannon Egyetem) Információs technológia november / 40

24 Kerti törpe rendezés Rendezések Rendezések (ismétlés) Megkeresi az első olyan helyet, ahol két egymást követő elem rossz sorrendben van megcseréli őket Ha egy ilyen csere után rossz sorrend keletkezik (csak a legutolsó csere előtt lehet) ellenőrizni kell int i=1, tmp; while (i<n) if (a[i-1]<=a[i]) i++; else tmp = a[i-1]; a[i-1] = a[i]; a[i] = tmp; i--; if (i==0) i = 1; //ha jó a sorrend előre lép Fodor Attila (Pannon Egyetem) Információs technológia november / 40

25 Beillesztéses rendezés Rendezések Rendezések (ismétlés) A soron következő elemnek megkeressük a helyét a tőle balra lévő rendezett részben Ezzel párhuzamosan a nagyobb elemeket rendre eggyel jobbra kell mozgatni int v[10], i, j, y, n; n=sizeof(v)/sizeof(int); for(i=1; i<n; i++) y = v[i]; for(j=i-1; (j>0) && (v[j]>y); j--) v[j+1] = v[j]; j = j-1; v[j+1] = y; Összehasonlítás: O(n 2 ) Mozgatás: O(n 2 ) Fodor Attila (Pannon Egyetem) Információs technológia november / 40

26 Rendezések Kupac adatszerkezet és tulajdonságai Kupac rendezés (Heap sort) Kupac adatszerkezet Bináris kupac: Egy majdnem teljes bináris fa egy tömbben ábrázolva A tömb mérete = kupac mérete = N Kupactulajdonsag Kupac tulajdonsag: A kupac minden i, gyökértől különböző eleme eseten: A[Szul.(i)]. A[i] Egy olyan binaris fát képvisel, amelyre igaz, hogy minden csúcs bal es jobb oldali részfájában csak kisebb vagy egyenlő értékek talalhatók. (Ez nem azonos a bináris keresőfa adatszerkezettel!!!) Fodor Attila (Pannon Egyetem) Információs technológia november / 40

27 A rossz helyen levő elemeket lefelé görgeti, mindig a nagyobb gyerek Fodor Attila felé (Pannon Egyetem) Információs technológia november / 40 Kupacolás Rendezések Kupac rendezés (Heap sort) /* TFH i-re nem teljesül a kupactulajdonság */ void kupacol(int i, int tomb[], int meret) int bal, jobb, legnagyobb, csere; bal = balkupac(i); jobb = jobbkupac(i); if (bal<=meret && tomb[bal]>tomb[i]) legnagyobb = bal; else legnagyobb = i; if (jobb<=meret && tomb[jobb]>tomb[legnagyobb]) legnagyobb = jobb; if (legnagyobb!=i) csere = tomb[i]; tomb[i] = tomb[legnagyobb]; tomb[legnagyobb] = csere; kupacol(legnagyobb);

28 Kupacolás (példa) Rendezések Kupac rendezés (Heap sort) Fodor Attila (Pannon Egyetem) Információs technológia november / 40

29 Kupacolás teljes fára Rendezések Kupac rendezés (Heap sort) Kupac építés A fa minden egyes elemére, a levelek feletti elemtől kezdve a gyökérig (bottom-up) void epit(int tomb[], int meret) int i; for (i=(meret-1)/2; i>0; i--) kupacol(i, tomb, meret); Fodor Attila (Pannon Egyetem) Információs technológia november / 40

30 Kupacolás teljes fára Rendezések Kupac rendezés (Heap sort) Kupac rendezés a legnagyobb elem a gyökér, az legyen a legutolsó az utolsót és az elsőt cseréljük Hatékonyság: O(nlog(n)) void rendez(int tomb[], int hossz) int i, csere; epit(tomb, hossz); for (i=hossz-1; i>0; i--) csere = tomb[i]; tomb[i]=tomb[0]; kupacol(0, tomb, hossz); Fodor Attila (Pannon Egyetem) Információs technológia november / 40

31 Kupacolás (példa) Rendezések Kupac rendezés (Heap sort) Fodor Attila (Pannon Egyetem) Információs technológia november / 40

32 Rendezések Gyorsrendezés (Quick sort) (Hoare, 1962) Gyorsrendezés (Quick sort) (Hoare, 1962) Alapelve: 1. felosztjuk az adatokat A[p..r] és A1[p..q] és A2[q..r] szakaszokra úgy, hogy A1<=A2 (NINCS RENDEZVE!!!) 2. Az A1 és A2 résztömböket rendezzük (az 1-es módszer folyamatos ismétlésével) Nincs szükség összefésülésre Az algoritmus sarokpontja: az 1. felosztó lépés Megvalósítása többféle lehet void gyorsrendez(int tomb[], int also, int felso) int kozep; if (also<felso) kozep = feloszt(tomb, also, felso); gyorsrendez(tomb, also, kozep); gyorsrendez(tomb, kozep+1, felso); Fodor Attila (Pannon Egyetem) Információs technológia november / 40

33 Rendezések Gyorsrendezés (Quick sort) (Hoare, 1962) Qsort megvalalósítása (csere, kiírás) void swap(int *x,int *y) int temp; temp = *x; *x = *y; *y = temp; int choose_pivot(int i,int j ) return((i+j) /2); void printlist(int list[],int n) int i; for(i=0;i<n;i++) printf("%d\t",list[i]); Fodor Attila (Pannon Egyetem) Információs technológia november / 40

34 Rendezések Gyorsrendezés (Quick sort) (Hoare, 1962) Qsort megvalalósítása (rendezés) void quicksort(int list[],int m,int n) int key,i,j,k; if( m < n) k = choose_pivot(m,n); swap(&list[m],&list[k]); key = list[m]; i = m+1; j = n; while(i <= j) while((i <= n) && (list[i] <= key)) i++; while((j >= m) && (list[j] > key)) j--; if( i < j) swap(&list[i],&list[j]); swap(&list[m],&list[j]); // rekurziv rendezes quicksort(list,m,j-1); quicksort(list,j+1,n); //2 elem csereje Fodor Attila (Pannon Egyetem) Információs technológia november / 40

35 Rendezések Gyorsrendezés (Quick sort) (Hoare, 1962) Qsort megvalalósítása (meghívása) void main() const int MAX_ELEMENTS = 10; int list[max_elements]; int i = 0; // veletlenszamok generalasa for(i = 0; i < MAX_ELEMENTS; i++ ) list[i] = rand(); printf("adatok rednezes elott:\n"); printlist(list,max_elements); // rendezes quicksort algoritmussal quicksort(list,0,max_elements-1); printf("adatok rednezes utan:\n"); printlist(list,max_elements); Fodor Attila (Pannon Egyetem) Információs technológia november / 40

36 Qsort függvény Rendezések Gyorsrendezés (Quick sort) (Hoare, 1962) Quick sort algoritmust használó függvény általános célra Az összehasonlító függvényt paraméterként nekünk kell megadni Prototípusa: void qsort(void *base, size_t num, size_t width, int (*cmp)(void *e1, void *e2)); base: Adatokra mutató pointer num: Adatok száma width: Adat mérete (byte-ban) Utolsó paraméter: Összehasonlító függvényre mutató pointer Például: int compare(int **a, int **b) return a>b?1:0; Fodor Attila (Pannon Egyetem) Információs technológia november / 40

37 Rendezések Gyorsrendezés (Quick sort) (Hoare, 1962) Beépített qsort rendezés alkalmazása #include <stdlib.h> #include <string.h> #include <stdio.h> int compare( const void *arg1, const void *arg2 ); int main( int argc, char **argv ) int i; /* Eliminate argv[0] from sort: */ argv++; argc--; /* Sort remaining args using Quicksort algorithm: */ qsort( (void *)argv, (size_t)argc, sizeof( char * ), compare ); /* Output sorted list: */ for( i = 0; i < argc; ++i ) printf( " %s", argv[i] ); printf( "\n" ); int compare( const void *arg1, const void *arg2 ) /* Compare all of both strings: */ return _stricmp( * ( char** ) arg1, * ( char** ) arg2 ); Fodor Attila (Pannon Egyetem) Információs technológia november / 40

38 Shell rendezés Rendezések Shell rendezés A Shell-módszer nem foglalkozik egyszerre minden elemmel Egyszerre egymástól adott távolságra lévőkkel foglalkozik A rendezés itt is több menetben történik Minden menet elején meghatározunk egy úgynevezett lépésközt, a L-t (adott menetben a vektor egymástól L távolságra lévő elemeit rendezzük) Az induló lépésköz meghatározása úgy történik, hogy a rendezéshez szükséges menetek száma körülbelül log 2 N legyen Lépésszám: O(nlog 2 n) Fodor Attila (Pannon Egyetem) Információs technológia november / 40

39 Shell rendezés Rendezések Shell rendezés egesz t[], L egesz i, j, y L = EGESZ_KONVERZIO( LOG(N)/LOG(2) ) Ciklus amíg L>=1 Ciklus k=l+1-től 2*L-ig Ciklus i=k-tól N-ig L-esével növelve j = i-l y = t[i] Ciklus amíg j>0 és t[j]>y t[j+l] = t[j] j = j-l Ciklus vége t[j+l] = y Ciklus vége Ciklus vége L = Kovetkezo_L(L) Ciklus vége Fodor Attila (Pannon Egyetem) Információs technológia november / 40

40 Rendezések További rendezési algoritmusok Shell rendezés Szétosztó rendezés Leszámláló rendezés Radix (számjegyes) rendezés Edény rendezés Fodor Attila (Pannon Egyetem) Információs technológia november / 40

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

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

Részletesebben

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

Haladó rendezések. PPT 2007/2008 tavasz.

Haladó rendezések. PPT 2007/2008 tavasz. Haladó rendezések szenasi.sandor@nik.bmf.hu PPT 2007/2008 tavasz http://nik.bmf.hu/ppt 1 Témakörök Alapvető összehasonlító rendezések Shell rendezés Kupacrendezés Leszámláló rendezés Radix rendezés Edényrendezés

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

A számítástudomány alapjai. Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem

A számítástudomány alapjai. Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem A számítástudomány alapjai Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem Bináris keresőfa, kupac Katona Gyula Y. (BME SZIT) A számítástudomány

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

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

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

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

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

Programozás alapjai. 5. előadás

Programozás alapjai. 5. előadás 5. előadás Wagner György Általános Informatikai Tanszék Cserélve kiválasztásos rendezés (1) A minimum-maximum keresés elvére épül. Ismétlés: minimum keresés A halmazból egy tetszőleges elemet kinevezünk

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

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

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

Részletesebben

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

Adatszerkezetek. Nevezetes algoritmusok (Keresések, rendezések)

Adatszerkezetek. Nevezetes algoritmusok (Keresések, rendezések) Adatszerkezetek Nevezetes algoritmusok (Keresések, rendezések) Keresések A probléma általános megfogalmazása: Adott egy N elemű sorozat, keressük meg azt az elemet (határozzuk meg a helyét a sorozatban),

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

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

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

Kupacrendezés. Az s sorban lévő elemeket rendezzük a k kupac segítségével! k.empty. not s.isempty. e:=s.out k.insert(e) not k.

Kupacrendezés. Az s sorban lévő elemeket rendezzük a k kupac segítségével! k.empty. not s.isempty. e:=s.out k.insert(e) not k. 10. Előadás Beszúró rendezés Használjuk a kupacokat rendezésre! Szúrd be az elemeket egy kupacba! Amíg a sor ki nem ürül, vedd ki a kupacból a maximális elemet, és tedd az eredmény (rendezett) sorba! 2

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

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

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

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

Bánsághi Anna 2014 Bánsághi Anna 1 of 68 IMPERATÍV PROGRAMOZÁS Bánsághi Anna anna.bansaghi@mamikon.net 3. ELŐADÁS - PROGRAMOZÁSI TÉTELEK 2014 Bánsághi Anna 1 of 68 TEMATIKA I. ALAPFOGALMAK, TUDOMÁNYTÖRTÉNET II. IMPERATÍV PROGRAMOZÁS Imperatív

Részletesebben

1. ábra. Számláló rendezés

1. ábra. Számláló rendezés 1:2 2:3 1:3 1,2,3 1:3 1,3,2 3,1,2 2,1,3 2:3 2,3,1 3,2,1 1. ábra. Alsó korlát rendezési algoritmusokra Minden olyan rendezési algoritmusnak a futását, amely elempárok egymással

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

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

1. Alapok. Programozás II

1. Alapok. Programozás II 1. Alapok Programozás II Elérhetőség Név: Smidla József Elérhetőség: smidla dcs.uni-pannon.hu Szoba: I916 2 Irodalom Bjarne Stroustrup: A C++ programozási nyelv 3 Irodalom Erich Gamma, Richard Helm, Ralph

Részletesebben

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

Információs Technológia

Információs Technológia 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 foa@almos.vein.hu 2009. november 19. Alapötlet

Részletesebben

A C programozási nyelv III. Pointerek és tömbök.

A C programozási nyelv III. Pointerek és tömbök. A C programozási nyelv III. Pointerek és tömbök. Miskolci Egyetem Általános Informatikai Tanszék A C programozási nyelv III. (Pointerek, tömbök) CBEV3 / 1 Mutató (pointer) fogalma A mutató olyan változó,

Részletesebben

Rendezések. A rendezési probléma: Bemenet: Kimenet: n számot tartalmazó (a 1,a 2,,a n ) sorozat

Rendezések. A rendezési probléma: Bemenet: Kimenet: n számot tartalmazó (a 1,a 2,,a n ) sorozat 9. Előadás Rendezések A rendezési probléma: Bemenet: n számot tartalmazó (a 1,a 2,,a n ) sorozat Kimenet: a bemenő sorozat olyan (a 1, a 2,,a n ) permutációja, hogy a 1 a 2 a n 2 Rendezések Általánosabban:

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

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

Programozás I gyakorlat

Programozás I gyakorlat Programozás I. - 9. gyakorlat Sztringkezelés, mutatók Tar Péter 1 Pannon Egyetem M szaki Informatikai Kar Rendszer- és Számítástudományi Tanszék Utolsó frissítés: November 2, 2009 1 tar@dcs.vein.hu Tar

Részletesebben

A C programozási nyelv III. Pointerek és tömbök.

A C programozási nyelv III. Pointerek és tömbök. A C programozási nyelv III. Pointerek és tömbök. Miskolci Egyetem Általános Informatikai Tanszék A C programozási nyelv III. (Pointerek, tömbök) CBEV3 / 1 Mutató (pointer) fogalma A mutató olyan változó,

Részletesebben

AAO 3. Csink László 2007

AAO 3. Csink László 2007 AAO 3 Csink László 2007 Algoritmus fogalma - ismétlés Az algoritmus egy eljárás (jóldefiniált utasítások véges halmaza), amelyet valamely feladat megoldására készítünk. A feladat egy adott kezdeti állapotból

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 nyelven (9. ELŐADÁS) Sapientia EMTE

Programozás C nyelven (9. ELŐADÁS) Sapientia EMTE Programozás C nyelven (9. ELŐADÁS) Sapientia EMTE 2015-16 1 POINTEREK ismétlés double x = 3.14, *px = &x; unsigned char *p, *p1, *p2; p1 = (unsigned char*)px; p2 = p1 + sizeof(double); for ( p = p2-1 ;

Részletesebben

A C programozási nyelv I. Bevezetés

A C programozási nyelv I. Bevezetés A C programozási nyelv I. Bevezetés Miskolci Egyetem Általános Informatikai Tanszék A C programozási nyelv I. (bevezetés) CBEV1 / 1 A C nyelv története Dennis M. Ritchie AT&T Lab., 1972 rendszerprogramozás,

Részletesebben

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

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

7. fejezet: Mutatók és tömbök

7. fejezet: Mutatók és tömbök 7. fejezet: Mutatók és tömbök Minden komolyabb programozási nyelvben vannak tömbök, amelyek gondos kezekben komoly fegyvert jelenthetnek. Először is tanuljunk meg tömböt deklarálni! //Tömbök használata

Részletesebben

A C# programozási nyelv alapjai

A C# programozási nyelv alapjai A C# programozási nyelv alapjai Tisztán objektum-orientált Kis- és nagybetűket megkülönbözteti Ötvözi a C++, Delphi, Java programozási nyelvek pozitívumait.net futtatókörnyezet Visual Studio fejlesztőkörnyezet

Részletesebben

Rendezések. Sergyán Szabolcs Óbudai Egyetem Neumann János Informatikai Kar október 24.

Rendezések. Sergyán Szabolcs Óbudai Egyetem Neumann János Informatikai Kar október 24. Rendezések 8. előadás Sergyán Szabolcs sergyan.szabolcs@nik.uni-obuda.hu Óbudai Egyetem Neumann János Informatikai Kar 2011. október 24. Sergyán (OE NIK) AAO 08 2011. október 24. 1 / 1 Felhasznált irodalom

Részletesebben

Programozás I. gyakorlat

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

Részletesebben

Programozás alapjai 1. (BMEVIEEA100)

Programozás alapjai 1. (BMEVIEEA100) Programozás alapjai 1. (BMEVIEEA100) Gyakorlat anyaga az 6. oktatási héten (4-5. gyakorlat) A 7. oktatási hét péntekje előbbre csúszik a 6. hét szombatjára, ezért a 7. heti anyagot a szokottnál előbb kapjátok

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

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

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

Algoritmusok vektorokkal keresések 1

Algoritmusok vektorokkal keresések 1 Algoritmusok vektorokkal keresések 1 function TELJES_KERES1(A, érték) - - teljes keresés while ciklussal 1. i 1 2. while i méret(a) és A[i] érték do 3. i i + 1 4. end while 5. if i > méret(a) then 6. KIVÉTEL

Részletesebben

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

Programozás C nyelven (3. ELŐADÁS) Sapientia EMTE Programozás C nyelven (3. ELŐADÁS) Sapientia EMTE 2015-16 Classic Empire - A turn Based Wargame Classic Empire is a real time, multiplayer, Internet-based game, featuring military, diplomatic, and economic

Részletesebben

Kivételek, kivételkezelés a C++ nyelvben

Kivételek, kivételkezelés a C++ nyelvben 2009. Kivételek, kivételkezelés a C++ nyelvben Haladó C++ programozás Kurucz Attila ELTE - IK 2009.06.09. Tartalomjegyzék Tartalomjegyzék... 2 Mi a kivételkezelés?... 3 Alapfogalmak... 3 Kivétel... 3 Try

Részletesebben

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

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

Részletesebben

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

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

Algoritmuselmélet. 2-3 fák. Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem. 8.

Algoritmuselmélet. 2-3 fák. Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem. 8. Algoritmuselmélet 2-3 fák Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem 8. előadás Katona Gyula Y. (BME SZIT) Algoritmuselmélet 8. előadás

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 alapjai 1. (BMEVIEEA100)

Programozás alapjai 1. (BMEVIEEA100) Programozás alapjai 1. (BMEVIEEA100) Gyakorlat anyaga az 8. oktatási héten Alább látható a félév teljes menete. Zölddel kiemelve a 9. hét, amikor a nagy ZH-t írják, ez a jövő hét!!! A 10. héten van a pót

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

Alkalmazott modul: Programozás. Programozási tételek, rendezések Giachetta Roberto

Alkalmazott modul: Programozás. Programozási tételek, rendezések Giachetta Roberto Eötvös Loránd Tudományegyetem Informatikai Kar Alkalmazott modul: Programozás Programozási tételek, rendezések 2015 Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto Algoritmusok

Részletesebben

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

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

Részletesebben

C programozás. 1 óra Bevezetés

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

Részletesebben

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

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

Programozás C nyelven 5. ELŐADÁS. Sapientia EMTE

Programozás C nyelven 5. ELŐADÁS. Sapientia EMTE Programozás C nyelven. ELŐADÁS Sapientia EMTE 201-16 1 while vs. for int szam, s; cin >> szam; s = 0; while ( szam > 0 ){ s += szam%10; szam /= 10; cout szam;

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

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ák tematikus csoportosításban

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

Részletesebben

Jelszavak helyes megválasztása, szótáras törés. Pánczél Zoltán

Jelszavak helyes megválasztása, szótáras törés. Pánczél Zoltán Jelszavak helyes megválasztása, szótáras törés Pánczél Zoltán 1 Miért fontos a megfelelő jelszó? Nagyban növeli a rendszer biztonságát. Könnyű jelszó = Nincs jelszó A teljes rendszer biztonsága tőlünk

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

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

Szkriptnyelvek. 1. UNIX shell

Szkriptnyelvek. 1. UNIX shell Szkriptnyelvek 1. UNIX shell Szkriptek futtatása Parancsértelmez ő shell script neve paraméterek shell script neve paraméterek Ebben az esetben a szkript tartalmazza a parancsértelmezőt: #!/bin/bash Szkriptek

Részletesebben

Alkalmazott modul: Programozás. Programozási tételek, rendezések. Programozási tételek Algoritmusok és programozási tételek

Alkalmazott modul: Programozás. Programozási tételek, rendezések. Programozási tételek Algoritmusok és programozási tételek Eötvös Loránd Tudományegyetem Informatikai Kar Alkalmazott modul: Programozás, rendezések 2015 Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto Algoritmusok és programozási tételek

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

Ó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

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

10. gyakorlat. Pointerek Tárolási osztályok

10. gyakorlat. Pointerek Tárolási osztályok 10. gyakorlat Pointerek Tárolási osztályok Pointer A pointer egy mutató egy memóriacellára, egyfajta "parancsikon", csak nem fájlokra, hanem változókra. Létrehozás: tipus * név;, ahol a típus a hivatkozott

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

Programozás. Programozás villamosmérnököknek

Programozás. Programozás villamosmérnököknek Programozás (NGB_SZ019_1) Programozás villamosmérnököknek (NGB_SZ002_1) Takács Gábor Széchenyi István Egyetem Matematika és Számítástudomány Tanszék 1 / 92 A számítógép felépítése A számítógép

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

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

117. AA Megoldó Alfréd AA 117.

117. AA Megoldó Alfréd AA 117. Programozás alapjai 2. (inf.) pót-pótzárthelyi 2011.05.26. gyak. hiányzás: kzhpont: MEG123 IB.028/117. NZH:0 PZH:n Minden beadandó megoldását a feladatlapra, a feladat után írja! A megoldások során feltételezheti,

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

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

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

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

Részletesebben

C programozási nyelv

C programozási nyelv C programozási nyelv Struktúrák Dr Schuster György 2011 június 16 Dr Schuster György () C programozási nyelv Struktúrák 2011 június 16 1 / 11 Struktúrák Struktúrák A struktúra egy olyan összetett adatszerkezet,

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

A programozás alapjai

A programozás alapjai A programozás alapjai Változók A számítógép az adatokat változókban tárolja A változókat alfanumerikus karakterlánc jelöli. A változóhoz tartozó adat tipikusan a számítógép memóriájában tárolódik, szekvenciálisan,

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

Programozás I gyakorlat

Programozás I gyakorlat Programozás I. - 2. gyakorlat Változók, típusok, bekérés Tar Péter 1 Pannon Egyetem M szaki Informatikai Kar Rendszer - És Számítástudományi Tanszék Utolsó frissítés: September 21, 2009 1 tar@dcs.vein.hu

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