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

Hasonló dokumentumok
C programozás. 1 óra Bevezetés

Pénzügyi algoritmusok

A C programozási nyelv I. Bevezetés

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

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

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

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

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

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

BASH script programozás II. Vezérlési szerkezetek

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

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

A C programozási nyelv II. Utasítások. A függvény.

Komputeralgebra Rendszerek

Informatika terméktervezőknek

Java II. I A Java programozási nyelv alapelemei

Programozási nyelvek JAVA EA+GY 1. gyakolat

C programozási nyelv

Szoftvertechnológia alapjai Java előadások

Információs Technológia

Java II. I A Java programozási nyelv alapelemei

C++ programok fordítása

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

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

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

Stack Vezérlés szerkezet Adat 2.

A programozás alapjai 1 Rekurzió

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

Labor gyakorlat Mikrovezérlők

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

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

Programozás C és C++ -ban

Programozási nyelvek (ADA)

Dr. Schuster György október 14.

A C# programozási nyelv alapjai

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

Bevezetés, a C++ osztályok. Pere László

Programozás. Programozás villamosmérnököknek

Labor gyakorlat Mikrovezérlők

Függvények. Programozás alapjai C nyelv 7. gyakorlat. LNKO függvény. Függvények(2) LNKO függvény (2) LNKO függvény (3)

Programozás alapjai C nyelv 7. gyakorlat. Függvények. Függvények(2)

Matlab alapok. Baran Ágnes. Baran Ágnes Matlab alapok Elágazások, függvények 1 / 15

A C++ PROGRAMOZÁS ALAPJAI

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

Programozási nyelvek (ADA)

Operációs Rendszerek II. labor. 2. alkalom

1. Bevezetés szeptember 9. BME Fizika Intézet. Szám. szim. labor ea. Tőke Csaba. Tudnivalók. feladat. Tematika. Moodle Házi feladatok

Programozás alapjai gyakorlat. 2. gyakorlat C alapok

Java programozási nyelv

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

Bevezetés az assembly nyelvbe

Programozás C nyelven FELÜLNÉZETBŐL elhullatott MORZSÁK. Sapientia EMTE

Programozás alapjai 2.Gy: A C nyelv alapjai P R O

A PROGRAMOZÁS ALAPJAI 3. Készítette: Vénné Meskó Katalin

The modular mitmót system. DPY kijelző kártya C API

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

Szoftvertervezés és -fejlesztés I.

Programozás alapjai 9.Gy: Struktúra 2.

1. Alapok. #!/bin/bash

Bevezetés a programozásba Előadás: Tagfüggvények, osztály, objektum

Programozás alapjai 8.Gy: Program struktúra

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

Szkriptnyelvek. 1. UNIX shell

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

Elôszó a magyar kiadáshoz A Kiadó Elôszó

Bevezetés a C++ programozási nyelvbe

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

Programozási nyelvek Java

Alprogramok, paraméterátadás

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

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

GPU Lab. 5. fejezet. A C++ fordítási modellje. Grafikus Processzorok Tudományos Célú Programozása. Berényi Dániel Nagy-Egri Máté Ferenc

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

Vezérlési szerkezetek

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

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

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

A C programozási nyelv V. Struktúra Dinamikus memóriakezelés

A programozás alapjai

C programozás. { Márton Gyöngyvér, 2009 } { Sapientia, Erdélyi Magyar Tudományegyetem }

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

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

Pénzügyi algoritmusok

/* Az iter függvény meghívása és a visszatérő érték átadása a gyok változóba */ gyok = iter( n, a, e ) ;

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

Python tanfolyam Python bevezető I. rész

Bevezetés az assembly nyelvbe

Programozás alapjai C nyelv 5. gyakorlat. Írjunk ki fordítva! Írjunk ki fordítva! (3)

A PROGAMOZÁS ALAPJAI 1. Függvény mint függvény paramétere. Függvény mint függvény paramétere. Függvény mint függvény paramétere

Programozás alapjai. (GKxB_INTM023) Dr. Hatwágner F. Miklós október 15. 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 C- és Matlab nyelven C programozás kurzus BMEKOKAM603 Mutatók. Dr. Bécsi Tamás 7. Előadás

Programozás C- és Matlab nyelven C programozás kurzus BMEKOKAM603 Függvények. Dr. Bécsi Tamás 6. Előadás

Programzás I gyakorlat

Mérnöki programozás 7. Szerkesztette: dr. Vass Péter Tamás

1. Template (sablon) 1.1. Függvénysablon Függvénysablon példányosítás Osztálysablon

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

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

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

Átírás:

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

A C programozási nyelv A C egy általános célú programozási nyelv, melyet Dennis Ritchie fejlesztett ki Ken Thompson segítségével 1969 és 1973 között az UNIX rendszerekre az AT&T Bell Labs-nál. Idővel jóformán minden operációs rendszerre készítettek C fordítóprogramot, és a legnépszerűbb programozási nyelvek egyikévé vált. Rendszerprogramozáshoz és felhasználói programok készítéséhez egyaránt jól használható. Az oktatásban és a számítógép-tudományban is jelentős szerepe van. A C minden idők legszélesebb körben használt programozási nyelve, és a C fordítók elérhetőek a ma elérhető számítógép architektúrák és operációs rendszerek többségére. A C függvények hasonlítanak a FORTRAN függvényeire és szubrutinjaira (function and subroutine) vagy a Pascal függvényeire és eljárásaira (function and procedure). 2017.11.08. Bevezetés a C nyelvbe 2

