Objektumorientált Programozás I.



Hasonló dokumentumok
Programozás I. C# bevezető. Sergyán Szabolcs Óbudai Egyetem Neumann János Informatikai Kar szeptember 17.

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

Szoftvertervezés és -fejlesztés I.

Objektumorientált Programozás II.

A C# programozási nyelv alapjai

Készítette: Nagy Tibor István

Objektumorientált Programozás III.

Objektumorientált Programozás IV.

A C# PROGRAMOZÁSI NYELV

Készítette: Nagy Tibor István Felhasznált irodalom: Kotsis Domokos: OOP diasor Zsakó L., Szlávi P.: Mikrológia 19.

Informatikai Rendszerek Alapjai

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

Objektumorientált Programozás VI.

Assembly programozás: 2. gyakorlat

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

Programozás I. Matematikai lehetőségek Műveletek tömbökkel Egyszerű programozási tételek & gyakorlás V 1.0 OE-NIK,

Programozás I. Sergyán Szabolcs Óbudai Egyetem Neumann János Informatikai Kar szeptember 10.

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

A C# nyelv alapelemei

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

Objektum Orientált Programozás IV.

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

OOP II. A C# nyelv alapelemei

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

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

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

Java II. I A Java programozási nyelv alapelemei

Programozás I. Sergyán Szabolcs Óbudai Egyetem Neumann János Informatikai Kar szeptember 10.

OOP III. A C# nyelv alapelemei

Szoftvertervezés és -fejlesztés I.

Készítette: Nagy Tibor István

2. Fejezet : Számrendszerek

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}

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

The Architecture of Computer Hardware and Systems Software: An InformationTechnology Approach 3. kiadás, Irv Englander John Wiley and Sons 2003

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

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

Dr. Oniga István DIGITÁLIS TECHNIKA 2

Aritmetikai utasítások I.

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

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

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

Bevezetés a számítástechnikába

Programozás I. Gyakorlás egydimenziós tömbökkel Többdimenziós tömbök Gyakorló feladatok V 1.0 ÓE-NIK-AII,

OOP II. A C# nyelv alapelemei I.

1. Gyakorlat. Rövid elméleti összefoglaló. <tárolási osztály>típus <típus > változónév <= kezdőérték><, >;

5. Fejezet : Lebegőpontos számok

OOP II. A C# nyelv alapelemei I.

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

Programozás alapjai. (GKxB_INTM023) Dr. Hatwágner F. Miklós augusztus 29. Széchenyi István Egyetem, Gy r

Tamás Péter (D. 424) Mechatronika, Optika és Gépészeti Informatika Tanszék (D 407)

INFO1 Számok és karakterek

OOP II. A C# nyelv alapelemei I.

Vektorok. Octave: alapok. A fizika numerikus módszerei I. mf1n1a06- mf1n2a06 Csabai István

Az Informatika Elméleti Alapjai

Algoritmusok, adatszerkezetek, objektumok

A C programozási nyelv I. Bevezetés

Java II. I A Java programozási nyelv alapelemei

Bevezetés az informatikába

Objektum Orientált Programozás VII.

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

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

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

A C programozási nyelv I. Bevezetés

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

Segédlet az Informatika alapjai I. című tárgy számrendszerek fejezetéhez

Programozás I gyakorlat

Miről lesz ma szó? A PROGAMOZÁS ALAPJAI 1. Programtervezési stratégiák. Top-down tervezés. Top-down tervezés. Bottom-up tervezés. 4.

Adattípusok, vezérlési szerkezetek. Informatika Szabó Adrienn szeptember 14.

SZÁMRENDSZEREK KÉSZÍTETTE: JURÁNYINÉ BESENYEI GABRIELLA

Fixpontos és lebegőpontos DSP Számrendszerek

Összeadás BCD számokkal

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

OOP III. A C# nyelv alapelemei II.

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

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

Adattípusok. Dr. Seebauer Márta. Budapesti Műszaki Főiskola Regionális Oktatási és Innovációs Központ Székesfehérvár

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

Alapfogalmak. Dr. Kallós Gábor A Neumann-elv. Számolóeszközök és számítógépek. A számítógép felépítése

