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

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

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

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

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

Készítette: Nagy Tibor István

A C# PROGRAMOZÁSI NYELV

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

Számítástechnika I. BMEKOKAA152 BMEKOKAA119 Infokommunikáció I. BMEKOKAA606. 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

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

Kifejezések. A programozás alapjai előadás. Operátorok. Kifejezések. Operátorok precedenciája. Operátorok precedenciája

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

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

Java II. I A Java programozási nyelv alapelemei

A C programozási nyelv I. Bevezetés

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

A C programozási nyelv I. Bevezetés

A C# programozási nyelv alapjai

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

Algoritmusok Tervezése. 4. Előadás Visual Basic 1. Dr. Bécsi Tamás

Szoftvertervezés és -fejlesztés I.

Informatika terméktervezőknek

Programozás I gyakorlat

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

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

Java II. I A Java programozási nyelv alapelemei

Objektumorientált Programozás II.

Készítette: Nagy Tibor István

Információs Technológia

GYAKORLATIAS JAVA MINTA

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

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

Aritmetikai kifejezések lengyelformára hozása

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

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

Szoftvertechnológia alapjai Java előadások

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

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

F1. Hasznos táblázatok

Vezérlési szerkezetek

Programozás 2., I. kötet Az objektumorientált paradigma alapjai

Raszteres elemzés végrehajtása QGIS GRASS moduljával 1.7 dr. Siki Zoltán

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

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

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

Alapok. tisztán funkcionális nyelv, minden függvény (a konstansok is) nincsenek hagyományos változók, az első értékadás után nem módosíthatók

Assembly programozás: 2. gyakorlat

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

Mit jelent a nyelvben az adattípus?

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

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

Operátorok, házi feladat adatszerkezetek

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

3. Gyakorlat Ismerkedés a Java nyelvvel

Bevezetés a programozásba I.

Bevezetés a C# programozásba

Bevezetés a C++ programozásba

Programozási nyelvek Java

M veletek és kifejezések

PHP. Telepítése: Indítás/újraindítás/leállítás: Beállítások: A PHP nyelv

Java programozási nyelv

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

Programozás III CSOMAGOK. Az összetartozó osztályok és interfészek egy csomagba (package) kerülnek.

C# Nyelvi Elemei. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) C# Nyelvi Elemei / 18

// keressük meg a legnagyobb faktoriális értéket, ami kisebb, // mint százmillió

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

Pénzügyi algoritmusok

Szoftvertervezés és -fejlesztés I.

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

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

A Java programozási nyelv

A C# szintaktikája. a C programozási nyelv szintaxisát veszi alapul, ez három fontos szabályt von maga után:

Objektumorientált Programozás I.

SZÁMÉRTÉKEK (ÁT)KÓDOLÁSA

3 A C programozási nyelv szintaktikai egységei

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

Programozás C- és Matlab nyelven C programozás kurzus BMEKOKAM603 Mutatók. Dr. Bécsi Tamás 7. Előadás

PASzSz. Dr. Kotsis Domokos

Algoritmizálás + kódolás C++ nyelven és Pascalban

Vezérlési szerkezetek. Szelekció Ciklusok

FUNKCIONÁLIS PROGRAMOZÁS GYAKORLAT JEGYZET

S z á m í t ó g é p e s a l a p i s m e r e t e k

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.

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

Gyakorló feladatok Gyakorló feladatok

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

Programozás alapjai. 5. előadás

Karakterkészlet. A kis- és nagybetűk nem különböznek, a sztringliterálok belsejét leszámítva!

Programok értelmezése

A C# nyelv alapelemei

Komputeralgebra Rendszerek

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

Programozási nyelvek JAVA EA+GY 1. gyakolat

Globális operátor overloading

A SystemC programok adattípusai

Programozás II. Segédlet az első dolgozathoz

OOP II. A C# nyelv alapelemei

Alkalmazott Modul III 2. előadás. Procedurális programozás: adattípusok, elemi programok

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

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

