Adatok, műveletek és vezérlés

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

Download "Adatok, műveletek és vezérlés"

Átírás

1 Adatok, műveletek és vezérlés Számábrázolás, alaptípusok. Típuskonstrukciók. Operátorok, kifejezések kiértékelése. Utasítások, vezérlési szerkezetek, rekurzió, kivételkezelés. Adatabsztrakció. Osztály, öröklődés, statikus és dinamikus kötés, altípusos polimorfizmus. Generikusok. Számábrázolás, alaptípusok. Logikai típusok ábrázolása: programnyelvenként eltérő. Példák: C++ : 0 (8 darab 0 bit) = false, minden más true Java : külön típus (Boolean) FALSE és TRUE értékekkel (nem konvertálható int-té!) C# : külön típus (System.Boolean), amely konvertálható int-té (de nem implicit, mint C++ esetén) (Előjeles) egész számok ábrázolása: úgynevezett kettes komplemens alakban történik. A kettes komplemens alak előállítása: vesszük a szám kettes számrendszerbeli reprezentációját, eléje írunk egy 0-t. Második lépésben a számsorozatot negáljuk (egyes komplemens), majd utolsó lépésben a negált számhoz hozzáadunk 1- et. A számítógépekben (nagyon ritka kivételektől eltekintve) csak egész byte-on tudunk tárolni, ennek következtében egy byte-on előjel nélkül [0, 255] közötti egészek tárolhatóak, előjelesen pedig [-128, +127] intervallumba esők (hiszen az első bit jelzi az előjelet: 0 esetén +, 1 esetén, és ezután marad 7 bitünk a számra). Figyeljük meg, hogy az intervallumok egymásnak kölcsönösen megfeleltethetőek! Megállapíthatjuk, hogy az alábbi egyenlőségek igazak, ha n a vett byte-ok száma: előjel nélküli esetben az ábrázolt számtartomány: [0, 2 n -1] előjeles esetben az ábrázolt számtartomány: [-2 n-1, +2 n-1-1] Törtszámok ábrázolása: úgynevezett fixpontos vagy lebegőpontos alakban történik. Fixpontos esetben a szám felépítése: 1 bit előjel n bit egészrész m bit törtrész Lebegőpontos esetben: kicsit bonyolultabb a felépítés. A számot normalizált alakban tároljuk (±M 2 ±E, M = mantissza, E = exponens/kitevő). Ennek lépései: A mantisszát törtekre vagy egészekre normalizáljuk (értéke legyen (0.5, 1) közötti vagy (1, 2) közötti). Az első bit mindenképpen 1. Ezért őt elhagyhatjuk (ún. implicit bit, számolás elött őt vissza kell tennünk!) Legyen a normalizált, implicit bitet elhagyott mantissza m. Karakterisztika eltolása (offszet karakterisztika): az exponenshez hozzáadunk egy d = 2 k-1 vagy d = 2 k-1-1 alakú számot, hogy mindenképp pozitív legyen a kitevő (c:= E + d). Legyen s 0 vagy 1. 0 ha a szám pozitív, 1 ha negatív. Ekkor a lebegőpontosan ábrázolt szám: N = (-1) s m 2 c-d Alaptípusok: nyelvenként különbözőek. Példának vegyük a C++, Java, C# nyelveket. Az egész számok mögött zárójelben olvasható, hogy az adott típus hány byte-on tárolódik (C++ esetén a 4/8 azt jelenti, hogy architektúra függő a tárolás (32 vs. 64 bites architektúra)). A törtszámok esetén zárójelben olvashatóak a következők: tároló byte-ok száma intervallum tizedespontosság

2 Egész számot ábrázoló alaptípusok: C++ char (1), wchar_t (2), short(2), int (4/8), long (4), long long (8) Java byte (1), short (2), int (4), long (8) C# byte (1), short (2), int (4), long (8) Törtszámot ábrázoló alaptípusok: C++ float (4 [3.4E-38, 3.8E+38] 6), double (8 [1.7E-308, 1.7E+308] 15), long double (10 [3.4E-4932, 3.4E+4932] 19) Java float (4 [2-149, ( ) ] 7), double (8 [2-1074, ( ) ] 16) C# float ( to ), double (8 ± to ± ), decimal (16 (-7.9 x to 7.9 x ) / (100 to 28), 28-29) Java és C# esetén van még egy 'char'-nak nevezett primitív típus is (karakterek ábrázolására). (Majdnem) mindegyik primitív típusból van unsigned és signed változat is. Little endian vs. Big endian: Architektúrája válogatja, hogy hogyan tárolja el a számokat. Little endian esetén a legkisebb memória címre kerül a legkisebb helyi értékű byte. Big endian esetén a legkisebb memória címre a legnagyobb helyi értékű byte kerül. (megjegyzés: a little endian fordított az írotthoz képest, amit mi 1024-nek írunk, azt egy little endian architektúra (ha tízes számrendszerben tárolna) 4201-ként tárolná) Típuskonstrukciók. Az alaptípusokon túl (de még az osztályok előtt) van lehetőségünk különböző típuskonstrukciókat használni. Ezek lehetnek iterált, direktszorzat és unió típusúak. A típuskonstrukciók összefoglalása a következő: tömb típus: Egy tömb egy olyan adatszerkezet, amely azonos típusú elemek sorozatait tartalmazza. gyakorlatilag leképezés egy diszkrét intervallum és az adott típus között (a diszkrét intervallum elemeit indexeknek hívjuk) indexek száma megadja a tömb méretét alapművelete az indexelés (az i. elemet gyorsan el tudjuk érni) léteznek programnyelvek, ahol különböző típusokat is tárolhatunk egy tömbben, de általában csak egyfélét direktszorzat típus: több különböző típust kell szinkron kezelnünk. Például: rekord típus (pl.: C++ esetén struct) komponensek a rekord ún. mezői alapművelete a komponenskiválasztás léteznek programnyelvek, ahol nincs ilyen típuskonstrukció, ezekben osztályokat kell használnunk unió típus: például több rekord közös kezelése (Férfiak, Nők külön rekordok, de a Népességet is kezelnünk kell valahogy) a modern programozási nyelvekben kiváltották feladatát az öröklődés és a polimorfizmus, így azok nem is támogatják (pl.: Java, Eiffel)