Objektumorientált Programozás VI.

Informatika érettségi vizsga

4. Fejezet : Az egész számok (integer) ábrázolása

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

5. Fejezet : Lebegőpontos számok. Lebegőpontos számok

Bevezetés a programozásba. 5. Előadás: Tömbök

Változók. Mennyiség, érték (v. objektum) szimbolikus jelölése, jelentése Tulajdonságai (attribútumai):

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

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

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

Digitális rendszerek. Utasításarchitektúra szintje

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

Harmadik gyakorlat. Számrendszerek

Matematikai alapok. Dr. Iványi Péter

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

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

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

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

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

Programozás alapjai. (GKxB_INTM023) Dr. Hatwágner F. Miklós szeptember 27. Széchenyi István Egyetem, Gy r

Átírás:

Objektumorientált Programozás I. Algoritmizálási alapismeretek Algoritmus végrehajtása a számítógépen Adattípusok Típuskonverziók ÓE-NIK, 2011 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. Ismeretük szükséges, de nem elégséges feltétele a sikeres zárthelyinek, illetve vizsgának. Sikeres zárthelyihez, illetve vizsgához a jelen bemutató tartalmán felül a kötelező irodalomként megjelölt anyag, a gyakorlatokon szóban, illetve a táblán átadott tudnivalók ismerete, valamint a gyakorlatokon megoldott példák és az otthoni feldolgozás céljából kiadott feladatok önálló megoldásának képessége is szükséges. ÓE-NIK, 2011 2

Objektumorientált Programozás I. Algoritmizálási alapismeretek Algoritmus végrehajtása a számítógépen Adattípusok Típuskonverziók ÓE-NIK, 2011 3

Az algoritmus Fogalma: Jól definiált utasítások véges sorozata Algoritmus készítésének lépései: A folyamatot elemi lépésekre bontjuk Figyelembe vesszük az összes felmerülő lehetőséget Ügyelünk, hogy az algoritmus véges sok lépésben véget érjen ÓE-NIK, 2011 4

Algoritmusleíró módszerek Blokkdiagram Teendők és kérdések összekötése nyilakkal Struktogram Teendők és kérdések strukturáltan kötött, mindig téglalap alakú képi reprezentációja Szöveges leírás (pszeudokód) Teendők és kérdések kötött kifejezésekkel történő szöveges leírása ÓE-NIK, 2011 5

Blokkdiagram Szekvencia (utasítássorozat) utasítás1 utasítás2 utasítás3 ÓE-NIK, 2011 6

Blokkdiagram Szelekció (elágazás) i feltétel n utasítás1 utasítás2 ÓE-NIK, 2011 7

Blokk-diagram Iteráció (elöltesztelős ciklus) Nincs külön jelölés a ciklusra. Elágazással lehet megvalósítani. i feltétel n utasítás(ok) ÓE-NIK, 2011 8

Blokkdiagram Iteráció (hátultesztelős ciklus) utasítás(ok) i feltétel n ÓE-NIK, 2011 9

Példa Rablóbanda Feladat: Egy rablóbanda az erdőben les gazdag áldozataira. A gazdasági fellendülés következtében megnőtt az erdei úton közlekedő, kincsekkel megrakott konvojok száma, ezért szükségessé vált a bandát új taggal bővíteni. Az új tagnak el kell magyarázni a rablás folyamatát. ÓE-NIK, 2011 10

Rablók I. Bunkót kézbe Leshelyre ki Lesés i Kirablás Jön karaván? n És ha nem volt a karavánnál pénz? Kocsma Haza ÓE-NIK, 2011 11

Rablók II. Bunkót kézbe Leshelyre ki Lesés i n Jön karaván? Kirablás És ha nem is jött karaván? n Elég a pénz? i Kocsma Haza ÓE-NIK, 2011 12

Rablók III. Bunkót kézbe Leshelyre ki n Este van? Lesés i i Kirablás Jön karaván? n Ez már jó, de kusza. n Elég a pénz? i Kocsma Haza ÓE-NIK, 2011 13

