IV. A SystemC alapelemei

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

Download "IV. A SystemC alapelemei"

Átírás

1 IV. A SystemC alapelemei Ennek a bevezető előadásnak a célja, hogy röviden és mindenekelőtt érthetően bemutassa a SystemC alkalmazását elektronikai eszközök tervezésére. Részletesen ismertetésre kerül egy modul szerkezetének felépítése, hogyan tudunk portokat deklarálni, és miként tudjuk egy modul viselkedését leírni. 1

2 A modellfejlesztés alapjainak bemutatására két egyszerű példa program kerül részletesen ismertetésre, az első a mára már szinte klasszikussá vált Hello World program, a másik, pedig egy félösszeadó digitális áramkör felépítése és tesztelése SystemC környezetben. 2

3 IV.1. Modulok felépítése SystemC fejlesztői környezetben A modulok képezik az alapvető építőköveit egy a SystemC fejlesztőrendszerben kidolgozott elektronikai eszköznek. A modul ismertetése mellett szükség van a folyamat (process) fogalmának tisztázására is. A folyamatok feladata, hogy a tervezett elektronikai eszköz funkcionalitásait definiálja, valamint a rendszer párhuzamos (konkurens) működését is lehetővé tegye. Objektum orientált programfejlesztői szempontból a folyamat egy metódusnak (member function, tagfüggvény) felel meg a C++ nyelvben. 3

4 A folyamatok közötti kommunikáció megvalósítására szolgálnak a jelek (signals). Minden egyes folyamat reagálhat a jelek és a jeleken keresztül kapcsolt portok valamely előre megadott részére, de nem szükségképpen mindegyikre. Egy úgynevezett érzékenységi listát (sensitivity list) hozhatunk létre, amelyen keresztül a jeleken és a portokon létrejövő változásokra reagálhatnak az egyes a modulban definiált folyamatok. A modulok másik fontos tulajdonsága, hogy hierarchikus szerkezeti felépítést is lehetővé tesznek azáltal, hogy egy modulon belül egy másik modul is példányosítható (instantiated). 4

5 #include systemc.h SC_MODULE (uzenetkiiro) { SC_CTOR(uzenetkiiro) { } void kiir(); IV.2. Első példa }; void uzenetkiiro::kiir() { cout << Hello World! << endl; } 5

6 Az üzenet kiírás céljára írt program első sora egy #include direktívát tartalmaz, ami a systemc.h fejléc állomány használatát teszi lehetővé. Erre minden SystemC-ben írt programnak szüksége van. Ez teszi lehetővé, hogy a SystemC osztály könyvtárait C++ fejlesztői környezetben elérjük és használhassuk. Az SC_MODULE kulcsszó segítségével lehet egy SystemC modult deklarálni. A modul neve az SC_MODULE kulcsszó után zárójelek között kerül megadásra. 6

7 SC_MODULE(a_modul_neve), ebben a konkrét esetben ez a SC_MODULE (uzenetkiiro) deklarációs rész adja meg. Az SC_MODULE a valóságban egy C++ makró, ami egy modul osztály deklarációját indítja el. Az SC_MODULE nevét a továbbiakban úgy kell használnunk, mint a C++ nyelvben megszokott osztálynevek azonosítóit. Azaz amikor példányosítani kell egy-egy modult, akkor azt az itt megadott modul névvel lehet megtenni. A modulhoz tartozó konstruktorokat, folyamatokat és egyéb metódusokat a továbbiakban {} zárójel párok között kell megadni. 7

8 A program következő sorában látható egy SC_CTOR blokk, amivel egy konstruktort tudunk létrehozni, ebben az esetben erre nincsen szükségünk, de ez a rész általában elengedhetetlen rész egy-egy SystemC-ben írt digitális áramköri modellnek. 8

9 A következő sorban egy a modulhoz tartozó metódust (tagfüggvény, member function) hozunk létre, aminek a neve kiir(). Ez a C++ nyelvben megszokott public hatókörű az adott modulhoz (osztály) tartozó függvény, amit a C++-ban megszokott szintaktikai szerkezetben lehet használni. Ebben a sorban csak a függvény deklarációja látható, magát a függvényt a modulon kívül definiáljuk. A modul kapcsos be zárójele után egy pontosvesszővel záródik. 9

10 A modul deklarációja után kerül megadásra a kiir nevű metódus, aminek implementációját a C++-ból megszokott szintaktikai szerkezetben kell elvégezni. A metódus most csak egyetlen utasítás sort tartalmaz, ami a képernyőn megjeleníti a Hello World szavakat. A cout függvény a megszokott módon használható SystemC kódok fejlesztése során. 10

11 Ahhoz hogy a SystemC-ben kidolgozott modell tesztelhető legyen, egy futtató környezetet kell kidolgozni, amiben az előzőekben írt modulok viselkedése minden szempontból vizsgálható. Ez szintaktikai szempontból szintén teljes mértékben megegyezik a C++-ban megismert kódfejlesztéssel, mivel itt is van egy main függvény, ami a belépési pontja a SystemC-ben megírt programnak. Az eltérés mindössze annyi, hogy ezt a függvényt sc_main-nek nevezik, de a függvény argumentumainak struktúrája, azonos a C/C++-beli main függvénnyel. 11

12 int sc_main(int argc, char *argv[]) { int ch; uzenetkiiro msg( udvozlet ); msg.kiir(); cout << Nyomja meg a q/q billentyűt és azután az Enter-t: ; cin >> ch; return 0; } 12

13 Az sc_main első sorában egy integer típusú változót definiálunk, aminek célja az, hogy a program futásának befejezése után mielőtt a program végleg befejeződne, még várakozzon egy billentyűzetről érkező nyugtázásra. A következő sorban hajtódik végre az előzőekben deklarált uzenetkiiro modul, a C++ szemszögéből nézve egy osztály példányosítása. Az SC_MODULE kulcsszó után megadott nevet használjuk fel az adott modul példányosítására. A modul neve az angol message szó után msg lesz. 13

14 A következő sorban kerül meghívásra az msg objektum kiir metódusa, ami megjeleníti a szöveget a képernyőn. 14

15 15

16 IV.3. Második példa Félösszeadó digitális áramkör Ha két 1 bites bináris számot szeretnénk összeadni, akkor az összeadásnak négyféle (két elem ismétléses variációja) lehetséges változata van, amit az alábbi logikai táblázat foglal össze. Az első három variációt nem szükséges megmagyarázni, mivel triviálisan következik a hétköznapi összegzés alapján is. De a negyedik eset már nem szükségszerűen nyilvánvaló, valamint itt kell alkalmazni az átviteli bitet is. 16