A C program lehetséges alkotóelemei Hivatkozás (külön függvényekre, könyvtárakra) Megjegyzés (ek), Főfüggvény (main), Deklarációk (globális/lokális), Változók kezdeti értékei, Aritmetikai kifejezések, Ciklusok, Formátumozott adatkivitel. 2017.11.08. Bevezetés a C nyelvbe 3

Adattípusok Data Type Bits Bytes Value Range bit 1-0 to 1 signed char 8 1-128 to +127 unsigned char 8 1 0 to 255 signed short 16 2-32768 to +32767 unsigned short 16 2 0 to 65535 signed int 16 2-32768 to +32767 unsigned int 16 2 0 to 65535 signed long 32 4-2147483648 to 2147483647 unsigned long 32 4 0 to 4294967295 float 32 4 ±1.175494E-38 to ±3.402823E+38 Ezekből képezhetünk saját típusokat is: typedef unsigned char byte 2017.11.08. Bevezetés a C nyelvbe 4

Logikai és aritmetikai műveletek Operator Description & Bitwise AND Bitwise OR ~ Bitwise NOT ^ Bitwise XOR && Logical AND Logical OR! Logical NOT == Equal to!= Not Equal to < Less than > Greater than <= Less than or equal to >= Greater than or equal to Operator Description + add subtract * multiply / divide % modulus (remainder) ++ increment decrement 2017.11.08. Bevezetés a C nyelvbe 5

Összetett műveletek Operator Description Example Equivalent &= Bitwise And with variable X &= 0x00FF X=X & 0x00FF = Bitwise Or with variable X = 0x0080 X=X 0x0080 ^= Bitwise XOR with variable X ^= 0x07A0 X=X 0x07A0 += Add to variable X += 2 X=X + 2 -= Subtract from variable X -= 1 X=X - 1 /= Divide variable X /= 2 X=X / 2 *= Multiply variable X *= 4 X=X * 4 Példa: x=5, i=1 x+=i++ x==6, i==2 x+=++i x==7, i==2 2017.11.08. Bevezetés a C nyelvbe 6

Elágazások, ciklusok if (expr) statement else if (expr) statement else statement for (expr1; expr2; expr3) statement while (expr) statement do statement while(expr) switch (expr) { case const1: statement1; break; case const2: statement2; break; default: statement } 2017.11.08. Bevezetés a C nyelvbe 7

Függvények típus fv_név (paraméterek) { statement return expr } típus fv_név (void) { statement return expr } void fv_név (paraméterek) { statement } void fv_név (void) { statement } Paraméteres, visszatérési értéke van Paraméter nélküli, visszatérési értéke van Paraméteres, visszatérési érték nélküli Paraméter nélküli, visszatérési érték nélküli 2017.11.08. Bevezetés a C nyelvbe 8 8

Függvények A függvény implementáció három összefüggő lépése: 1. Függvény prototípus megadása. 2. Függvény definíció megadása. 3. Függvény hívása. A függvény deklaráció (prototípus) mindig megelőzi a függvény definiálását, de történhet a kettő 1 lépésben is. Ha a függvény neve előtt void-tól eltérő visszatérési típus szerepel, akkor ennek a típusnak megfelelő típusú változó fogadhatja a return utasítással visszaadott értéket. 2017.11.08. Bevezetés a C nyelvbe 9

A C programkódból gépi kód A fordítás lépései: 1. Előfeldolgozás: a #include-ok beépítése, makródefiníciók kiértékelése, behelyettesítése. 2. Fordítás: a forráskódból tárgykódot (object code) készít, ami már gépi kód. (Valamely programnyelven megírt programot képes egy másik nyelv szabályaira lefordítani gépi kód, köztes kód, stb ) 3. Szerkesztés (linkelés): a tárgykódból végrehajtható állományt hoz létre. 2017.11.08. Bevezetés a C nyelvbe 10

C projekt beállítása az IDE-ben 1. Project/Tool Chain Integration SDCC ellenőrzése, ua. mint ASM. 2. Project/New Project: C80510F2x és Blank Project (név és hely megadásával). 3. File/New File: C Source File és Add to Project + Add to Build (név és hely megadásával). 4. Header Files/jobb egér/add file to Header Files: C:Silabs/MCU/IDEfiles/C51/INC: compiler_defs.h C8051F020_defs.h majd jobb egér/add to build egyenként, és nyissuk is meg azokat. 5. Program megírása, rebuild All, Connect, DL, Zöld gomb 6. mentés, végén kimentés wordpad (.txt) formátumba, így elegendő egy projekt az egész C félévre. Vagy töltsük le a zip file-t a honlapról egyszerűbb és gyorsabb 2017.11.08. Bevezetés a C nyelvbe 11

A következő órára HF: Válasszunk egyet az alábbiak közül (akár többféleképpen is írjuk meg a választottat!): 1. Bármely nyomógomb megnyomására kigyullad a LED3, de csak G3 megnyomására alszik el. 2. Bármely gomb lenyomására a LED-ek közül mindig a következő gyullad ki (L1-L2-L3-L4-L1-L2-L3.végtelen ciklusban). 3. G4 megnyomására a P4 alsó/felső biten beállított érték ég a LED-eken, minden gombnyomásra vált (alsó 4bit felső 4 bit alsó 4 bit felső 4 bit ) 4. Gyulladjon ki/aludjon el LED2, ha a P4 alsó 4 biten az ON állapotú kapcsolóknak megfelelő nyomógombot nyomjuk le! 2017.11.08. Bevezetés a C nyelvbe 12

Bevezetés a C nyelvbe Vége a hetedik gyakorlatnak.