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

Hasonló dokumentumok
Java II. I A Java programozási nyelv alapelemei

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

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

A C programozási nyelv I. Bevezetés

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

A C programozási nyelv I. Bevezetés

A TANTÁRGY ADATLAPJA

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

C programozás. 1 óra Bevezetés

Bevezetés a C++ programozási nyelvbe

Java II. I A Java programozási nyelv alapelemei

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

Készítette: Nagy Tibor István

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

3 A C programozási nyelv szintaktikai egységei

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

Típusok és konstansok

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

5. gyakorlat. Konstansok Tömbök Stringek

C memóriakezelés. Mutató típusú változót egy típus és a változó neve elé írt csillag karakterrel hozhatjuk létre.

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

Programozás I gyakorlat

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

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

1. Alapok. Programozás II

C programozási nyelv

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

Programozás I gyakorlat

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

Programozás alapjai gyakorlat. 2. gyakorlat C alapok

1. Jelölje meg az összes igaz állítást a következők közül!

Programozás C és C++ -ban

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

Pénzügyi algoritmusok

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

Bevezetés a programozásba Előadás: A const

Programozas 1. Strukturak, mutatok

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

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

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

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

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

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

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

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

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

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

Programozás I gyakorlat. 10. Stringek, mutatók

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

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

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

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)

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.

OOP #14 (referencia-elv)

1. Feladat: beolvas két számot úgy, hogy a-ba kerüljön a nagyobb

Járműfedélzeti rendszerek II. 2. előadás Dr. Bécsi Tamá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)

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

Információs Technológia