17 A legérthetőbb módon a tízes számrendszerrel tudjuk összehasonlítani. Vegyük a következő példát a tízes számrendszerben, össze szeretnénk adni két egyjegyű számot, és hogy a példa minél inkább hasonlítson a kettes számrendszerbeli összegzéshez, legyen ez a két szám az ötös. Ha összeadjuk a két ötöst, akkor az eredmény nulla lesz, valamint keletkezik a következő helyértéken egy átvitel (carry), amit a digitális elektronikában a carry bit segítségével valósítanak meg. 17

18 átvitel (c) ö s s z e g (s) A fentiek analógiájára kettes számrendszerben két egyjegyű bináris szám összeadási műveletének logikai táblázata az alábbiakban látható = x y s c xor and 18

19 Figyelmesen megvizsgálva a félösszeadó logikai táblázatát a következő megállapítások tehetőek, amelyek felhasználásával megépíthető az a digitális áramkör, ami az összeadás műveletét végrehajtja. Az összeadás eredménye az összegre (s) egy kizáró-vagy (XOR) művelet, az átviteli bit (c) értékére, pedig egy és (AND) művelet. Ebből az észrevételből már felépíthető egy logikai áramkör, ami képes két egyjegyű bináris szám (félösszeadó) helyes összegzésére. 19

20 x and c y xor s A következő ábra a félösszeadó logikai áramkört mutatja, a megvalósításhoz felhasznált logikai műveletekkel és a közöttük lévő kapcsolatokkal. Az ábrán a bementi portokat x, y-al, a kimeneti portokat pedig s, c-vel jelöltük. 20

21 Még magyarázatra szorul, hogy miért is félösszeadó ez a logikai áramkör. Ennek oka abban rejlik, hogy ez a logikai szerkezet még nem képes kezelni azt az esetet, ha nem egyjegyű, hanem több jegyű számokat szeretnénk összeadni. Ez olyan módon valósítható meg, hogy nem két bemenete van (x, y) az áramkörnek, hanem három, ami tartalmazza az előző helyértékből következő átvitel értékét is. Ezt a három bemeneti logikai értéket (x, y, cin) kezelő bemenettel rendelkező összeadó áramkört nevezik teljes összeadó (full adder) áramkörnek. 21

22 #include systemc.h SC_MODULE (felosszeado) { sc_out<bool> osszeg,atvitel; sc_in<bool> be_jel_1,be_jel_2; void felosszeado_fv(); // Ez itt egy folyamat, a C++ terminológia szerint egy metódus lesz. 22

23 Az SC_MODULE kulcsszó után zárójelek között került megadásra a modul neve felosszeado. A felosszeado modul rendelkezik két bemeneti és két kimeneti porttal, amelyek deklarációja a harmadik és a negyedik sorban látható a minta programban. A bemeneti portokat be_jel_1-el és be_jel_2-vel azonosítottuk. A portokat logikai típusúnak (bool) deklaráljuk, amit megkönnyít az is, hogy a bool szabványos C++ típus. A modul ezenfelül rendelkezik két kimeneti porttal is, amelyek az összegzés eredményét osszeg és az átvitelt atvitel tartalmazza. 23

24 A program ötödik sora egy folyamatot leíró függvény (metódus) deklarációjával folytatódik, void felosszeado_fv(). A folyamat (metódus, tagfüggvény) definíciója az SC_MODULE blokkja után kerül implementálásra. Látható, hogy ez a folyamat (metódus) semmit nem vesz át a külvilágtól (üres paraméter lista a folyamat név után) és semmit sem ad (void) annak vissza. Azért használható egyelőre szisztematikusan a metódus elnevezés, mivel itt még nem tudja a fordító, hogy ez majd egy folyamattá válik a későbbiekben, a további deklarációk révén a SC_CTOR blokk belsejében. Jelen állapotában a felosszeado_fv() egy közönséges C++ metódus. 24

25 SC_CTOR(felosszeado) { SC_METHOD (felosszeado_fv); sensitive << be_jel_1 << be_jel_2; } }; void felosszeado::felosszeado_fv() { osszeg= be_jel_1 ^ be_jel_2; atvitel = be_jel_1 & be_jel_2; } 25

26 A program hatodik sorában látható SC_CTOR blokk, a konstruktor szerepét tölti be a SystemC-ben a C++ terminológia szerint. Maga az SC_CTOR is egy makró, amelynek szerepe, hogy a modulban használt folyamatokat deklaráljuk, és azt is, hogy milyen folyamatként deklaráljuk, mivel a folyamatot kétféle módon SC_METHOD és SC_THREAD típusú folyamatként is lehet deklarálni. A félösszeadó áramkörben az SC_METHOD-ra láthatunk egy példát. 26

27 Az SC_CTOR zárójelei között megadott névnek azonosnak kell lennie, a modul nevével, azaz azzal, amit az SC_MODULE( Amit ide írtunk! ) zárójelei közé írtunk. Fontos megjegyezni, hogy az SC_METHOD által deklarált folyamatok működése a wait metódussal nem állítható meg, mivel ennek a függvénynek a használata nem engedélyezett az SC_METHOD blokkban. 27

28 Az SC_METHOD után zárójelek között meg kell adni a program ötödik sorában deklarált metódus nevét. Ezzel a lépéssel most már void felosszeado_fv() nem csak, mint egy szokványos C++ metódusként létezik a fordító számára, hanem a SystemC rendszerben definiált folyamattá válik. 28

29 Az SC_METHOD-al deklarált folyamathoz meg kell adni, mely jelek és portok kapcsolódnak a folyamathoz, illetve mely portokon létrejövő változásokra legyen érzékeny (sensitive) az adott folyamat. Ezt az érzékenységi lista (sensitivity list) segítségével lehet megadni. Erre a célra a sensitive kulcsszót használhatjuk, amely után zárójelben megadva fel kell sorolni azokat a portokat ebben az esetben be_jel_1, be_jel_2, amelyek az aktuálisan deklarált folyamat működését befolyásolják. A másik lehetőség az érzékenységi lista megadására a következő szintaktikai szerkezettel lehetséges sensitive << be_jel_1 << be_jel_2; 29

30 Ez a digitális áramkör működésének szempontjából azt jelenti, hogy amikor bármilyen változás is áll be a két port (x, y) valamelyikén vagy mind kettőn, akkor a felosszeado_fv() folyamat végrehajtásra kerül, mind azokkal az utasításokkal és műveletekkel, amelyekkel definiálásra került (11-14-es sorok a példa programban). A folyamat végrehajtása után, pedig várakozási állapotba kerül, mind addig, amíg újabb esemény, változás nem következik be a hozzá tartozó érzékenységi listában megadott portokon. Ez az utasítás a fenti példa program nyolcadik sorában látható. 30

