Nagyteljesítményű párhuzamos feldolgozás (3. ea)
|
|
- Fanni Illésné
- 5 évvel ezelőtt
- Látták:
Átírás
1 Nagyteljesítményű párhuzamos feldolgozás (3. ea) Szálak, OpenMP, UPC Szeberényi Imre BME IIT M Ű E G Y E T E M Nagyteljesítményű párhuzamos feldolgozás BME-IIT Sz.I
2 Hol tartunk? Párhuzamos gépek modelljei Flynn-féle modell (osztályozás) Idealizált párhuzamos gép modellje Programozási modellek Közös memóriás Elosztott közös memóriás Üzenetküldéses Párhuzamos gépek osztályai Vektorprocesszoros gépek Szimmetrikus multiprocesszoros (SMP) Masszívan párhuzamos (MPP) Klaszter Nagyteljesítményű párhuzamos feldolgozás BME-IIT Sz.I
3 Eszközök (nyelvek) Eszközeink nem kötődnek konkrét architektúrához, de hatékonyságuk architektúrafüggő lehet. Linda Express PVM MPI Nagyteljesítményű párhuzamos feldolgozás BME-IIT Sz.I
4 Párh algoritmusok készítése Számítási modell (pl. PRAM) Algoritmus működés, hatékonyság Programozási modell Konkrét feldolgozó egység (processz, taszk, szál, processzor, mag) Szisztematikus programozási módszerek (pl. PACM) Programozási minták Nagyteljesítményű párhuzamos feldolgozás BME-IIT Sz.I
5 Programozási minták Single Program Multiple Data (SPMD) gyakori módszer Master-Worker (master-slave) hibatűrés, terh. Kiegyenéítés kézenfekvő Pipeline egymás után kapcsolt processzáló elemek Divide and Conquer Fork - Join Nagyteljesítményű párhuzamos feldolgozás BME-IIT Sz.I
6 SPMD minta Utasítás szinten SIMD-nek felel meg. Többnyire domain dekompozícióval jön létre. Legtöbb fejlesztőrendszer/környezet/nyelv preferálja. Eddigi példák is SPMD mintára épültek. Nagyteljesítményű párhuzamos feldolgozás BME-IIT Sz.I
7 Szálak A processzek memóriaterületei egymástól teljesen elkülönítettek. A szálak olyan processzek, melyeknek csak a stack területe különül el. Így lényegesen gyorsabban lehet váltani közöttük, valamint könnyebben is kommunikálnak egymással. pthread_create(), pthread_join(), pthread_exit() pthread_mutex_..., pthread_cond_... Nagyteljesítményű párhuzamos feldolgozás BME-IIT Sz.I
8 pthread példa #include <stdio.h> #include <pthread.h> void* do_loop(void *id) { int i, j; float f = 0; char me = *(char *)id; for (i=0; i<10; i++) { } for (j=0; j< ; j++) f++; printf("thread_%c: %d\n", me, i); } pthread_exit(null); thread-et megvalósító függvény thread egyedi adata Nagyteljesítményű párhuzamos feldolgozás BME-IIT Sz.I
9 pthread példa/2 int main(int argc, char* argv[]) { pthread_t thread_a, thread_b; thread leírója char a='a', b='b', c='c'; } pthread_create(&thread_a, NULL, do_loop, &a); pthread_create(&thread_b, NULL, do_loop, &b); do_loop(&c); printf("ide nem jut!\n"); return 0; megvalósító függvény egyedi paraméter Nagyteljesítményű párhuzamos feldolgozás BME-IIT Sz.I
10 mutex: Kölcsönös kizárás pthtread_mutex_init pthtread_ mutex_destroy pthtread_ mutex_lock pthtread_ mutex_trylock pthtread_ mutex_unlock Nagyteljesítményű párhuzamos feldolgozás BME-IIT Sz.I
11 pthread_mutex... pthread_mutex_t mutex_cnt;... pthread_mutex_init(&mutex_cnt, NULL);... pthread_mutex_lock(&mutex_cnt); // kritikus régió pthread_mutex_unlock(&mutex_cnt); Nagyteljesítményű párhuzamos feldolgozás BME-IIT Sz.I
12 condition: Feltétel változó pthtread_ cond_init pthtread_ cond_destroy pthtread_ cond_wait pthtread_ cond_timedwait pthtread_ cond_signal pthtread_ cond_broadcast Nagyteljesítményű párhuzamos feldolgozás BME-IIT Sz.I
13 pthread_cond pthread_mutex_t mutex_cnt; pthread_cond_t cond_cnt; pthread_mutex_init(&mutex_cnt, NULL); pthread_cond_init(&cond_cnt, NULL);... // egyik szál pthread_mutex_lock(&mutex_cnt);... // kritikus régió, várni kell valamire pthread_cond_wait(&cond_cnt, &mutex_cnt);... pthread_mutex_unlock(&mutex_cnt); Nagyteljesítményű párhuzamos feldolgozás BME-IIT Sz.I
14 pthread_cond (2) // másik szál pthread_mutex_lock(&mutex_cnt);... // a várt esemény bekövetkezett pthread_cond_signal(&cond_cnt);... pthread_mutex_unlock(&mutex_cnt);... Nagyteljesítményű párhuzamos feldolgozás BME-IIT Sz.I
15 OpenMP Nyelvi annotáció A programozó a funkcionalitásra koncentrálhat. A párhuzamosítás csak lehetőség. Shared memóriás párhuzamosítás Ipari szabvány openmp.org, computing.llnl.gov/tutorials/openmp Nagyteljesítményű párhuzamos feldolgozás BME-IIT Sz.I
16 FORK JOIN FORK JOIN Végrehajtási modell Master thread Nagyteljesítményű párhuzamos feldolgozás BME-IIT Sz.I
17 Shared memoria modell A szálak változókon keresztül kommunikálnak. A megosztás nyelvi szinten definiált Versenyhelyzet kialakulhat Szinkronizációs eszközök Megosztás minimalizálása Nagyteljesítményű párhuzamos feldolgozás BME-IIT Sz.I
18 Szintaxis #pragma omp construct [clause [clause] ] Egy blokkra vonatkozik (egy belépés, egy kilépés) OpenMP konstrukciók típusai: Parallel regions Work sharing Data Environment Synchronization Runtime functions/environment variables Nagyteljesítményű párhuzamos feldolgozás BME-IIT Sz.I
19 Parallel regions #pragma omp parallel [clause...] newline structured_block if (scalar_expression) private (list) shared (list) default (shared none) firstprivate (list) reduction (operator: list) copyin (list) num_threads (integer-expression) Nagyteljesítményű párhuzamos feldolgozás BME-IIT Sz.I
20 Parallel regions példa double D[1000] = { 1, 2, 3, 4 }; #pragma omp parallel shared { private int i; double sum = 0; for (i=0; i<1000; i++) sum += D[i]; printf( Thread %d computes %f\n, omp_get_thread_num(), sum); } // annyi példányban fut, ahány thread van. Nagyteljesítményű párhuzamos feldolgozás BME-IIT Sz.I
21 Work sharing Nagyteljesítményű párhuzamos feldolgozás BME-IIT Sz.I
22 WS: sections #pragma omp sections [clause...] newline { #pragma omp section newline structured_block #pragma omp section newline structured_block } private (list) firstprivate (list) lastpivate (list) reduction (operator: list) nowait Nagyteljesítményű párhuzamos feldolgozás BME-IIT Sz.I
23 Sections példa #pragma omp sections { #pragma omp section a = computation_1(); #pragma omp section b = computation_2(); } c = a + b; Hosszú futási idejű valami Nagyteljesítményű párhuzamos feldolgozás BME-IIT Sz.I
24 WS: single #pragma omp single [clause...] newline structured_block private (list) firstprivate (list) nowait Nagyteljesítményű párhuzamos feldolgozás BME-IIT Sz.I
25 Ciklus kézi párhuzamosítás for (int i=0; i<n; i++) { a[i]=b[i]+c[i]; } #pragma omp parallel { int id = omp_get_thread_num(); int nthr = omp_get_num_threads(); int istart = id*n/nthr, iend = (id+1)*n/nthr; for (int i=istart; i<iend; i++) { a[i]=b[i]+c[i]; } } Nagyteljesítményű párhuzamos feldolgozás BME-IIT Sz.I
26 Automatikus párhuzamosítás #pragma omp parallel #pragma omp for schedule(static) { for (int i=0; i<n; i++) { a[i]=b[i]+c[i]; } } Csak egyszerű for ciklus lehet: 1 db int ciklusváltozó, cmp. op: <, >, <=, > Növelés/csökkentés: ++, --, értékadó op. Ciklusfüggetlen init, last, növelés Nagyteljesítményű párhuzamos feldolgozás BME-IIT Sz.I
27 WS: for #pragma omp for [clause...] newline for_loop Schedule (type [,chunk) ordered private (list) firstprivate (list) lastprivate (list) shared (list) reduction (operator: list) collapse nowait Nagyteljesítményű párhuzamos feldolgozás BME-IIT Sz.I
28 Párhuzamos for problémái Load balancing Egyes részek futási ideje lehet, hogy nem azonos A futási idők eltérése csak ritkán becsülhetők előre Dinamikus szétosztás kellene Granualitás A szálak létrehozása, szinkronizálása akkor is idő, ha ezt eldugja a fordító. Nagyteljesítményű párhuzamos feldolgozás BME-IIT Sz.I
29 Ütemezés schedule(static [, chunksize]) Statikus kiosztás Default: azonos darabok Round-robin (több darab, mint thread esetén) schedule(dynamic [, chunksize]) Dinamikus kiosztás Default chunksize = 1 schedule(guided [, chunksize]) Dinamikus, exponenciálisan csökken Nagyteljesítményű párhuzamos feldolgozás BME-IIT Sz.I
30 Granularitás #pragma omp parallel if (expression) Párhuzamosítás a feltétellel vezérelhető #pragma omp num_threads (expression) A szálak száma módosítható Nagyteljesítményű párhuzamos feldolgozás BME-IIT Sz.I
31 Data Environment Osztott változók - globális változók int sum = 0; #pragma omp parallel for for (int i=0; i<n; i++) sum += i; Privát Párh. blokk auto változói Függvények auto változói Explicit privát deklaráció esetén Nagyteljesítményű párhuzamos feldolgozás BME-IIT Sz.I
32 Tárolási attribútumok megadása private: Privát példány keletkezik, de nem másolódik le az eredeti adat Ugyanaz, mintha {} között lenne firstprivate: Kezdő érték lemásolódik lastprivate: Legutolsó érték visszamásolódik threadprivate: Perzisztens a párh. részek között (globális) Nagyteljesítményű párhuzamos feldolgozás BME-IIT Sz.I
33 Tárolási attribútumok pl. int i; #pragma omp parallel for private(i) for (i=0; i<n; i++) { } int idx=1; int x = 10; #pragma omp parallel for #pragma omp firsprivate(x) lastprivate(idx) for (i=0; i<n; i++) { if (data[i]==x) idx = i; } Nagyteljesítményű párhuzamos feldolgozás BME-IIT Sz.I
34 Tárolási attribútumok pl./2 int data[100]; #pragma omp threadprivate(data) #pragma omp parallel for copyin(data) for (int i=0; i<n; i++) data[i]++; Nagyteljesítményű párhuzamos feldolgozás BME-IIT Sz.I
35 Csak skalár Redukció int sum = 0; #pragma omp parallel for reduction(+: sum) for (int i =0; i<n; j++) sum = sum+a[i]*b[i]; Másolat készül, a végén elvégzi a műveletet x op expr x++, ++x, x--, --x, op nem lehet túlterhelt Nagyteljesítményű párhuzamos feldolgozás BME-IIT Sz.I
36 Szinkronizációs mechanizmusok Single/Master execution #pragma omp single #pragma omp master Critical sections, Atomic updates #pragma omp critical [name] #pragma omp atomic update_statement Csak skalár, a redukciónál megismert formában. Nagyteljesítményű párhuzamos feldolgozás BME-IIT Sz.I
37 Ordered Szinkronizációs mech./2 #pragma omp ordered int vec[100]; #pragma omp parallel for ordered for (int i=0; i<100; i++) { vec[i] = 2 * vec[i]; #pragma omp ordered printf( vec[i] = %d\n, vec[i]); } Nagyteljesítményű párhuzamos feldolgozás BME-IIT Sz.I
38 Barriers Szinkronizációs mech./3 #pragma omp barrier Nowait #pragma omp sections nowait Flush #pragma omp flush (list) Reduction Nagyteljesítményű párhuzamos feldolgozás BME-IIT Sz.I
39 Direktívák összefoglalása Nagyteljesítményű párhuzamos feldolgozás BME-IIT Sz.I
40 Kontroll funkciók omp_set_dynamic(int)/ omp_get_dynamic() omp_set_num_threads(int)/ omp_get_num_threads() OMP_NUM_THREADS env. omp_get_num_procs() omp_get_thread_num() omp_set_nested(int)/omp_get_nested() omp_in_parallel() omp_get_wtime() omp_init_lock(), omp_destroy_lock(), omp_set_lock(), omp_unset_lock(), omp_test_lock() Nagyteljesítményű párhuzamos feldolgozás BME-IIT Sz.I
41 Unified Parallel C (UPC) C99 kiterjesztése Közös memóriás modell, ami képes figyelembe venni a NUMA tulajdonságokat. Gyökerei 1999-re vezethetők vissza. Szupergépeken előszeretettel támogatják. upc-lang.org, upc.lbl.gov, upc.gwu.edu/tutorials/upc-sc05.pdf Nagyteljesítményű párhuzamos feldolgozás BME-IIT Sz.I
42 UPC fontosabb jellemzői Explicit párhuzamos végrehajtási modell Teljesen független szálak (thread!= OS thread) Minden szálon függetlenül teljesül a C specifikáció (sok main). Particionált globális címtér (PGAS) megosztott (shared) adat, privát adat Skalár mindig p0-ban, tömb szétosztva Szinkronizációs primitívek Runtime könyvtár scatter,gathetr, reductions, exchange,.. Nagyteljesítményű párhuzamos feldolgozás BME-IIT Sz.I
43 UPC kulcsszavak MYTHREAD, THREADS shared, realaxed, strict, upc_barrier, upc_notify, upc_wait upc_forall, upc_blokcsizeof, upc_elementsizeof, upc_localsizeof, UPC_MAXB_LOCK_SIZE upc_fence, Nagyteljesítményű párhuzamos feldolgozás BME-IIT Sz.I
44 Memória modellek Process/Thread Címtér Message Passing Shared Memory PGAS MPI OpenMP UPC Nagyteljesítményű párhuzamos feldolgozás BME-IIT Sz.I
45 Particionált globális címtér A shared tömb változók elemei elosztottan helyezkednek el a memóriában valamelyik szálhoz rendelten (affinitás). A szálhoz közelebb levő adaton hatékonyabban dolgozhat egy-egy algoritmus. shared int a[100]; // ciklikusan eloszlik upc_forall(int i = 0; i < 100; i++; &a[i]) // az adott ciklus csak ott fut, ahol az adat van Nagyteljesítményű párhuzamos feldolgozás BME-IIT Sz.I
46 Affinitás és blokkméret shared [block-size] type array[n]; affinity = (i/block-size)%threads shared [3] int A[4][THREADS]; Thf: THREADS = 4 Thread 0 Thread 1 Thread 2 Thread 3 A[0][0] A[0][3] A[1][2] A[2][1] A[0][1] A[1][0] A[1][3] A[2][2] A[0][2] A[1][1] A[2][0] A[2][3] A[3][0] A[3][1] A[3][2] A[3][3] Nagyteljesítményű párhuzamos feldolgozás BME-IIT Sz.I
47 PI példa shared long hits[threads]; // számlálók. upc_forall (i=0; i < my_trials; i++; continue) hits[mythread] += isinside(); upc_barrier; // bevár minden szálat if (MYTHREAD == 0) // összegzés for (i = 1; i < THREADS; i++) hits[0] += hits[i]; Nagyteljesítményű párhuzamos feldolgozás BME-IIT Sz.I
48 Mintapéldák para.iit.bem.hu/~szebi/para/openmp para.iit.bem.hu/~szebi/para/upc #Az upc fordító eléréséhez belépés után: module load upc Nagyteljesítményű párhuzamos feldolgozás BME-IIT Sz.I
Párhuzamos és Grid rendszerek
Párhuzamos és Grid rendszerek (7. ea) szálak, openmp Szeberényi Imre BME IIT M Ű E G Y E T E M 1 7 8 2 Párhuzamos és Grid rendszerek BME-IIT Sz.I. 2013.03.25. - 1 - Áttekintés Eddig
RészletesebbenPárhuzamos és Grid rendszerek. Áttekintés. Szálak. Eddig általános eszközöket láttunk, melyek
Párhuzamos és Grid rendszerek (7. ea) szálak, openmp Szeberényi Imre BME IIT M Ű E G Y E T E M 1 7 8 2 Párhuzamos és Grid rendszerek BME-IIT Sz.I. 2013.03.25. - 1 - Áttekintés Eddig
RészletesebbenSzálak. Grid és OO labor (1. labor) Párhuzamos programozás szálakkal OpenMP, UPC. pthread példa/2. pthread példa. pthread_mutex.
Grid és OO labor (1. labor) Párhuzamos programozás szálakkal OpenMP, UPC Szeberényi Imre BME IIT M Ű E G Y E T E M 1 7 8 2 2014.10.28. - 1 - Szálak A processzek memóriaterületei egymástól
RészletesebbenBevezetés a párhuzamos programozási koncepciókba
Bevezetés a párhuzamos programozási koncepciókba Kacsuk Péter és Dózsa Gábor MTA SZTAKI Párhuzamos és Elosztott Rendszerek Laboratórium E-mail: kacsuk@sztaki.hu Web: www.lpds.sztaki.hu Programozási modellek
RészletesebbenPárhuzamos és Grid rendszerek
Párhuzamos és Grid rendszerek (10. ea) GPGPU Szeberényi Imre BME IIT Az ábrák egy része az NVIDIA oktató anyagaiból és dokumentációiból származik. Párhuzamos és Grid rendszerek BME-IIT
RészletesebbenProgramozá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észletesebbenPárhuzamos programozási platformok
Párhuzamos programozási platformok Parallel számítógép részei Hardver Több processzor Több memória Kapcsolatot biztosító hálózat Rendszer szoftver Párhuzamos operációs rendszer Konkurenciát biztosító programozási
RészletesebbenPárhuzamos és Grid rendszerek
Párhuzamos és Grid rendszerek (1. ea) alapfogalmak Szeberényi Imre BME IIT M Ű E G Y E T E M 1 7 8 2 Párhuzamos és Grid rendszerek BME-IIT Sz.I. 2012.02.06. - 1 - Parallel programozás
RészletesebbenMit 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észletesebbenPárhuzamos programozási platformok
Párhuzamos programozási platformok Parallel számítógép részei Hardver Több processzor Több memória Kapcsolatot biztosító hálózat Rendszer szoftver Párhuzamos operációs rendszer Konkurenciát biztosító programozási
RészletesebbenPárhuzamos és Grid rendszerek. Parallel programozás áttekintése. Történelmi áttekintés
Párhuzamos és Grid rendszerek (1. ea) alapfogalmak Szeberényi Imre ME IIT M Ű E G Y E T E M 1 7 8 2 Párhuzamos és Grid rendszerek ME-IIT Sz.I. 2012.02.06. - 1 - Parallel programozás
RészletesebbenProgramozás C nyelven FELÜLNÉZETBŐL elhullatott MORZSÁK. Sapientia EMTE
Programozás C nyelven FELÜLNÉZETBŐL elhullatott MORZSÁK Sapientia EMTE 2015-16 1 Felülnézet 1 Feltételes fordítás #if, #else, #elif, #endif, #ifdef, #ifndef stb. Felülnézet 2 #include: hatására a preprocesszor
RészletesebbenPárhuzamos és Grid rendszerek
Párhuzamos és Grid rendszerek (2. ea) párhuzamos algoritmusok tervezése Szeberényi Imre BME IIT Az ábrák egy része Ian Foster: Designing and Building Parallel Programs (Addison-Wesley)
RészletesebbenFü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észletesebbenProgramozá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észletesebbenProgramozá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észletesebbenPénzügyi algoritmusok
Pénzügyi algoritmusok A C++ programozás alapjai Tömbök (3. rész) Konstansok Kivételkezelés Tömbök 3. Többdimenziós tömbök Többdimenziós tömbök int a; Többdimenziós tömbök int a[5]; Többdimenziós tömbök
RészletesebbenC 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észletesebbenMemóriagazdálkodás. Kódgenerálás. Kódoptimalizálás
Kódgenerálás Memóriagazdálkodás Kódgenerálás program prológus és epilógus értékadások fordítása kifejezések fordítása vezérlési szerkezetek fordítása Kódoptimalizálás L ATG E > TE' E' > + @StPushAX T @StPopBX
RészletesebbenA C programozási nyelv V. Struktúra Dinamikus memóriakezelés
A C programozási nyelv V. Struktúra Dinamikus memóriakezelés Miskolci Egyetem Általános Informatikai Tanszék A C programozási nyelv V. (Struktúra, memóriakezelés) CBEV5 / 1 A struktúra deklarációja 1.
RészletesebbenJárműfedélzeti rendszerek II. 3. előadás Dr. Bécsi Tamás
Járműfedélzeti rendszerek II. 3. előadás Dr. Bécsi Tamás 5.3. Mutatók,tömbök A mutató vagy pointer olyan változó, amely egy másik változó címét tartalmazza. A C nyelvű programokban gyakran használják a
RészletesebbenPénzügyi algoritmusok
Pénzügyi algoritmusok A C++ programozás alapjai Az Integrált Fejlesztői Környezet C++ alapok Az Integrált Fejlesztői Környezet Visual Studio 2013 Community Edition Kitekintés: fordítás Preprocesszor Fordító
RészletesebbenProgramozá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észletesebbenProcesszusok (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észletesebbenté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észletesebbenProgramozá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észletesebbenProgramozá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észletesebbenProgramozá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észletesebbenProgramozá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észletesebbenProgramozás C- és Matlab nyelven C programozás kurzus BMEKOKAM603 Függvények. Dr. Bécsi Tamás 6. Előadás
Programozás C- és Matlab nyelven C programozás kurzus BMEKOKAM603 Függvények Dr. Bécsi Tamás 6. Előadás Bevezetés Egy idő után az egyetlen main(){ függvénnyel megírt programunk túl nagy méretű lesz. Vannak
Részletesebbenmain int main(int argc, char* argv[]) { return 0; } main return 0; (int argc, char* argv[]) main int int int main main main
main int main(int argc, char* argv[]) { return 0; main main int int main int return 0; main (int argc, char* argv[]) main #include #include int main(int argc, char* argv[]) { double
RészletesebbenPárhuzamos és Grid rendszerek
Párhuzamos és Grid rendszerek (14. ea) Összefoglalás Szeberényi Imre BME IIT M Ű E G Y ET E M 1 7 8 2 Párhuzamos és Grid rendszerek BME-IIT Sz.I. 2013.05.06. - 1 - Összefogalás Párhuzamos
RészletesebbenÖsszefogalás. Párhuzamos és Grid rendszerek. Párhuzamos gépek osztályai. Jellemző szupersz.gép típusok. Flynn-féle architektúra modell
Összefogalás (14. ea) Összefoglalás Szeberényi Imre BME IIT M Ű E G Y ET E M 1 7 8 2 BME-IIT Sz.I. 2013.05.06. - 1 - Párhuzamos architektúrák Párhuzamos programok modellezése Párh. prog.
RészletesebbenPárhuzamos és Grid rendszerek. Összefogalás. Jellemző szupersz.gép típusok. Párhuzamos architektúrák. Párh. prog. fejlesztési módszerek
Párhuzamos és Grid rendszerek (14. ea) Összefoglalás Szeberényi Imre BME IIT M Ű E G Y ET E M 1 7 8 2 Párhuzamos és Grid rendszerek BME-IIT Sz.I. 2013.05.06. - 1 - Összefogalás Párhuzamos
RészletesebbenFüggvény pointer. Feladat: Egy tömbben soroljunk fel függvényeket, és hívjuk meg valahányszor.
Függvény pointer Több feladat közül futási időben döntöm el, hogy melyiket hajtom végre. A függvényre mutató pointer a függvény kódjának a címére mutat, azon keresztül meghívhatom a függvényt. A pointernek
RészletesebbenAz MTA Cloud a tudományos alkalmazások támogatására. Kacsuk Péter MTA SZTAKI
Az MTA Cloud a tudományos alkalmazások támogatására Kacsuk Péter MTA SZTAKI Kacsuk.Peter@sztaki.mta.hu Tudományos alkalmazások és skálázhatóság Kétféle skálázhatóság: o Vertikális: dinamikusan változik
RészletesebbenProcesszusok (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észletesebbenProgramozási nyelvek Java
statikus programszerkezet Programozási nyelvek Java Kozsik Tamás előadása alapján Készítette: Nagy Krisztián 2. előadás csomag könyvtárak könyvtárak forrásfájlok bájtkódok (.java) (.class) primitív osztály
RészletesebbenAlprogramok, paraméterátadás
ELTE Informatikai Kar, Programozási Nyelvek és Fordítóprogramok Tanszék October 24, 2016 Programozási nyelvek Alprogramok Függvények, eljárások Metódusok Korutinok stb. Alprogramok Alprogram: olyan nyelvi
RészletesebbenParallel programozás áttekintése. Párhuzamos és Grid rendszerek. Történelmi áttekintés. Jellemző szupersz.gép típusok. Flynn-féle architektúra modell
Páruzamos és Grid rendszerek (. ea) alapfogalmak Szeberényi Imre ME IIT M Ű E G Y E T E M 7 8 2 Páruzamos és Grid rendszerek ME-IIT Sz.I. 202.02.06. - - Parallel programozás áttekintése
RészletesebbenMagas szintű optimalizálás
Magas szintű optimalizálás Soros kód párhuzamosítása Mennyi a várható teljesítmény növekedés? Erős skálázódás (Amdahl törvény) Mennyire lineáris a skálázódás a párhuzamosítás növelésével? S 1 P 1 P N GPGPU
Részletesebben1.1. A forrásprogramok felépítése Nevek és kulcsszavak Alapvető típusok. C programozás 3
Darvay Zsolt Típusok és nevek a forráskódban Állandók és változók Hatókörök és az előfeldolgozó Bevitel és kivitel Kifejezések Utasítások Mutatók Függvények Struktúrák és típusok Állománykezelés C programozás
RészletesebbenProgramozá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észletesebben9. MPI
9. MPI kertesz.gabor@nik.uni-obuda.hu MPI Message Passing Interface Elosztott memóriájú párhuzamos programozási API Gyk. folyamatok közötti kommunikáció de facto ipari standard Több száz előre definiált
RészletesebbenMutató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észletesebbenProgramozási nyelvek Java
Programozási nyelvek Java Kozsik Tamás előadása alapján Készítette: Nagy Krisztián 9. előadás Interface - típust vezet be, de osztálypéldány nem készíthető belőle (statikus típust ad) - több osztály is
Részletesebben1. Egyszerű (primitív) típusok. 2. Referencia típusok
II. A Java nyelv eszközei 1. Milyen eszközöket nyújt a Java a programozóknak Korábban már említettük, hogy a Java a C nyelvből alakult ki, ezért a C, C++ nyelvben járatos programozóknak nem fog nehézséget
RészletesebbenA 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észletesebbenBevezeté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észletesebbenProgramozás alapjai II. (7. ea) C++ Speciális adatszerkezetek. Tömbök. Kiegészítő anyag: speciális adatszerkezetek
Programozás alapjai II. (7. ea) C++ Kiegészítő anyag: speciális adatszerkezetek Szeberényi Imre BME IIT M Ű E G Y E T E M 1 7 8 2 C++ programozási nyelv BME-IIT Sz.I. 2016.04.05. - 1
RészletesebbenInformatika terméktervezőknek
Informatika terméktervezőknek C# alapok Névterület (namespace) using Osztály (class) és Obejtumok Metódus (function, procedure, method) main() static void string[] arg Szintaxis // /* */ \n \t Névadások
RészletesebbenSpeciális adatszerkezetek. Programozás alapjai II. (8. ea) C++ Tömbök. Tömbök/2. N dimenziós tömb. Nagyméretű ritka tömbök
Programozás alapjai II. (8. ea) C++ Kiegészítő anyag: speciális adatszerkezetek Szeberényi Imre BME IIT Speciális adatszerkezetek A helyes adatábrázolás választása, a helyes adatszerkezet
RészletesebbenSzenzorhálózatok programfejlesztési kérdései. Orosz György
Szenzorhálózatok programfejlesztési kérdései Orosz György 2011. 09. 30. Szoftverfejlesztési alternatívák Erőforráskorlátok! (CPU, MEM, Energia) PC-től eltérő felfogás: HW közeli programozás Eszközök közvetlen
RészletesebbenJava és web programozás
Budapesti Műszaki Egyetem 2015. 02. 11. 2. Előadás Mese Néhány programozási módszer: Idők kezdetén való programozás Struktúrált Moduláris Funkcionális Objektum-orientált... Mese Néhány programozási módszer:
RészletesebbenOperációs rendszerek. Az Executive és a kernel Policy és mechanizmusok szeparálása Executive: policy - objektum kezelés Kernel: mechanizmusok:
Operációs rendszerek MS Windows NT (2000) folyamatok Az Executive és a kernel Policy és mechanizmusok szeparálása Executive: policy - objektum kezelés Kernel: mechanizmusok: szálak ütemezése végrehajtásra
RészletesebbenVezérlési szerkezetek
Vezérlési szerkezetek Szelekciós ok: if, else, switch If Segítségével valamely ok végrehajtását valamely feltétel teljesülése esetén végezzük el. Az if segítségével valamely tevékenység () végrehajtását
RészletesebbenProgramozá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észletesebbenPárhuzamos programok futásának kiértékelése Scalasca profiler segítségével
Párhuzamos programok futásának kiértékelése segítségével 2014. Április 24. Pécs, Networkshop 2014 Rőczei Gábor roczei@niif.hu Főbb témák Miért használjunk szuperszámítógépet?! Alapfogalmak Miért van szükség
RészletesebbenGrafikus kártyák, mint olcsó szuperszámítógépek - I.
(1) Grafikus kártyák, mint olcsó szuperszámítógépek - I. tanuló szeminárium Jurek Zoltán, Tóth Gyula SZFKI, Röntgendiffrakciós csoport (2) Vázlat I. Motiváció Beüzemelés C alapok CUDA programozási modell,
RészletesebbenC 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észletesebbenProgramozá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észletesebbenKészítette: Trosztel Mátyás Konzulens: Hajós Gergely
Készítette: Trosztel Mátyás Konzulens: Hajós Gergely Monte Carlo Markov Chain MCMC során egy megfelelően konstruált Markov-lánc segítségével mintákat generálunk. Ezek eloszlása követi a céleloszlást. A
RészletesebbenC 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észletesebbenProgramozá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észletesebbenOOP #14 (referencia-elv)
OOP #14 (referencia-elv) v1.0 2003.03.19. 21:22: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_14-1 - E jegyzet
RészletesebbenJava 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észletesebbenBevezetés a programozásba I 10. gyakorlat. C++: alprogramok deklarációja és paraméterátadása
Pázmány Péter Katolikus Egyetem Információs Technológiai Kar Bevezetés a programozásba I 10. gyakorlat C++: alprogramok deklarációja és paraméterátadása 2011.11.22. Giachetta Roberto groberto@inf.elte.hu
RészletesebbenOpenCL - The open standard for parallel programming of heterogeneous systems
OpenCL - The open standard for parallel programming of heterogeneous systems GPU-k általános számításokhoz GPU Graphics Processing Unit Képalkotás: sok, általában egyszerű és független művelet < 2006:
RészletesebbenFü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észletesebbenLive free() or die() Az openmosix cluster szoftver
Live free() or die() Az openmosix cluster szoftver Erdei Csaba FSF.hu Fürtök típusai Magas rendelkezésre állást biztosító (HA high availability) Terheléselosztó (Load balancing) Tudományos technikai célú
RészletesebbenDinamikus csatolású függvénykönyvtár készítése és használata Plugin-szerű betöltés Egyszeű C++ osztályok készítése
FEJLETT PROGRAMOZÁSI NYELVEK, 2009 2. GYAKORLAT - Linux alatti C/C++ programozás Cél: Dinamikus csatolású függvénykönyvtár készítése és használata Plugin-szerű betöltés Egyszeű C++ osztályok készítése
RészletesebbenProgramozás alapjai 9.Gy: Struktúra 2.
Programozás alapjai 9.Gy: Struktúra 2. Ördögi részletek P R O A L A G 35/1 B ITv: MAN 2018.11.10 Euró árfolyam statisztika Az EURO árfolyamát egy negyedéven keresztül hetente nyilvántartjuk (HUF / EUR).
RészletesebbenPHP alapjai, bevezetés. Vincze Dávid Miskolci Egyetem, IIT
alapjai, bevezetés Vincze Dávid Miskolci Egyetem, IIT vincze.david@iit.uni-miskolc.hu PHP Personal Home Page (Tools) Script nyelv -> interpretált Elsősorban weboldal (dinamikus) tartalmak előállítására
RészletesebbenJava-ról Kotlinra. Ekler Péter AutSoft BME AUT. AutSoft
Java-ról Kotlinra Ekler Péter peter.ekler@aut.bme.hu BME AUT Tartalom Java és Kotlin kapcsolata Hogyan próbálhatjuk ki? Kotlin kultúra kialakítása cégen belül Milyen a Kotlin a Java-hoz képest? Történet
RészletesebbenA 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észletesebbenegy szisztolikus példa
Automatikus párhuzamosítás egy szisztolikus példa Áttekintés Bevezetés Példa konkrét szisztolikus algoritmus Automatikus párhuzamosítási módszer ötlet Áttekintés Bevezetés Példa konkrét szisztolikus algoritmus
RészletesebbenC++ programozási nyelv Konstruktorok-destruktorok
C++ programozási nyelv Konstruktorok-destruktorok 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/20 Tartalomjegyzék
RészletesebbenA szemantikus elemzés helye. A szemantikus elemzés feladatai. A szemantikus elemzés feladatai. Deklarációk és láthatósági szabályok
A szemantikus elemzés helye Forrásprogram Forrás-kezelő (source handler) Lexikális elemző (scanner) A szemantikus elemzés feladatai Fordítóprogramok előadás (A, C, T szakirány) Szintaktikus elemző (parser)
RészletesebbenProgramozá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észletesebbenProgramozás alapjai. (GKxB_INTM023) Dr. Hatwágner F. Miklós augusztus 29. Széchenyi István Egyetem, Gy r
Programozás alapjai (GKxB_INTM023) Széchenyi István Egyetem, Gy r 2019. augusztus 29. Feladat: írjuk ki az els 10 természetes szám négyzetét! #i n c l u d e i n t main ( v o i d ) { p r
RészletesebbenMutatók és mutató-aritmetika C-ben március 19.
Mutatók és mutató-aritmetika C-ben 2018 március 19 Memória a Neumann-architektúrában Neumann-architektúra: a memória egységes a címzéshez a természetes számokat használjuk Ugyanabban a memóriában van:
Részletesebben1. Bevezetés szeptember 9. BME Fizika Intézet. Szám. szim. labor ea. Tőke Csaba. Tudnivalók. feladat. Tematika. Moodle Házi feladatok
Számítógépes szimulációk 1. Bevezetés BME Fizika Intézet 2015. szeptember 9. Bevezetés A félév menete C-ismétlés, 1. rész Oktatók: Nagyfalusi Balázs: nagyfalusi@phy.bme.hu, F3 211. : tcsaba@eik.bme.hu,
RészletesebbenJava. Perzisztencia. ANTAL Margit. Java Persistence API. Object Relational Mapping. Perzisztencia. Entity components. ANTAL Margit.
Sapientia - EMTE 2008 Az előadás célja JPA - - perzisztencia ORM - - Objektumrelációs leképzés - Entitásbabok Állandóság Mechanizmus amely során az alkalmazás adatai megőrzésre kerülnek valamely perzisztens
RészletesebbenBevezetés a programozásba. 8. Előadás: Függvények 2.
Bevezetés a programozásba 8. Előadás: Függvények 2. ISMÉTLÉS Helló #include using namespace std; int main() cout
RészletesebbenProgramozá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észletesebbenSAT probléma kielégíthetőségének vizsgálata. masszív parallel. mesterséges neurális hálózat alkalmazásával
SAT probléma kielégíthetőségének vizsgálata masszív parallel mesterséges neurális hálózat alkalmazásával Tajti Tibor, Bíró Csaba, Kusper Gábor {gkusper, birocs, tajti}@aries.ektf.hu Eszterházy Károly Főiskola
RészletesebbenKonkurens TCP Szerver
A gyakorlat célja: Konkurens TCP Szerver Megismerkedni a párhuzamos programozás és a konkurens TCP szerver készítésének az elméleti és gyakorlati alapjaival és egy egyidejűleg több klienst is kiszolgáló
RészletesebbenMintavételes szabályozás mikrovezérlő segítségével
Automatizálási Tanszék Mintavételes szabályozás mikrovezérlő segítségével Budai Tamás budai.tamas@sze.hu http://maxwell.sze.hu/~budait Tartalom Mikrovezérlőkről röviden Programozási alapismeretek ismétlés
RészletesebbenKereső algoritmusok a diszkrét optimalizálás problémájához
Kereső algoritmusok a diszkrét optimalizálás problémájához A. Grama, A. Gupta, G. Karypis és V. Kumar: Introduction to Parallel Computing, Addison Wesley, 2003. könyv anyaga alapján A kereső eljárások
RészletesebbenKivé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észletesebbenRekurzió. 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észletesebbenLabView Academy. 4. óra párhuzamos programozás
LabView Academy 4. óra párhuzamos programozás Ellenőrző kérdések Hogyan lehet letiltani az automatikus hibakezelés funkciót? a) Engedélyezzük az Execution highlighting ot b) A subvi error out cluster-jét
RészletesebbenOperációs rendszerek. Az NT folyamatok kezelése
Operációs rendszerek Az NT folyamatok kezelése Folyamatok logikai felépítése A folyamat modell: egy adott program kódját végrehajtó szál(ak)ból és, a szál(ak) által lefoglalt erőforrásokból állnak. Folyamatok
RészletesebbenProgramozá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észletesebben7. 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észletesebbenOperációs rendszerek III.
A WINDOWS NT memóriakezelése Az NT memóriakezelése Memóriakezelő feladatai: Logikai-fizikai címtranszformáció: A folyamatok virtuális címterének címeit megfelelteti fizikai címeknek. A virtuális memóriakezelés
RészletesebbenSzö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észletesebbenMechatronika és mikroszámítógépek 2017/2018 I. félév. Bevezetés a C nyelvbe
Mechatronika és mikroszámítógépek 2017/2018 I. félév Bevezetés a C nyelvbe A C programozási nyelv A C egy általános célú programozási nyelv, melyet Dennis Ritchie fejlesztett ki Ken Thompson segítségével
Részletesebben5. 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észletesebbenProgramozás I gyakorlat. 10. Stringek, mutatók
Programozás I gyakorlat 10. Stringek, mutatók Karakter típus A char típusú változókat karakerként is kiírhatjuk: #include char c = 'A'; printf("%c\n", c); c = 80; printf("%c\n", c); printf("%c\n",
Részletesebben