A C programozási nyelv I. Bevezetés

Hasonló dokumentumok
A C programozási nyelv I. Bevezetés

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

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

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

Java II. I A Java programozási nyelv alapelemei

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

Programozás I gyakorlat

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

Java II. I A Java programozási nyelv alapelemei

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

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

A C programozási nyelv VI. Parancssori argumentumok File kezelés

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

Programozás I gyakorlat

A C programozási nyelv III. Pointerek és tömbök.

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

A C programozási nyelv III. Pointerek és tömbök.

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

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

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

C programozás. 1 óra Bevezetés

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

A C programozási nyelv IV. Deklaráció és definíció

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

M veletek és kifejezések

Programozás alapjai gyakorlat. 2. gyakorlat C alapok

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

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

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

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

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

Programozás I gyakorlat

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

Típusok és konstansok

Készítette: Nagy Tibor István

Bevezetés a C++ programozási nyelvbe

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 október 11. Széchenyi István Egyetem, Gy r

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

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

Programozás C és C++ -ban

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

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

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

Készítette: Nagy Tibor István

Programozás I. 5. Előadás: Függvények

3 A C programozási nyelv szintaktikai egységei

Programozás alapjai C nyelv 8. gyakorlat. Mutatók és címek (ism.) Indirekció (ism)

Szoftvertechnológia alapjai Java előadások

A C# programozási nyelv alapjai

Mutatók és címek (ism.) Programozás alapjai C nyelv 8. gyakorlat. Indirekció (ism) Néhány dolog érthetőbb (ism.) Változók a memóriában

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

Függvény pointer. Feladat: Egy tömbben soroljunk fel függvényeket, és hívjuk meg valahányszor.

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

Szoftvertervezés és -fejlesztés I.

Stack Vezérlés szerkezet Adat 2.

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

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

Informatika terméktervezőknek

C programnyelv 1. Kedves Kollegina, Kolléga!

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)

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

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

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

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

B I T M A N B I v: T M A N

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 EA+GY 1. gyakolat

7. gyakorlat. Fájlkezelés IO haladó Függvények haladó

Információs Technológia

Adatbázis és szoftverfejlesztés elmélet

10. gyakorlat Tömb, mint függvény argumentum

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.

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

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

Pénzügyi algoritmusok

Megoldott programozási feladatok standard C-ben

Programozás I gyakorlat

Hardver leíró nyelvek (HDL)

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

A C# PROGRAMOZÁSI NYELV

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

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

7. fejezet: Mutatók és tömbök

C programozási nyelv

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

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

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

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

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

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

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

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

Operátorok, házi feladat adatszerkezetek

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

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

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

Komputeralgebra rendszerek

Kivételkezelés a C++ nyelvben Bevezetés

Átírá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, de magas szintÿ nyelven 1973: a UNIX átírása C-re 1978: K&R C (Kvázi szabvány) Széleskörÿ használat után: 1983: szabvány el készítése 1989: ANSI C (X3.159-1989) A továbbiakban "C nyelv" alatt mindig "ANSI C" értend A C programozási nyelv I. (Bevezetés) CBEV 1/ 2

A C nyelv jellemz i általános célú viszonylag alacsony szintÿ alapobjektumok: karakterek, számok, címek nincsenek összetett objektumokat kezel utasítások általában kicsi és hatékony célprogram törekvés a hordozhatóságra számos implementáció széleskörÿ használat gazdag függvénykönyvtár választék A C programozási nyelv I. (Bevezetés) CBEV 1/ 3

A C program szokásos szerkezete 1. direktívák globális deklarációk és definíciók main() { lokális deklarációk utasítások } függvény definíciók A C programozási nyelv I. (Bevezetés) CBEV 1/ 4

A C program szokásos szerkezete 2. A program a main függvény els végrehajtható utasításával indul. A minimális (mÿköd ) C program: main( ) { } A C programozási nyelv I. (Bevezetés) CBEV 1/ 5