Problémák a blokkdiagrammal Nyilak és vonalak kesze-kusza rendszere Teljesen ad-hoc elrendezésű, két ugyanolyan algoritmus leírása a rajzoló kénye-kedve szerint akár teljesen más elrendezésű is lehet Struktogram: kötött struktúra, nincsenek nyilak, csak egymásba foglalt téglalapok ÓE-NIK, 2011 14

Struktogram Szekvencia (utasítássorozat) utasítás1 utasítás2 utasítás3 vagy utasítás1 utasítás2 utasítás3 ÓE-NIK, 2011 15

Struktogram Szelekció (elágazás) i utasítás2 feltétel utasítás3 n vagy i utasítás2 feltétel n ÓE-NIK, 2011 16

Struktogram Iteráció (ciklus) feltétel utasítás(ok) vagy utasítás(ok) feltétel ÓE-NIK, 2011 17

Rablók IV. Bunkót kézbe Leshelyre ki Amíg nincs este és nem elég a pénz n Lesés i i Jön a karaván? kirablás Kirablás Van elég pénz? n Várakozás n Kocsma Haza Haza ÓE-NIK, 2011 18

Másodfokú egyenlet Készítsen algoritmust a másodfokú egyenlet megoldására. ax 2 + bx + c = 0 x 1,2 i i i = b ± b 2 > 4ac? 2 b 2a 4ac b 2 4ac? x = n b 2a n Nincs valós gyök a 0? i x = c b b 0? c 0? n n i Ellentmondás n Azonosság ÓE-NIK, 2011 19

Problémák a struktogrammal Nehezen módosítható, cserélhető Az elkészítése és az értelmezése olykor nehézkes Pszeudokód: kötött kifejezések használatával az algoritmus szöveges leírása ÓE-NIK, 2011 20

Szöveges leírás I. Szekvencia Az utasítás végén ; Az utasításokat kapcsos zárójelekkel fogjuk össze: { ez legyen; az legyen; } Elágaztatás Az egyébként ág nem kötelező Ha (feltétel) { ez legyen; } egyébként { az legyen; } ÓE-NIK, 2011 21

Szöveges leírás II. Ciklus 1. amíg (feltétel) { ezek ismétlődjenek;} Ciklus 2. tedd { ezek ismétlődjenek;} amíg (feltétel) ÓE-NIK, 2011 22

Szöveges leírás III. Szekvencia Az utasítás végén ; Az utasításokat kapcsos zárójelekkel fogjuk össze: { ez legyen; az legyen; } Elágaztatás Az else ág nem kötelező if(feltétel) { ez legyen;} else{az legyen;} ÓE-NIK, 2011 23

Szöveges leírás IV. Ciklus 1. while(feltétel) { ezek ismétlődjenek;} Ciklus 2. do{ ezek ismétlődjenek;} while(feltétel) ÓE-NIK, 2011 24

Objektumorientált Programozás I. Algoritmizálási alapismeretek Algoritmus végrehajtása a számítógépen Adattípusok Típuskonverziók ÓE-NIK, 2011 25

Számítógépes műveletvégzés Cél: annak modellezése, hogy az egyszerű adatokat hogyan tárolja, és a műveleteket hogyan végzi el a számítógép (részletesebben: Architektúrák I.) Használt elemek: OPT (Operatív tár: memória, cache, regisztertér is lehetne. Ez mindegy, a lényeg: byteszervezésű tár) ALU (Arithmetical and Logical Unit: Aritmetikai és Logikai Egység; a műveletvégző egység. 2 bemeneten tud valamilyen műveletet végezni, 1 kimenet) CU (Control Unit: Vezérlőegység) Most NEM használjuk a CPU elnevezést, mert abban lenne más is (buszok, regiszterek, több fajta cache, etc.) ÓE-NIK, 2011 26

Az ALU sematikus működése 1 2 22 3 4 15 5 6 7 8 9 10 11 12 13 14 15 OPT 37 4 2 1 ALU 3 + CU Adat/utasítás Vezérlés 1. LOAD 2 2. LOAD 4 3. ADD 4. STORE 10 ÓE-NIK, 2011 27