5. Gyakorlat. struct diak {

Memóriagazdálkodás. Kódgenerálás. Kódoptimalizálás

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

Programozás I. gyakorlat

10. gyakorlat. Pointerek Tárolási osztályok

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

Bevezetés a programozásba Előadás: Objektumszintű és osztályszintű elemek, hibakezelés

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

1. Mi a fejállományok szerepe C és C++ nyelvben és hogyan használjuk őket? 2. Milyen alapvető változókat használhatunk a C és C++ nyelvben?

8. gyakorlat Pointerek, dinamikus memóriakezelé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 C++ -ban 2007/1

Bevezetés a programozásba II. 8. Előadás: Osztályok, objektumok, osztályszintű metódusok

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

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

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

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

A C# PROGRAMOZÁSI NYELV

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

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

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

Pénzügyi algoritmusok

12. gyakorlat Enum; Tárolási osztályok Preprocesszor utasítások; Moduláris programozás

Tömbök kezelése. Példa: Vonalkód ellenőrzőjegyének kiszámítása

Bevezetés a programozásba. 8. Előadás: Függvények 2.

Alprogramok, paraméterátadás

Pénzügyi algoritmusok

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 C++ -ban

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

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

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

Adatbázis és szoftverfejlesztés elmélet

A C# programozási nyelv alapjai

A C programozási nyelv

Karakter- és sztringkezelő függvények, matematikai függvények

Programozási nyelvek JAVA EA+GY 1. gyakolat

Miről lesz ma szó? A PROGAMOZÁS ALAPJAI 1. Dinamikus változók. Dinamikus változók. Dinamikus változók. Dinamikus változók. 7.

3. Osztályok II. Programozás II

C programnyelv 1. Kedves Kollegina, Kolléga!

Átírás:

Darvay Zsolt

Típusok és nevek a forráskódban Állandók és változók Hatókörök és az előfeldolgozó Bevitel és kivitel Kifejezések Utasítások Mutatók Függvények Struktúrák és típusok Állománykezelés C programozás 2

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

A program felépítése: függvényekből áll; a fő függvény neve: main. A program tárolása: általában.c vagy.cpp kiterjesztésű állomány (forráskód) - szövegszerkesztés. Fordítás -> lefordított program (.obj). Szerkesztés -> végrehajtható állomány. C programozás 4

Név (azonosítónév): betűk, _ karakter (aláhúzás) és számjegyek sorozata. Betűvel vagy _ karakterrel kezdődik. Kisbetűk és nagybetűk különböznek! A névnek jellemzőnek kell lennie. Kulcsszó (lefoglalt szó) pl. if, for, while, stb. A név nem lehet kulcsszó. C programozás 5

char - karakter; double - valós, kétszeres pontosság; float - valós, egyszeres pontosság; int - egész; Módosítójelzők: long (hosszú), short (rövid), signed (előjeles), unsigned (előjel nélküli). C programozás 6

Az ismertetett típusokhoz csatolva új típus képezhető. Például: unsigned - ugyanaz mint: unsigned int, unsigned long - ugyanaz mint: unsigned long int. C programozás 7

2.1. Literálok 2.2. Változódeklarációk 2.3. Változók kezdőértéke 2.4. Konstansdeklarációk C programozás 8

Olyan állandó (konstans), amelyhez nem rendelünk azonosítónevet. A típusa és értéke jellemzi. Az érték nem módosítható futtatás közben. Egész literálok Lebegőpontos literálok Karakterliterálok Karakterlánc-literálok C programozás 9

Decimális (10-es számrendszerbeli), hexadecimális (16-os számrendszerbeli), oktális (8-as számrendszerbeli) állandók. Az egész literálok tárolása függ a fordítóprogramtól. Például a Borland C++ 3.1-ben az int típus mérete 2 byte, a Visual C++.NET-ben pedig 4 byte, és ez hatással van az állandók tárolására is. C programozás 10

Példák: 357 (int), -6962 (int), 12300L vagy 12300l (long), 14000U vagy 14000u (unsigned), 11700LU vagy 11700UL vagy 11700lu vagy 11700ul (unsigned long). C programozás 11

Borland C++ 3.1-ben: 72000 (long), 85000U vagy 85000u (unsigned long). Visual C++.NET-ben: 72000 (int), 85000U vagy 85000u (unsigned int). C programozás 12

0 (8-as számrendszer), 0x vagy 0X (16-os számrendszer). Példák: 0100 a 10-es számrendszerben: 64, 0x100 a 10-es számrendszerben: 256. Ebben az esetben is használható az U, u illetve L, l utótag. C programozás 13

Tárolás double. Ha a F vagy f utótagot használjuk, akkor float lesz, illetve L vagy l esetén long double. Példák valós (lebegőpontos) literálokra: 311. (double), -5.24 (double), 5.1e3 (double),.1e-5 (double), -2.54f (float), 1.5L (long double). C programozás 14

A - egy karakter. C-ben int típusú, C++ -ban pedig char. Általában a karakternek megfelelő ASCII kódot tároljuk. Escape karakterek Fehér (láthatatlan) karakterek C programozás 15

\n NL (LF) újsor (sortörés) 10 \r CR kocsivissza 13 \t HT vízszintes tabulátor 9 \ idézőjel 34 \ aposztróf 39 \\ \ fordított perjel 92 \ooo ooo oktális szám \xhh hh hexadecimális szám C programozás 16

Escape szekvenciák (escape jelsorozatok): 34, '\ ', \42 és \x22 ugyanaz. 65, A, \101 és \x41 ugyanaz. A null karakter: \0 (az értéke 0). Különbözik a 0 karaktertől, aminek az értéke 48 az ASCII készletben. A null karakternek fontos szerepe van a karakterlánc-literálok tárolásában. C programozás 17

Láthatatlan karakterek, üres hely karakterek (térközök): szóköz:, vízszintes tabulátor (behúzás): \t, újsor: \n. Bizonyos C, illetve C++, fordítók ezeken kívül még más karaktereket is fehér karakterként kezelhetnek. C programozás 18

Karaktersorozatok (C stílusú string-ek). A null karakterrel végződnek. Például: ABC tárolása: A, B, C, \0. Használhatjuk az escape karaktereket is. Karakterlánc-literálok típusa Hosszú karakterláncok C programozás 19

Típusa C-ben, és a C++ régebbi változataiban: char * (mutató egy karakterhez). A karakterlánc-literálokat egy char * típusú mutatónak átadhatjuk. C programozás 20

A következő sorban folytatni lehet. 1. példa ( -al jelöljük a szóközt): abcd\ x A kapott karakterlánc: abcd x 2. példa: abcd efg A kapott karakterlánc: abcdefg. C programozás 21

Változó: adat, amely módosíthatja az értékét a program futtatása közben. Minden változót deklarálni kell. Deklarációk szerkezete Egyszerű típusú változók deklarálása Tömbök deklarálása C programozás 22

Tetszőleges deklarációra (nem csak a változókra) vonatkozik: minősítő (például: static) alaptípus deklarátor kezdőérték-adó kifejezés A minősítő és a kezdőérték-adó kifejezés elmaradhat. C programozás 23

Deklaráció: típus nevek_listája; Példák: int x, y, z; char c; int* p, u, v; // az operátor csak egy //névre vonatkozik (csak a p lesz mutató). //Ha lehet kerülni kell az ilyen deklarációt. C programozás 24

Deklaráció: tömb (táblázat) típus név[h 1 ][h 2 ] [h n ]; típus: elemek típusa; h i : i-edik index felső határa, tehát az indexek 0 és h i -1 között változhatnak; n: tömb dimenziója, tehát n=1 vektor, n=2 mátrix. Hivatkozás: név[i 1 ][i 2 ] [i n ] C programozás 25

int a[10]; // egész elemekből álló tömb. Hivatkozás az elemekre: a[0] - első elem a[9] - tízedik elem (utolsó) a[10] - hiba, mivel csak tíz elem számára van lefoglalva memóriaterület. int b[10][20]; // egy 10 sorból és 20 oszlopból álló mátrix. b[i][j] - i-edik sor, j-edik oszlop C programozás 26

char s[20]; //egy karakterekből álló vektor, tulajdonképpen ez egy karakterlánc. s[0] az első karakter. Nem használhatók operátorok a karakterláncokra. E helyett a string.h állományban standard függvények vannak deklarálva. Például: strcpy, strcat, strcmp. C programozás 27

Deklaráció: minősítő, alaptípus, deklarátor, kezdőérték-adó kifejezés. Példák: int n = 6; int t[] = {11, 22, 33, 44, 55, 66}; static int *p = t; C programozás 28

A globális és a helyi statikus változók kezdeti értéke zéró lesz alapértelmezés szerint. Ezeket statikus objektumoknak is nevezzük. A helyi, de nem statikus változók (automatikus objektumok), illetve a dinamikus módon létrehozott változók (dinamikus objektumok) nem rendelkeznek alapértelmezett kezdeti értékkel. Lásd még: Memóriakezelés C programozás 29

Nem változtathatják értéküket futási időben. Különben már a fordításkor hibát észlelnénk. A const minősítővel jelezzük, hogy konstansról van szó. C programozás 30

3.1. Az előfeldolgozó 3.2. Lokális és globális hatókörök 3.3. Memóriakezelés C programozás 31

Előfeldolgozó (előfordító, preprocesszor). Egy makró-feldolgozó rendszer. Fordítás előtti feldogozása a programnak. Forráskód beékelése Szimbolikus állandók definiálása Makrók definiálása Feltételes fordítás C programozás 32

Standard állományok: #include <állománynév> Saját állományok: #include állománynév Elérési útvonalat is tartalmazhatnak (a karakterlánc belsejében a \ karaktert meg kell duplázni). Általában fejállományokat (header) ékelünk be (kiterjesztésük.h). Az újabb C++ fordítók szabványos fejállományainak nincs kiterjesztése. C programozás 33

Jelképes konstansoknak is nevezzük. #define név karakterek_sorozata A definiálás helyétől az állomány végéig a név összes előfordulását a karakterek sorozatára cseréli. Ha az #undef név jelen van, akkor csak addig a sorig. C programozás 34

Egy név deklarációja azt jelenti, hogy az illető név egy bizonyos hatókörben használható. Lokális (helyi) hatókörök Globális hatókörök C programozás 35

Egy függvény lokális változója csak a függvény belsejében használható. Ez a blokk az illető változó hatóköre. Példa: void f() { } int x;... Az x változó csak a függvény belsejében használható. Az x hatóköre ez a blokk. C programozás 36

Egy globális név hatóköre a deklaráció helyétől az állomány végéig terjed. Egy extern típusú deklaráció kiterjesztheti ezt a hatókört más állományra is. Egy név akkor globális, ha a függvényeken kívül van megadva. C programozás 37

A változók helyet kaphatnak: a statikus memóriában; az automatikus memóriában; a szabad tárban. Lásd még: Alapértelmezett kezdeti érték C programozás 38

A statikus memóriában lesznek elhelyezve a globális változók és a függvények belsejében deklarált statikus változók. A szerkesztő (linker) foglalja le a statikus memóriában a helyet, a program futtatásának teljes időtartamára. C programozás 39

A függvények paramétereit és a helyi változókat az automatikus memóriában hozza létre a rendszer. Az adott blokk minden egyes végrehajtásakor új példányok jönnek létre ezekből a változókból, a blokk végén pedig automatikusan fel lesz szabadítva az általuk lefoglalt memóriaterület. Az automatikus változók a veremben vannak elhelyezve. C programozás 40

A szabad tárban elhelyzett elemek memóriakezelését a programozó hivatott megvalósítani. Sem a memóriaterület lefoglalását, sem a felszabadítását nem végzi el automatikus módon a rendszer. A változók a dinamikus memóriában, vagy a kupacban (heap) vannak elhelyezve. C programozás 41

4.1. Bevitel és kivitel megvalósítása függvényekkel A printf és a scanf függvények A getchar és putchar makrók A gets és puts függvények C programozás 42