Szintaktikai egységek 1. Azonosítók Betÿk, számjegyek és _ (aláhúzás) Nem kezd dhet számjeggyel Kis-nagybetÿ érzékeny! Kulcsszavak Fenntartott szavak, kisbetÿsek. A C programozási nyelv I. (Bevezetés) CBEV 1/ 6

Szintaktikai egységek 2. Állandók egész: 123, 0123, 0x123 karakter: 'a','\n','\137' lebeg pontos: 1. 1.3,.6, 1.2e12 Karakterlánc (string) "karaktersorozat" Tárolás: a karaktereket tartalmazó byte-sorozat után még egy 0 byte! A C programozási nyelv I. (Bevezetés) CBEV 1/ 7

Szintaktikai egységek 3. Operátorok Egy- két- és három operandusú. Széles választék Egyéb elválasztók utasításvég: ; (pontosvessz ) blokkhatárok: { } "üres helyek" (space, tab, újsor, megjegyzés) Megjegyzés /* Karaktersorozat */ Nem skatulyázhatók egymásba! A C programozási nyelv I. (Bevezetés) CBEV 1/ 8

Változók Négy jellemzÿ: név (ez azonosító kell legyen) típus (memóriaméret) cím (a memóriában) aktuális érték (memóriatartalom) A C programozási nyelv I. (Bevezetés) CBEV 1/ 9

Típusnév char int Egész (integrális) típusok 1. Hossz 1 byte gépfüggÿ, a "természetes" hossz (szóhossz) Short (int) (legalább) 16 bit long (int) (legalább) 32 bit A C programozási nyelv I. (Bevezetés) CBEV 1/ 10

Egész (integrális) típusok 2. Megjegyzések: A nyelv csak azt írja elÿ, hogy short <= int és int <= long Mindegyik elé alkalmazható a signed (elÿjeles)-achar kivételével ez a default unsigned (elÿjel nélküli) Achar elÿjelessége gépfüggÿ! A C programozási nyelv I. (Bevezetés) CBEV 1/ 11

Lebegÿpontos típusok Típusnév float double long double Hossz gépfüggÿ (ált. 4 byte) gépfüggÿ (ált. 8 byte) gépfüggÿ (ált. 16 byte) A C programozási nyelv I. (Bevezetés) CBEV 1/ 12

Deklaráció (bevezetés) Változó: típusnév azonosító[,azonosító] Tömb: típusnév azonosító[elemek száma] Az indexelés 0-tól indul! A C programozási nyelv I. (Bevezetés) CBEV 1/ 13

Kifejezések Operátorok és operandusok váltakozó sorozata Operandusok: konstans változó függvényhívás kerek zárójelek közé zárt kifejezés A C programozási nyelv I. (Bevezetés) CBEV 1/ 14

Operátorok 1. Csoport Jel Asszociativitás elsÿdleges (), [], ->,. b-j egyoperandusú cast, sizeof, &, *, ++, --, ~! j-b multiplikatív *, /, % b-j additív +, - b-j eltolás <<, >> b-j relációs <,<=,>,>= b-j A C programozási nyelv I. (Bevezetés) CBEV 1/ 15

Operátorok 2. Csoport Jel Asszociativitás egyenlÿség ==,!= b-j AND & b-j XOR ^ b-j OR b-j logikai AND && b-j logikai OR b-j A C programozási nyelv I. (Bevezetés) CBEV 1/ 16

Operátorok 3. Csoport Jel Asszociativitás értékadás =, +=, -=, /=, %=, >>=, <<=, &=, ^= j-b kif. lista, (vesszÿ) b-j A C programozási nyelv I. (Bevezetés) CBEV 1/ 17

Operátorok (Megjegyzések) 1. A kiértékelés sorrendjét a precedencia és az asszociativitás határozza meg. Specialitások: minden kifejezés pontosvesszÿvel lezárva utasítássá válik! Egészosztás cím-operátorok ++és-- A C programozási nyelv I. (Bevezetés) CBEV 1/ 18