3 Operátorok, kifejezések kiértékelése. Az operátorok és a paraméterekből és operátorokból álló kifejezések kiértékelése programnyelvenként változó algoritmussal írható le, amely fontos sarokkő az egyes programozási nyelvek specifikációjában. Példának hasonlítsuk össze a C++ és a Java nyelveket: C++ forrás: wikipédia

4 Java forrás: java.sun.com Fontos az első táblázatban látható asszociativitás kérdésköre (hiszen ha például az = balasszociatív lenne, akkor értelmetlen lenne az a = b = c = 0; sor). Fontos ezen kívül a túlterhelés (C++ esetén léteznek túlterhelhető operátorok, Java-ban egyik sem az). Operátor: a különféle műveleti jelek, melyek öszekapcsolják a kifejezésekben szereplő operandusokat. Operandus: változók, konstansok, függvény- és eljáráshívások. Kifejezés: operátorok és operandusok sorozatából álló nyelvi elem. Művelet: tevékenység(sorozat), amit az operátorok előírnak. Kifejezés kiértékelése: a benne szereplő összes művelet elvégzése. Elsőbbségi (precedencia) szabályok: a műveletek során a kifejezések kiértékelési sorrendjét meghatározó szabályok. Ezáltal precedenciaszintenként csoportosíthatóak a műveletek. A sorrend zárójelezés segítségével testreszabható, mert először mindig a zárójelben lévő műveletek hajtódnak végre. Asszociativitás: az azonos precedencia szinten lévők kiértékelési sorrendje (balról-jobbra vagy jobbról-balra). Minden művelet balról-jobbra értékelődik ki, kivéve az alábbiakat, amik jobbrólbalra: Egyoperandusú műveletek Értékadással egybekötött kétoperandusú műveletek Háromoperandusú művelet Mellékhatás (side effect): bizonyos műveletek függvényhívás, többszörös értékadás, léptetés (+

5 +, --) feldolgozásakor jelentkező jelenség, melynek során a kifejezés értékének megjelenése mellett bizonyos változók is megváltoztathatják értékeiket. Kiértékelésük sorrendjét nem határozza meg a C szabvány, így ügyeli kell rájuk, el kell kerülni az olyan utasításokat, melyek kiértékelése függ a precedenciától. Rövidzár (short circuit, lusta kiértékelés): az a kiértékelési mód, amely során nem szükséges kiértékelni a teljes kifejezést ahhoz, hogy egyértelműen meghatározzuk az értékét. Pl. ha egy && bal oldali operandusa 0, a jobb oldalit már szükségtelen kiértékelni, a kifejezés értéke egyértelműen 0 lesz. A műveleteket operandusuk száma és típusa szerint csoportosítjuk, programozási nyelvtől függetlenül: Egyoperandusú (unáris) műveletek Kétoperandusú (bináris) műveletek Háromoperandusú (trináris) művelet Kiértékelés: Minden kifejezésből építhető ún. szintaxisfa, például: forrás: digitus.itk.ppke.hu A kifejezések kiértékelését rengeteg különféle módon el lehet végezni, egyik legismertebb a lengyelforma algoritmus. Ez először a kifejezést postfix alakra hozza, majd ezt kiértékeli. Az alábbi struktogrammokban x a kifejezés (sorként ábrázolva) s egy verem, y a postfix alak (sorként ábrázolva), v egy verem, z pedig a kifejezés értéke. Postfix alakra hozás:

