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

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

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

Átírás

1 2012. április 10. A PROGAMOZÁS ALAPJAI 1 Vitéz András egyetemi adjunktus BME Híradástechnikai Tanszék vitez@hit.bme.hu Miről lesz ma szó? alaki szabályok használata - mintapélda használata - mintapélda Bitmezők tipikus felhasználása Változók tárolása Tárolási osztályok Függvény lokális változói Változók élettartama Változók láthatósága. program modulok tesztelés hibalehetőségek hibakezelés, const és assert használata dokumentáció megjegyzések Függvény paramétere függvény is lehet. Láttuk, hogy ilyenkor a függvényre mutató mutatót adunk át. Formális paraméterként a függvény fejlécét kell megadni. Aktuális paraméterként csak a függvény azonosítóját kell megadni (zárójelek nélkül!). Hivatkozni rá a formális paraméter zárójeles alakjával tudunk. Legyen egy típusunk síkbeli pontok ábrázolására! Két ilyen pont alkosson egy szakaszt! Írjunk függvényt annak a pontnak a meghatározására, amely a szakaszt adott arányban osztja! oszt() A függvénynek legyen paramétere egy függvény, amely két érték közötti interpolációt számol! arany() Az osztópont koordinátáit ennek segítségével számítsuk ki! typedef struct{double x,y;pont; double arany(double also,double felso,double c) {return also+c*(felso-also); pont oszt(pont p1,pont p2,double r, double f(double,double,double)){ pont p; p.x=f(p1.x,p2.x,r); p.y=f(p1.y,p2.y,r); return p; int main(){ pont q1,q2,q3;... q3=oszt(q1,q2,0.4,arany);... Függvény paramétere függvény is lehet. Láttuk, hogy ilyenkor a függvényre mutató mutatót adunk át. Formális paraméterként a függvény fejlécét kell megadni. Aktuális paraméterként csak a függvény azonosítóját kell megadni (zárójelek nélkül!). Hivatkozni rá a formális paraméter zárójeles alakjával tudunk. 1

2 typedef struct{double x,y;pont; double arany(double also,double felso,double c) {return also+c*(felso-also); pont oszt(pont p1,pont p2,double r, double f(double,double,double)){ pont p; p.x=f(p1.x,p2.x,r); p.y=f(p1.y,p2.y,r); return p; int main(){ pont q1,q2,q3;... q3=oszt(q1,q2,0.4,arany);... Függvény paramétere függvény is lehet. Láttuk, hogy ilyenkor a függvényre mutató mutatót adunk át. Formális paraméterként a függvény fejlécét kell megadni. Aktuális paraméterként csak a függvény azonosítóját kell megadni (zárójelek nélkül!). Hivatkozni rá a formális paraméter zárójeles alakjával tudunk. typedef struct{double x,y;pont; double arany(double also,double felso,double c) {return also+c*(felso-also); pont oszt(pont p1,pont p2,double r, double f(double,double,double)){ pont p; p.x=f(p1.x,p2.x,r); p.y=f(p1.y,p2.y,r); return p; int main(){ pont q1,q2,q3;... q3=oszt(q1,q2,0.4,arany);... Függvény paramétere függvény is lehet. Láttuk, hogy ilyenkor a függvényre mutató mutatót adunk át. Formális paraméterként a függvény fejlécét kell megadni. Aktuális paraméterként csak a függvény azonosítóját kell megadni (zárójelek nélkül!). Hivatkozni rá a formális paraméter zárójeles alakjával tudunk. typedef struct{double x,y;pont; double arany(double also,double felso,double c) {return also+c*(felso-also); pont oszt(pont p1,pont p2,double r, double f(double,double,double)){ pont p; p.x=f(p1.x,p2.x,r); p.y=f(p1.y,p2.y,r); return p; int main(){ pont q1,q2,q3;... q3=oszt(q1,q2,0.4,arany);... Megkülönböztetett egyesítés (diszjunkt unió) logikailag azonos értelemben használt akár különböző típusú adatokból álló egyszerű adattípus 2

3 Deklarációja: Ha tejet vásárolunk, a zsírtartalom, ha kenyeret, a gabona fajtája jellemzi. Alakilag megegyezik a struktúráéval, csak struct helyett union kulcsszó kell. typedef enum {arpa,buza,rozs,zab gabona; typedef enum {vizes,tejes,sos,sajtos iz; union etel { gabona kenyer; float tej; iz kifli; e1,*ep; Tagok elérése: Alakilag megegyezik a struktúra tagokéval. e1.tej = 3.6; Belső ábrázolása: A tárolás helyigényét a leghosszabb változat határozza meg. 9.c AAAA Balogh Buda Kiss Döme Rák Emil ZZZZ felelet 3 röpdolgozat 2 témazáró 5 témazáró 4 felelet 4 röpdolgozat 5 röpdolgozat 4 3

4 9.c 9.c AAAA Balogh Buda Kiss Döme Rák Emil ZZZZ AAAA Balogh Buda Kiss Döme Rák Emil ZZZZ felelet 3 röpdolgozat 2 témazáró 5 felelet 3 röpdolgozat 2 témazáró 5 témazáró 4 felelet 4 témazáró 4 felelet 4 röpdolgozat 5 röpdolgozat 5 röpdolgozat 4 röpdolgozat 4 9.c 0 Eöregh Elemér a b 174 Balogh Buda a 175 Tulok Ferdinánd b a 190 Kiss Döme b c 203 Rák Emil a b... AAAA ZZZZ felelet 3 röpdolgozat 2 témazáró 5 témazáró 4 felelet 4 röpdolgozat 5 röpdolgozat 4 typedef enum{ felelet, ropdolgozat, temazaro jegy_tipus; typedef struct x{ jegy_tipus miert; short osztalyzat; struct x *kovetkezo_jegy; jegy,*jegy_mutato; typedef struct y{ char nev[48]; jegy_mutato jegyek; struct y *kovetkezo_tanulo; tanulo,*tanulo_mutato; typedef struct { char osztaly_neve[4]; tanulo_mutato tanulok; osztaly; typedef enum{felelet,ropdolg,dolgjegy_tipus; typedef union z{ struct{ unsigned index; union z *jegyek; union z *kovetkezo_tanulo; tanulo; struct{ jegy_tipus miert; short osztalyzat; union z *kovetkezo_jegy; jegy; diak,*diak_mutato; typedef struct { char osztaly_neve[4]; diak_mutato tanulok; osztaly; Bitmezők Egy változóban valójában több (néhány bites) változót tárolunk. Elsősorban eszközök státuszregisztereinek kényelmes kezelésére találták ki. Nem kell kimaszkolni a kezelni kívánt biteket. Nem kell léptetni ahhoz, hogy a változó igazi értékével dolgozhassunk. 4

5 Bitmezők Bitmezők Megvalósítása struktúraként! Megvalósítása struktúraként! A tag típusaként int vagy unsigned int típust kell megadni. : után elő kell írni a bitben értendő mezőszélességet. Bitmezők Bitmezők struct { unsigned a : 1; unsigned b : 2; unsigned c : 1; statusz; statusz.b = 3; statusz.a = statusz.c = 0; Megjegyzések: A megvalósítástól függ, hogy balról-jobbra, vagy jobbról-balra történik a bitek kiosztása. Névtelen mezők is megadhatók, de később nem hivatkozhatunk rájuk. 0 mezőszélesség megadása jelenti a mező szóhatárra illesztését, ha az adott rendszerben a szóhatár átlépése egyáltalán megengedett. Tárolási osztályok Külső A program bármely függvényéből elérhető (a függvényeken kívül deklarált) Automatikus Csak az adott függvényen belül elérhető (a függvényen belül deklarált) Tárolási osztályok Statikus Külső A többi modul elől elrejtett Automatikus Egyetlen közösen használt példány static int a=0; Ebben a változóban számlálhatjuk pl., hogy a függvényt hány alkalommal hívták meg a program futása során, vagy megjegyezhetjük a futás során előforduló legnagyobb számított értéket, stb. 5

6 Tárolási osztályok Tárolási osztályok Regiszter Regiszterben tárolandó, ha lehet gyakran akarunk hivatkozni rá csak, ha a belső ábrázolás lehetővé teszi csak, ha van elég regiszter figyelmeztetés nélkül figyelmen kívül hagyható változó és függvényparaméter is lehet register int a; double d(register int b){... Kezdőérték hozzárendelése a változóhoz kezdetiérték adás kezdeti értékadás Külső Garantáltan kinullázódik (bármit is jelentsen) Konstans kifejezés előírható Automatikus Kezdőérték bizonytalan lehet Tetszőleges kifejezés előírható Statikus Csak az első belépéskor hajtódik végre Függvény lokális változói A függvények lokális változói két csoportot alkotnak: - a függvény paraméterei - a függvény automatikus változói (ezeket a függvényen belül deklaráltuk) A két csoportban használt azonosítók nem ütközhetnek! Függvény lokális változói A függvények lokális változóit a veremben (stack) tároljuk. Az elnevezés arra utal, hogy ez egy LIFO szervezésű memória terület (Last In First Out) Eredetileg arra szolgál, hogy itt tároljuk a szubrutinok visszatérési címét, illetve adatokat átmenetileg tároljunk. Magasszintű nyelveknél általában a veremben történik: - a kifejezések kiértékelése - paraméterek átadása a függvénynek - a függvény adminisztratív információjának tárolása - helyfoglalás a függvény belső változóinak Függvény lokális változói Az egy függvényhez tartozó adatokat együtt tartjuk egy szegmens mezőnek (stack frame) nevezett területen. Függvény lokális változói A függvény lokális változóit az adminisztratív blokkhoz képest relatív címzéssel érjük el. (Ezt a báziscímet az Intel processzorokban külön erre a célra szolgáló regiszter a bázis pointer tárolja.) automatikus változók adminisztratív blokk átvett paraméterek 6

7 Változók élettartama A külső változók élettartama a program teljes futási ideje. A dinamikus változók létrehozásuktól megszüntetésükig léteznek. (illetve addig hivatkozhatók, amíg mutat rájuk érvényes pointer) Azt a memória területet, ahol dinamikus változókat tárolhatunk, heap-nek nevezzük, ezért szokásos a dinamikus változókról mint kazal -változókról beszélni. A blokkokban deklarált változók élettartama a blokkhoz kötött (függetlenül attól, hogy a függvény blokkja, vagy azon belüli) Ezeket a változókat szokás verem -változóknak nevezni. Változók élettartama Az átvett paraméterek fizikailag akkor jönnek létre, amikor a hívó programrészlet az aktuális paramétereket kiértékeli, és ennek során elhelyezi a veremben. Változóként a függvény végrehajtásának kezdetétől a visszatéréséig hivatkozhatók. Fizikailag a visszatérés után a hívó programrészlet feladata, hogy a vermet felszabadítsa. Változók láthatósága Általános szabály, hogy a fordító nem lát bele a blokkokba. Változókra csak kifejezésben hivatkozhatunk, kifejezés csak utasítás része lehet, utasítás pedig csak blokkon belül állhat. A blokkok korlátlanul egymásba skatulyázhatók. Mindezek alapján elegendő azt vizsgálnunk, hogy mely változók hivatkozhatók egy blokkon belül. Változók láthatósága Ha a fordító a hivatkozott azonosító deklarációját a blokkon belül megtalálja, nem keres tovább. Ha nem találja meg, egy blokkal kijjebb keresi. Ha ott sincs, tovább halad kifelé, majd a függvény paraméterei következnek, azután a külső változók. Ha nem találja, azt feltételezi, hogy másik modulban van. Változók láthatósága Találat esetén a fordító a megtalált változóra vonatkozónak tekinti a hivatkozást, ezért, ha a keresésben később következő helyen is van egyező azonosítójú változó, az az adott blokk utasításai számára nem látható. Azt mondjuk, hogy a blokkban deklarált változó elfedi a másikat. Változók láthatósága A blokkra nézve lokális változók: - a blokkban deklarált változók - a blokkot tartalmazó függvény paraméterei A blokkra nézve globális változók: - a blokkot magába foglaló blokkokban deklarált változók - a külső változók - a társ modulok külső változói közül a nem statikusak A globális változók közül csak az el nem fedettek hivatkozhatók. 7

8 Változók láthatósága #include <stdio.h> int i; int a(int i){ return i+1; void b(int*q){ int i; i=*q+3; *q=2*i; int main(){ int*p; i=a(4); p=&i; { int i; for(i=0;i<3;i++) b(p); printf("%d\n",i); return 0; Attól, hogy helyes algoritmust választottunk, még nem biztos, hogy hibátlanul is kódoltuk. A program részleteit alulról felfelé haladva teszteljük. Csak a már tesztelt függvények működésében bízhatunk. A program minden lehetséges ágát ki kell próbálni. A teszteléshez használt bemenő adatsor alkalmas megválasztása nem mindig egyszerű feladat. Azt, hogy a program kívánt pontjára eljutottunk-e, és ott kritikus változóink az elvárt értéket mutatják-e, két szokásos módon tudhatjuk meg. Ha van debugger segédprogramunk, break point-okat helyezhetünk el a programban. A futást átmenetileg megállítva, megvizsgálhatjuk a változók értékét. Lehetőség van a megállást feltételhez kötni, például adott kifejezésnek egy kijelölt tartománybeli értékéhez, vagy az adott pont érintésének számának minimális vagy pontos értékéhez. A másik szokásos eljárás a trace-elés. A program adott pontjain kiíratjuk a kritikus változók pillanatnyi értékét. Mivel erre a kódra a tesztelés végeztével nem lesz szükségünk, feltételes fordítást alkalmazunk. #define TESZT... #ifdef TESZT printf( A hűtés hatására a hőfok %d\n,t); #endif 8

9 Ha egy vezérlési ágba túl bonyolult módon lehetne eljuttatni a programot, a többi változó érintetlenül hagyása mellett csalhatunk is. Erre is a feltételes fordítás teremt lehetőséget. #define TESZT 8... #if TESZT==8 a=171; #endif switch(a){... case 171:... Hibalehetőségek: Hibás adatok fájlból: az adatok szerkezete vagy alakja nem felel meg a feltételezésnek (előírásnak) felhasználótól: téves adatokat visz be (elnézi a sort, elírja, stb.) Hibalehetőségek: Programhibák tervezési hibák kódolási hibák A beolvasott adatokat mindig ellenőrizzük! Hibalehetőségek: A leggyakoribb kódolási hibák == helyett = ritkán használt operátorok precedenciájának téves feltételezése for zárójele után ; utólagos utasítás beszúráskor { elmardása ciklus végrehajtása nem érinti a leállási feltételt mutató mutatója függvény paramétereként Tipikus programozói hibák The last C bug of the world: while (1) { status = GetRadarStatus(); if (status = 1) LaunchMissiles(); 9

10 Hibalehetőségek: A leggyakoribb kódolási hibák túl sok átláthatatlan mellékhatás,ezért M I S S Make It Simple and Straight (Stupid) Hibakezelés: Ha futás közben kiderül, hogy valami elromlott, de nem azonosítható, hogy mi okozta a hibát, legjobb azonnal abbahagyni a végrehajtást, mielőtt a hiba továbbterjed! Az assert makro használatával egy feltételhez kötötten kiválthatjuk a program azonnali elhalását. Hibamegelőzés: A C nyelvben nincs szükség konstansokra, mert ezt a szerepet a makro tölti be. Ha azonban egy adatot a const kulcsszó segítségével állandónak minősítünk, elejét vehetjük annak, hogy véletlenül megváltoztassuk az értékét. Ezt még mutatón keresztüli indirekcióval sem lehet megtenni. Hibamegelőzés: Ha ugyanazokat a header fájlokat több modul használhatja, megakadályhatjuk a bennük előforduló elemek többszöri deklarációját: Például: a korábbi példánkban látott P20.h tartalma legyen: #ifndef P20_H #define P20_H void egyesit(char**,char*); #endif Dokumentáció: Dokumentáció: Ha a programunk termék, akkor számos vázlatot, tervet, kézikönyvet kell elkészíteni, hogy átadható legyen. Ha csak a karbantartás és a későbbi fejlesztések lehetővé tétele a cél, akkor minimalizálhatjuk a szükséges dokumentáció mértékét. Ilyen esetben is dokumentálni kell azonban az alkalmazott adatszerkezteket. Ha az érthetőség megkívánja, ábrával is szemléltetni kell. Rögzíteni kell a programban megvalósított algoritmusokat (ábra és/vagy pszeudokód) A program forráskódját kommentezni kell. Részletesen jegyzőkönyvezni kell a program tesztelését (teszt adatsorok és a program válasza) 10

11 Kommentezés: Minden modul fejlécében szerepelnie kell: Ki fejlesztette? Utolsó módosítás dátuma Esetleges verziószám Mely modulokkal működik együtt? Ha vannak globális változók, mi a szerepük? Kommentezés: Minden függvény fejlécében szerepelnie kell: Mit csinál a függvény? Az átvett paraméterek szerepe. A belső változók szerepe A függvény törzsében olyan mértékben kell kommentezni, hogy az algoritmus lépései azonosíthatók legyenek. 11

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

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

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

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

Részletesebben

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

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

Részletesebben

Elôszó a magyar kiadáshoz A Kiadó Elôszó

Elôszó a magyar kiadáshoz A Kiadó Elôszó Elôszó a magyar kiadáshoz A C programnyelvet eredetileg a Bell Laboratóriumban az UNIX operációs rendszerhez, az alatt fejlesztették ki PDP-11_ számítógépen. A kifejlesztése óta eltelt évek során bebizonyosodott,

Részletesebben

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

Miről lesz ma szó? A PROGAMOZÁS ALAPJAI 1. Dinamikus adatszerkezetek. Dinamikus adatszerkezetek. Önhivatkozó struktúrák. Önhivatkozó struktúrák 2012. március 27. A PROGAMOZÁS ALAPJAI 1 Vitéz András egyetemi adjunktus BME Híradástechnikai Tanszék vitez@hit.bme.hu Miről lesz ma szó? Dinamikus adatszerkezetek Önhivatkozó struktúra keresés, beszúrás,

Részletesebben

Objektumorientált programozás C# nyelven

Objektumorientált programozás C# nyelven Objektumorientált programozás C# nyelven 1. rész Osztályok és objektumok Mezık és metódusok Konstruktor és destruktor Névterek és hatókörök Láthatósági szintek Osztály szintő tagok Beágyazott osztályok

Részletesebben

3. Gyakorlat Ismerkedés a Java nyelvvel

3. Gyakorlat Ismerkedés a Java nyelvvel 3. Gyakorlat Ismerkedés a Java nyelvvel Parancssori argumentumok Minden Java programnak adhatunk indításkor paraméterek, ezeket a program egy tömbben tárolja. public static void main( String[] args ) Az

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

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

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

Részletesebben

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

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

Részletesebben

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

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

Részletesebben

OBJEKTUM ORIENTÁLT PROGRAMOZÁS JAVA NYELVEN. vizsgatételek

OBJEKTUM ORIENTÁLT PROGRAMOZÁS JAVA NYELVEN. vizsgatételek OBJEKTUM ORIENTÁLT PROGRAMOZÁS JAVA NYELVEN vizsgatételek 1. Az objektumorientált programozás szemlélete, az objektum fogalma 2. Az objektumorientált programozás alapelvei 3. A Java nyelv története, alapvető

Részletesebben

Objektumorientált programozás C# nyelven

Objektumorientált programozás C# nyelven Objektumorientált programozás C# nyelven 1. rész Osztályok és objektumok Mezık és metódusok Konstruktor és destruktor Láthatósági szintek Névterek és hatókörök Osztály szintő tagok Beágyazott osztályok

Részletesebben

15. Programok fordítása és végrehajtása

15. Programok fordítása és végrehajtása 15. Programok fordítása és végrehajtása Programok fordítása és végrehajtása. (Fordítás és interpretálás, bytecode. Előfordító, fordító, szerkesztő. A make. Fordítási egység, könyvtárak. Szintaktikus és

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

Osztály és objektum fogalma

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

Részletesebben

2.3. A C nyelv utasításai

2.3. A C nyelv utasításai 2.3. A C nyelv utasításai A C szabvány hét csoportban osztályozza a C nyelv utasításait: Csoport Kulcsszavak, ill. jelölések Kifejezés utasítás Üres utasítás: ; Összetett utasítás: } Szelekciós utasítások:

Részletesebben

Programozás C++ -ban 2007/4

Programozás C++ -ban 2007/4 Programozás C++ -ban 2007/4 1. Az adatokhoz való hozzáférés ellenőrzése Egy C programban a struktúrák minden része mindig elérhető. Ugyanakkor ez nem a legkedvezőbb helyzet. Több szempontból is hasznos

Részletesebben

Feladat: Hogyan tudunk létrehozni egy olyan vector nevű tömb típust, amely egy háromdimenziós térbeli vektort reprezentál?

Feladat: Hogyan tudunk létrehozni egy olyan vector nevű tömb típust, amely egy háromdimenziós térbeli vektort reprezentál? Típus definiálás Ennek általános alakja: typedef típus név Feladat: Hogyan tudunk létrehozni egy olyan vector nevű tömb típust, amely egy háromdimenziós térbeli vektort reprezentál? typedef double vector[3];

Részletesebben

Szupermikroprocesszorok és alkalmazásaik

Szupermikroprocesszorok és alkalmazásaik Szupermikroprocesszorok és alkalmazásaik VAJDA FERENC MTA Központi Fizikai Kutató Intézet Mérés- és Számítástechnikai Kutató Intézet 1. Bevezetés ÖSSZEFOGLALÁS Egy rétegezett modell alapján mutatjuk be

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

Internet programozása. 3. előadás

Internet programozása. 3. előadás Internet programozása 3. előadás Áttekintés Hogyan használjuk az if szerkezetet arra, hogy bizonyos sorok csak adott feltételek teljesülése mellett hajtódjanak végre? Hogyan adhatunk meg csak bizonyos

Részletesebben

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

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

Részletesebben

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

Máté: Számítógép architektúrák 2010.12.01.

Máté: Számítógép architektúrák 2010.12.01. Máté: Számítógép architektúrák... A feltételes ugró utasítások eldugaszolják a csővezetéket Feltételes végrehajtás (5.5 5. ábra): Feltételes végrehajtás Predikáció ió C pr. rész Általános assembly Feltételes

Részletesebben

Bevezetés a C++ programozásba

Bevezetés a C++ programozásba Bevezetés a C++ programozásba A program fogalma: A program nem más, mint számítógép által végrehajtható utasítások sorozata. A számítógépes programokat különféle programnyelveken írhatjuk. Ilyen nyelvek

Részletesebben

Operációs rendszerek 1. 8. előadás Multiprogramozott operációs rendszerek

Operációs rendszerek 1. 8. előadás Multiprogramozott operációs rendszerek Operációs rendszerek 1. 8. előadás Multiprogramozott operációs rendszerek Soós Sándor Nyugat-magyarországi Egyetem Faipari Mérnöki Kar Informatikai és Gazdasági Intézet E-mail: soossandor@inf.nyme.hu 2011.

Részletesebben

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

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

Részletesebben

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

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

Részletesebben

4. Programozási nyelvek osztályozása. Amatőr és professzionális

4. Programozási nyelvek osztályozása. Amatőr és professzionális 4. Programozási nyelvek osztályozása. Amatőr és professzionális programozási nyelvek. Számítási modellek (Neumann-elvű, automataelvű, funkcionális, logikai). Programozási nyelvekkel kapcsolatos fogalmak

Részletesebben

Dr. Schuster György október 14.

Dr. Schuster György október 14. Real-time operációs rendszerek RTOS 2011. október 14. A fordítás vázlata prog.c Előfeldolgozó Átmenti állomány Fordító prog.obj más.obj-tek könyvtárak indító kód Linker futtatható kód Ismétlés Előfeldolgozó

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

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

C# gyorstalpaló. Készítette: Major Péter

C# gyorstalpaló. Készítette: Major Péter C# gyorstalpaló Készítette: Major Péter Adattípusok Logikai változó Egész szám (*: előjel nélküli) Lebegőponto s szám Típus Típusnév másképpen (egyenértékű) Helyigény (bit) Példa bool Boolean 8 (!) true,

Részletesebben

Java VI. Egy kis kitérő: az UML. Osztály diagram. Általános Informatikai Tanszék Utolsó módosítás: 2006. 03. 07.

Java VI. Egy kis kitérő: az UML. Osztály diagram. Általános Informatikai Tanszék Utolsó módosítás: 2006. 03. 07. Java VI. Öröklődés Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2006. 03. 07. Java VI.: Öröklődés JAVA6 / 1 Egy kis kitérő: az UML UML: Unified Modelling Language Grafikus eszköz objektum

Részletesebben

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

Programozás 1. Dr. Iványi Péter Programozás 1. Dr. Iványi Péter 1 C nyelv B.W. Kernighan és D.M. Ritchie, 1978 The C Programming language 2 C nyelv Amerikai Szabványügy Hivatal (ANSI), 1983 X3J11 bizottság a C nyelv szabványosítására

Részletesebben

PROGRAMOZÁSI NYELVEK - CPP. GYAKORLAT JEGYZET

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

Részletesebben

Algoritmizálás + kódolás C++ nyelven és Pascalban

Algoritmizálás + kódolás C++ nyelven és Pascalban Algoritmizálás + kódolás nyelven és ban Motiváció A Programozási alapismeretek tárgyban az algoritmizáláshoz struktogramot, a kódoláshoz nyelvet használunk, a Közismereti informatikában (a közoktatásban

Részletesebben

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

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

Részletesebben

Programozás C é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

Budapesti Műszaki és Gazdaságtudományi Egyetem Automatizálási és Alkalmazott Informatikai Tanszék INFORMATIKA 2 ADATBÁZISOK

Budapesti Műszaki és Gazdaságtudományi Egyetem Automatizálási és Alkalmazott Informatikai Tanszék INFORMATIKA 2 ADATBÁZISOK Budapesti Műszaki és Gazdaságtudományi Egyetem Automatizálási és Alkalmazott Informatikai Tanszék INFORMATIKA 2 ADATBÁZISOK Iváncsy Szabolcs és Vajk István 2007 Október Tartalomjegyzék Ábrák jegyzéke Táblázatok

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

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

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

Részletesebben

Objektumorientált programozás C# nyelven III.

Objektumorientált programozás C# nyelven III. Objektumorientált programozás C# nyelven III. Kivételkezelés Tulajdonságok Feladatok Készítette: Miklós Árpád Dr. Kotsis Domokos Hallgatói tájékoztató A jelen bemutatóban található adatok, tudnivalók és

Részletesebben

Memóriakezelés, dinamikus memóriakezelés

Memóriakezelés, dinamikus memóriakezelés Metódus: függvények és eljárások összefoglaló neve. Memóriakezelés, dinamikus memóriakezelés Nézzük végig, a C++ memóriakezelését. Alapvetően három fő memóriaterületet különböztetünk meg. Végrehajtási

Részletesebben

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

Programozás alapjai. 10. előadás 10. előadás Wagner György Általános Informatikai Tanszék Pointerek, dinamikus memóriakezelés A PC-s Pascal (is) az IBM PC memóriáját 4 fő részre osztja: kódszegmens adatszegmens stackszegmens heap Alapja:

Részletesebben

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

Programozás. C++ osztályok. Fodor Attila. Pannon Egyetem Műszaki Informatikai Kar Villamosmérnöki és Információs Rendszerek Tanszék foa@almos.vein. Programozás C++ osztályok Fodor Attila Pannon Egyetem Műszaki Informatikai Kar Villamosmérnöki és Információs Rendszerek Tanszék foa@almos.vein.hu 2010. február 25. Osztályok C++ osztályok Bevezetés Objektum-orientáltság

Részletesebben

C programozási nyelv

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

Részletesebben

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

Miről lesz ma szó? A PROGAMOZÁS ALAPJAI 1. Dinamikus változók. Dinamikus változók. Dinamikus változók. Dinamikus változók. 7.

Miről lesz ma szó? A PROGAMOZÁS ALAPJAI 1. Dinamikus változók. Dinamikus változók. Dinamikus változók. Dinamikus változók. 7. Miről lesz ma szó? A PROGAMOZÁS ALAPJAI 1 Vitéz András egyetemi adjunktus BME Híradástechnikai Tanszék vitez@hit.bme.hu Dinamikus memóriakezelés Dinamikus tömbök Dinamikus stringek Program kapcsolata a

Részletesebben

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

C programnyelv 1. Kedves Kollegina, Kolléga!

C programnyelv 1. Kedves Kollegina, Kolléga! C programnyelv 1 Kedves Kollegina, Kolléga! A jegyzetet Önnek készítettem azért, hogy referencia anyaga legyen a Programnyelv és a Programfejlesztés tárgyakhoz. Szeretném a segítségét igénybe venni abból

Részletesebben

Programozási nyelvek I. 5. előadás (Gregorics Tibor anyagának felhasználásával)

Programozási nyelvek I. 5. előadás (Gregorics Tibor anyagának felhasználásával) Programozási nyelvek I. 5. előadás (Gregorics Tibor anyagának felhasználásával) I. A nyelv története C++ C (ős: B???) 1972 Ritchie AT&T Bell laboratórium UNIX 1978 Kernighan & Ritchie az első tankönyv,

Részletesebben

Pénzügyi algoritmusok

Pé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észletesebben

Bevezetés a programozásba 2

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

Részletesebben

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

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

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

Részletesebben

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

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

Részletesebben

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

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

Részletesebben

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 BMEKOKAA146. Dr. Bécsi Tamás 1. Előadás

Programozás BMEKOKAA146. Dr. Bécsi Tamás 1. Előadás Programozás BMEKOKAA146 Dr. Bécsi Tamás 1. Előadás Bemutatkozás Előadó: Dr. Bécsi Tamás St.106, (1)463-1044, becsi.tamas@mail.bme.hu Közlekedés-, és Járműirányítási Tanszék www.kjit.bme.hu Programozás

Részletesebben

A programozás alapjai 1 Rekurzió

A programozás alapjai 1 Rekurzió A programozás alapjai Rekurzió. előadás Híradástechnikai Tanszék - preorder (gyökér bal gyerek jobb gyerek) mentés - visszaállítás - inorder (bal gyerek gyökér jobb gyerek) rendezés 4 5 6 4 6 7 5 7 - posztorder

Részletesebben

Programozás II gyakorlat. 4. Öröklődés

Programozás II gyakorlat. 4. Öröklődés Programozás II gyakorlat 4. Öröklődés Feladat Egy játékfejlesztő cég olyan programot fejleszt, amely nyilvántartja az alkalmazottai adatait. Tároljuk minden személy: Nevét (legfeljebb 50 karakter) Születési

Részletesebben

Pál László. Sapientia EMTE, Csíkszereda, 2014/2015

Pál László. Sapientia EMTE, Csíkszereda, 2014/2015 Objektumorientált programozás Pál László Sapientia EMTE, Csíkszereda, 2014/2015 2. ELİADÁS Visual Basic bevezetı Visual Basic.NET nyelvi elemek 2 Visual Basic.NET programozási nyelv Nyelvi elemek: Általában

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

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

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

Részletesebben

C++ programok fordítása

C++ programok fordítása C++, 1/ 33 C++ programok fordítása Pataki Norbert 2012. február 24. C++, 2/ 33 Információk Pataki Norbert, patakino@elte.hu http://patakino.web.elte.hu/levelezo Jegy: gyakorlat, Szűgyi Zalán C++, 3/ 33

Részletesebben

Programozás III CSOMAGOK. Az összetartozó osztályok és interfészek egy csomagba (package) kerülnek.

Programozás III CSOMAGOK. Az összetartozó osztályok és interfészek egy csomagba (package) kerülnek. Programozás III CSOMAGOK Az összetartozó osztályok és interfészek egy csomagba (package) kerülnek. A Java is csomagok halmaza: csomagokban van a fejlesztő környezet és az osztálykönyvtárak is: rt.jar fájl

Részletesebben

Bevezetés a programozásba Előadás: A const

Bevezetés a programozásba Előadás: A const Bevezetés a programozásba 2 6. Előadás: A const ISMÉTLÉS Interface - Implementation struct Particle { int x,y; unsigned char r,g,b; void rajzol(); }; }; void Particle::rajzol() { gout

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

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

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

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

2014 UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

2014 UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED Tavasz 2014 UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED Department of Software Engineering Számítógép-hálózatok 5. gyakorlat Ethernet alapok Deák Kristóf S z e g e d i T u d o m á n y e g

Részletesebben

AVR assembly és AVR C modulok együttes használata AVR C projektben. Összeállította: Sándor Tamás

AVR assembly és AVR C modulok együttes használata AVR C projektben. Összeállította: Sándor Tamás AVR assembly és AVR C modulok együttes használata AVR C projektben Összeállította: Sándor Tamás //AVR C project létrehozása során a main.c AVR C modulba a következő forráskód részletet //elhelyezni. A

Részletesebben

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

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

Részletesebben

Az alábbi példában a Foo f(5); konstruktor hívása után mennyi lesz f.b értéke? struct Foo { int a, b; Foo(int c):a(c*2),b(c*3) {} };

Az alábbi példában a Foo f(5); konstruktor hívása után mennyi lesz f.b értéke? struct Foo { int a, b; Foo(int c):a(c*2),b(c*3) {} }; A C++ kódokban lévő makrókat melyik egység dolgozza fel az alábbiak közül? preprocessor A szabványos C++-ban nem is írhatunk makrókat (csak C-ben) assembler linker Az alábbi példában a Foo f(5); konstruktor

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

1. Template (sablon) 1.1. Függvénysablon Függvénysablon példányosítás Osztálysablon

1. Template (sablon) 1.1. Függvénysablon Függvénysablon példányosítás Osztálysablon 1. Template (sablon) 1.1. Függvénysablon Maximum függvény megvalósítása függvénynév túlterheléssel. i n l i n e f l o a t Max ( f l o a t a, f l o a t b ) { return a>b? a : b ; i n l i n e double Max (

Részletesebben

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

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

Részletesebben

Ipari Robotok Programozása

Ipari Robotok Programozása Ipari Robotok Programozása Vezérlő, StartUp, Szoftverszintek, programozási nyelvek Előadó: Nagy István n (A65) Gyakorlatvezető: : Tolnai András Ajánlott irodalom: B. Leatham-Jones: Elements of Industrial

Részletesebben

Csak felvételi vizsga: csak záróvizsga: közös vizsga: Mérnök informatikus szak BME Villamosmérnöki és Informatikai Kar. 2012. május 30.

Csak felvételi vizsga: csak záróvizsga: közös vizsga: Mérnök informatikus szak BME Villamosmérnöki és Informatikai Kar. 2012. május 30. Név, felvételi azonosító, Neptun-kód: MI pont(45) : Csak felvételi vizsga: csak záróvizsga: közös vizsga: Közös alapképzéses záróvizsga mesterképzés felvételi vizsga Mérnök informatikus szak BME Villamosmérnöki

Részletesebben

Objektumorientált programozás C# nyelven

Objektumorientált programozás C# nyelven Objektumorientált programozás C# nyelven 3. rész Tulajdonságok Indexelık Kivételkezelés Hallgatói tájékoztató A jelen bemutatóban található adatok, tudnivalók és információk a számonkérendı anyag vázlatát

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

Dr. Illés Zoltán zoltan.illes@elte.hu

Dr. Illés Zoltán zoltan.illes@elte.hu Dr. Illés Zoltán zoltan.illes@elte.hu Operációs rendszerek kialakulása Op. Rendszer fogalmak, struktúrák Fájlok, könyvtárak, fájlrendszerek Folyamatok Folyamatok kommunikációja Kritikus szekciók, szemaforok.

Részletesebben

Számítástechnika I. BMEKOKAA152 BMEKOKAA119 Infokommunikáció I. BMEKOKAA606. Dr. Bécsi Tamás

Számítástechnika I. BMEKOKAA152 BMEKOKAA119 Infokommunikáció I. BMEKOKAA606. Dr. Bécsi Tamás Számítástechnika I. BMEKOKAA152 BMEKOKAA119 Infokommunikáció I. BMEKOKAA606 Dr. Bécsi Tamás Bemutatkozás Előadó: Dr. Bécsi Tamás St.106, (1)463-1044, becsi.tamas@mail.bme.hu Közlekedés-, és Járműirányítási

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

Csak felvételi vizsga: csak záróvizsga: közös vizsga: Mérnökinformatikus szak BME Villamosmérnöki és Informatikai Kar. 2015. május 27.

Csak felvételi vizsga: csak záróvizsga: közös vizsga: Mérnökinformatikus szak BME Villamosmérnöki és Informatikai Kar. 2015. május 27. Név, felvételi azonosító, Neptun-kód: MI pont(45) : Csak felvételi vizsga: csak záróvizsga: közös vizsga: Közös alapképzéses záróvizsga mesterképzés felvételi vizsga Mérnökinformatikus szak BME Villamosmérnöki

Részletesebben

Szoftvertechnológia alapjai Java előadások

Szoftvertechnológia alapjai Java előadások Szoftvertechnológia alapjai Java előadások Förhécz András, doktorandusz e-mail: fandrew@mit.bme.hu tárgy honlap: http://home.mit.bme.hu/~fandrew/szofttech_hu.html A mai előadás tartalma: Miért pont Java?

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

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

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

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

Részletesebben

Programozható logikai vezérlõk

Programozható logikai vezérlõk BUDAPESTI MÛSZAKI EGYETEM KÖZLEKEDÉSMÉRNÖKI KAR KÖZLEKEDÉSAUTOMATIKAI TANSZÉK Programozható logikai vezérlõk Segédlet az Irányítástechnika I. c. tárgyhoz Összeállította: Szabó Géza egyetemi tanársegéd

Részletesebben

Fordítóprogramok felépítése, az egyes programok feladata. A következő jelölésmódot használjuk: program(bemenet)(kimenet)

Fordítóprogramok felépítése, az egyes programok feladata. A következő jelölésmódot használjuk: program(bemenet)(kimenet) Fordítóprogramok. (Fordítóprogramok felépítése, az egyes komponensek feladata. A lexikáliselemző működése, implementációja. Szintaktikus elemző algoritmusok csoportosítása, összehasonlítása; létrehozásuk

Részletesebben

0.1. Mi az a standard be- és kimenet?... 1. 0.2. A két mintafeladat leírása

0.1. Mi az a standard be- és kimenet?... 1. 0.2. A két mintafeladat leírása KöMaL Technikai tanácsok az I- és S-jelű pontversenyhez A standard be- és kimenet kezelése Tartalomjegyzék 0.1. Mi az a standard be- és kimenet?............................. 1 0.2. A két mintafeladat leírása.................................

Részletesebben

A lista eleme. mutató rész. adat rész. Listaelem létrehozása. Node Deklarálás. Létrehozás. Az elemet nekünk kell bef zni a listába

A lista eleme. mutató rész. adat rész. Listaelem létrehozása. Node Deklarálás. Létrehozás. Az elemet nekünk kell bef zni a listába A lista eleme 0 adat rész mutató rész Listaelem létrehozása p: Node 0 0 3 0 Az elemet nekünk kell bef zni a listába Deklarálás struct Node { int int value; Node* next; next; adattagok Létrehozás Node*

Részletesebben