Problémák a közvetlen memóriacímekkel Ha így működne, egy nagyobb program megírása szinte lehetetlen komplexitású lenne (a jelenlegi számítógépek címtere óriási) Fogalmunk sincs, hogy az operációs rendszer pontosan hova helyezi el a programunkat (több program fut egyszerre) Neumann-elv: Az adatok és az utasítások a közös operatív tárban vannak ugyanolyan bináris reprezentációban! Nehéz lenne karban tartani, hogy hol van adat, és hol van utasítás Megoldás: a programok csak változókathasználnak, a változók konkrét memóriacíme nem érdekes ÓE-NIK, 2011 28

Problémák a változókkal A fenti példában a memória byteszervezésű: 1 rekesz = 1 byte, a tárolás bitekben történik Ha számot akarunk tárolni, akkor 8 bit csak a 0..255 intervallumban elég. Mi van, ha nagyobb számokat akarunk tárolni? Mi van, ha nem számot akarunk tárolni, hanem szöveget? Mi van, ha nem szöveget akarunk tárolni, hanem egy képet vagy más bináris adatot? A változók bevezetése önmagában nem elég. Tudnunk kell, hogy a változó által kijelölt területen MENNYI adat van, és azt HOGYAN kell értelmezni típusok ÓE-NIK, 2011 29

Objektumorientált Programozás I. Algoritmizálási alapismeretek Algoritmus végrehajtása a számítógépen Adattípusok Típuskonverziók ÓE-NIK, 2011 30

Parancsok, adatok A számítógép minden adatot és utasítást bináris formában tárol a memóriában A tárolt bináris adat jelentése értelmezésfüggő Az adatokat változókban tároljuk A változó deklarációja határozza meg a tárolt adat méretét és értelmezését (típusát) ÓE-NIK, 2011 31

Egyszerű adattípusok MINDENT binárisan tárolunk, az összes adattípus mérete a byte többszöröse Számok Egész Valós (lebegőpontos) Karakterek, karaktersorozatok (string-ek) Logikai értékek ÓE-NIK, 2011 32

Egész (fixpontos) számok Két fő kérdés: tárolási méret, előjelesség a kettőtől függ az ábrázolás értelmezési tartománya Relatív kicsi ábrázolási tartomány, de teljes pontosság Előjeles ábrázolási mód: kettes komplemens, részletesebben: Informatika Elméleti Alapjai Bitek száma Előjeltelen Előjeles 8 byte sbyte 16 ushort short 32 uint int 64 ulong long ÓE-NIK, 2011 33

Egész (fixpontos) számok Név Leírás Értéktartomány sbyte 8 bites előjeles egész -128: 127 byte 8 bites előjel nélküli egész 0 : 255 short 16 bites előjeles egész -32768: 32767 ushort 16 bites előjel nélküli egész 0 : 65535 int 32 bites előjeles egész -2147483648: 2147483647 uint 32 bites előjel nélküli egész 0 : 4294967295 long 64 bites előjeles egész -9223372036854775808: 9223372036854775807 ulong 64 bites előjel nélküli egész 0 : 18446744073709551615 ÓE-NIK, 2011 34

Műveletvégzés egész változókkal A B C 1 2 22 3 4 15 5 6 7 8 9 10 37 11 12 13 14 15 OPT C# Szintaxis: típusnév változónév = kezdőérték; A változó fizikai helye a programozó számára többnyire ismeretlen de igazából nem is érdekes byte a=22; byte b=15; byte c=a+b; Ez már akár C# nyelven írt kódrészlet is lehetne! ÓE-NIK, 2011 35

Műveletvégzés egész változókkal A B C 1 2 22 3 0 4 15 5 0 6 7 8 9 10 37 11 0 12 13 14 15 OPT Hogyan tárolunk byte-szervezésű tárban nem egy byte-os változókat? A konkrét tárolási mód eltérhet (MSB first / LSB first), részletesebben: IEA ushort a=22; ushort b=15; ushort c=a+b; A típusdefiníció magával vonja az adat méretét és értelmezési módját ÓE-NIK, 2011 36

Egész számok speciális értékei MinValue Az ábrázolható legkisebb szám byte.minvalue, int.minvalue, etc MaxValue Az ábrázolható legnagyobb szám short.maxvalue, long.maxvalue, etc Túlcsordulás (a változó++ növeli a változó értékét) bytea=255; a++; a változó értéke 0 lesz sbyteb=-128; b--; a változó értéke 127 lesz ÓE-NIK, 2011 37