31 Fontos megjegyezni, hogy a SC_CTOR blokk bezáró zárójele } után nem kell pontosvesszőt tenni, mivel SC_CTOR-hoz tartozó kódsorok már közvetlenül a konstruktor definíciója és nem deklarációja. Az SC_MODULE blokk bezáró zárójele } után viszont pontosvesszőt kell tenni, mivel SC_MODULE-hoz tartozó kódsorok csak a modul deklarációját tartalmazzák és nem a definícióját, vagy annak példányosítását. 31

32 A példa program 11-es sorától kezdődően kerül részletesen megadásra (definiálásra) az előzőek során deklarált felosszeado_fv() nevű folyamat. A 12-ik és 13-ik sor tartalmazza azokat a logikai műveleteket, amelyek segítségével a két kimeneti port logikai értéke meghatározásra kerül. A példa programban használt logikai műveletek (and, xor) teljes egészében a szabványos C/C++ nyelvekben definiált logikai operátorokkal egyezik meg, tehát ez sem SystemC specifikus eszköz, hanem a korábban már megismert C/C++ programozási nyelvekben használt operátorok. 32

33 IV.4. A SystemC-ben kidolgozott digitális áramköri modell működésének, funkcionalitásának tesztelése, vizsgálata A félösszeadó áramkörre az előzőekben megírt modell tesztelését végezzük el. A feladat megvizsgálni a félösszeadó áramkör válaszát a bemeneti paraméterek összes lehetséges variációjára. Minden egyes bemeneti adat kombináció 5 nano szekundumos késleltetéssel lesz a félösszeadó áramkör bementi portjaira küldve, aminek hatására a félösszeadó áramkör kimeneti értékei a képernyőn megjelenítésre kerülnek. 33

34 Első lépésben egy tesztkörnyezetet kell felépítenünk, ami tartalmazza, egyrészről a bementi adatok generálására szolgáló kódot, valamint a képernyőn való megjelenítésre szolgáló metódust is el kell készítenünk. Az alábbiakban az erre a célra szolgáló deklarációkat egy teszt.h nevű fejléc állományban helyezzük el, valamint a felösszeadó áramkörre kidolgozott modul is ebben a fejléc állományban kerül elhelyezésre. Nagyobb méretű programok esetén praktikusabb a tesztelendő modulokat és a tesztkörnyezethez tartozó modulokat külön választani és külön-külön fejléc állományokban elhelyezni a rájuk vonatkozó deklarációkat. 34

35 A teszt.h állomány. #include systemc.h SC_MODULE (jel_gen) { sc_out<bool> gen_x, gen_y; void signal_gen(); SC_CTOR(jel_gen) { SC_THREAD (signal_gen); } }; 35

36 Az első modul a bemeneti jeleket generáló modul, amelynek két kimeneti (output) portja van, bementi porttal pedig nem rendelkezik. A jelgeneráló modul SC_CTOR blokkja tartalmaz egy SC_THREAD típusú folyamatot, amely működésének szempontjából alapvetően tér el az SC_METHOD típusú folyamatoktól. Egy SC_THREAD folyamatnak meg van az a képessége, hogy az ilyen módon deklarált folyamatok a működésüket/futásukat egy meghatározott időre felfüggesszék. A futási folyamat megállítására a wait függvény szolgál. A wait függvény egy előre meghatározott ideig felfüggesztheti az adott SC_THREAD típusú folyamat működését, vagy arra is van lehetőség, hogy a wait függvény egy adott esemény bekövetkeztekor függessze fel a folyamat működését. 36

37 SC_MODULE (kiir) { sc_in<bool> a, b, s, c; void kiir_kepernyore(); SC_CTOR(kiir) { SC_METHOD (kiir_kepernyore); sensitive << a << b << s << c; } }; 37

38 A következő modul a kiir, amelynek négy kimeneti portja van, amelyek logikai (bool) típusúak. A modul egy kiir_kepernyore() nevű metódust deklarál, amit aztán az SC_CTOR blokkban az SC_METHOD segítségével folyamatként deklarálunk tovább, amely folyamat a négy (a, b, s, c) bemeneti portra lesz érzékeny (sensitive). Azaz bármelyik porton változás következik be akkor a kiir_kepernyore() nevű folyamat meghívódik és a folyamat utasításai végrehajtódnak. 38

39 SC_MODULE (felosszeado) { sc_out<bool> osszeg, atvitel; sc_in<bool> x, y; void felosszeado_fv(); SC_CTOR(felosszeado) { SC_METHOD (felosszeado_fv); sensitive << x << y; } }; A teszt.h állomány tartalmának vége. 39

40 #include teszt.h void jel_gen::signal_gen() { sc_uint<2> bitminta; bitminta=0; while(1) { gen_x=bitminta[0]; gen_y=bitminta[1]; wait(5,sc_ns); bitminta++; } } A teszt.cpp állomány. 40

41 Az első metódus a jel_gen modulhoz tartozó signal_gen() folyamat. A jelgeneráló modul signal_gen() folyamata egy bitminta nevezetű 2 bites előjelnélküli egész számokat tároló, sc_uint típusú változót definiál. A gyakorlott programozók számára első látásra szokatlan lehet, hogy egy előre definiált típus méretét, mint például ebben az esetben sc_uint megtudjuk adni. De éppen ezek azok a lehetőségek, amelyek a SystemC-t alkalmassá teszik digitális áramköri modellek gyors és egyszerű kidolgozására és azok tesztelésére. A bitminta nevezetű változó deklarációja után a változó értékét nullára állítjuk, azaz minden egyes bitjének értéke zérus lesz. 41

42 Mindezek után, egy while ciklus segítségével, egyesével generáljuk a bemeneti bit variációkat, ami esetünkben négy különböző állapotot jelent. Az egyes bementi bit variációk előállítása a bitminta nevű változó értékének növelésével bitminta++ állítható elő. A bitminta nevű változó értékadással szembeni viselkedése a megszokott módon zajlik le, azaz azonnal átveszi az inkrementáló operátor hatására megnövelt értéket. Azaz a deltakésleltetés (delta delay) a közönséges változókra nem érvényes, mint az a portok és jelek esetén fenn áll. 42

43 A bitminta nevű változó egyes bitjeit az index operátor [] segítségével, egyesével eltudjuk érni, ami szintén szokatlan egy a C/C++ környezetet már alaposan ismerő programozónak, de rendkívül hasznos lehetőség egy SystemC-ben fejlesztő programozó számára. Például a bitminta[0] a nulladik azaz a legalsó helyértékű bitje az előjelnélküli egész számnak. A while ciklus belsejében látható első két értékadó utasítás a gen_x és a gen_y kimeneti portokhoz rendeli hozzá a bitminta nevű változó nulladik és első bitjét, a gen_x-hez a nulladikat a gen_y-hoz az első bitet. 43

