A C programozási nyelv I. Bevezetés

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

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

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 II. Utasítások. A függvény.

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

Java II. I A Java programozási nyelv alapelemei

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 alapjai. (GKxB_INTM023) Dr. Hatwágner F. Miklós augusztus 29. Széchenyi István Egyetem, Gy r

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

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

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

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.

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

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

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

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

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

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

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

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

C programozás. 1 óra Bevezetés

M veletek és kifejezések

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 gyakorlat. 2. gyakorlat C alapok

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

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

Készítette: Nagy Tibor István

Programozás I gyakorlat

Típusok és konstansok

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

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

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

Készítette: Nagy Tibor István

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

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

3 A C programozási nyelv szintaktikai egységei

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

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.

Szoftvertechnológia alapjai Java előadások

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

Stack Vezérlés szerkezet Adat 2.

A C# programozási nyelv alapjai

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

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

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

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)

C programnyelv 1. Kedves Kollegina, Kolléga!

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

Szoftvertervezés és -fejlesztés I.

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

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

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ási nyelvek JAVA EA+GY 1. gyakolat

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

Informatika terméktervezőknek

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

Információs Technológia

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

Adatbázis és szoftverfejlesztés elmélet

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

Programozás I gyakorlat

Megoldott programozási feladatok standard C-ben

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

Operátorok, házi feladat adatszerkezetek

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

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

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

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

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

Hardver leíró nyelvek (HDL)

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

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

Bevezetés Kiíratás Beolvasás Formázás Fájlkezelés Gyakorló feladatok C++ I/O. Bevezetés. Izsó Tamás február 20. Izsó Tamás C++ I/O / 1

Komputeralgebra rendszerek

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

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

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

A C# PROGRAMOZÁSI NYELV

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

Komputeralgebra rendszerek

Á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 CBEV/ 1

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 )Cprogram: 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 CBEV/ 2

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 CBEV/ 3

Egész (integrális) típusok 1. Típusnév Hossz char 1byte int 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) - a char kivételével ez az alapértelmezés 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 Hossz float gépfüggÿ (ált. 4 byte) double gépfüggÿ (ált. 8 byte) long double gépfüggÿ (ált. 16 byte) A C programozási nyelv I. (Bevezetés) CBEV 1/ 12 CBEV/ 4

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 CBEV/ 5

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 CBEV/ 6

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 CBEV/ 7

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 CBEV/ 8

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 CBEV/ 9

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 CBEV/ 10