6 Kiértékelés: struktogrammok forrása: digitus.itk.ppke.hu Utasítások, vezérlési szerkezetek, rekurzió, kivételkezelés. Utasítás: A program egy sora, a legkisebb építő eleme. Megfigyelhető a hierarchia: egy gépi kódú utasítás pontosan egy processzorművelet, az assembly ennek olvashatóbb formája, míg az egyre magasabb szintű programozási nyelvek egy utasítása általában egyre több gépi kódú utasításnak felel meg. Ezért cserébe kapjuk a jobb olvashatóságot, a kisebb hibázási lehetőséget, stb. Viszont végül mindig gépi kódú utasításokat futtatunk. Vezérlési szerkezet: Az utasításokat blokkokra tagolhatjuk. Speciális blokkok a vezérlési szerkezetek, amelyek bár programnyelvenként változhatnak a legáltalánosabbak majdnem minden nyelvben megtalálhatóak, ezek: elágazás (if-else): az utasításblokkok az úgynevezett ágak. Valamilyen kifejezés értékétől tesszük függővé, hogy az if ágba tartozó utasítok lefutnak-e (esetleg az else ágba tartozók, avagy semmi), ciklus (while): az utasításblokk az úgynevezett ciklusmag. Amíg az adott feltétel teljesül újra és újra végrehajtjuk a ciklusmagot, léptetős ciklus (for): egy ciklus, beépített változóval. Például ha valamit 10-szer akarunk végrehajtani. (C++ esetén használható teljesen másképp is például!), hátultesztelős ciklus (do-while): a ciklusmag egyszer mindenképpen végrehajtódik, és ezután ameddig a kifejezés a ciklusmag végén igaz, addig újra és újra végrehajtjuk azt, kapcsoló (switch-case): többágú elágazás, amely egy adott kifejezés adott értékei szerint ágazik szét. (Figyeljünk rá, hogy a legtöbb megvalósításban minden eset (case) után ki kell ugranunk a switch-ből (break), és általában adunk alapesetet is (default)), iterációs ciklus (foreach, enchanced for, stb.): olyan ciklus, amely egy adott adatszerkezet minden elemére lefuttatja a ciklusmagot. Rekurzió: Előfordul, hogy egy-egy programblokkot (például függvényt) rekurzívan akarunk használni, vagyis a függvényből meghívjuk ismét a függvényt. A rekurziót általában idő- és tárpazarlónak tartják (imperatív nyelvekben), de vannak esetek, amikor gyakorlatilag kikerülhetetlen (funkcionális nyelvekben) ( A rekurzivitás jelenségét az újraírhatóság vagy láncszabály kifejezésekkel is le szokták írni. A rekurzivitás valójában olyan eljárásokat jelent, melyek nyitott végűek, és azáltal

7 vezetnek eredményre, hogy saját magukra alkalmazódnak. Így válnak képessé véges elemből és véges szabály által végtelen elemű rendszert létrehozni. ). Léteznek olyan függvények, amelyekre bár létezik iteratív megoldás (például faktoriális számítás, Fibonacci-sorozat n-edik elemére még explicit képlet is van), de könnyebb őket rekurzívan megadni (még ha így sokkal kevésbé hatékony is a megvalósító kód). Kivételkezelés: A kivételkezelés egy programozási mechanizmus, melynek célja a program futását szándékosan vagy nem szándékolt módon megszakító esemény (hiba) vagy utasítás kezelése. Az eseményt magát kivételnek hívjuk. A hagyományos, szekvenciális és struktúrált programozási kereteken túlmutató hibakezelésre, valamint magasabb szintű hibadetekcióra, esetleg korrigálásra használható. Régen, az alapvető utasításkészlettel ezek a hibák nem voltak kezelhetőek. A magas szintű programozási nyelvekben elterjedt egy módszer ezek kezelésére, mely általánosan így írható le: try {blokk} catch (mit) {blokk} finally {blokk} A szerkezet lényege: A try-blokkban lévő utasítások során kiváltódott hibákat a catch (mit) ágban/ágakban kaphatjuk el, és az ebben a blokkban kiadott utasítások hajtódnak végre a kivétel kiváltódása után. A finally-blokk lényege, hogy a megelőző blokkok után mindenképpen végrehajtódik, ha történt kivétel, ha nem. A kivételeket alapvetően két csoportra oszthatjuk: Operációs rendszerszintű kivételek: például memória elfogyása, rendszererőforrás problémák, fájlhibák, 0-val osztás stb. Nyelvi szintű kivételek: általános kivételek, jelzések, eseményjelzők, kódblokk megszakítások, erőforrás felszabadító szakaszok. Adatabsztrakció. Az adatabsztrakció lényege: összetett adatokkal dolgozó programjainkat úgy építjük föl, hogy az adatokat felhasználó programrészek az adatok szerkezetéről ne tételezzenek fel semmit, csak az előre definiált műveleteket használják, az adatokat definiáló programrészek az adatokat felhasználó programrészektől függetlenek legyenek. Osztály, öröklődés, statikus és dinamikus kötés, altípusos polimorfizmus. Osztály: Egy osztályban általában egy feladat elvégzéséhez szükséges kódrészleteket gyűjtik össze funkciójuk szerint, tagfüggvényekbe rendezve. Ezen kívül az osztályhoz tartozhatnak változók (osztály ill. példányszintűek), amelyeket ez esetben mezőknek (field) hívunk. Az osztály tekinthető a való világ egy részéből kreált adatabsztrakciós megvalósításnak is. Az osztály által megkapjuk az OOP legfőbb vívmányait, ezek a(z): encapsulation (egységbe zárás együtt kezeljük, ami egybe való, függvények, változók); information hiding (információ elrejtés a külvilág nem tudja, az objektum mit is csinál belül, nem ismeri a függvénytörzset); code reuse (kód újrafelhasználás példányosítás, osztály továbbörökítése, stb.).

