C programozás. 2 óra A C nyelv típusai



Hasonló dokumentumok
Információs Technológia

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

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

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.

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

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

3. Gyakorlat Ismerkedés a Java nyelvvel

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

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 3. gyakorlat. Előző óra összefoglalása. Karakter típus (char) Algoritmus leírása. C nyelv tulajdonságai

Programozás I gyakorlat

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

Java II. I A Java programozási nyelv alapelemei

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

Programozás C- és Matlab nyelven C programozás kurzus BMEKOKAM603 Console I/O, Operátorok. Dr. Bécsi Tamás 2. Előadás

Típusok és konstansok

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

A C nyelv eredete, fő tulajdonságai

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

A C++ programozási nyelv középiskolásoknak

VHDL szimuláció. Tervezés. Labor II. Dr. Hidvégi Timót

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

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

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

C programnyelv 1. Kedves Kollegina, Kolléga!

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

Fordítóprogramok Készítette: Nagy Krisztián

Bevezetés a C++ programozási nyelvbe

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ásba

Programozás I gyakorlat. 5. Struktúrák

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

A C nyelv aritmetikai típusai. Struktúrák.

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

Java II. I A Java programozási nyelv alapelemei

Információs Technológia

C programozás. 1 óra Bevezetés

Pál László. Sapientia EMTE, Csíkszereda, 2014/2015

Programozás alapjai II. (9. ea) C++ többszörös öröklés, cast, perzisztencia

Szoftvertechnológia alapjai Java előadások

A C nyelv aritmetikai típusai. Struktúrák.

PROGRAMOZÁS ALAPJAI (ANSI C NYELVEN)

1 Rev 4. A C++ programozás alapjai- segédlet

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

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

Analízis elo adások. Vajda István október 3. Neumann János Informatika Kar Óbudai Egyetem. Vajda István (Óbudai Egyetem)

2.3. A C nyelv utasításai

Magas szintű programozási nyelvek 2 Előadás jegyzet

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

Mikrokontrollerek. Tihanyi Attila május 8

Országzászlók (2015. május 27., Sz14)

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

6. előadás. Matlab 1. (Ismerkedés, környezet, adattípusok) Dr. Szörényi Miklós, Dr. Kallós Gábor. Széchenyi István Egyetem

117. AA Megoldó Alfréd AA 117.

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

A C# PROGRAMOZÁSI NYELV

Stack Vezérlés szerkezet Adat 2.

Programozási alapismeretek :: beadandó feladat. Felhasználói dokumentáció. Molnár Tamás MOTIABT.ELTE

Adatok ábrázolása, adattípusok. Összefoglalás

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

A C programozási nyelv I. Bevezetés

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

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

Pénzügyi algoritmusok

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

Objektumorientált programozás C# nyelven III.

Informatika terméktervezőknek

A C programozási nyelv I. Bevezetés

C# osztályok. Krizsán Zoltán

Algebra es sz amelm elet 3 el oad as Rel aci ok Waldhauser Tam as 2014 oszi f el ev

Körkörös listák. fej. utolsó. utolsó. fej

Számrendszerek. Átváltás a számrendszerek között: Általában 10-es számrendszerből váltunk tetszőlegesre és tetszőlegest 10-esre.

Bánsághi Anna

Programozás I. Első ZH segédlet

INFORMATIKAI ALAPISMERETEK

Számrendszerek közötti átváltások

Csoportosított adatok megjelenítése sorhalmaz függvények használatával

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

Jelek tanulmányozása