Valós (lebegőpontos) számok ± m 2 k Normalizált szám formájában tároljuk (előjel, mantissza, karakterisztika, pontos módszer: IEA) Nagy számtartomány, de nem pontos A számábrázolás formájából adódóan nem csak abszolút értékben túl nagy, de nullához túlságosan közeli számokat sem tud ábrázolni A karakterisztika mérete az ábrázolható számtartomány méretét, a mantissza mérete a pontosságot határozza meg ÓE-NIK, 2011 38

Valós (lebegőpontos) számok Név Leírás Értékes jegy Értéktartomány float 32 bites lebegőpontos 7 ±1,5*10-45 : ±3,4*10 38 double 64 bites lebegőpontos 15 ±5,0*10-324 : ±1,7*10 308 decimal 128 bites nagypontosságú 28 ±1,0*10-28 : ±7,9*10 28 Egyszeres IEEE- 754 szabvány pontosság Kétszeres pontosság Méret Előjel Kitevő Törtrész Eltolás 32 bit 1 bit 8 bit 23 bit 127 64 bit 1 bit 11 bit 52 bit 1023 ÓE-NIK, 2011 39

Nullával való osztás Egész számtípus használatakor futás idejű hibát dob: int a = 5; int b = 0; int c = a / b; Valós számtípus használatakor hibátlan: float x = 5; float y = 0; float z = x / y; Valós számtípus esetén az eredmény lehet: végtelen (pozitív illetve negatív), illetve Nem szám ÓE-NIK, 2011 40

Valós számok speciális értékei 0 Külön +0 és -0 ábrázolható, de ezek egyenértékűek ± A végtelen elfogadott, bizonyos műveletekhez használható érték PozitívSzám/0 +, NegaWvSzám/0 - float.positiveinfinity, double.negativeinfinity decimal nincs! Nem szám 0/0, illetve / eredménye float.nan, double.nan decimal nincs! ÓE-NIK, 2011 41

Valós számok speciális értékei Epsilon A legkisebb ábrázolható pozitív szám float.epsilon, double.epsilon decimal nincs! Kezdőérték megadása Kódban tizedespont használandó: double pi=3.14; Minden így megadott érték típusa double! Jelzőkarakterek kezdőérték megadásánál float pi=3.14f; decimal pi=3.14m ÓE-NIK, 2011 42

Karakterek Egy karakter tárolása ugyanúgy binárisan történik kell lennie egy szabálynak, hogy melyik kód melyik karakternek felel meg ASCII: kezdetben 7 bites. 0-31: vezérlő karakterek; 32-127: angol ABC kis-és nagybetűi, számok, írásjelek 8 bites ASCII: 128-255: rajzoló karakterek, speciális karakterek (ä, ç), nyugat-európának megfelel Hiányzó karakterek: ő, Ő, ű, Ű(csak ô, û) Nincs elég hely: japán, kínai, szír, etc Alternatíva: kódlapok (cp437, cp850/852, cp1250) Kódlapok szabványosítása (ISO8859-1, -2,-15) Probléma: készítés kódlapja feldolgozás kódlapja ÓE-NIK, 2011 43

Karakterek Alternatíva: felejtsük el az 1 byte = 1 karakter szabályt Probléma: akkor hogyan állapítjuk meg egy karakterlánc hosszát? Eddig egyszerű volt, de ezután mindent újra kell írni... UNICODE kódolás, UTF-8, UTF-16, UTF-32 kódlapok UTF-8: Az angol ABC betűinek kódolása ugyanaz, a többi karakternek egyedi kódja van, 2-4 byte / karakter UTF-16: 2 vagy 4 byte / karakter AZ UTF-16 A C# NYELV ÉS A.NET KERETRENDSZER BELSŐ KÓDOLÁSA(a file-ok kódolása UTF-8) Minden karakteres típus, minden szövegkezelő függvény ez alapján működik ÓE-NIK, 2011 44