44 A következő utasítás a wait, ami ebben az esetben felfüggeszti a folyamat futását 5 nano szekundumos időre. Az SC_NS az időegységet határozza meg. Azaz a wait egyik lehetséges használatának általános szintaktikai szerkezete. wait(időegységek_száma, időegység_dimenziója); 44

45 void kiir::kiir_kepernyore() { cout << Időlépés: << sc_time_stamp() << a bemeneti paraméterek: x= ; cout << a << y= << b << endl; cout << a kimeneti eredmények: osszeg= ; cout << s << atvitel= << c<< endl << endl; } void felosszeado::felosszeado_fv() { osszeg= x ^ y; atvitel = x & y; } 45

46 int sc_main(int argc, char *argv[]) { int ch; sc_signal<bool> x1, x2, sum, carry; felosszeado f( fel_ossz ); f.x(x1); f.y(x2); f.osszeg(sum); f.atvitel(carry); jel_gen jel( Input_Signal ); jel << x1 << x2; 46

47 A modell funkcionalitását tesztelő kódsorok az sc_main() függvényen belül kerültek megadásra. Négy darab jelet definiálunk az sc_signal kulcsszóval, amelyek logikai típusúak bool. A következő sorban kerül példányosításra a félösszeadó áramkör modellje, a létrejött objektum azonosítója f. A következő sorban négy az előzőekben definiált jel (x1, x2, sum, carry) kerül összerendelésre nevesített hivatkozás útján (named association) az f objektum egyes lokális változóival. 47

48 A félösszeadó áramkört leképező modult tesztelő jelet a jel_gen modul példányosításával hozzuk létre, amelynek a neve jel. A jel nevű objektum (modul) két kimeneti portját, pozícionális hivatkozással (positional association) kapcsoljuk össze a félösszeadó modul bementi portjaival az (x1, x2) jeleken (signal) keresztül. 48

49 } kiir res( result ); res << x1 << x2 << sum << carry; sc_start(20,sc_ns); cout << endl << endl; cout << Nyomjon le egy tetszőleges karaktert majd, Entert! ; cin >> ch; return 0; 49

50 A harmadikként létrehozott objektum neve res, a feladata, pedig a képernyőn megjeleníteni a teszt adatokat. Esetünkben a teszt adatok a két bemeneti és a másik két kimeneti port értékeinek változása a szimuláció időbeli előrehaladása folyamán. A res nevű objektum SC_METHOD típusú kiir_kepernyore() nevű folyamata, 5 nano szekundumos időközönként a modul valamelyik bemeneti jele változásának hatására hajtódik végre és kiírja a be és kimeneti portok aktuális értékeit. 50

51 A szimulációt 20 ns hosszúságú időtartamon keresztül hajtjuk végre, amit az sc_start() metódus segítségével valósítunk meg. Az sc_start() metódus első paramétere az időegységek száma, a második paramétere, pedig az alapértelmezett időegység, ebben az esetben nano szekundum. 51

52 52

VII. Tesztkörnyezet felépítése

VII. Tesztkörnyezet felépítése VII. Tesztkörnyezet felépítése 1 VII.1. Szimuláció folyamatát vezérlő eszközök SystemC-ben sc_start sc_stop sc_time_stamp sc_simulation_time sc_clock sc_trace sc_cycle és az sc_initialize sc_time 2 sc_start

Részletesebben

III. Alapfogalmak és tervezési módszertan SystemC-ben

III. Alapfogalmak és tervezési módszertan SystemC-ben III. Alapfogalmak és tervezési módszertan SystemC-ben A SystemC egy lehetséges válasz és egyben egyfajta tökéletesített, tovább fejlesztett tervezési módszertan az elektronikai tervezés területén felmerülő

Részletesebben

A SystemC programok adattípusai

A SystemC programok adattípusai A SystemC programok adattípusai A negyedik fejezetben bemutatott félösszeadó áramköri példában semmilyen SystemC típus sem szerepelt. Viszont összetettebb áramköri feladatok esetén elengedhetetlen a különböző

Részletesebben

Laborgyakorlat Logikai áramkörök számítógéppel segített tervezése (CAD)

Laborgyakorlat Logikai áramkörök számítógéppel segített tervezése (CAD) Laborgyakorlat Logikai áramkörök számítógéppel segített tervezése (CAD) Összeadó áramkör A legegyszerűbb összeadó két bitet ad össze, és az egy bites eredményt és az átvitelt adja ki a kimenetén, ez a

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

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

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

Bevezetés A SystemC célja A SystemC alapjai SystemC típusok Modulok Rendszerek Csatornák. Budapesti Műszaki és Gazdaságtudományi Egyetem

Bevezetés A SystemC célja A SystemC alapjai SystemC típusok Modulok Rendszerek Csatornák. Budapesti Műszaki és Gazdaságtudományi Egyetem Budapesti Műszaki és Gazdaságtudományi Egyetem SystemC áttekintés Dr. Czirkos Zoltán, Horváth Péter Elektronikus Eszközök Tanszéke 2014. augusztus 18. Dr. Czirkos Zoltán, Horváth Péter SystemC áttekintés

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 alapjai gyakorlat. 2. gyakorlat C alapok

Programozás alapjai gyakorlat. 2. gyakorlat C alapok Programozás alapjai gyakorlat 2. gyakorlat C alapok 2016-2017 Bordé Sándor 2 Forráskód, fordító, futtatható állomány Először megírjuk a programunk kódját (forráskód) Egyszerű szövegszerkesztőben vagy fejlesztőkörnyezettel

Részletesebben

Digitális elektronika gyakorlat

Digitális elektronika gyakorlat FELADATOK 1. Tervezzetek egy félösszeadó VHDL modult 2. Tervezzetek egy teljes összeadó VHDL modult 3. Schematic Editor segítségével tervezzetek egy 4 bit-es öszeadó áramkört. A két bemeneti számot a logikai

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

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++ programozási nyelv Konstruktorok-destruktorok

C++ 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észletesebben

1. Mi a fejállományok szerepe C és C++ nyelvben és hogyan használjuk őket? 2. Milyen alapvető változókat használhatunk a C és C++ nyelvben?

1. Mi a fejállományok szerepe C és C++ nyelvben és hogyan használjuk őket? 2. Milyen alapvető változókat használhatunk a C és C++ nyelvben? 1. Mi a fejállományok szerepe C és C++ nyelvben és hogyan használjuk őket? 2. Milyen alapvető változókat használhatunk a C és C++ nyelvben? 3. Ismertesse a névtér fogalmát! 4. Mit értünk a "változó hatóköre"