Operátorok (Megjegyzések) 2. Specialitások (folytatás): "Boolean" típus nincs! nincs értékadó utasítás, csak értékadó kifejezés! összetett értékadás típuskonverziók rendje explicit (kényszerített) típuskonverzió (cast): (típusnév) kif A C programozási nyelv I. (Bevezetés) CBEV 1/ 19

Szimbolikus konstans 1. Valójában makródefiníciók (részletesebben késÿbb) Formája: #define azonosító karaktersor A forrásban az azonosító minden magyarázaton kívüli elÿfordulása kicserélÿdik karaktersor -ra A C programozási nyelv I. (Bevezetés) CBEV 1/ 20

Szimbolikus konstans 2. Pl.: #define IGAZ 1 #define HAMIS 0 #define BEGIN { #define END { Szokásjog: nagybet s név!!!! Vannak elÿredefiniált konstansok (pl. EOF) A C programozási nyelv I. (Bevezetés) CBEV 1/ 21

Standard header file-ok (bevezetés) 1. Alapszabály: C programban csak deklarált azonosítók használhatók! A standard függvények deklarációját standard header file-ok tartalmazzák. A #include un. direktíva a forrásszövegbe beszúrja a megadott file-t. A C programozási nyelv I. (Bevezetés) CBEV 1/ 22

Standard header file-ok (bevezetés) 2. Pl.: #include <stdio.h> a standard input-output függvények és konstansok deklarációinak beillesztésére #include <math.h> matematikai függvények deklarációi #include "fuggvenyeim.h" saját függvények deklarációi A C programozási nyelv I. (Bevezetés) CBEV 1/ 23

Egyszer input-output 1. A standard inputról és a standard outputra Karakter beolvasása: int getchar(void) függvény Visszatérési érték: a beolvasott karakter kódja Karakter kiírása int putchar (char c) függvény A C programozási nyelv I. (Bevezetés) CBEV 1/ 24

Egyszer input-output 2. Formattált kiírás printf ("formátum", arg1, arg2,...) Kiírja az elsÿ paraméterének megfelelÿ formátumban a további paramétereinek az értékét. A C programozási nyelv I. (Bevezetés) CBEV 1/ 25

Egyszer input-output 3. A formátum-specifikáció tartalma: közönséges karakterek változatlanul kinyomtatódnak konverzió-specifikáció A soron következÿ argumentum nyomtatási formáját határozza meg. Pl.: A C programozási nyelv I. (Bevezetés) CBEV 1/ 26

%nd Egyszer input-output 4. Egész érték kiírása n karakter széles helyre, balra igazítva %d Egész érték kiírása a szükséges szélességben %s Karakterlánc kiírás végig (a \0-t tartalmazó byte-ig) A C programozási nyelv I. (Bevezetés) CBEV 1/ 27

Egyszer input-output 5. %ns Karakterlánc elsÿ n karakterének kiírása, ha kell, balra igazítva %n.mf Lebegÿpontos szám fixpontos kiírása n szélességben, m tizedesjeggyel %n.me Lebegÿpontos szám kiírása lebegÿpontos formában, n szélességben, a karakterisztikában m tizedesjegyet használva A C programozási nyelv I. (Bevezetés) CBEV 1/ 28

Egyszer input-output 6. Formattált beolvasás scanf("form.",címlista) ahol a "form" az alábbiakból állhat: %d decimális %c karakter %s string %o oktális %x hexadecimális %p pointer (cím) A C programozási nyelv I. (Bevezetés) CBEV 1/ 29

Egyszer input-output 7. A címlista lehet pl. változók címei vesszÿvel elválasztva. Az egyes beolvasandó értékeket legalább egy "üres" karakter választja el. int a; scanf("%d",&a); Mindkét függvénynél az elsÿ paraméter tartalma határozza meg a további paraméterek számát és típusát -> HIBA OK! A C programozási nyelv I. (Bevezetés) CBEV 1/ 30