Bitmélység, lebegőpontos- és fixpontos formátum
|
|
- János Soós
- 7 évvel ezelőtt
- Látták:
Átírás
1 Bitmélység, lebegőpontos- és fixpontos formátum Beágyazott rendszereknél jellemző, a PC programozással ellentétben, hogy külön figyelmet kell szentelni a bitmélységnek és a lebegőpontos (floating poing) - fixpontos (fixed point) adatformátumokra és konvertálásokra. Ez azért van, mert az MC-k és DSPk aritmetikája (ALU egysége) sok esetben nem 64bites lebegőpontos, hanem 16 vagy 32 bites, és fixpontos. Persze 16bites maggal is lehet 32 és 64 bites műveleteket végezni, továbbá fixpontos maggal is lehet lebegőpontos műveleteket számoltatni, de az általában többszörösen (8x 50x) lassúbb,ugyanis több szekvenciális utasítással kell őket kiszámolni. Viszont ezeknél a rendszereknél a műveletek zöménél nincs is szükség nagy bitmélységre, és lebegőpontos számításra. Például ha az AD/DA konverterek bitesek, és fixpontosak, akkor fölösleges lenne ezeket a számokat 32 vagy 64biten tárolni, lebegőpontossá alakítani, és akképpen műveleteket végezni velük. Szükségképpen oda kell figyelni a kisebb bitmélységű műveleteknél a kerekítési és integrációs hibákra. A fixpontos számoknál pedig a skálázásra. Ott a tört számokat Q formátumokban szokták értelmezni. Ez azt jelenti, hogy meg van határozva hogy hány bit az egész rész, és hány bit marad a tört résznek. Például 1Q15 formátumnál az egész résznek csak 1 bit van (1 bit vagy előjel bit, a tört résznek 15 bit), akkor a szám [- 1 1] tartományon belül kell, hogy maradjon a számítások alatt. Ez különösebben problémát okoz az IIR szűrőknél, ezért is találták ki a biquad szerkezetet. Típusok Lebegőpontos típusokból legrövidebb 32bites létezik (float) a 64bites mellett (double). Míg fixpontosból létezik 8 bites (char), 16 bites (int), 32 bites (long int), 64 bites (long long). Megjegyzés: 32 bites processzorban az int is 32 bites. Javasolt minden esetben leellenőrizni az adott környezetben a használt változók helyes deklarálását. Integrációs hibák, példa A következőkben egy példát láthatunk az integrációs hibákra a különböző formátumokra. Példánkban veszünk egy dt=0,0001 számot, melyet 1000 szer összeadunk, és leellenőrizzünk, hogy mennyivel tér el a dt*1000=0,1 pontos értékről. Figyeljük meg nem csak az integrált összeg tér el a pontos értéktől, hanem már a dt változó értéke sem tudta pontosan felvenni a 0,0001 értéket. %% example parameters clc; clear; format long; DT = ; N = 1000; T = DT*N; %% 64bit floating point disp('64bit floating point') ti = 0; for i = 1:N, ti = ti + DT; end
2 disp('dt = '); disp(dt); disp('ti = '); disp(ti); disp('ti - t = '); disp(ti-t); %% 32bit floating point disp('32bit floating point') dt = single(dt); ti = single(0); for i = 1:N, ti = ti + dt; end disp('dt = '); disp(dt); disp('ti = '); disp(ti); disp('ti - t = '); disp(ti-t); %% 32bit fixed point disp('32bit fixed point') intmax = double(intmax('int32')); dt = int32(dt*intmax); ti = int32(0); for i = 1:N, ti = ti + dt; end disp('dt = '); disp(double(dt)/intmax); disp('ti = '); disp(double(ti)/intmax); disp('ti - t = '); disp(double(ti)/intmax - T); %% 16bit fixed point disp('16bit fixed point') intmax = double(intmax('int16')); dt = int16(dt*intmax); ti = int16(0); for i = 1:N, ti = ti + dt; end disp('dt = '); disp(double(dt)/intmax); disp('ti = '); disp(double(ti)/intmax); disp('ti - t = '); disp(double(ti)/intmax - T); A következő táblázat mutatja az eredményeket Aritmetikai forma Alapszám (dt) Integrált szám (ti) Hiba (ti t) Hiba nagyságrend 64bit floating point e e , % 32bit floating point e e , 10-3 % 32bit fixed point (Q31) e e , 10-4 % 16bit fixed point (Q15) e , 10%
3 FFT példa Mikrovezérlőknél sem ritka feladat, hogy a digitális jeleket spektrálisan kell elemezni. Legtöbbször valamilyen FFT alapú spektrumot szoktak alkalmazni, mivel relatív kicsi a erőforrás igénye a többihez módszerhez képest. Ingyen letölthető és jól használható a C-ben irt Kiss FFT, ezért példánkban ezt fogjuk tesztelni. mivel jeleket analizálni Matlabban a legkézenfekvőbb, ezért innen fogjuk meghívni a Kiss FFT-t. Első lépésként meg kell írni a C-MEX interfészt (kiss_fft_m.c), majd azt lefordítani MEX fájlba. A következő képen vannak a forrásfájlok rendezve, a Kiss FFT forráskódja a kissfft_c könyvtárban: Kiss_fft_m.c // includes #include<mex.h> #include "kiss_fft.h" #include "tools\kiss_fftr.h" // function declaration doublemagnitude(kiss_fft_scalar real,kiss_fft_scalar imag,int nx); double kissfftscalar_to_double(kiss_fft_scalar x); kiss_fft_scalar double_to_kissfftscalar(double x); // MEX main function voidmexfunction( int nlhs, mxarray *plhs[], int nrhs, const mxarray *prhs[] ) { // declaration double *x, *s, temp; int i, nx, ns; kiss_fft_scalar *xfft; kiss_fft_cpx* scpx;
4 kiss_fftr_cfg cfgfftr; // check inputs if(nrhs!=1) mexerrmsgtxt("1 input required."); if(!mxisdouble(prhs[0]) mxiscomplex(prhs[0])!mxgetn(prhs[0])==1) mexerrmsgtxt("input 1 must be a noncomplex [Mx1] double."); // pointers to inputs x = mxgetpr(prhs[0]); // signal nx = (int)mxgetm(prhs[0]); // signal size ns = (int)(nx/2+1); // pointers to outputs plhs[0] = mxcreatedoublematrix(ns,1, mxreal); s = mxgetpr(plhs[0]); // debug print mexprintf("kiss fft, "); #ifdef FIXED_POINT # if (FIXED_POINT == 32) mexprintf("fixed point 32bit\n"); # else mexprintf("fixed point 16bit\n"); # endif #else mexprintf("floating point 32bit\n"); #endif // dynamic variable allocation scpx = calloc(nx, sizeof(scpx)); xfft = calloc(nx, sizeof(xfft)); cfgfftr = kiss_fftr_alloc(nx,0,0,0); // calculation for(i=0; i<nx; i++){ xfft[i] = double_to_kissfftscalar(x[i]); kiss_fftr(cfgfftr,xfft,scpx); for(i=0; i<ns; i++){ temp = magnitude(scpx[i].r,scpx[i].i,nx); s[i] = temp; s[0] = s[0]/2; // remove half band correction // free
5 KISS_FFT_FREE( cfgfftr ); free( xfft ); free( scpx ); // sub functions #define Q15_MAX_VALUE #define Q31_MAX_VALUE kiss_fft_scalar double_to_kissfftscalar(double x) { #ifdef FIXED_POINT # if (FIXED_POINT == 32) // define kiss_fft_scalar int32_t kiss_fft_scalar y = (kiss_fft_scalar)(x*q31_max_value); # else // define kiss_fft_scalar int16_t kiss_fft_scalar y = (kiss_fft_scalar)(x*q15_max_value); # endif #else // define kiss_fft_scalar float kiss_fft_scalar y = (kiss_fft_scalar)x; #endif return y; double kissfftscalar_to_double(kiss_fft_scalar x) { #ifdef FIXED_POINT # if (FIXED_POINT == 32) // define kiss_fft_scalar int32_t double y = (double)((double)x/q31_max_value ); # else // define kiss_fft_scalar int16_t double y = (double)((double)x/q15_max_value ); # endif #else // define kiss_fft_scalar float double y = (double)x;
6 #endif return y; double magnitude(kiss_fft_scalar real,kiss_fft_scalar imag,int nx) { double cpxf, mag; cpxf = kissfftscalar_to_double(real); mag = cpxf * cpxf; cpxf = kissfftscalar_to_double(imag); mag += cpxf * cpxf; mag = 2*sqrt(mag); // 2* - half band correction #ifndef FIXED_POINT mag = mag/nx; #endif return mag; Ahogy látható 3 módban is fordíthatjuk az interfész C programot, amelyet a setup.h átírásával/cserélésével automatizáltunk. A három féle fordításhoz irtunk egy Matlab szkriptet, amely beállítja a setup.h t, és meghívja a MEX compáljert. start_build.m clc; clear % define path of KISS FFT C source code srcpath = '..\kissfft_c\'; % define MEX output names outnames = {'kiss_fft_m_f32','kiss_fft_m_i32','kiss_fft_m_i16'; % define setup.h names for every mode setupnames = {'setup_f32.h','setup_i32.h','setup_i16.h'; for i = 1:length(outNames) % replace setup.h in source code (switch modes f32/i32/i16) copyfile(setupnames{i,[srcpath 'setup.h']); % assembly mex compile command mexcmd = ['mex -I' srcpath ' kiss_fft_m.c ' srcpath 'tools\kiss_fftr.c ' srcpath 'kiss_fft.c -output 'outnames{i]; disp(mexcmd); % evaluate command eval(mexcmd);
7 % check existence of result MEX file if exist([outnames{i '.mexw64'],'file') disp('build succeeded!') else disp('build failed!'); end end Végül teszteljük a MEX programokat egy példa jellel: test_kiss_fft_m.m clc; clear; close all; %% generate test signal: 0.1 * DC * 30Hz sinus * 190Hz sinus fs = 1000; t = [1:2^10]'./fs; x = * sin(t*2*pi*30) * sin(t*2*pi*190); %% windowing win = hann(length(x)); xwin = x.*win; %% calculate spectrum with kiss_fft_m ps(:,1) = matlab_fft(xwin); casename{1 = 'MATLAB f64'; ps(:,2) = kiss_fft_m_f32(xwin); casename{2 = 'KISS f32'; ps(:,3) = kiss_fft_m_i32(xwin); casename{3 = 'KISS i32'; ps(:,4) = kiss_fft_m_i16(xwin); casename{4 = 'KISS i16'; %% windowing gain effect correction ps = ps / mean(win); %% plot compare spectrum fa = [1:size(ps,1)].* (fs/length(x)); semilogy(fa,ps,'linewidth',2); grid on; legend(casename); Ahol a Matlab FFT megfelelője: matlab_fft.m function sp = matlab_fft(x) n = length(x); s = fft(x); hn = n/2+1; sp = 2*abs(s(1:hn))/n; sp(1) = sp(1)/2;
8 end Eredményként a következő ábrát kapjuk, ahol láthatóak az FFT eredményei közötti eltérések a különböző módok között: Következtetések: F64 F32 I32 I16 Végig folyamatos (10-11 tartományban is), ehhez viszonyítjuk a többi eredményt 10-8 érték körül már eltéréseket mutat, 10-8 alatt pedig erősen zajos 10-8 érték körüleléri a kvantizációs határát (0,1,2, értékeket), és lépcsőzetes lesz 10-4 alatt már eléri a nullát, az alatt nem képes mutatni semmit.
Mechatronika és mikroszámítógépek 2017/2018 I. félév. Bevezetés a C nyelvbe
Mechatronika és mikroszámítógépek 2017/2018 I. félév Bevezetés a C nyelvbe A C programozási nyelv A C egy általános célú programozási nyelv, melyet Dennis Ritchie fejlesztett ki Ken Thompson segítségével
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
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ó
Programozás C nyelven FELÜLNÉZETBŐL elhullatott MORZSÁK. Sapientia EMTE
Programozás C nyelven FELÜLNÉZETBŐL elhullatott MORZSÁK Sapientia EMTE 2015-16 1 Felülnézet 1 Feltételes fordítás #if, #else, #elif, #endif, #ifdef, #ifndef stb. Felülnézet 2 #include: hatására a preprocesszor
Fixpontos és lebegőpontos DSP Számrendszerek
Fixpontos és lebegőpontos DSP Számrendszerek Ha megnézünk egy DSP kinálatot, akkor észrevehetjük, hogy két nagy család van az ajánlatban, az ismert adattipus függvényében. Van fixpontos és lebegőpontos
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
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
A PROGAMOZÁS ALAPJAI 1. Függvény mint függvény paramétere. Függvény mint függvény paramétere. Függvény mint függvény paramétere
2012. április 10. A PROGAMOZÁS ALAPJAI 1 Vitéz András egyetemi adjunktus BME Híradástechnikai Tanszék vitez@hit.bme.hu Miről lesz ma szó? alaki szabályok használata - mintapélda használata - mintapélda
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
Digitális technika VIMIAA01 9. hét Fehér Béla BME MIT
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 VIMIAA01 9. hét Fehér Béla BME MIT Eddig Tetszőleges
Digitális technika VIMIAA01 9. hét
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 VIMIAA01 9. hét Fehér Béla BME MIT Eddig Tetszőleges
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
% % MATLAB alapozó % % 2009.12.16., Földváry Lóránt % 2014.01.29. Laky Piroska (kiegészítés)
% % MATLAB alapozó % % 2009.12.16., Földváry Lóránt % 2014.01.29. Laky Piroska (kiegészítés) %% mindennek a kulcsa: help és a lookfor utasítás (+doc) % MATLAB alatt help % help topics - témakörök help
ISA szimulátor objektum-orientált modell (C++)
Budapesti Műszaki és Gazdaságtudományi Egyetem ISA szimulátor objektum-orientált modell (C++) Horváth Péter Elektronikus Eszközök Tanszéke 2015. február 12. Horváth Péter ISA szimulátor objektum-orientált
Programozás alapjai C nyelv 4. gyakorlat. Mit tudunk már? Feltételes operátor (?:) Típus fogalma char, int, float, double
Programozás alapjai C nyelv 4. gyakorlat Szeberényi Imre BME IIT Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I. 2005.10.10.. -1- Mit tudunk már? Típus fogalma char, int, float,
5-6. ea Created by mrjrm & Pogácsa, frissítette: Félix
2. Adattípusonként különböző regisztertér Célja: az adatfeldolgozás gyorsítása - különös tekintettel a lebegőpontos adatábrázolásra. Szorzás esetén karakterisztika összeadódik, mantissza összeszorzódik.
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,
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ő
Információs Technológia
Információs Technológia A C programozási nyelv (Típusok és operátorok) Fodor Attila Pannon Egyetem Műszaki Informatika Kar Villamosmérnöki és Információs Rendszerek Tanszék foa@almos.vein.hu 2010 szeptember
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
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
1. Az utasítás beolvasása a processzorba
A MIKROPROCESSZOR A mikroprocesszor olyan nagy bonyolultságú félvezető eszköz, amely a digitális számítógép központi egységének a feladatait végzi el. Dekódolja az uatasításokat, vezérli a műveletek elvégzéséhez
RPC Remote Procedure Call Távoli eljárás hívás
RPC Remote Procedure Call Távoli eljárás hívás Hagyományos eljáráshívás: Count = read (fd, buf, nbytes) Paraméterek átadásának a típusai: - Érték szerinti átadás - Referencia szerinti átadás - Másoló/visszatöltő
Az INTEL D-2920 analóg mikroprocesszor alkalmazása
Az INTEL D-2920 analóg mikroprocesszor alkalmazása FAZEKAS DÉNES Távközlési Kutató Intézet ÖSSZEFOGLALÁS Az INTEL D 2920-at kifejezetten analóg feladatok megoldására fejlesztették ki. Segítségével olyan
Programozás 3. Dr. Iványi Péter
Programozás 3. Dr. Iványi Péter 1 Egy operandus művelet operandus operandus művelet Operátorok Két operandus operandus1 művelet operandus2 2 Aritmetikai műveletek + : összeadás -: kivonás * : szorzás /
C++ programok fordítása
C++, 1/ 33 C++ programok fordítása Pataki Norbert 2012. február 24. C++, 2/ 33 Információk Pataki Norbert, patakino@elte.hu http://patakino.web.elte.hu/levelezo Jegy: gyakorlat, Szűgyi Zalán C++, 3/ 33
MATLAB alapismeretek II.
Alkalmazott Informatikai Intézeti Tanszék MŰSZAKI INFORMATIKA Dr.Dudás László 0. MATLAB alapismeretek II. Feladat: Plottoljuk a sin(x) függvényt a 0 x 4π tartományban Rajzoltassuk az e -x/3 sin(x) függvényt
Programozás 6. Dr. Iványi Péter
Programozás 6. Dr. Iványi Péter 1 Előfeldolgozás része Makrók A forrás kódban elvégzi a helyettesítéseket a fordító Csak egyszer végez helyettesítést Nem olyan makrók, mint a LISP vagy Scheme esetén Csak
S z á m í t ó g é p e s a l a p i s m e r e t e k
S z á m í t ó g é p e s a l a p i s m e r e t e k 7. előadás Ami eddig volt Számítógépek architektúrája Alapvető alkotóelemek Hardver elemek Szoftver Gépi kódtól az operációs rendszerig Unix alapok Ami
12. gyakorlat Enum; Tárolási osztályok Preprocesszor utasítások; Moduláris programozás
12. gyakorlat Enum; Tárolási osztályok Preprocesszor utasítások; Moduláris programozás Házi (f0174) Egy sor kiíratási formátuma: "nev: %s; pont: %d;". Olvasd be a kiírt számot úgy, ha tudod, hogy a kiírt
Bevezetés Kiíratás Beolvasás Formázás Fájlkezelés Gyakorló feladatok C++ I/O. Bevezetés. Izsó Tamás február 20. Izsó Tamás C++ I/O / 1
C++ I/O Bevezetés Izsó Tamás 2014. február 20. Izsó Tamás C++ I/O / 1 Section 1 Bevezetés Izsó Tamás C++ I/O / 2 Irodalom Izsó Tamás C++ I/O / 3 Paraméter illesztés függvénynév túlterhelés esetén 1 Pontos
ORACLE. SYS: rendszergazda SCOTT: demonstrációs adatbázis, táblái: EMP (dolgozó), DEPT (osztály) "közönséges" felhasználók
Oracle SQL*Plus SQL ORACLE Felhasználók: SYS: rendszergazda SCOTT: demonstrációs adatbázis, táblái: EMP (dolgozó), DEPT (osztály) "közönséges" felhasználók Adatszótár: metaadatokat tartalmazó, csak olvasható
Labor gyakorlat Mikrovezérlők
Labor gyakorlat Mikrovezérlők ATMEL AVR ARDUINO 1. ELŐADÁS BUDAI TAMÁS Tartalom Labor 2 mikrovezérlők modul 2 alkalom 1 mikrovezérlők felépítése, elmélet 2 programozás, mintaprogramok Értékelés: a 2. alkalom
Labor gyakorlat Mikrovezérlők
Labor gyakorlat Mikrovezérlők ATMEL AVR ARDUINO 1. ELŐADÁS BUDAI TAMÁS 2015. 09. 06. Tartalom Labor 2 mikrovezérlők modul 2 alkalom 1 mikrovezérlők felépítése, elmélet 2 programozás, mintaprogramok Értékelés:
PROGRAMOZÁSI NYELVEK - CPP. GYAKORLAT JEGYZET
PROGRAMOZÁSI NYELVEK - CPP. GYAKORLAT JEGYZET Szerkesztette: Balogh Tamás 2013. március 31. Ha hibát találsz, kérlek jelezd a info@baloghtamas.hu e-mail címen! Ez a Mű a Creative Commons Nevezd meg! -
Mit tudunk már? Programozás alapjai C nyelv 4. gyakorlat. Legnagyobb elem keresése. Feltételes operátor (?:) Legnagyobb elem keresése (3)
Programozás alapjai C nyelv 4. gyakorlat Szeberényi Imre BME IIT Mit tudunk már? Típus fogalma char, int, float, double változók deklarációja operátorok (aritmetikai, relációs, logikai,
Tesztelési feladatok és kihívások a FALCON projektben
Tesztelési feladatok és kihívások a FALCON projektben Búr Márton Szoftver Verifikáció és Validáció 2016.12.07. Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék
Járműfedélzeti rendszerek II. 1. előadás Dr. Bécsi Tamás
Járműfedélzeti rendszerek II. 1. előadás Dr. Bécsi Tamás A tárgy órái Előadás hetente (St101) csüt. 8:15 Bécsi Tamás C elmélet Ajánlott irodalom Dennis Ritchie: A C programozási nyelv Gyakorlat hetente
Assembly programozás: 2. gyakorlat
Assembly programozás: 2. gyakorlat Számrendszerek: Kettes (bináris) számrendszer: {0, 1} Nyolcas (oktális) számrendszer: {0,..., 7} Tízes (decimális) számrendszer: {0, 1, 2,..., 9} 16-os (hexadecimális
Járműfedélzeti rendszerek II. 2. előadás Dr. Bécsi Tamás
Járműfedélzeti rendszerek II. 2. előadás Dr. Bécsi Tamás 4.11. A C előfeldolgozó rendszer A fordítás első lépése a C esetében a különböző nyelvi kiterjesztések feldolgozása: másik állomány tartalmának
Függvények. Programozás I. Hatwágner F. Miklós november 16. Széchenyi István Egyetem, Gy r
Programozás I. Széchenyi István Egyetem, Gy r 2014. november 16. Áttekintés kel kapcsolatos fogalmak deklaráció Több, kompatibilis változat is elképzelhet. Meg kell el znie a fv. hívását. Mindenképp rögzíti
Programozás C nyelven (9. ELŐADÁS) Sapientia EMTE
Programozás C nyelven (9. ELŐADÁS) Sapientia EMTE 2015-16 1 POINTEREK ismétlés double x = 3.14, *px = &x; unsigned char *p, *p1, *p2; p1 = (unsigned char*)px; p2 = p1 + sizeof(double); for ( p = p2-1 ;
Tartalomjegyzék. Általános Információ! 2. Felhasználói dokumentáció! 3. Feladat! 3. Környezet! 3. Használat! 3. Bemenet! 3. Példa!
Tartalomjegyzék Általános Információ! 2 Felhasználói dokumentáció! 3 Feladat! 3 Környezet! 3 Használat! 3 Bemenet! 3 Példa! 3 A program eredménye! 3 Példa! 3 Hibalehetőségek! 3 Példa! 3 Fejlesztői dokumentáció!
Fejlett programozási nyelvek C++ Iterátorok
Fejlett programozási nyelvek C++ Iterátorok 10. előadás Antal Margit 2009 slide 1 Témakörök I. Bevezetés II. Iterátor definíció III. Iterátorok jellemzői IV. Iterátorkategóriák V. Iterátor adapterek slide
0.1. Mi az a standard be- és kimenet?... 1. 0.2. A két mintafeladat leírása
KöMaL Technikai tanácsok az I- és S-jelű pontversenyhez A standard be- és kimenet kezelése Tartalomjegyzék 0.1. Mi az a standard be- és kimenet?............................. 1 0.2. A két mintafeladat leírása.................................
2. Fejezet : Számrendszerek
2. Fejezet : Számrendszerek The Architecture of Computer Hardware and Systems Software: An Information Technology Approach 3. kiadás, Irv Englander John Wiley and Sons 2003 Wilson Wong, Bentley College
Programozás C nyelven (3. ELŐADÁS) Sapientia EMTE
Programozás C nyelven (3. ELŐADÁS) Sapientia EMTE 2015-16 Classic Empire - A turn Based Wargame Classic Empire is a real time, multiplayer, Internet-based game, featuring military, diplomatic, and economic
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
Programozás alapjai C nyelv 10. gyakorlat. Standard függvények. Union
Programozás alapjai C nyelv 10. gyakorlat Szeberényi Imre BME IIT Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I. 2005.11.21. -1- Standard függvények Standard függvények amelyeket
Mérési útmutató. A/D konverteres mérés. // Első lépésként tanulmányozzuk a digitális jelfeldolgozás előnyeit és határait.
Mérési útmutató A/D konverteres mérés 1. Az A/D átalakítók főbb típusai és rövid leírásuk // Első lépésként tanulmányozzuk a digitális jelfeldolgozás előnyeit és határait. Csoportosítás polaritás szempontjából:
SDI ALKALMAZÁS I. Workspace / ResourceView / Toolbar / IDR_MAINFRAME. Workspace / ResourceView / Menu / IDR_MAINFRAME
SDI ALKALMAZÁS I. Feladat: Készítsünk egy olyan alkalmazást, amely az év végi adózás céljából rögzíti egyetlen évközi bevételnek az adatait: bruttó jövedelem adóel ı leg nettó bevétel jövedelem forrása
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
Bevezetés a számítástechnikába
Bevezetés a számítástechnikába Beadandó feladat, kódrendszerek Fodor Attila Pannon Egyetem Műszaki Informatikai Kar Villamosmérnöki és Információs Rendszerek Tanszék foa@almos.vein.hu 2010 október 12.
Összeadás BCD számokkal
Összeadás BCD számokkal Ugyanúgy adjuk össze a BCD számokat is, mint a binárisakat, csak - fel kell ismernünk az érvénytelen tetrádokat és - ezeknél korrekciót kell végrehajtani. A, Az érvénytelen tetrádok
PROGRAMOZÁSI NYELVEK - CPP. GYAKORLAT JEGYZET
PROGRAMOZÁSI NYELVEK - CPP. GYAKORLAT JEGYZET Szerkesztette: Balogh Tamás 2013. április 12. Ha hibát találsz, kérlek jelezd a info@baloghtamas.hu e-mail címen! Ez a Mű a Creative Commons Nevezd meg! -
Matematikai alapok. Dr. Iványi Péter
Matematikai alapok Dr. Iványi Péter Számok A leggyakrabban használt adat típus Egész számok Valós számok Bináris számábrázolás Kettes számrendszer Bitek: 0 és 1 Byte: 8 bit 128 64 32 16 8 4 2 1 1 1 1 1
Programozás BMEKOKAA146. Dr. Bécsi Tamás 2. előadás
Programozás BMEKOKAA146 Dr. Bécsi Tamás 2. előadás Szintaktikai alapok Alapvető típusok, ismétlés C# típus.net típus Méret (byte) Leírás byte System.Byte 1Előjel nélküli 8 bites egész szám (0..255) char
Programozás alapjai 2.Gy: A C nyelv alapjai P R O
Programozás alapjai 2.Gy: A C nyelv alapjai. P R O A L A G 1/32 B ITv: MAN 2018.10.02 Code::Blocks Indítsa el mindenki! 2/32 1 Code::Blocks Új projekt 2 3 4 5 3/32 Code::Blocks Forráskód Kód fordítása:
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,
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,
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
Kifejezések. Kozsik Tamás. December 11, 2016
Kifejezések Kozsik Tamás December 11, 2016 Kifejezések Lexika Szintaktika Szemantika Lexika azonosítók (változó-, metódus-, típus- és csomagnevek) literálok operátorok, pl. + zárójelek: (), [], {},
Információs Technológia
Információs Technológia (Struktúra, mutatók, függvényhívás) Fodor Attila Pannon Egyetem Műszaki Informatika Kar Villamosmérnöki és Információs Rendszerek Tanszék foa@almos.vein.hu 2010 október 14/21. Struktúra
Programozás C++ -ban 2007/4
Programozás C++ -ban 2007/4 1. Az adatokhoz való hozzáférés ellenőrzése Egy C programban a struktúrák minden része mindig elérhető. Ugyanakkor ez nem a legkedvezőbb helyzet. Több szempontból is hasznos
SQL*Plus. Felhasználók: SYS: rendszergazda SCOTT: demonstrációs adatbázis, táblái: EMP (dolgozó), DEPT (osztály) "közönséges" felhasználók
SQL*Plus Felhasználók: SYS: rendszergazda SCOTT: demonstrációs adatbázis, táblái: EMP dolgozó), DEPT osztály) "közönséges" felhasználók Adatszótár: metaadatokat tartalmazó, csak olvasható táblák táblanév-prefixek:
Dr. Oniga István DIGITÁLIS TECHNIKA 2
Dr. Oniga István DIGITÁLIS TECHNIKA 2 Számrendszerek A leggyakrabban használt számrendszerek: alapszám számjegyek Tízes (decimális) B = 10 0, 1, 8, 9 Kettes (bináris) B = 2 0, 1 Nyolcas (oktális) B = 8
Matlab Fuzzy Logic Toolbox
Matlab Fuzzy Logic Toolbox The Future looks Fuzzy Newsweek, May, 28, 1990. A fuzzy irányítási rendszerek vizsgálatára Windows alatt futó Matlab programcsomag szimulációs eszközeit és a Matlab-ra ráépülő
7.2.2. A TMS320C50 és TMS320C24x assembly programozására példák
7.2.2. A TMS320C50 és TMS320C24x assembly programozására példák A TMS320C50 processzor Ez a DSP processzor az 1.3. fejezetben lett bemutatva. A TMS320C50 ##LINK: http://www.ti.com/product/tms320c50## egy
Programozás alapjai C nyelv 5. gyakorlat. Írjunk ki fordítva! Írjunk ki fordítva! (3)
Programozás alapjai C nyelv 5. gyakorlat Szeberényi Imre BME IIT Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I. 2005.10.17. -1- Tömbök Azonos típusú adatok tárolására. Index
Programozás alapjai. (GKxB_INTM023) Dr. Hatwágner F. Miklós október 11. Széchenyi István Egyetem, Gy r
Programozás alapjai (GKxB_INTM023) Széchenyi István Egyetem, Gy r 2018. október 11. Függvények Mi az a függvény (function)? Programkód egy konkrét, azonosítható, paraméterezhet, újrahasznosítható blokkja
Bevezetés a programozásba Előadás: A const
Bevezetés a programozásba 2 6. Előadás: A const ISMÉTLÉS Interface - Implementation struct Particle { int x,y; unsigned char r,g,b; void rajzol(); }; }; void Particle::rajzol() { gout
Programozás C- és Matlab nyelven C programozás kurzus BMEKOKAM603 Előfeldolgozó rendszer Tömbök. Dr. Bécsi Tamás 4. Előadás
Programozás C- és Matlab nyelven C programozás kurzus BMEKOKAM603 Előfeldolgozó rendszer Tömbök Dr. Bécsi Tamás 4. Előadás A?: operátor Nézzük meg a következő kifejezést: if (a>b) z=a; else z=b; Ez felírható
Memóriák - tárak. Memória. Kapacitás Ár. Sebesség. Háttértár. (felejtő) (nem felejtő)
Memóriák (felejtő) Memória Kapacitás Ár Sebesség Memóriák - tárak Háttértár (nem felejtő) Memória Vezérlő egység Központi memória Aritmetikai Logikai Egység (ALU) Regiszterek Programok Adatok Ez nélkül
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
3. gyakorlat. Kettes számrendszer: {0, 1} Tízes számrendszer: {0, 1, 2,..., 9} 16-os (hexadecimális számrendszer): {0, 1, 2,..., 9, A, B, C, D, E, F}
3. gyakorlat Számrendszerek: Kettes számrendszer: {0, 1} Tízes számrendszer: {0, 1, 2,..., 9} 16-os (hexadecimális számrendszer): {0, 1, 2,..., 9, A, B, C, D, E, F} Alaki érték: 0, 1, 2,..., 9,... Helyi
The Architecture of Computer Hardware and Systems Software: An InformationTechnology Approach 3. kiadás, Irv Englander John Wiley and Sons 2003
. Fejezet : Számrendszerek The Architecture of Computer Hardware and Systems Software: An InformationTechnology Approach. kiadás, Irv Englander John Wiley and Sons Wilson Wong, Bentley College Linda Senne,
Matematikai alapok. Dr. Iványi Péter
Matematikai alapok Dr. Iványi Péter Számok A leggyakrabban használt adat típus Egész számok Valós számok Bináris számábrázolás Kettes számrendszer Bitek: és Byte: 8 bit 28 64 32 6 8 4 2 bináris decimális
2011.11.29. JUnit. JUnit használata. IDE támogatás. Parancssori használat. Teszt készítése. Teszt készítése
Tartalom Integrált fejlesztés Java platformon JUnit JUnit használata Tesztelési technikák Demo 2 A specifikáció alapján teszteljük a program egyes részeit, klasszikus V-modell szerint Minden olyan metódust,
Feladat Nézzük meg a súgóban (help és doc) a sin parancs használatáról olvasható információt! Próbáljuk ki a kirajzoltató utasítást.
1 1. GYAKORLAT A MATLAB ALAPJAI KÖRNYEZET, SÚGÓ A D:\ meghajtón hozzuk létre a munka könyvtárat, majd indítsuk el a ot! A program betöltődése után felbukkan a parancsablak az ún. prompttal: >> A prompt
Digitális szűrők - (BMEVIMIM278) Házi Feladat
Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rszerek Tanszék Digitális szűrők - (BMEVIMIM278) FIR-szűrő tervezése ablakozással Házi Feladat Név: Szőke Kálmán Benjamin Neptun:
C# Nyelvi Elemei. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) C# Nyelvi Elemei / 18
C# Nyelvi Elemei Tóth Zsolt Miskolci Egyetem 2013 Tóth Zsolt (Miskolci Egyetem) C# Nyelvi Elemei 2013 1 / 18 Tartalomjegyzék 1 Object 2 Típusok 3 String 4 RegEx Tóth Zsolt (Miskolci Egyetem) C# Nyelvi
SZÁMÍTÓGÉPEK BELSŐ FELÉPÍTÉSE - 1
INFORMATIKAI RENDSZEREK ALAPJAI (INFORMATIKA I.) 1 NEUMANN ARCHITEKTÚRÁJÚ GÉPEK MŰKÖDÉSE SZÁMÍTÓGÉPEK BELSŐ FELÉPÍTÉSE - 1 Ebben a feladatban a következőket fogjuk áttekinteni: Neumann rendszerű számítógép
Mobil alkalmazások fejlesztése
Tartalom Peekabo a legkisebb projekt... 2 A fordítás és szerkesztés folyamata... 2 Peekabo.mmp... 2 Peekaboo.pan... 3 Peekaboo.rss... 3 Peekaboo.rls... 4 Peekaboo.hrh... 4 Főprogram... 5 Peekaboo.cpp...
Utasítások. Excel VII. Visual Basic programozás alapok. A Visual Basic-kel megoldható feladatok típusai Objektumok, változók Alprogramok
Alkalmazott Informatikai Intézeti Tanszék MŰSZAKI INFORMATIKA Dr.Dudás László 0. Excel VII. Visual Basic programozás alapok A Visual Basic-kel megoldható feladatok típusai Objektumok, változók Alprogramok
Számítógépek felépítése
Számítógépek felépítése Emil Vatai 2014-2015 Emil Vatai Számítógépek felépítése 2014-2015 1 / 14 Outline 1 Alap fogalmak Bit, Byte, Word 2 Számítógép részei A processzor részei Processzor architektúrák
Programozás C++ -ban
Programozás C++ -ban 6. Konstansok A C nyelvben konstansokat makróval is deklarálhatunk. Ebben az esetben mindenhol ahol a makró előfordul a fordító a definiált értéket behelyettesíti a makró helyére.
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
Adattípusok, vezérlési szerkezetek. Informatika Szabó Adrienn szeptember 14.
Informatika 1 2011 Második előadás, vezérlési szerkezetek Szabó Adrienn 2011. szeptember 14. Tartalom Algoritmusok, vezérlési szerkezetek If - else: elágazás While ciklus For ciklus Egyszerű típusok Összetett
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ó
Java bevezet o Kab odi L aszl o Kab odi L aszl o Java bevezet o
Miért Java? széleskörben elterjedt Micro Edition - beágyazott rendszerek, régi telefonok Standard Edition - PC, android ezen alapul Enterprise Edition - vállalati programok, web service-ek multiplatform
Adatbázis Rendszerek II. 5. PLSQL Csomagok 16/1B IT MAN
Adatbázis Rendszerek II. 5. PLSQL Csomagok 16/1B IT MAN B IT v: 2016.03.03 MAN Csomagok A DBMS csomagok a PL/SQL alkalmazások fejlesztését segítik, bennük tároljuk a létrehozott programok kódjait. A specifikációs
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
3 A C programozási nyelv szintaktikai egységei
3 A C programozási nyelv szintaktikai egységei 3.1 Azonosítók Betűk és számjegyek sorozata, betűvel vagy _ (aláhúzás) karakterrel kell kezdődnie. A nagy- és kisbetűk különbözőek. Az azonosítók tetszőleges
Mérnökgeodéziai hálózatok feldolgozása
Mérnökgeodéziai hálózatok feldolgozása dr. Siki Zoltán siki@agt.bme.hu XIV. Földmérő Találkozó Gyergyószentmiklós 2013.05.09-12. Mérnökgeodéziai hálózatok nagy relatív pontosságú hálózatok (1/100 000,
1. Gyakorlat. Rövid elméleti összefoglaló. <tárolási osztály>típus <típus > változónév <= kezdőérték><, >;
Rövid elméleti összefoglaló 1. Gyakorlat A C++ nyelv hatékony, általános célú programozási nyelv, amely hagyományos fejlesztőeszközként és objektum-orientált programozási nyelvként egyaránt használható.
Egyszerű RISC CPU tervezése
IC és MEMS tervezés laboratórium BMEVIEEM314 Budapesti Műszaki és Gazdaságtudományi Egyetem Egyszerű RISC CPU tervezése Nagy Gergely Elektronikus Eszközök Tanszéke (BME) 2013. február 14. Nagy Gergely
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
Számítógép architektúra
Budapesti Műszaki Főiskola Regionális Oktatási és Innovációs Központ Székesfehérvár Számítógép architektúra Dr. Seebauer Márta főiskolai tanár seebauer.marta@roik.bmf.hu Irodalmi források Cserny L.: Számítógépek
C# gyorstalpaló. Készítette: Major Péter
C# gyorstalpaló Készítette: Major Péter Adattípusok Logikai változó Egész szám (*: előjel nélküli) Lebegőponto s szám Típus Típusnév másképpen (egyenértékű) Helyigény (bit) Példa bool Boolean 8 (!) true,
1. Írjunk programot mely beolvas két egész számot és kinyomtatja az összegüket.
1. Írjunk programot mely beolvas két egész számot és kinyomtatja az összegüket. // változó deklaráció int number1; // első szám int number2; // második szám int sum; // eredmény std::cout