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

Hasonló dokumentumok
Programozás BMEKOKAA146. 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

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

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

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

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

Készítette: Nagy Tibor István

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 C programozási nyelv I. Bevezetés

Java II. I A Java programozási nyelv alapelemei

A C programozási nyelv I. Bevezetés

Információs Technológia

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

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

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 3. Dr. Iványi Péter

C programozás. 1 óra Bevezetés

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

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

Java II. I A Java programozási nyelv alapelemei

3 A C programozási nyelv szintaktikai egységei

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

Számítástechnika II. BMEKOKAA 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

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

Mechatronika és mikroszámítógépek 2017/2018 I. félév. Bevezetés a C nyelvbe

C programozási nyelv Pointerek, tömbök, pointer aritmetika

Bevezetés a C programozási nyelvbe. Az Általános Informatikai Tanszék C nyelvi kódolási szabványa

Szoftvertervezés és -fejlesztés I.

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

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

A C# programozási nyelv alapjai

Pénzügyi algoritmusok

Vezérlési szerkezetek

C programnyelv 1. Kedves Kollegina, Kolléga!

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

A C# PROGRAMOZÁSI NYELV

Java programozási nyelv

Vezérlési szerkezetek. Szelekció Ciklusok

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

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

Aritmetikai kifejezések lengyelformára hozása

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

Objektumorientált Programozás II.

Informatika terméktervezőknek

Assembly programozás: 2. gyakorlat

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

GYAKORLATIAS JAVA MINTA

Szoftvertechnológia alapjai Java előadások

Készítette: Nagy Tibor István

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

Típusok és konstansok

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

Programozás I gyakorlat

Programozás II. 2. Dr. Iványi Péter

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.

Stack Vezérlés szerkezet Adat 2.

Programozás alapjai gyakorlat. 4. gyakorlat Konstansok, tömbök, stringek

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

Labor gyakorlat Mikrovezérlők

Programozás I. gyakorlat

Programozás I gyakorlat

Függvények. Programozás I. Hatwágner F. Miklós november 16. Széchenyi István Egyetem, Gy r

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

C programozás. 6 óra Függvények, függvényszerű makrók, globális és

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

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

C programozási nyelv. Dr. Schuster György szeptember 18.

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

Labor gyakorlat Mikrovezérlők

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

Operátorok, házi feladat adatszerkezetek

Bevezetés a C++ programozásba

Bodlaki Tamás. Programozás C nyelven. Távoktatási segédlet

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

Programozás alapjai gyakorlat. 2. gyakorlat C alapok

Bevezetés a programozásba I.

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

Operációs rendszerek. 11. gyakorlat. AWK - szintaxis, vezérlési szerkezetek UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

Labor gyakorlat Mikrovezérlők

Szövegek C++ -ban, a string osztály

A WEB programozása JavaScript 1 dr.gál Tibor őszi félév

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

Bevezetés a C++ programozási nyelvbe

Forráskód formázási szabályok

M veletek és kifejezések

Internet programozása. 3. előadás

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

ANSI C++ összefoglaló

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

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

Feladat: Hogyan tudunk létrehozni egy olyan vector nevű tömb típust, amely egy háromdimenziós térbeli vektort reprezentál?

Pénzügyi algoritmusok

Az alkalmazásfejlesztés, fordítás Actionscript elemei, a Macromedia Flash rendszer. 1. Az alkalmazásfejlesztés lépései

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

Programozás C nyelven (3. ELŐADÁS) Sapientia EMTE

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

Programozási Nyelvek (C++) Összefoglaló

Átírá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 pén. 8:15 Aradi Szilárd C gyakorlat Atmel AVR Labor kéthetente csüt. 12:15 Aradi Szilárd Projektfeladat készítése 2012.09.10. Dr. Bécsi Tamás: Járműfedélzeti rendszerek I. 2

Követelmények Labor projektfeladat elkészítése 1 Zh (1 Pótzh) Szóbeli vizsga 2012.09.10. Dr. Bécsi Tamás: Járműfedélzeti rendszerek I. 3

Programstruktúra #include-ok #define-ok deklarációk: konstansok globális változók külső változók függvények int main(void){} függvény definíciók 2012.09.10. Dr. Bécsi Tamás: Járműfedélzeti rendszerek I. 4

Azonosítók A C programnyelv Case Sensitive Azonosító tartalmazhat: angol abc betűi ( a.. z, A.. Z ) számok ( 0.. 9 ) _ karakter Nem kezdődhet számmal 2012.09.10. Dr. Bécsi Tamás: Járműfedélzeti rendszerek I. 5