8 Objektum: Az osztály egy konkrét példányát nevezzük objektumnak. Öröklődés: Egy osztály definiálása után előfordulhat, hogy az osztályban szereplő kódokat más osztályokban is használni szeretnénk. Ehhez csak arra van szükség, hogy egy adott osztályt amiből a másik osztály tagfüggvényeit el akarjuk érni, abból származtassunk. Ezt nevezzük öröklődésnek. Öröklődés során csak a public és protected nyilvánossági szintű mezők és függvények lesznek elérhetőek az utódban. Az öröklődések mentén az osztályokat gráfba rendezhetjük, ezt nevezzük öröklődési gráfnak. Ez a gráf mindenképp körmentes kell, hogy legyen, a többi tulajdonsága programnyelvenként eltérő lehet (például C++ esetén megengedett a többszörös öröklődés, míg Java esetén a gráf mindenképpen fa kell, hogy legyen). Ugyanígy programnyelvenként eltérőek az utódban lévő felüldefiniálás (override) és túlterhelés (overload) szabályai. Ezek mind konzekvensen kell, hogy kövessék a nyelv specifikációját (lásd C+ + csak virtual esetén enged felüldefiniálni, Java minden esetben, kivéve, ha final a függvény). Interface, absztrakt osztály: Bizonyos programnyelvekben (pl.: Java) megjelenik ez a két speciális osztály, amely bár más nyelvekben is megvalósítható tulajdonságokkal bír, mégsem kaptak külön jelzőt nyelvi szinten. Az interface az ún. teljesen absztrakt osztály (csak függvényszignatúrákat és osztály szintű mezőket tartalmazhat), míg az absztrakt osztály tartalmazhat konkrét megvalósításokat is. Azonban példányosítani közvetlenül egyiket sem lehet, csak egy olyan utódon keresztül, ami megvalósítja az összes meg nem valósított függvényt. Statikus és dinamikus kötés: Statikus kötés esetén a változón értelmezett műveleteket objektum-változó esetében a metódusokat a változó típusa határozza meg. Ez történik a hagyományos programnyelvekben. A fordítóprogram a változó típusának ismeretében ellenőrzi, hogy a kijelölt művelet az adott változón végrehajtható-e, és ha igen, generálja a megfelelő kódot. Dinamikus kötés esetén a műveletet meghatározó tényező a változó által hordozott érték. Az objektum-változók esetén ez azt jelenti, hogy értékadáskor a műveleteket végrehajtó metódusok is cserélődnek. A változóval végzendő művelethez tehát most, futási időben rendelődik hozzá a műveletet végrehajtó eljárás (metódus) kódja. Ha korrekt módon akarunk eljárni, akkor bármiféle, a változóra kijelölt művelet végrehajtása előtt meg kell kérdeznünk a változót, hogy éppen milyen értéket tárol. Hiszen az sem biztos, hogy a végrehajtani kívánt művelet egyáltalán értelmezett a változóban éppen tárolt értékre (megérti-e a változóban tárolt objektum az üzenetet). Így érthető, hogy a dinamikus kötés implementálása lényegesen bonyolultabb a statikusnál. Polimorfizmus: A polimorfizmus és a dinamikus kötés különböző fogalmak! Polimorfizmusnak (többalakúságnak) azt a jelenséget hívjuk, hogy egy változó nem csak egyfajta típusú objektumra hivatkozhat. Altípusos polimorfizmus: Altípusos polimorfizmus esetén a dinamikus típus mindig a statikus típus vagy annak valamely leszármazottja (Ha B altípusa A-nak, akkor egy A típusú referenciának A vagy B típusú értéket adhatunk). Generikusok. Parametrikus polimorfizmus: Egy adott osztályt egy adott típussal tudunk paraméterezni. Szinte minden modern nyelvben fellelhető lehetőség (funkcionális nyelvekben is, C++, Java, stb.).

9 Generikus programozás (generic, template): Algoritmusok és adatszerkezetek általános, típusfüggetlen programozása. Bizonyos nyelvekben (pl.: Ada, C++) ez egy sablon, csak példányosításra használható. Más nyelvekben (pl.: Java, funkcionális nyelvek) ez egy kód, amely végrehajtódhat a megfelelő típusokkal. Generatív programozás: Program készítése programmal. A generikus programozás azért lehet generatív, mert egy bizonyos kód alapján a program elkészít egy másik kódot, amely már nem sablon, hanem igazi, futtatható programrészlet ( generic -ek mellett ilyen még a C++ esetén alkalmazott template metaprogramming ). Lusta példányosítás: (pl.: C++ esetén) csak a valóban használt programrészek gyártódnak le. Sablonszerződés: A sablon specifikációja megmondja, hogyan lehet a sablont használni. Ha ezt a szerződést a példányosítás betartja, akkor a generált kód helyes lesz. Ehhez: a sablon törzse nem használhat mást, csak amit a szerződés megenged, illetve a példányosításnak biztosítani kell mindent, amit a sablon specifikációja megkövetel.

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ések Lexika Szintaktika Szemantika Lexika azonosítók (változó-, metódus-, típus- és csomagnevek) literálok operátorok, pl. + zárójelek: (), [], {},

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

A C# programozási nyelv alapjai

A C# programozási nyelv alapjai A C# programozási nyelv alapjai Tisztán objektum-orientált Kis- és nagybetűket megkülönbözteti Ötvözi a C++, Delphi, Java programozási nyelvek pozitívumait.net futtatókörnyezet Visual Studio fejlesztőkörnyezet

Részletesebben

Programozás BMEKOKAA146. Dr. Bécsi Tamás 2. előadás

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

Részletesebben

Programozás alapjai C nyelv 4. gyakorlat. Mit tudunk már? Feltételes operátor (?:) Típus fogalma char, int, float, double

Programozás alapjai C nyelv 4. gyakorlat. Mit tudunk már? Feltételes operátor (?:) Típus fogalma char, int, float, double Programozás alapjai C nyelv 4. gyakorlat Szeberényi Imre BME IIT Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I. 2005.10.10.. -1- Mit tudunk már? Típus fogalma char, int, float,

Részletesebben

Készítette: Nagy Tibor István