Karakterek, karakterláncok Karakter: char (megadás: aposztróffal) char karakter= ű ; Karakterlánc: string (megadás: idézőjellel) string karakterlanc="árvíztűrő Tükörfúrógép"; Speciális karakterek is megadhatóak (@ jellel kikapcsolható): Jelölés Karakter \0 Null karakter \a Sípszó \b Visszatörlés \f Lapdobás \n Soremelés \r Kocsi vissza \t Vízszintes tabulátor Jelölés Karakter \v Függőleges tabulátor \x... Hexadecimális kód \u... Unicode karakter \U... Unicode karakter \' Aposztróf \" Idézőjel \\ Backslash ÓE-NIK, 2011 45

Logikai típus Név Leírás Értéktartomány bool Logikai adattípus true vagy false (igaz vagy hamis) Teljesítmény-okokból általában nem 1 biten ábrázoljuk, részletesebben lásd IEA Logikai műveletek: A B A B A B A B (A) H H H H H I H I H I I I I H H I I H I I I I H H ÓE-NIK, 2011 46

Változók deklarálása és használata int j = -10 10; int x = 10, y = 20; double pi = 3.14159; const intszáz = 100; chard = 'x'; charunicodepélda = '\u0170' u0170'; // "Ű" karakter stringjegy = "jeles"; stringelérésiút = "C:\\Program Files\\"; stringelérésiút2 = @"C:\Program Files\"; stringvers = @"Hová merült el szép szemed világa"; booligaz = true; ÓE-NIK, 2011 47 Fontos szabály: azonos névvel egy változót nem lehet kétszer deklarálni! A közvetlenül beírt értékek más neve: literál

Speciális literálok Egész literál: Típusuk: int, uint, long, vagy ulong(ebben a sorrendben) attól függően, hogy melyik típusban fér el a megadott érték Az egész literáltípusa is módosítható a literálmögé írt betűkkel: U : uint, vagy ulong(pl.: 255U) L : longvagy ulong(pl.: -356L) UL : ulong(pl.: 222UL) Megadható hexadecimálisan: 0xFF Valós literál, tudományos megadás: 1.23456E-2

Objektumorientált Programozás I. Algoritmizálási alapismeretek Algoritmus végrehajtása a számítógépen Adattípusok Típuskonverziók ÓE-NIK, 2011 49

Típuskonverziók A számtípusok közötti konverzió mikéntje attól függ, hogy történik e értékvesztés a konverzió során Egyszerű értékadás használható, amennyiben biztos, hogy nincs értékvesztés: byte a=5; long c=5; float f=3.2f; int b=a; float d=c; double g=f; Amennyiben értékvesztés történhet, akkor mindenképp jelezni kell a konverziót, ez az ún. típuskényszerítés, kasztolás (typecasting): int a=999; double d=3.14; int i1=-1; byte b=(byte)a; int c=(int)d; uint i2=(uint)i1; ÓE-NIK, 2011 50

Típuskonverziók A stringgétörténő konverzió a C# nyelven MINDEN változónál ugyanúgy történik: byte b=250; string s1=b.tostring(); Stringből számmá tudunk konvertálni: string s="123"; byte b=byte.parse(s); float f=3.14f; string s2=f.tostring(); string s2="123,456"; float f=float.parse(s2); Typecasting esetén (ebben a félévben számok között): célváltozó = (céltípus)forrásváltozó; Stringgé konvertálásnál: célváltozó = forrásváltozó.tostring(); Stringből konvertálásnál: célváltozó=céltípus.parse(stringváltozó); ÓE-NIK, 2011 51

Objektumorientált Programozás Algoritmizálási alapismeretek Algoritmus végrehajtása a számítógépen Adattípusok Típuskonverziók I. ÓE-NIK, 2011 52

Irodalom, feladatok Kotsis-Légrádi-Nagy-Szénási:Többnyelvű programozástechnika, PANEM, Budapest, 2007 Faraz Rasheed: C# School, Synchron Data, 2006 http://www.programmersheaven.com/2/csharpbook Reiter István: C# jegyzet, DevPortal, 2010, http://devportal.hu/content/csharpjegyzet.aspx ÓE-NIK, 2011 53

ÓE-NIK, 2011 54

ÓE-NIK, 2011 55