Részletesebben

Tömbök kezelése. Példa: Vonalkód ellenőrzőjegyének kiszámítása

Tömbök kezelése. Példa: Vonalkód ellenőrzőjegyének kiszámítása Tömbök kezelése Példa: Vonalkód ellenőrzőjegyének kiszámítása A számokkal jellemzett adatok, pl. személyi szám, adószám, taj-szám, vonalkód, bankszámlaszám esetében az elírásból származó hibát ún. ellenőrző

Részletesebben

Programozás II. 2. gyakorlat Áttérés C-ről C++-ra

Programozás II. 2. gyakorlat Áttérés C-ről C++-ra Programozás II. 2. gyakorlat Áttérés C-ről C++-ra Tartalom Új kommentelési lehetőség Változók deklarációjának helye Alapértelmezett függvényparaméterek Névterek I/O műveletek egyszerűsödése Logikai adattípus,

Részletesebben

1. Alapok. #!/bin/bash

1. Alapok. #!/bin/bash 1. oldal 1.1. A programfájlok szerkezete 1. Alapok A bash programok tulajnképpen egyszerű szöveges fájlok, amelyeket bármely szövegszerkesztő programmal megírhatunk. Alapvetően ugyanazokat a at használhatjuk

Részletesebben

Programozás C++ -ban 2007/1

Programozás C++ -ban 2007/1 Programozás C++ -ban 2007/1 1. Különbségek a C nyelvhez képest Több alapvető különbség van a C és a C++ programozási nyelvek szintaxisában. A programozó szempontjából ezek a különbségek könnyítik a programozó

Részletesebben

3. Osztályok II. Programozás II

3. Osztályok II. Programozás II 3. Osztályok II. Programozás II Bevezető feladat Írj egy Nevsor osztályt, amely legfeljebb adott mennyiségű nevet képes eltárolni. A maximálisan tárolható nevek számát a konstruktorban adjuk meg. Az osztályt

Részletesebben

Occam 1. Készítette: Szabó Éva

Occam 1. Készítette: Szabó Éva Occam 1. Készítette: Szabó Éva Párhuzamos programozás Egyes folyamatok (processzek) párhuzamosan futnak. Több processzor -> tényleges párhuzamosság Egy processzor -> Időosztásos szimuláció Folyamatok közötti

Részletesebben

Programozás C++ -ban

Programozás C++ -ban Programozás C++ -ban 4. Bevezetés az osztályokba 4.1 Az adatokhoz való hozzáférés ellenőrzése Egy C programban a struktúrák minden része mindig elérhető. Ugyanakkor ez nem a legkedvezőbb helyzet. Több

Részletesebben

és az instanceof operátor

és az instanceof operátor Java VIII. Az interfacei és az instanceof operátor Krizsán Zoltán Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2005. 10. 24. Java VIII.: Interface JAVA8 / 1 Az interfészről általában

Részletesebben

Java VIII. Az interfacei. és az instanceof operátor. Az interfészről általában. Interfészek JAVA-ban. Krizsán Zoltán

Java VIII. Az interfacei. és az instanceof operátor. Az interfészről általában. Interfészek JAVA-ban. Krizsán Zoltán Java VIII. Az interfacei és az instanceof operátor Krizsán Zoltán Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2005. 10. 24. Java VIII.: Interface JAVA8 / 1 Az interfészről általában

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

10-es számrendszer, 2-es számrendszer, 8-as számrendszer, 16-os számr. Számjegyek, alapműveletek.

10-es számrendszer, 2-es számrendszer, 8-as számrendszer, 16-os számr. Számjegyek, alapműveletek. Számrendszerek: 10-es számrendszer, 2-es számrendszer, 8-as számrendszer, 16-os számr. Számjegyek, alapműveletek. ritmetikai műveletek egész számokkal 1. Összeadás, kivonás (egész számokkal) 2. Negatív

Részletesebben

5. KOMBINÁCIÓS HÁLÓZATOK LEÍRÁSÁNAK SZABÁLYAI

5. KOMBINÁCIÓS HÁLÓZATOK LEÍRÁSÁNAK SZABÁLYAI 5. KOMBINÁCIÓS HÁLÓZATOK LEÍRÁSÁNAK SZABÁLYAI 1 Kombinációs hálózatok leírását végezhetjük mind adatfolyam-, mind viselkedési szinten. Az adatfolyam szintű leírásokhoz az assign kulcsszót használjuk, a

Részletesebben

1. Egyszerű (primitív) típusok. 2. Referencia típusok

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

LOGIKAI TERVEZÉS HARDVERLEÍRÓ NYELVEN. Dr. Oniga István

LOGIKAI TERVEZÉS HARDVERLEÍRÓ NYELVEN. Dr. Oniga István LOGIKI TERVEZÉS HRDVERLEÍRÓ NYELVEN Dr. Oniga István Digitális komparátorok Két szám között relációt jelzi, (egyenlő, kisebb, nagyobb). három közül csak egy igaz Egy bites komparátor B Komb. hál. fi

Részletesebben

Programozás C és C++ -ban

Programozás C és C++ -ban Programozás C és C++ -ban 1. Különbségek a C nyelvhez képest Több alapvető különbség van a C és a C++ programozási nyelvek szintaxisában. A programozó szempontjából ezek a különbségek könnyítik a programozó

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

Statikus adattagok. Statikus adattag inicializálása. Speciális adattagok és tagfüggvények. Általános Informatikai Tanszék

Statikus adattagok. Statikus adattag inicializálása. Speciális adattagok és tagfüggvények. Általános Informatikai Tanszék Speciális adattagok és tagfüek Miskolci Egyetem Általános Informatikai Tanszék CPP7 / 1 Statikus adattagok Bármely adattag lehet static tárolási osztályú A statikus adattag az osztály valamennyi objektuma

Részletesebben

Mintavételes szabályozás mikrovezérlő segítségével

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

Pénzügyi algoritmusok

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

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

A függvény kód szekvenciáját kapcsos zárójelek közt definiáljuk, a { } -ek közti részt a Bash héj kód blokknak (code block) nevezi.

A függvény kód szekvenciáját kapcsos zárójelek közt definiáljuk, a { } -ek közti részt a Bash héj kód blokknak (code block) nevezi. Függvények 1.Függvények...1 1.1.A függvény deníció szintaxisa... 1..Függvények érték visszatérítése...3 1.3.Környezettel kapcsolatos kérdések...4 1.4.Lokális változók használata...4 1.5.Rekurzív hívások...5.kód

Részletesebben

OOP. Alapelvek Elek Tibor