Készítette: Nagy Tibor István Készítette: Nagy Tibor István Operátorok Műveletek Egy (vagy több) műveleti jellel írhatók le A műveletet operandusaikkal végzik Operátorok fajtái operandusok száma szerint: egyoperandusú operátorok (pl.:

Részletesebben

Mit tudunk már? Programozás alapjai C nyelv 4. gyakorlat. Legnagyobb elem keresése. Feltételes operátor (?:) Legnagyobb elem keresése (3)

Mit tudunk már? Programozás alapjai C nyelv 4. gyakorlat. Legnagyobb elem keresése. Feltételes operátor (?:) Legnagyobb elem keresése (3) Programozás alapjai C nyelv 4. gyakorlat Szeberényi Imre BME IIT Mit tudunk már? Típus fogalma char, int, float, double változók deklarációja operátorok (aritmetikai, relációs, logikai,

Részletesebben

Programozás I. 3. gyakorlat. Szegedi Tudományegyetem Természettudományi és Informatikai Kar

Programozás I. 3. gyakorlat. Szegedi Tudományegyetem Természettudományi és Informatikai Kar Programozás I. 3. gyakorlat Szegedi Tudományegyetem Természettudományi és Informatikai Kar Antal Gábor 1 Primitív típusok Típus neve Érték Alap érték Foglalt tár Intervallum byte Előjeles egész 0 8 bit

Részletesebben

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

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

Részletesebben

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

Számítástechnika I. BMEKOKAA152 BMEKOKAA119 Infokommunikáció I. BMEKOKAA606. Dr. Bécsi Tamás 2. előadás Számítástechnika I. BMEKOKAA152 BMEKOKAA119 Infokommunikáció I. BMEKOKAA606 Dr. Bécsi Tamás 2. előadás Console I/O bővebben Lásd mintaprogram 2015.09.21. Számítástechnika I. 2. Előadás 2 Számábrázolásról

Részletesebben

Assembly programozás: 2. gyakorlat

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

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

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

Bánsághi Anna 2014 Bánsághi Anna 1 of 33

Bánsághi Anna 2014 Bánsághi Anna 1 of 33 IMPERATÍV PROGRAMOZÁS Bánsághi Anna anna.bansaghi@mamikon.net 7. ELŐADÁS - ABSZTRAKT ADATTÍPUS 2014 Bánsághi Anna 1 of 33 TEMATIKA I. ALAPFOGALMAK, TUDOMÁNYTÖRTÉNET II. IMPERATÍV PROGRAMOZÁS Imperatív

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

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

Részletesebben

OOP I. Egyszerő algoritmusok és leírásuk. Készítette: Dr. Kotsis Domokos

OOP I. Egyszerő algoritmusok és leírásuk. Készítette: Dr. Kotsis Domokos OOP I. Egyszerő algoritmusok és leírásuk Készítette: Dr. Kotsis Domokos 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. Ismeretük

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

Számábrázolás, adatábrázolás

Számábrázolás, adatábrázolás Számábrázolás, adatábrázolás A számítógépek memóriájában a számokat binárisan (kettes számrendszerben) ábrázoljuk. A bináris alakban felírt szám egy számjegye 0 vagy 1 lehet. (Ezt hívjuk bit-nek.) Egy

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

Imperatív és procedurális programozás a Javában

Imperatív és procedurális programozás a Javában Imperatív és procedurális programozás a Javában Kozsik Tamás kto@elte.hu http://kto.web.elte.hu/ Eötvös Loránd Tudományegyetem Programozási Nyelvek és Fordítóprogramok Tanszék 2008. Kozsik Tamás (ELTE)

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

Adatszerkezetek Tömb, sor, verem. Dr. Iványi Péter

Adatszerkezetek Tömb, sor, verem. Dr. Iványi Péter Adatszerkezetek Tömb, sor, verem Dr. Iványi Péter 1 Adat Adat minden, amit a számítógépünkben tárolunk és a külvilágból jön Az adatnak két fontos tulajdonsága van: Értéke Típusa 2 Adat típusa Az adatot

Részletesebben

A szemantikus elemzés helye. A szemantikus elemzés feladatai. A szemantikus elemzés feladatai. Deklarációk és láthatósági szabályok

A szemantikus elemzés helye. A szemantikus elemzés feladatai. A szemantikus elemzés feladatai. Deklarációk és láthatósági szabályok A szemantikus elemzés helye Forrásprogram Forrás-kezelő (source handler) Lexikális elemző (scanner) A szemantikus elemzés feladatai Fordítóprogramok előadás (A, C, T szakirány) Szintaktikus elemző (parser)

Részletesebben

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

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

Részletesebben

A programozás alapjai előadás. A C nyelv típusai. Egész típusok. C típusok. Előjeles egészek kettes komplemens kódú ábrázolása

A programozás alapjai előadás. A C nyelv típusai. Egész típusok. C típusok. Előjeles egészek kettes komplemens kódú ábrázolása A programozás alapjai 1 A C nyelv típusai 4. előadás Híradástechnikai Tanszék C típusok -void - skalár: - aritmetikai: - egész: - eger - karakter - felsorolás - lebegőpontos - mutató - függvény - union

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

Programozási technológia I 1. gyakorlat. A Java nyelvi alapjai, a NetBeans környezet

Programozási technológia I 1. gyakorlat. A Java nyelvi alapjai, a NetBeans környezet Eötvös Loránd Tudományegyetem Informatikai Kar Programozási technológia I 1. gyakorlat A Java nyelvi alapjai, a NetBeans környezet 2012.02.16. Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto

Részletesebben

sallang avagy Fordítótervezés dióhéjban Sallai Gyula

sallang avagy Fordítótervezés dióhéjban Sallai Gyula sallang avagy Fordítótervezés dióhéjban Sallai Gyula Az előadás egy kis példaprogramon keresztül mutatja be fordítók belső lelki világát De mit is jelent, az hogy fordítóprogram? Mit csinál egy fordító?

Részletesebben

Programozás BMEKOKAA146. Dr. Bécsi Tamás 1. Előadás

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

Részletesebben

Struktúra nélküli adatszerkezetek

Struktúra nélküli adatszerkezetek Struktúra nélküli adatszerkezetek Homogén adatszerkezetek (minden adatelem azonos típusú) osztályozása Struktúra nélküli (Nincs kapcsolat az adatelemek között.) Halmaz Multihalmaz Asszociatív 20:24 1 A

Részletesebben

Szoftvertechnológia alapjai Java előadások

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

Részletesebben

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

Bevezetés az informatikába gyakorló feladatok Utoljára módosítva:

Bevezetés az informatikába gyakorló feladatok Utoljára módosítva: Tartalom 1. Számrendszerek közti átváltás... 2 1.1. Megoldások... 4 2. Műveletek (+, -, bitműveletek)... 7 2.1. Megoldások... 8 3. Számítógépes adatábrázolás... 12 3.1. Megoldások... 14 A gyakorlósor lektorálatlan,

Részletesebben

Készítette: Nagy Tibor István

Készítette: Nagy Tibor István Készítette: Nagy Tibor István A változó Egy memóriában elhelyezkedő rekesz Egy értéket tárol Van azonosítója (vagyis neve) Van típusa (milyen értéket tárolhat) Az értéke értékadással módosítható Az értéke

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

Bevezetés a programozásba II. 5. Előadás: Másoló konstruktor, túlterhelés, operátorok

Bevezetés a programozásba II. 5. Előadás: Másoló konstruktor, túlterhelés, operátorok Bevezetés a programozásba II 5. Előadás: Másoló konstruktor, túlterhelés, operátorok Emlékeztető struct Vektor { int meret, *mut; Vektor(int meret); int szamlal(int mit); }; int Vektor::szamlal(int mit)

Részletesebben

Interfészek. PPT 2007/2008 tavasz.

Interfészek. PPT 2007/2008 tavasz. 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 2 Már megismert fogalmak áttekintése Objektumorientált

Részletesebben

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

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

Részletesebben

Bevezetés az informatikába gyakorló feladatok Utoljára módosítva:

Bevezetés az informatikába gyakorló feladatok Utoljára módosítva: Tartalom 1. Számrendszerek közti átváltás... 2 1.1. Megoldások... 4 2. Műveletek (+, -, bitműveletek)... 7 2.1. Megoldások... 8 3. Számítógépes adatábrázolás... 10 3.1. Megoldások... 12 A gyakorlósor lektorálatlan,

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

OOP: Java 8.Gy: Abstract osztályok, interfészek

OOP: Java 8.Gy: Abstract osztályok, interfészek OOP: Java 8.Gy: Abstract osztályok, interfészek 26/1 B ITv: MAN 2019.04.03 Abszrakt metódus és absztrakt osztály. Gyakran előfordul a tervezés során, hogy egy osztály szintjén tudjuk, hogy valamilyen metódus

Részletesebben

Bevezetés a C++ programozási nyelvbe

Bevezetés a C++ programozási nyelvbe Bevezetés a C++ programozási nyelvbe Miskolci Egyetem Általános Informatikai Tanszék CPP0 / 1 Története A C++ programozási nyelv a C programozási nyelv objektum orientált kiterjesztése. Az ANSI-C nyelvet

Részletesebben

JAVA PROGRAMOZÁS 2.ELŐADÁS

JAVA PROGRAMOZÁS 2.ELŐADÁS Dr. Pál László, Sapientia EMTE, Csíkszereda JAVA PROGRAMOZÁS 2.ELŐADÁS 2014-2015 tavasz Tömbök, osztályok, objektumok, konstruktorok Tömbök 2 Referencia típusú változó Elemtípus Primitív Referencia: osztály,

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

A programozás alapjai

A programozás alapjai A programozás alapjai Változók A számítógép az adatokat változókban tárolja A változókat alfanumerikus karakterlánc jelöli. A változóhoz tartozó adat tipikusan a számítógép memóriájában tárolódik, szekvenciálisan,

Részletesebben

Aritmetikai kifejezések lengyelformára hozása

Aritmetikai kifejezések lengyelformára hozása Aritmetikai kifejezések lengyelformára hozása Készítették: Santák Csaba és Kovács Péter, 2005 ELTE IK programtervező matematikus szak Aritmetikai kifejezések kiértékelése - Gyakran felmerülő programozási

Részletesebben

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

Objektumorientált programozás Pál László. Sapientia EMTE, Csíkszereda, 2014/2015 Objektumorientált programozás Pál László Sapientia EMTE, Csíkszereda, 2014/2015 9. ELİADÁS Kivételkezelés (Exception handling) 2 Mi a kivétel (exception)? A kivétel, olyan hibás állapot vagy esemény, amely

Részletesebben

Programozás. (GKxB_INTM021) Dr. Hatwágner F. Miklós február 18. Széchenyi István Egyetem, Gy r

Programozás. (GKxB_INTM021) Dr. Hatwágner F. Miklós február 18. Széchenyi István Egyetem, Gy r Programozás (GKxB_INTM021) Széchenyi István Egyetem, Gy r 2018. február 18. Minimum és maximumkeresés u s i n g n a m e s p a c e s t d ; i n t main ( ) { c o u t

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

5-6. ea Created by mrjrm & Pogácsa, frissítette: Félix

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.

Részletesebben

LEBEGŐPONTOS SZÁMÁBRÁZOLÁS

LEBEGŐPONTOS SZÁMÁBRÁZOLÁS LEBEGŐPONTOS SZÁMÁBRÁZOLÁS A fixpontos operandusoknak azt a hátrányát, hogy az ábrázolás adott hossza miatt csak korlátozott nagyságú és csak egész számok ábrázolhatók, a lebegőpontos számábrázolás küszöböli

Részletesebben

Adatszerkezetek Adatszerkezet fogalma. Az értékhalmaz struktúrája

Adatszerkezetek Adatszerkezet fogalma. Az értékhalmaz struktúrája Adatszerkezetek Összetett adattípus Meghatározói: A felvehető értékek halmaza Az értékhalmaz struktúrája Az ábrázolás módja Műveletei Adatszerkezet fogalma Direkt szorzat Minden eleme a T i halmazokból

Részletesebben

Programozási nyelvek Java

Programozási nyelvek Java Programozási nyelvek Java Kozsik Tamás előadása alapján Készítette: Nagy Krisztián 8. előadás Öröklődés - megnyitunk egy osztályt egy másik előtt zárt egységeket szeretünk készíteni (láthatósági kérdés:

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

2. Fejezet : Számrendszerek

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

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

1. előadás. Lineáris algebra numerikus módszerei. Hibaszámítás Számábrázolás Kerekítés, levágás Klasszikus hibaanalízis Abszolút hiba Relatív hiba

1. előadás. Lineáris algebra numerikus módszerei. Hibaszámítás Számábrázolás Kerekítés, levágás Klasszikus hibaanalízis Abszolút hiba Relatív hiba Hibaforrások Hiba A feladatok megoldása során különféle hibaforrásokkal találkozunk: Modellhiba, amikor a valóságnak egy közelítését használjuk a feladat matematikai alakjának felírásához. (Pl. egy fizikai

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

Webprogramozás szakkör

Webprogramozás szakkör Webprogramozás szakkör Előadás 5 (2012.04.09) Programozás alapok Eddig amit láttunk: Programozás lépései o Feladat leírása (specifikáció) o Algoritmizálás, tervezés (folyamatábra, pszeudokód) o Programozás

Részletesebben

ALGORITMIKUS SZERKEZETEK ELÁGAZÁSOK, CIKLUSOK, FÜGGVÉNYEK

ALGORITMIKUS SZERKEZETEK ELÁGAZÁSOK, CIKLUSOK, FÜGGVÉNYEK ALGORITMIKUS SZERKEZETEK ELÁGAZÁSOK, CIKLUSOK, FÜGGVÉNYEK 1. ELÁGAZÁSOK ÉS CIKLUSOK SZERVEZÉSE Az adatszerkezetek mellett a programok másik alapvető fontosságú építőkövei az ún. algoritmikus szerkezetek.

Részletesebben

Objektum elvű alkalmazások fejlesztése Kifejezés lengyel formára hozása és kiértékelése

Objektum elvű alkalmazások fejlesztése Kifejezés lengyel formára hozása és kiértékelése Objektum elvű alkalmazások fejlesztése Kifejezés lengyel formára hozása és kiértékelése Készítette: Gregorics Tibor Szabóné Nacsa Rozália Alakítsunk át egy infix formájú aritmetikai kifejezést postfix

Részletesebben

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

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

Részletesebben

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

Aritmetikai utasítások I.

Aritmetikai utasítások I. Aritmetikai utasítások I. Az értékadó és aritmetikai utasítások során a címzési módok különböző típusaira látunk példákat. A 8086/8088-as mikroprocesszor memóriája és regiszterei a little endian tárolást

Részletesebben

A C# PROGRAMOZÁSI NYELV

A C# PROGRAMOZÁSI NYELV A C# PROGRAMOZÁSI NYELV 2010.02.23. Bevezetés C# nyelv jellemzői 2 Kis és NAGY betű érzékeny Minden utasítást pontos vessző zár. Utasítás zárójel a:,. .NET Framework keretrendszerek 3 Microsoft.NET Framework

Részletesebben

Programozás I gyakorlat

Programozás I gyakorlat Programozás I. - 3. gyakorlat Operátorok, típuskonverziók, matematikai függvények Tar Péter 1 Pannon Egyetem M szaki Informatikai Kar Számítástudomány Alkalmazása Tanszék Utolsó frissítés: September 24,

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

Programozási nyelvek Java

Programozási nyelvek Java statikus programszerkezet Programozási nyelvek Java Kozsik Tamás előadása alapján Készítette: Nagy Krisztián 2. előadás csomag könyvtárak könyvtárak forrásfájlok bájtkódok (.java) (.class) primitív osztály

Részletesebben

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

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

Részletesebben

Programozás. (GKxB_INTM021) Dr. Hatwágner F. Miklós március 3. Széchenyi István Egyetem, Gy r

Programozás. (GKxB_INTM021) Dr. Hatwágner F. Miklós március 3. Széchenyi István Egyetem, Gy r Programozás (GKxB_INTM021) Széchenyi István Egyetem, Gy r 2018. március 3. Függvények Mi az a függvény (function)? Programkód egy konkrét, azonosítható, paraméterezhet, újrahasznosítható blokkja Miért

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

Programozási nyelvek Java

Programozási nyelvek Java Programozási nyelvek Java Kozsik Tamás előadása alapján Készítette: Nagy Krisztián 9. előadás Interface - típust vezet be, de osztálypéldány nem készíthető belőle (statikus típust ad) - több osztály is

Részletesebben

Kivételkezelés, beágyazott osztályok. Nyolcadik gyakorlat

Kivételkezelés, beágyazott osztályok. Nyolcadik gyakorlat Kivételkezelés, beágyazott osztályok Nyolcadik gyakorlat Kivételkezelés Nem minden hibát lehet fordítási időben megtalálni Korábban (pl. C-ben) a hibakezelést úgy oldották meg, hogy a függvény hibakódot

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

Sorozatok határértéke SOROZAT FOGALMA, MEGADÁSA, ÁBRÁZOLÁSA; KORLÁTOS ÉS MONOTON SOROZATOK

Sorozatok határértéke SOROZAT FOGALMA, MEGADÁSA, ÁBRÁZOLÁSA; KORLÁTOS ÉS MONOTON SOROZATOK Sorozatok határértéke SOROZAT FOGALMA, MEGADÁSA, ÁBRÁZOLÁSA; KORLÁTOS ÉS MONOTON SOROZATOK Sorozat fogalma Definíció: Számsorozaton olyan függvényt értünk, amelynek értelmezési tartománya a pozitív egész

Részletesebben

Pásztor Attila. Algoritmizálás és programozás tankönyv az emeltszintű érettségihez

Pásztor Attila. Algoritmizálás és programozás tankönyv az emeltszintű érettségihez Pásztor Attila Algoritmizálás és programozás tankönyv az emeltszintű érettségihez 3. ADATTÍPUSOK...26 3.1. AZ ADATOK LEGFONTOSABB JELLEMZŐI:...26 3.2. ELEMI ADATTÍPUSOK...27 3.3. ÖSSZETETT ADATTÍPUSOK...28

Részletesebben

Labor gyakorlat Mikrovezérlők

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

Részletesebben

Oktatási segédlet 2014

Oktatási segédlet 2014 Oktatási segédlet 2014 A kutatás a TÁMOP 4.2.4.A/2-11-1-2012- 0001 azonosító számú Nemzeti Kiválóság Program Hazai hallgatói, illetve kutatói személyi támogatást biztosító rendszer kidolgozása és működtetése

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

Széchenyi István Egyetem. Programozás III. Varjasi Norbert varjasin@sze.hu

Széchenyi István Egyetem. Programozás III. Varjasi Norbert varjasin@sze.hu Programozás III. Varjasi Norbert varjasin@sze.hu 1 A java virtuális gép (JVM) Képzeletbei, ideális számítógép. Szoftveresen megvalósított működési környezet. (az op. rendszer egy folyamata). Feladata:

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

1. Jelölje meg az összes igaz állítást a következők közül!

1. Jelölje meg az összes igaz állítást a következők közül! 1. Jelölje meg az összes igaz állítást a következők közül! a) A while ciklusban a feltétel teljesülése esetén végrehajtódik a ciklusmag. b) A do while ciklusban a ciklusmag után egy kilépési feltétel van.

Részletesebben

Számítógép architektúra

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

Részletesebben

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

Részletesebben

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

Algoritmizálás és adatmodellezés tanítása 4. előadás Algoritmizálás és adatmodellezés tanítása 4. előadás Típusok osztályozása Összetettség (strukturáltság) szempontjából: skalár (más szóval elemi vagy strukturálatlan) összetett (más szóval strukturált)

Részletesebben

Informatikai Rendszerek Alapjai

Informatikai Rendszerek Alapjai Informatikai Rendszerek Alapjai Egész és törtszámok bináris ábrázolása http://uni-obuda.hu/users/kutor/ IRA 5/1 A mintavételezett (egész) számok bináris ábrázolása 2 n-1 2 0 1 1 0 1 0 n Most Significant

Részletesebben

A programozás alapjai 1 Rekurzió

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

Részletesebben

Programozási nyelvek II. JAVA EA+GY 1. gyakolat

Programozási nyelvek II. JAVA EA+GY 1. gyakolat Programozási nyelvek II. JAVA EA+GY 1. gyakolat EÖTVÖS LORÁND TUDOMÁNYEGYTEM INFORMATIKAI KAR PROGRAMOZÁSI NYELVEK ÉS FORDÍTÓPROGRAMOK TANSZÉK 2017/2018. őszi félév Tartalom 1 Amit tudni kell a félévről

Részletesebben

Programozási nyelvek JAVA EA+GY 1. gyakolat

Programozási nyelvek JAVA EA+GY 1. gyakolat Programozási nyelvek JAVA EA+GY 1. gyakolat EÖTVÖS LORÁND TUDOMÁNYEGYTEM INFORMATIKAI KAR PROGRAMOZÁSI NYELVEK ÉS FORDÍTÓPROGRAMOK TANSZÉK 2018/2019. tavaszi félév Tartalom 1 A Java alapjai 2 Java program

Részletesebben

Számítástechnika II. BMEKOKAA Előadás. Dr. Bécsi Tamás

Számítástechnika II. BMEKOKAA Előadás. Dr. Bécsi Tamás Számítástechnika II. BMEKOKAA153 5. Előadás Dr. Bécsi Tamás Kivételkezelés try Azon utasítások kerülnek ide, melyek hibát okozhatnak, kivételkezelést igényelnek catch( típus [név]) Adott kivételtípus esetén

Részletesebben

Bevezetés az informatikába Tételsor és minta zárthelyi dolgozat 2014/2015 I. félév

Bevezetés az informatikába Tételsor és minta zárthelyi dolgozat 2014/2015 I. félév Bevezetés az informatikába Tételsor és minta zárthelyi dolgozat 2014/2015 I. félév Az informatika története (ebből a fejezetből csak a félkövér betűstílussal szedett részek kellenek) 1. Számítástechnika

Részletesebben

Programozási nyelvek 6. előadás

Programozási nyelvek 6. előadás Programozási nyelvek 6. előadás Szempontok Programozási nyelvek osztályozása Felhasználói kör (amatőr, professzionális) Emberközelség (gépi nyelvektől a természetes nyelvekig) Számítási modell (hogyan

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

Programozás BMEKOKAA146. Dr. Bécsi Tamás 3. előadás

Programozás BMEKOKAA146. Dr. Bécsi Tamás 3. előadás Programozás BMEKOKAA146 Dr. Bécsi Tamás 3. előadás Vezérlési szerkezetek Elágazás Gyakran előfordul, hogy meg kell vizsgálnunk egy állítást, és attól függően, hogy igaz vagy hamis, a programnak más-más

Részletesebben

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

Máté: Számítógép architektúrák Fixpontos számok Pl.: előjeles kétjegyű decimális számok : Ábrázolási tartomány: [-99, +99]. Pontosság (két szomszédos szám különbsége): 1. Maximális hiba: (az ábrázolási tartományba eső) tetszőleges valós

Részletesebben

Adatok ábrázolása, adattípusok

Adatok ábrázolása, adattípusok Adatok ábrázolása, adattípusok Összefoglalás Adatok ábrázolása, adattípusok Számítógépes rendszerek működés: információfeldolgozás IPO: input-process-output modell információ tárolása adatok formájában

Részletesebben

3 A C programozási nyelv szintaktikai egységei

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

Részletesebben

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

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

Részletesebben