/* 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 ) ;

Adattípusok. Szám: pozitív egész, egész, valós, dátum + idő,... Szöveg, Formázott szöveg Kép Hang Mozgókép+Hang

DLookup függvény 1. (5)

Lineáris algebra gyakorlat

Osztály és objektum fogalma

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

INFORMATIKAI ALAPISMERETEK

(2) A R. 3. (2) bekezdése helyébe a következő rendelkezés lép: (2) A képviselő-testület az önkormányzat összes kiadását

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

MATEMATIKA ÉRETTSÉGI TÍPUSFELADATOK MEGOLDÁSAI KÖZÉPSZINT Trigonometria

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

Minta programterv a 1. házi feladathoz

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

KOVÁCS BÉLA, MATEMATIKA I.

Halmazok és függvények

Fizika InfoRmatika Kémia Alapok. Az Erdélyi Magyar Műszaki Tudományos Társaság kiadványa. Megjelenik kéthavonta (tanévenként 6 szám)

OAF Gregorics Tibor: Minta dokumentáció a 3. házi feladathoz 1.

MATEMATIKA ÍRÁSBELI VIZSGA május 3.

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

A táblázatkezelő felépítése

Átírás:

C programozás 2 óra A C nyelv típusai

1. Előző óra, rövid összefoglalás A C nyelvű programok feldolgozása forráskód (forrásprogram) C file (code.c) C előfeldolgozó (preprocesszor) + C fordító (compiler) tárgymodul (object modul/file) obj file (code.o) összefűző-szerkesztő (linkage editor; linker) végrehajtható program; futtatható állomány (code)

2. A C nyelv alapelemei Alapelemek: azonosítók, kulcsszavak, konstansok, sztringliterálok, operátorok, írásjelek. Alapelemek=tokennek (a fordítás során a nyelv tokenjeit dolgozza fel) A C nyelv jelkészlete: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z! # % & ' ( ) * +, - / : ; < = >? [ \ ] ^ _ { } ~

1. Azonosítók A program bizonyos összetevőire névvel (azonosító) hivatkozunk Első karakter: _ vagy betű (csak ez lehet, kis és nagy betű számít!!!) pl.: szam, _alap 2. Kulcsszavak A kulcsszavak fixek, nem lehet átdefiniálni őket!!! A C nyelv kulcsszavai: auto double int struct break else long switch case enum regiter typedef char extern return union const float short unsigned continue for signed void default goto sizeof volatile do if static while

3. Konstansok Konstans alatt mindig számot értünk. karakter, egész, felsorolt (enum) és lebegőpontos konstansok egész konstansok: számjegyek sorozatából állnak (csak egész számok) Decimális (10-es alapú) számrendszer: pl.: 1787, -23, 0 Oktális (8-as alapú) számrendszer: első jegy 0 pl.: 0342, -030 0 Hexadecimális (16-os alapú) számrendszer: előtag 0x vagy 0X pl.: 0x7ca, 0x21, 0

karakter konstansok: egyszeres idézőjelek (') közé zárt egy vagy több karaktert tartalmazó karaktersorozat pl.: 'a', 'sghd', '%' NAGYON FONTOS!!! egyetlen karaktert tartalmazó karakter konstansok által képviselt számérték a karakter kódja lebegőpontos konstansok: olyan decimális szám, amely (előjeles) valós számot reprezentál. a.) Egész-, törtrész köztük tizedespont (.) b.) a 10 hatványkitevője az e vagy az E betűt követi pl.: 10-23 -----> C nyelvben 1e-23 vagy 1E-23

4. Sztringkonstansok (sztringliterálok): kettős idézőjelek közé zárt karaktersorozat pl.: "Ez egy sztringkonstans!", "Ez egy sztringkonstans!\n" Tárolás a memóriában: a sztringkonstans végén '\0' (záró karakter) 5. Operátorok Olyan (egy vagy több karakterből álló) szimbólumok, amelyek előírják, hogyan kell feldolgozni az operandusokat.!!= % %= & && &= () * *= + ++ +=, - -- -= ->. / /= < <= << <<= = == > >= >> >>=?: [ ] ^ ^= sizeof = ~

6. Írásjelek Az írásjelek a C nyelvben olyan szimbólumokat jelölnek amelyeknek csak szintaktikai szerepe van (azonosítók elkülönítése; kód egyes részeinek kijelölése), DE semmilyen műveletet sem definiálnak. Viszont néhány írásjel egyben operátor is! [ ] tömb kijelölése, méretének megadása () paraméter- és az argumentum lista kijelölése {} blokkok vagy függvény behatárolása * mutató típus jelölése a deklarációban, függvény argumentumok elválasztása : címke elválasztása ; utasítás végének jelölése # előfordító direktíva jelölése

3. A C nyelv típusai 1. Deklaráció és definíció a.) Minden névről meg kell mondani mire szeretnénk használni, mert így a fordító nem tud mit kezdeni az adott névvel. DEKLARÁCIÓ A név tulajdonságait (típus, tárolási osztály, láthatóság) közöljük a fordítóval. b.) Ha az a cél, hogy a deklarációnak megfelelő objektum is létrejöjjön a memóriában akkor DEFINÍCIÓT kell alkalmazni. Tehát a DEFINÍCIÓ olyan DEKLARÁCIÓ, amely helyfoglalással jár. Objektum: olyan memóriaterület jelöl, amely egy vagy több értéket tartalmaz.

2. A C nyelv típusai char int egész jellegű (integral) típusok enum float double lebegőpontos típusok aritmetikai típusok skalár (egyszerű) típus mutató típusok tömb típusok összeállított structúra (struct) típusok típusok összetett típus unió (union) típusok

3.Típuselőírások, típusmódosítók, típusminősítők Típusnevek felépítése: típuselőírás alaptípusok: char int float double enum struct union void (típusnév hiánya; üres típus) típusmódosítók: típusminősítők: short, long a módosítók tárolási hosszát szabályozza signed, unsigned az előjel értelmezését szabályozza const olyan objektum definiálható, amely nem változatható meg (olvasható objektum)

típuselőírás: (alaptípus, típusmódosítók, típusminősítők) pl.: signed long int FONTOS!!! Önmagában a típusmódosító is szerepelhet, mint típuselőírás pl.: short, short int azonos típust definiál 4.Típusok a.) Egész típusok (int) short <= int <= long Az értékkészleteket a <limits.h> file adja meg az adott implementációhoz.

Előjeles egész Típus nevek, minimális és maximális értékek: minimális típus-megadás alakja hossz [bit] rövid 16 short short int signed short signed short int normál 16 int signed int hosszú 32 long long int signed long signed long int Szám-konstans alakja: Típus Számrendszer Példák int decimális 0 123-33 oktális 012 0177777 hexadeimális 0x1a 0x7fff 0xAa1bB long 15344398l 17558765L minimális érték <limits.h> -ban SHRT_MIN INT_MIN LONG_MIN maximális érték <limits.h> -ban SHRT_MAX INT_MAX LONG_MAX

Előjel nélküli egész Típus nevek, minimális és maximális értékek: minimális hossz [bit] típus-megadás alakja minimális érték maximális érték <limits.h> -ban rövid 16 unsigned short unsigned short int normál 16 unsigned unsigned int hosszú 32 unsigned long unsigned long int 0 USHRT_MAX 0 UINT_MAX 0 ULONG_MAX Szám-konstans alakja: unsigned unsigned long <mint int>u <mint int>u <mint int>ul <mint int>ul <mint int>lu <mint int>lu...

b.) Lebegőpontos típusok float <= double <= long double Típus Konstans alakja Min. abs. érték Max. abs. érték pontoság [dec. jegy] float 12.3f 0.12F 12.F.5f 1E-3f 1.8e5f FLT_MIN 3.4e-38 FLT_MAX 3.8e38 FLT_DIG >= 6 double 12.3 0.12 12..5 1E-3 1.8e5 long double 12.3L 0.12l 12.l.5L 1E-3l 1.8e5L az alapvető valós típus a double DBL_MIN <= 1e-308 DBL_MAX >= 1e+308 3.4e-4932 3.4e+4932 19 DBL_DIG >= 15

c.) Karakter típusok (szinte mint egy egész típus) Ábrázolás: tipikusan 1 darab 8 bites byte -on. Hogy egy egyszerű char előjeles-e, az nem definiált, a megvalósítás lehet előjeles és előjel nélküli is, sőt keverheti is a kettőt :egyszer így, máskor úgy! Alak Min. értékkészlet Értékhatárok <limits.h> -ban signed char -128... 127 SCHAR_MIN... SCHAR_MAX unsigned char 0... 255 0... UCHAR_MAX char akár -128... 127 akár 0... 255 CHAR_MIN... CHAR_MAX

Karakterkonstansok alakja, speciális értékek: Karakter konstans Alakja Jelentése (literál) egyszerű karakterek: 'a' kis a betű ':' kettöspont spec. karakter escape kdja '\'' aposztróf : '\a' alarm hangjelzés '\b' backspace visszatörlés '\f' form feed lapdobás '\n' new line újsor jel '\r' carriage return kocsi vissza '\t' horizontális tabulátor '\v' vertikális tabulátor '\\' backslash \ '\''' idézőjel '\?' kérdőjel numerikus escape '\0' nulla értékű karakter karakterek '\10' oktális 10 8 decimális ért. kar. '\x10' hexadecimális kar. 16 dec. ért. Számításnál a... char típusú értéket előbb automatikusan mindig... int típusúvá alakítja, és azzal számol.

d.) Felsorolt típusok enum azonosító {felsorolás} pl.: enum evszak {tavasz, nyar, osz, tel} automatikusan 0 1 2 3 pl.: enum evszak {tavasz, nyar=4, osz, tel} 0 4 5 6 vagy akar pl.: enum {tavasz, nyar=4, osz, tel}

5. Egyszerű változók definiálása egyszerű változó: egy egész vagy lebegőpontos érték tárolására alkalmas <tárolási osztály> típus <típus...> változónév <kezdőérték> <,...>; pl.: int alpha; int beta=45; int delta; int alpha, beta=45, delta; A deklarációban a típust megelőzheti néhány alapszó: auto, register, static, extern objektum tárolásával kapcsolatban tartalmaz előírásokat. -----> tárolási osztály objektum elhelyezkedése, láthatósága, élettartalma;

5. Saját típus létrehozása unsigned long double unsigned long double gamma; típusnév, ami meghatároz egy típust definíció, itt a gamma kezdőérték nélküli változó Speciális tárolási osztály typedef Érvényes típusokhoz szinonim nevet rendel hozzá!!! typedef unsigned long double gorog; gorog gamma;

6. Konstansok definíciója a.) const pl.: const int b; b=3; const int b=3; b.) #define makrók pl.: #define EGY 1 c.) enum típus

6. Értékek értékadás: objektum = érték; =értékadás operátora (kifejezés, változó) a bal oldal azt az objektumot jelöli ki (címzi meg) a memóriában, ahova a jobb oldalon megadott kifejezés értékét be kell tölteni balérték (lvalue), illetve jobbérték (rvalue)