Átírá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 System.Char 2Egy Unicode karakter bool System.Boolean 1Logikai típus, értéke igaz(1) vagy hamis(0) sbyte System.SByte 1Előjeles 8 bites egész szám (-128..127) short System.Int16 2Előjeles 16 bites egész szám (-32768..32767) ushort System.UInt16 2Előjel nélküli 16 bites egész szám (0..65535) int System.Int32 4Előjeles 32 bites egész szám ( 2147483647.. 2147483647). uint System.UInt32 4Előjel nélküli 32 bites egész szám (0..4294967295) float System.Single 4Egyszeres pontosságú lebegőpontos szám double System.Double 8Kétszeres pontosság lebegőpontos szám decimal System.Decimal 8Fix pontosságú 28+1 jegyű szám long System.Int64 8Előjeles 64 bites egész szám ulong System.UInt64 8Előjel nélküli 64 bites egész szám string System.String N/A Unicode karakterek szekvenciája object System.Object N/A Minden más típus őse 2016. 09. 26. Programozás 2. Előadás 2

Szám-Szöveg konverzió Típus statikus Parse függvénye: public static <típus> <típus>.parse(string s); int i=int.parse( 31 ); Típus statikus TryParse függvénye: public static bool TryParse( string s, out int result ) Convert osztály: k=convert.toint32("13"); ToString() metódus: string s = k.tostring(); 2016. 09. 26. Programozás 2. Előadás 3

Szintaktikai alapok Alapvető operátorok és precedencia Kategória Operátor Asszociativitás Elsődleges () [] ->. ++ - - Left to right + -! ~ ++ - - (type)* & sizeof Right to left Multiplikatív * / % Left to right Additív + - Left to right Shift << >> Left to right Relációs és típusvizsgálat < <= > >= is as Left to right Egyenlőség ==!= Left to right Bitenkénti AND & Left to right Bitenkénti XOR ^ Left to right Bitenkénti OR Left to right Logikai AND && Left to right Logikai OR Left to right Feltételes?: Right to left Értékadás = += -= *= /= %=>>= <<= &= ^= = Right to left Vessző, Left to right 2016. 09. 26. Programozás 2. Előadás 4

Értékadás operátor Az egyik legáltalánosabb művelet, amit elvégezhetünk az, hogy egy változónak értéket adunk. A C# nyelvben ezt az egyenlőségjel segítségével tehetjük meg: i=2; Az olyan kifejezések esetén, ahol a bal oldali érték megjelenik a jobb oldalon, pld.: i=i+2; tömörebb formában is írhatjuk: i+=2; Az értékadásnak van visszatérő értéke! 2016. 09. 26. Programozás 2. Előadás 5

Aritmetikai operátotok A C# nyelv kétoperandusú aritmetikai operátorai a +, -, * és /, valamint a % modulus operátor. Az egészek osztásakor a törtrészt a rendszer levágja, ezért van szükség a % modulus operátorra. Az x % y kifejezés az x/y egészosztás (egész) maradékát adja, és értéke nulla, ha x osztható y-nal. A % operátor nem alkalmazható float és double típusú adatokra. Negatív operandusok esetén az egészosztás hányadosának csonkítása, valamint a modulus előjele gépfüggő, és ugyanez igaz az esetlegesen előforduló túlcsordulásra és alácsordulásra is. Az egyoperandusú (unáris) + és - operátorok precedenciája a legmagasabb. A kétoperandusú + és - operátorok precedenciája kisebb a *, / és % precedenciájánál. Az aritmetikai operátorok mindig balról jobbra haladva hajtódnak végre (a precedencia figyelembevételével). 2016. 09. 26. Programozás 2. Előadás 6

Relációs operátorok A C# nyelv relációs operátorai: >, >=, <, <=. Ez a sorrend egyben a precedenciájuk sorrendje is. Ezeknél eggyel alacsonyabb precedenciájúak az egyenlőség operátorok: ==,!=. Egy relációs vagy logikai kifejezés értéke definíció szerint false, ha a kifejezés hamis, és true, ha igaz. x > y x >= y x < y x <= y x == y x!= y x nagyobb, mint y x nagyobb vagy egyenlő, mint y x kisebb, mint y x kisebb vagy egyenlő, mint y x egyenlő y-nal x nem egyenlő y-nal 2016. 09. 26. Programozás 2. Előadás 7