OOP. Alapelvek Elek Tibor OOP Alapelvek Elek Tibor OOP szemlélet Az OOP szemlélete szerint: a valóságot objektumok halmazaként tekintjük. Ezen objektumok egymással kapcsolatban vannak és együttműködnek. Program készítés: Absztrakciós

Részletesebben

Vezérlési szerkezetek

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

Operációs rendszerek. 9. gyakorlat. Reguláris kifejezések - alapok, BASH UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

Operációs rendszerek. 9. gyakorlat. Reguláris kifejezések - alapok, BASH UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED Reguláris kifejezések - alapok, BASH Operációs rendszerek 9. gyakorlat Szegedi Tudományegyetem Természettudományi és Informatikai Kar Csuvik Viktor

Részletesebben

Programozási alapismeretek 4.

Programozási alapismeretek 4. Programozási alapismeretek 4. Obejktum-Orientált Programozás Kis Balázs Bevezetés I. Az OO programozási szemlélet, egy merőben más szemlélet, az összes előző szemlélettel (strukturális, moduláris, stb.)

Részletesebben

Bevezetés a programozásba Előadás: Tagfüggvények, osztály, objektum

Bevezetés a programozásba Előadás: Tagfüggvények, osztály, objektum Bevezetés a programozásba 2 1. Előadás: Tagfüggvények, osztály, objektum Ismétlés int main() { string s; s; s= bla ; cout

Részletesebben

Programozás II. 3. gyakorlat Objektum Orientáltság C++-ban

Programozás II. 3. gyakorlat Objektum Orientáltság C++-ban Programozás II. 3. gyakorlat Objektum Orientáltság C++-ban Tartalom OOP ismétlés Osztályok létrehozása Adattagok láthatóságai, elnevezési ajánlások Konstruktor, destruktor this pointer Statikus és dinamikus

Részletesebben

Programozási nyelvek (ADA)

Programozási nyelvek (ADA) Programozási nyelvek (ADA) Kozsik Tamás előadása alapján Készítette: Nagy Krisztián 1. előadás Hasznos weboldal http://kto.web.elte.hu Program felépítése Programegységek (program unit) eljárások (procedure)

Részletesebben

Digitális Technika. Dr. Oniga István Debreceni Egyetem, Informatikai Kar

Digitális Technika. Dr. Oniga István Debreceni Egyetem, Informatikai Kar Digitális Technika Dr. Oniga István Debreceni Egyetem, Informatikai Kar 5. Laboratóriumi gyakorlat Kombinációs logikai hálózatok 2. Komparátorok Paritásvizsgáló áramkörök Összeadok Lab5_: Két bites komparátor

Részletesebben

Függvény pointer. Feladat: Egy tömbben soroljunk fel függvényeket, és hívjuk meg valahányszor.

Fü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észletesebben

Bevezetés a programozásba Előadás: Objektumszintű és osztályszintű elemek, hibakezelés

Bevezetés a programozásba Előadás: Objektumszintű és osztályszintű elemek, hibakezelés Bevezetés a programozásba 2 7. Előadás: Objektumszű és osztályszű elemek, hibakezelés ISMÉTLÉS Osztály class Particle { public: Particle( X, X, Y); virtual void mozog( ); ); virtual void rajzol( ) const;

Részletesebben

Hardver leíró nyelvek (HDL)

Hardver leíró nyelvek (HDL) Hardver leíró nyelvek (HDL) Benesóczky Zoltán 2004 A jegyzetet a szerzıi jog védi. Azt a BME hallgatói használhatják, nyomtathatják tanulás céljából. Minden egyéb felhasználáshoz a szerzı belegyezése szükséges.

Részletesebben

Verilog HDL ismertető 2. hét : 1. hét dia

Verilog HDL ismertető 2. hét : 1. hét dia BUDAPESTI MŰSZAKI ÉS GAZDASÁGTUDOMÁNYI EGYETEM VILLAMOSMÉRNÖKI ÉS INFORMATIKAI KAR MÉRÉSTECHNIKA ÉS INFORMÁCIÓS RENDSZEREK TANSZÉK Verilog HDL ismertető 2. hét : 1. hét + 15 25 dia Fehér Béla, Raikovich

Részletesebben

A JavaScript főbb tulajdonságai

A JavaScript főbb tulajdonságai JavaScript alapok A JavaScript főbb tulajdonságai Script nyelv azaz futás közben értelmezett, interpretált nyelv Legfőbb alkalmazási területe: a HTML dokumentumok dinamikussá, interaktívvá tétele Gyengén

Részletesebben

2019/02/11 10:01 1/10 Logika

2019/02/11 10:01 1/10 Logika 2019/02/11 10:01 1/10 Logika < Számítástechnika Logika Szerző: Sallai András Copyright Sallai András, 2011, 2012, 2015 Licenc: GNU Free Documentation License 1.3 Web: http://szit.hu Boole-algebra A Boole-algebrát

Részletesebben

Miután létrehoztuk, szeretnénk neki beszédesebb nevet adni. A név változtatásához a következőt kell tenni:

Miután létrehoztuk, szeretnénk neki beszédesebb nevet adni. A név változtatásához a következőt kell tenni: Excel objektumok Az excelben az osztályokat úgynevezett class modulokként hozzuk létre. Miután létrehoztuk, szeretnénk neki beszédesebb nevet adni. A név változtatásához a következőt kell tenni: View-ba

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

Rendszerszintű tervezés: SystemC I.

Rendszerszintű tervezés: SystemC I. Rendszerszintű tervezés: SystemC I. Czirkos Zoltán BME EET 2016. február 24. Miről lesz szó? Magas szintű tervezés programozási nyelvek segítségével HDL leírás (Verilog / VHDL) is emlékeztet egy programra

Részletesebben

C++ programozási nyelv

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

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

Az MSP430 mikrovezérlők digitális I/O programozása

Az MSP430 mikrovezérlők digitális I/O programozása 10.2.1. Az MSP430 mikrovezérlők digitális I/O programozása Az MSP430 mikrovezérlők esetében minden kimeneti / bemeneti (I/O) vonal önállóan konfigurálható, az P1. és P2. csoportnak van megszakítás létrehozó

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

BASH script programozás II. Vezérlési szerkezetek

BASH script programozás II. Vezérlési szerkezetek 06 BASH script programozás II. Vezérlési szerkezetek Emlékeztető Jelölésbeli különbség van parancs végrehajtása és a parancs kimenetére való hivatkozás között PARANCS $(PARANCS) Jelölésbeli különbség van

Részletesebben

Visual C++ osztály készítése, adattagok, és metódusok, láthatóság, konstruktor, destruktor. Objektum létrehozása, használata, öröklés.

Visual C++ osztály készítése, adattagok, és metódusok, láthatóság, konstruktor, destruktor. Objektum létrehozása, használata, öröklés. Visual C++ osztály készítése, adattagok, és metódusok, láthatóság, konstruktor, destruktor. Objektum létrehozása, használata, öröklés. Az osztály egy olyan típus leíró struktúra, amely tartalmaz adattagokat

Részletesebben

Bevezetés a programozásba I 10. gyakorlat. C++: alprogramok deklarációja és paraméterátadása

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

Web-technológia PHP-vel

Web-technológia PHP-vel Web-technológia PHP-vel A PHP programnyelv 2, futtatókörnyezet beálĺıtások Erős Bence February 26, 2013 Erős Bence () Web-technológia PHP-vel February 26, 2013 1 / 19 Szuperglobális változók $ GET : request

Részletesebben

3. Ezután a jobb oldali képernyő részen megjelenik az adatbázistábla, melynek először a rövid nevét adjuk meg, pl.: demo_tabla

3. Ezután a jobb oldali képernyő részen megjelenik az adatbázistábla, melynek először a rövid nevét adjuk meg, pl.: demo_tabla 1. Az adatbázistábla létrehozása a, Ha még nem hoztunk létre egy adatbázistáblát sem, akkor a jobb egérrel a DDIC-objekt. könyvtárra kattintva, majd a Létrehozás és az Adatbázistábla menüpontokat választva

Részletesebben

Kinek szól a könyv? A könyv témája A könyv felépítése Mire van szükség a könyv használatához? A könyvben használt jelölések. 1. Mi a programozás?

Kinek szól a könyv? A könyv témája A könyv felépítése Mire van szükség a könyv használatához? A könyvben használt jelölések. 1. Mi a programozás? Bevezetés Kinek szól a könyv? A könyv témája A könyv felépítése Mire van szükség a könyv használatához? A könyvben használt jelölések Forráskód Hibajegyzék p2p.wrox.com xiii xiii xiv xiv xvi xvii xviii

Részletesebben

Osztályok. 4. gyakorlat

Osztályok. 4. gyakorlat Osztályok 4. gyakorlat Az osztály fogalma Az objektumok formai leírása, melyek azonos tulajdonsággal és operációkkal rendelkeznek. Osztályból objektum készítését példányosításnak nevezzük. Minden objektum

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

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

Laborgyakorlat 3 A modul ellenőrzése szimulációval. Dr. Oniga István

Laborgyakorlat 3 A modul ellenőrzése szimulációval. Dr. Oniga István Laborgyakorlat 3 A modul ellenőrzése szimulációval Dr. Oniga István Szimuláció és verifikáció Szimulációs lehetőségek Start Ellenőrzés után Viselkedési Funkcionális Fordítás után Leképezés után Időzítési

Részletesebben

Már megismert fogalmak áttekintése

Már megismert fogalmak áttekintése Interfészek szenasi.sandor@nik.bmf.hu PPT 2007/2008 tavasz http://nik.bmf.hu/ppt 1 Témakörök Polimorfizmus áttekintése Interfészek Interfészek kiterjesztése Eseménykezelési módszerek 2 Már megismert fogalmak

Részletesebben

Globális operátor overloading

Globális operátor overloading Programozás II. 9. gyakorlat Operátor overloading 2: Unáris operátorok, globálisan megvalósított operátorok, > operátorok Kivételkezelés, IO library Globális operátor overloading Előző alkalommal

Részletesebben

Szoftvertervezés és -fejlesztés I.

Szoftvertervezés és -fejlesztés I. Szoftvertervezés és -fejlesztés I. Operátorok Vezérlési szerkezetek Gyakorlás 1 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 képezik.

Részletesebben

Programozás C++ -ban 2007/7

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

Részletesebben

Számítógépes Hálózatok. 7. gyakorlat

Számítógépes Hálózatok. 7. gyakorlat Számítógépes Hálózatok 7. gyakorlat Gyakorlat tematika Hibajelző kód: CRC számítás Órai / házi feladat Számítógépes Hálózatok Gyakorlat 7. 2 CRC hibajelző kód emlékeztető Forrás: Dr. Lukovszki Tamás fóliái

Részletesebben

OOP #14 (referencia-elv)

OOP #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észletesebben

Gregorics Tibor Modularizált programok C++ nyelvi elemei 1

Gregorics Tibor Modularizált programok C++ nyelvi elemei 1 Gregorics Tibor Modularizált programok C++ nyelvi elemei 1 Függvények és paraméterátadás A függvény egy olyan programblokk, melynek végrehajtását a program bármelyik olyan helyéről lehet kezdeményezni

Részletesebben

Programozási alapismeretek beadandó feladat: ProgAlap beadandó feladatok téma 99. feladat 1

Programozási alapismeretek beadandó feladat: ProgAlap beadandó feladatok téma 99. feladat 1 Programozási alapismeretek beadandó feladat: ProgAlap beadandó feladatok téma 99. feladat 1 Készítette: Gipsz Jakab Neptun-azonosító: A1B2C3 E-mail: gipszjakab@vilaghalo.hu Kurzuskód: IP-08PAED Gyakorlatvezető

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

Operációs rendszerek. 9. gyakorlat. BASH recap, reguláris kifejezések UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

Operációs rendszerek. 9. gyakorlat. BASH recap, reguláris kifejezések UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED BASH recap, reguláris kifejezések Operációs rendszerek 9. gyakorlat Szegedi Tudományegyetem Természettudományi és Informatikai Kar Csuvik Viktor

Részletesebben

5. Gyakorlat. struct diak {

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

Részletesebben

Informatika terméktervezőknek

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

Pelda öröklődésre: import java.io.*; import java.text.*; import java.util.*; import extra.*;

Pelda öröklődésre: import java.io.*; import java.text.*; import java.util.*; import extra.*; Java osztály készítése, adattagok, és metódusok, láthatóság, konstruktor, destruktor. Objektum létrehozása, használata, öröklés. ( Előfeltétel 12. Tétel ) Az osztály egy olyan típus leíró struktúra, amely

Részletesebben

Laborgyakorlat Logikai áramkörök számítógéppel segített tervezése (CAD)

Laborgyakorlat Logikai áramkörök számítógéppel segített tervezése (CAD) Laborgyakorlat Logikai áramkörök számítógéppel segített tervezése (CAD) Bevezetés A laborgyakorlatok alapvető célja a tárgy későbbi laborgyakorlataihoz szükséges ismeretek átadása, az azokban szereplő

Részletesebben

2018, Funkcionális programozás

2018, Funkcionális programozás Funkcionális programozás 6. előadás Sapientia Egyetem, Matematika-Informatika Tanszék Marosvásárhely, Románia mgyongyi@ms.sapientia.ro 2018, tavaszi félév Miről volt szó? Haskell modulok, kompilálás a

Részletesebben

A Gray-kód Bináris-kóddá alakításának leírása

A Gray-kód Bináris-kóddá alakításának leírása A Gray-kód Bináris-kóddá alakításának leírása /Mechatronikai Projekt II. házi feladat/ Bodogán János 2005. április 1. Néhány szó a kódoló átalakítókról Ezek az eszközök kiegészítő számlálók nélkül közvetlenül

Részletesebben

Digitális technika (VIMIAA02) Laboratórium 2

Digitális technika (VIMIAA02) Laboratórium 2 BUDAPESTI MŰSZAKI ÉS GAZDASÁGTUDOMÁNYI EGYETEM VILLAMOSMÉRNÖKI ÉS INFORMATIKAI KAR MÉRÉSTECHNIKA ÉS INFORMÁCIÓS RENDSZEREK TANSZÉK Digitális technika (VIMIAA02) Laboratórium 2 Fehér Béla Raikovich Tamás,

Részletesebben

Programozás C++ -ban

Programozás C++ -ban 8. Dinamikus objektumok Programozás C++ -ban Ahhoz hogy általános prolémákat is meg tudjunk oldani, szükség van arra, hogy dinamikusan hozhassunk létre vagy szüntethessünk meg objektumokat. A C programozási

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

Nyolcbites számláló mintaprojekt

Nyolcbites számláló mintaprojekt Nyolcbites számláló mintaprojekt 1. Bevezető A leírás egy nyolcbites számláló elkészítésének és tesztelésének lépéseit ismerteti. A számláló értéke az órajel felfutó élének hatására növekszik. A törlőgombbal

Részletesebben

Algoritmizálás és adatmodellezés tanítása 1. előadás

Algoritmizálás és adatmodellezés tanítása 1. előadás Algoritmizálás és adatmodellezés tanítása 1. előadás Algoritmus-leíró eszközök Folyamatábra Irányított gráf, amely csomópontokból és őket összekötő élekből áll, egyetlen induló és befejező éle van, az

Részletesebben

Kifejezések. Kozsik Tamás. December 11, 2016

Kifejezések. Kozsik Tamás. December 11, 2016 Kifejezések Kozsik Tamás December 11, 2016 Kifejezés versus utasítás C/C++: kifejezés plusz pontosvessző: utasítás kiértékeli a kifejezést jellemzően: mellékhatása is van például: értékadás Ada: n = 5;

Részletesebben

DIGITÁLIS TECHNIKA I

DIGITÁLIS TECHNIKA I DIGITÁLIS TECHNIKA I Dr. Kovács Balázs Dr. Lovassy Rita Dr. Pődör Bálint Óbudai Egyetem KVK Mikroelektronikai és Technológia Intézet 11. ELŐADÁS 1 PÉLDA: 3 A 8 KÖZÜL DEKÓDÓLÓ A B C E 1 E 2 3/8 O 0 O 1

Részletesebben

Bevezetés a programozásba I.

Bevezetés a programozásba I. Bevezetés a programozásba I. 6. gyakorlat C++ alapok, szövegkezelés Surányi Márton PPKE-ITK 2010.10.12. Forrásfájlok: *.cpp fájlok Fordítás: a folyamat, amikor a forrásfájlból futtatható állományt állítunk

Részletesebben

Bevezetés a Programozásba II 2. előadás. Adattípusok megvalósítása egységbe zárással. Adattípusok megvalósítása egységbe zárással

Bevezetés a Programozásba II 2. előadás. Adattípusok megvalósítása egységbe zárással. Adattípusok megvalósítása egységbe zárással Pázmány Péter Katolikus Egyetem Információs Technológiai és Bionikai Kar Bevezetés a Programozásba II 2. előadás Adattípusok megvalósítása egységbe zárással 2014.02.17. Giachetta Roberto groberto@inf.elte.hu

Részletesebben

500. AA Megoldó Alfréd AA 500.

500. AA Megoldó Alfréd AA 500. Programozás alapjai 2. NZH 2010.05.13. gyakorlat: / Hiány:0 ZH:0 MEGOLD IB.027/51. Hftest: 0 Minden beadandó megoldását a feladatlapra, a feladat után írja! A megoldások során feltételezheti, hogy minden

Részletesebben

Pénzügyi algoritmusok

Pénzügyi algoritmusok Pénzügyi algoritmusok A C++ programozás alapjai Sztringek Osztályok alapjai Sztringek Szöveges adatok kezelése Sztring Karakterlánc (string): Szöveges adat Karaktertömbként tárolva A szöveg végét a speciális

Részletesebben

Tájékoztató. Használható segédeszköz: -

Tájékoztató. Használható segédeszköz: - A 35/2016. (VIII. 31.) NFM rendelet szakmai és vizsgakövetelménye alapján. Szakképesítés, azonosító száma és megnevezése 54 481 06 Informatikai rendszerüzemeltető Tájékoztató A vizsgázó az első lapra írja

Részletesebben

Bevezetés az informatikába

Bevezetés az informatikába Bevezetés az informatikába 4. előadás Dr. Istenes Zoltán Eötvös Loránd Tudományegyetem Informatikai Kar Programozáselmélet és Szoftvertechnológiai Tanszék Matematikus BSc - I. félév / 2008 / Budapest Dr.

Részletesebben

Bevezetés a programozásba II. 8. Előadás: Osztályok, objektumok, osztályszintű metódusok

Bevezetés a programozásba II. 8. Előadás: Osztályok, objektumok, osztályszintű metódusok Bevezetés a programozásba II 8. Előadás: Osztályok, objektumok, osztályszintű metódusok vektor.h #ifndef VEKTOR_H #define VEKTOR_H class Vektor { int meret, *mut; public: Vektor(int meret); int szamlal(int

Részletesebben

1. Kombinációs hálózatok mérési gyakorlatai

1. Kombinációs hálózatok mérési gyakorlatai 1. Kombinációs hálózatok mérési gyakorlatai 1.1 Logikai alapkapuk vizsgálata A XILINX ISE DESIGN SUITE 14.7 WebPack fejlesztőrendszer segítségével és töltse be a rendelkezésére álló SPARTAN 3E FPGA ba:

Részletesebben

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

Járműfedélzeti rendszerek II. 4. előadás Dr. Bécsi Tamás Járműfedélzeti rendszerek II. 4. előadás Dr. Bécsi Tamás 6. Struktúrák A struktúra egy vagy több, esetleg különböző típusú változó együttese, amelyet a kényelmes kezelhetőség céljából önálló névvel látunk

Részletesebben