IV. A SystemC alapelemei
|
|
- István Király
- 4 évvel ezelőtt
- Látták:
Á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 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észletesebbenIII. 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észletesebbenA 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észletesebbenLaborgyakorlat 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észletesebbenJava 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észletesebben1. 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észletesebbenProgramozás II. 2. Dr. Iványi Péter
Programozás II. 2. Dr. Iványi Péter 1 C++ Bjarne Stroustrup, Bell Laboratórium Első implementáció, 1983 Kezdetben csak precompiler volt C++ konstrukciót C-re fordította A kiterjesztés alapján ismerte fel:.cpp.cc.c
RészletesebbenBevezeté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észletesebbenProgramozás C és C++ -ban
Programozás C és C++ -ban 2. További különbségek a C és C++ között 2.1 Igaz és hamis A C++ programozási nyelv a C-hez hasonlóan definiál néhány alap adattípust: char int float double Ugyanakkor egy új
RészletesebbenProgramozá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észletesebbenDigitá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észletesebbenJava programozási nyelv
Java programozási nyelv 2. rész Vezérlő szerkezetek Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet Soós Sándor 2005. szeptember A Java programozási nyelv Soós Sándor 1/23 Tartalomjegyzék
RészletesebbenJava 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észletesebbenC++ programozási nyelv Konstruktorok-destruktorok
C++ programozási nyelv Konstruktorok-destruktorok Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet Soós Sándor 2004. szeptember A C++ programozási nyelv Soós Sándor 1/20 Tartalomjegyzék
Részletesebben1. 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észletesebbenTö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észletesebbenProgramozá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észletesebben1. 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észletesebbenProgramozá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észletesebben3. 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észletesebbenOccam 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észletesebbenProgramozá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
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észletesebbenJava 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észletesebbenSzövegek C++ -ban, a string osztály
Szövegek C++ -ban, a string osztály A string osztály a Szabványos C++ könyvtár (Standard Template Library) része és bár az objektum-orientált programozásról, az osztályokról, csak később esik szó, a string
Részletesebben10-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észletesebben5. 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észletesebben1. Egyszerű (primitív) típusok. 2. Referencia típusok
II. A Java nyelv eszközei 1. Milyen eszközöket nyújt a Java a programozóknak Korábban már említettük, hogy a Java a C nyelvből alakult ki, ezért a C, C++ nyelvben járatos programozóknak nem fog nehézséget
RészletesebbenLOGIKAI 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észletesebbenProgramozá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észletesebbenProgramozás II. 4. Dr. Iványi Péter
Programozás II. 4. Dr. Iványi Péter 1 inline függvények Bizonyos függvények annyira rövidek, hogy nem biztos hogy a fordító függvényhívást fordít, hanem inkább az adott sorba beilleszti a kódot. #include
RészletesebbenStatikus 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észletesebbenMintavételes szabályozás mikrovezérlő segítségével
Automatizálási Tanszék Mintavételes szabályozás mikrovezérlő segítségével Budai Tamás budai.tamas@sze.hu http://maxwell.sze.hu/~budait Tartalom Mikrovezérlőkről röviden Programozási alapismeretek ismétlés
RészletesebbenPénzügyi algoritmusok
Pénzügyi algoritmusok A C++ programozás alapjai Az Integrált Fejlesztői Környezet C++ alapok Az Integrált Fejlesztői Környezet Visual Studio 2013 Community Edition Kitekintés: fordítás Preprocesszor Fordító
RészletesebbenA C programozási nyelv I. Bevezetés
A C programozási nyelv I. Bevezetés Miskolci Egyetem Általános Informatikai Tanszék A C programozási nyelv I. (bevezetés) CBEV1 / 1 A C nyelv története Dennis M. Ritchie AT&T Lab., 1972 rendszerprogramozás,
RészletesebbenA C programozási nyelv I. Bevezetés
A C programozási nyelv I. Bevezetés Miskolci Egyetem Általános Informatikai Tanszék A C programozási nyelv I. (bevezetés) CBEV1 / 1 A C nyelv története Dennis M. Ritchie AT&T Lab., 1972 rendszerprogramozás,
RészletesebbenA 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észletesebbenOOP. 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észletesebbenVezérlési szerkezetek
Vezérlési szerkezetek Szelekciós ok: if, else, switch If Segítségével valamely ok végrehajtását valamely feltétel teljesülése esetén végezzük el. Az if segítségével valamely tevékenység () végrehajtását
RészletesebbenOperá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észletesebbenProgramozá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észletesebbenBevezeté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észletesebbenProgramozá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észletesebbenProgramozá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észletesebbenDigitá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észletesebbenFüggvény pointer. Feladat: Egy tömbben soroljunk fel függvényeket, és hívjuk meg valahányszor.
Függvény pointer Több feladat közül futási időben döntöm el, hogy melyiket hajtom végre. A függvényre mutató pointer a függvény kódjának a címére mutat, azon keresztül meghívhatom a függvényt. A pointernek
RészletesebbenBevezeté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észletesebbenHardver 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észletesebbenVerilog 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észletesebbenA 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észletesebben2019/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észletesebbenMiutá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észletesebbenProgramozás I. gyakorlat
Programozás I. gyakorlat 1. gyakorlat Alapok Eszközök Szövegszerkesztő: Szintaktikai kiemelés Egyszerre több fájl szerkesztése pl.: gedit, mcedit, joe, vi, Notepad++ stb. Fordító: Szöveges file-ban tárolt
RészletesebbenRendszerszintű 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észletesebbenC++ 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észletesebbenProgramozás I. 5. Előadás: Függvények
Programozás I 5. Előadás: Függvények Függvény Egy alprogram Egy C program általában több kisméretű, könnyen értelmezhető függvényből áll Egy függvény megtalálható minden C programban: ez a main függvény
RészletesebbenAz 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észletesebben1. 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észletesebbenBASH 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észletesebbenVisual 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észletesebbenBevezetés a programozásba I 10. gyakorlat. C++: alprogramok deklarációja és paraméterátadása
Pázmány Péter Katolikus Egyetem Információs Technológiai Kar Bevezetés a programozásba I 10. gyakorlat C++: alprogramok deklarációja és paraméterátadása 2011.11.22. Giachetta Roberto groberto@inf.elte.hu
RészletesebbenWeb-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észletesebben3. 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észletesebbenKinek 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észletesebbenOsztá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észletesebben7. fejezet: Mutatók és tömbök
7. fejezet: Mutatók és tömbök Minden komolyabb programozási nyelvben vannak tömbök, amelyek gondos kezekben komoly fegyvert jelenthetnek. Először is tanuljunk meg tömböt deklarálni! //Tömbök használata
RészletesebbenBevezetés a programozásba. 8. Előadás: Függvények 2.
Bevezetés a programozásba 8. Előadás: Függvények 2. ISMÉTLÉS Helló #include using namespace std; int main() cout
RészletesebbenLaborgyakorlat 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észletesebbenMá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észletesebbenGlobá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észletesebbenSzoftvertervezé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észletesebbenProgramozá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észletesebbenSzá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észletesebbenOOP #14 (referencia-elv)
OOP #14 (referencia-elv) v1.0 2003.03.19. 21:22:00 Eszterházy Károly Főiskola Információtechnológia tsz. Hernyák Zoltán adj. e-mail: aroan@ektf.hu web: http://aries.ektf.hu/~aroan OOP OOP_14-1 - E jegyzet
RészletesebbenGregorics 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észletesebbenProgramozá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észletesebbenC programozási nyelv
C programozási nyelv Előfeldolgozó utasítások Dr Schuster György 2011 május 3 Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 1 / 15 A fordítás menete Dr Schuster György
RészletesebbenOperá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észletesebben5. Gyakorlat. struct diak {
Rövid elméleti összefoglaló 5. Gyakorlat Felhasználó által definiált adattípusok: A typedef egy speciális tárolási osztály, mellyel érvényes típusokhoz szinonim nevet rendelhetünk. typedef létező_típus
RészletesebbenInformatika terméktervezőknek
Informatika terméktervezőknek C# alapok Névterület (namespace) using Osztály (class) és Obejtumok Metódus (function, procedure, method) main() static void string[] arg Szintaxis // /* */ \n \t Névadások
RészletesebbenPelda ö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észletesebbenLaborgyakorlat 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észletesebben2018, 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észletesebbenA 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észletesebbenDigitá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észletesebbenProgramozá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észletesebbenC programozás. 6 óra Függvények, függvényszerű makrók, globális és
C programozás 6 óra Függvények, függvényszerű makrók, globális és lokális változók 1.Azonosítók A program bizonyos összetevőire névvel (azonosító) hivatkozunk Első karakter: _ vagy betű (csak ez lehet,
RészletesebbenNyolcbites 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észletesebbenAlgoritmizá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észletesebbenKifejezé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észletesebbenDIGITÁ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észletesebbenBevezeté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észletesebbenBevezeté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észletesebben500. 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észletesebbenPé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észletesebbenTá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észletesebbenBevezeté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észletesebbenBevezeté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észletesebben1. 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észletesebbenJá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