Logikai operátorok Az && és (ÉS illetve VAGY) operátorokkal összekapcsolt kifejezések kiértékelése balról jobbra történik, és a kiértékelés azonnal félbeszakad, ha az eredmény igaz vagy hamis volta ismertté válik. A! unáris (egyoperandusú) negáló operátor a true értéket false-á, és fordítva alakítja. A B A&&B A B HAMIS HAMIS HAMIS HAMIS HAMIS IGAZ HAMIS IGAZ IGAZ HAMIS HAMIS IGAZ IGAZ IGAZ IGAZ IGAZ 2016. 09. 26. Programozás 2. Előadás 8

2.8. Inkrementáló és dekrementáló operátorok A C# nyelv két szokatlan operátort használ a változók inkrementálására (eggyel való növelésére) és dekrementálására (eggyel való csökkentésére). A ++ inkrementáló operátor egyet ad az operandushoz, a -- dekrementáló operátor pedig egyet kivon belőle. A ++ és -- szokatlan vonatkozása, hogy prefix formában (a változó előtt elhelyezve, pl. ++n) és postfix formában (a változó után elhelyezve, pl. n++) egyaránt létezik. A kétféle változat egyaránt növeli (vagy csökkenti) a változót, de a ++n a felhasználás előtt, az n++ pedig utána növeli az n értékét (a -- operátor hasonlóan működik). Ebből következően minden olyan esetben, amikor a változó értékét is felhasználjuk (nem csak a növelésre vagy csökkentésre, azaz számlálásra van szükség), a ++n és az n++ különbözik. Ha pl. n értéke 5, akkor x = n++; hatására x értéke 5 lesz, amíg az x = ++n; hatására x értéke 6 lesz. 2016. 09. 26. Programozás 2. Előadás 9

2.9. Bitenkénti logikai operátorok A C# nyelvben hat operátor van a bitenkénti műveletekre. Ezek az operátorok csak egész típusú adatokra használhatóak, akár előjeles, akár előjel nélküli változatban. Az egyes operátorok és értelmezésük a következő: & bitenkénti ÉS-kapcsolat bitenkénti megengedő (inkluzív) VAGY-kapcsolat ^ bitenkénti kizáró (exkluzív) VAGY-kapcsolat << balra léptetés >> jobbra léptetés ~ egyes komplemens képzés (unáris) 2016. 09. 26. Programozás 2. Előadás 10

A Math osztály (System.Math) Metódus Művelet Math.Sin(x) sin(x), ahol az x szög értékét radiánban kell megadni Math.Cos(x) cos(x) Math.Tan(x) tg(x) Math.Exp(x) e x Math.Log(x) ln(x) Math.Sqrt(x) x négyzetgyöke Math.Abs(x) x abszolút értéke Math.Round(x) kerekítés a matematikai szabályok szerint Math.Ceiling(x) felfelé kerekítés Math.Floor(x) lefelé kerekítés Math.Pow(x,y) hatványozás, x y Math.PI a PI konstans (3.14159265358979323846) Math.E az e konstans (2.7182818284590452354) 2016. 09. 26. Programozás 2. Előadás 11

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 utasítást kell végrehajtania. Logikai feltétel igaz Csinál valamit hamis Nem csinál semmit Logikai feltétel igaz Csinál valamit hamis Mást csinál 2016. 09. 26. Programozás 2. Előadás 12

Vezérlési szerkezetek Elágazás szintaktika if (<log. Kif.>) <utasítás> if (<log.kif.>) <utasítás> else <utasítás> 2016. 09. 26. Programozás 2. Előadás 13

Vezérlési szerkezetek Elágazás int i=1; if (i < 10) i = 10; else i -= 1; int i=1,a; if (i < 10) { i = 10; a = 2; } else { i -= 1; a = 21; } 2016. 09. 26. Programozás 2. Előadás 14