Típusok A C nyelv viszonylag kevés alapvető adattípust használ: char int short long float double Emellett léteznek minősítők: unsigned signed short long egyetlen bájt, a gépi karakterkészlet egy elemét tárolja egész szám, mérete általában a befogadó számítógép egészek ábrázolásához használt mérete rövid egész hosszú egész egyszeres pontosságú lebegőpontos szám kétszeres pontosságú lebegőpontos szám Előjel nélküli előjeles Rövid Hosszú 2012.09.10. Dr. Bécsi Tamás: Járműfedélzeti rendszerek I. 6

Állandók Állandók 1234 int állandó 1234L long állandó 1234UL unsigned long állandó 0x1f2 hexa állandó 0x1f2UL hexa unsigned long 1234.5 double állandó 1234.5f float állandó c char állandó szoveg char[] (string) állandó Escape Szekvenciák \a figyelmeztető jelzés (bell, csengő) \b visszalépés (backspace) \f lapdobás (formfeed) \n új sor (new line) \r kocsi vissza (carriage return) \t vízszintes tabulátor (horizontal tab, HTAB) \v függőleges tabulátor (vertical tab, VTAB) \\ fordított törtvonal (backlash) \? kérdőjel \' aposztróf \" idézőjel \ooo oktális szám \xhh hexadecimális szám 2012.09.10. Dr. Bécsi Tamás: Járműfedélzeti rendszerek I. 7

Változó deklarációk Deklarációk: int i; float f,g; char c; Inicializálás: char c=a; char szoveg[]=szöveg; const int j=12; 2012.09.10. Dr. Bécsi Tamás: Járműfedélzeti rendszerek I. 8

2.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). 2012.09.10. Dr. Bécsi Tamás: Járműfedélzeti rendszerek I. 9

2.6. Relációs és logikai 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 számértéke definíció szerint 0, ha a kifejezés hamis, és 1, ha igaz. 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 nem nulla (igaz) operandust 0 értékűvé (hamissá), a 0 értékű (hamis) operandust 1 értékűvé (igazzá) alakítja. 2012.09.10. Dr. Bécsi Tamás: Járműfedélzeti rendszerek I. 10

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. 2012.09.10. Dr. Bécsi Tamás: Járműfedélzeti rendszerek I. 11

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, azaz char, short, int és long típusokra használhatók, 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) 2012.09.10. Dr. Bécsi Tamás: Járműfedélzeti rendszerek I. 12

Értékadás operátor Értékadás: 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! 2012.09.10. Dr. Bécsi Tamás: Járműfedélzeti rendszerek I. 13

A?: operátor Nézzük meg a következő kifejezést: if (a>b) z=a; else z=b; Ez felírható egyszerűbb alakban a?: operátor segítségével: z=(a>b)?a:b; formában 2012.09.10. Dr. Bécsi Tamás: Járműfedélzeti rendszerek I. 14

Operátorok összefoglalás precedencia és asszociativitás Operátor Asszociativitás () [] -> balról jobbra! ~ ++ -- + - * & (típus) sizeof jobbról balra * / % balról jobbra + - balról jobbra << >> balról jobbra < <= > >= balról jobbra ==!= balról jobbra & balról jobbra ^ balról jobbra balról jobbra && balról jobbra jobbról balra?: jobbról balra = += -= *= /= %= &= ^= = <<= >>= balról jobbra 2012.09.10. Dr. Bécsi Tamás: Járműfedélzeti rendszerek I. 15

3. Vezérlési szerkezetek 3.1 Utasítások és blokok Egy kifejezés utasítássá válhat, ha pontosvesszővel lezárjuk. Pld.: x = 0; i++; printf(); A pontosvessző tehát utasításlezáró karakter A {} deklarációk és utasítások csoportját foglalja össze egyetlen összetett utasításba, vagy blokkba, amely szintaktikailag egy utasításnak felel meg. 2012.09.10. Dr. Bécsi Tamás: Járműfedélzeti rendszerek I. 16

3.2. Az if-else utasítás Formája: if (kifejezés) 1.utasítás else 2.utasítás Ahol az else rész opcionális. Az else mindig a legközelebbi if-hez tartozik: if (n>0) if (a>b) z=a; else z=b; 2012.09.10. Dr. Bécsi Tamás: Járműfedélzeti rendszerek I. 17

3.4. A switch utasítás switch (kifejezés){ case állandó kifejezés: utasítások case állandó kifejezés: utasítások.. default: utasítások; } A default ág opcionális; Az egyes eseteket break utasítással törhetjük meg. 2012.09.10. Dr. Bécsi Tamás: Járműfedélzeti rendszerek I. 18

3.4. switch példa char c; switch (c){ case 'a': case 'e': case 'i': case 'o': case 'u': printf("maganhangzo"); break; case ' ': printf("space"); break; default: printf ("Egyik sem"); } 2012.09.10. Dr. Bécsi Tamás: Járműfedélzeti rendszerek I. 19

Vége Köszönöm a figyelmet! 2012.09.10. Dr. Bécsi Tamás: Járműfedélzeti rendszerek I. 20