C programozási nyelv



Hasonló dokumentumok
Óbudai Egyetem. C programozási nyelv

Programozás I gyakorlat

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

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

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

Struktúrák (struct) A struktúra szerkezetét meghatározó deklaráció általános formája:

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

Pénzügyi algoritmusok

5. Gyakorlat. struct diak {

10. gyakorlat Struktúrák, uniók, típusdefiníciók

Információs Technológia

OOP #14 (referencia-elv)

C programozási nyelv

Java II. I A Java programozási nyelv alapelemei

Java II. I A Java programozási nyelv alapelemei

Pénzügyi algoritmusok

Programozas 1. Strukturak, mutatok

Programozás C és C++ -ban

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

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

Például számokból álló, egyszeresen láncolt lista felépítéséhez az alábbi struktúra definíciót használhatjuk:

Programozás alapjai C nyelv 10. gyakorlat. Standard függvények. Union

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

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

Nagy HF u tmutato 2011/2012 II. fe le v

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

C++ programozási nyelv Konstruktorok-destruktorok

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

A programozás alapjai előadás. [<struktúra változó azonosítók>] ; Dinamikus adatszerkezetek:

Programozás BMEKOKAA146. Dr. Bécsi Tamás 5. 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?

OOP. Alapelvek Elek Tibor

C++ programozási nyelv

malloc free malloc free int sum(int a[4]) { return a[0] + a[1] + a[2] + a[3]; }

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

A programozás alapjai 1 Rekurzió

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

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

Miről lesz ma szó? A PROGAMOZÁS ALAPJAI 1. Dinamikus adatszerkezetek. Dinamikus adatszerkezetek. Önhivatkozó struktúrák. Önhivatkozó struktúrák

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

A C programozási nyelv I. Bevezetés

A C programozási nyelv I. Bevezetés

C++ programozási nyelv Struktúrák a C++ nyelvben

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

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

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

FUNKCIONÁLIS PROGRAMOZÁS

Programozás C++ -ban

Típusok és konstansok

Bevezetés a C++ programozási nyelvbe

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

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

Láncolt lista. az itt adott nevet csak a struct deklaráción belül használjuk

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

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)

Számítógép és programozás 2

Statikus adattagok. Statikus adattag inicializálása. Speciális adattagok és tagfüggvények. Általános Informatikai Tanszék

PROGRAMOZÁSI NYELVEK - CPP. GYAKORLAT JEGYZET

Az AVR programozás alapjai. Előadja: Both Tamás

Adatszerkezetek Tömb, sor, verem. Dr. Iványi Péter

Programozás alapjai 6. előadás. Wagner György Általános Informatikai Tanszék

5-6. ea Created by mrjrm & Pogácsa, frissítette: Félix

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

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

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

Programozás II. 3. gyakorlat Objektum Orientáltság C++-ban

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

Programozás alapjai 1. (BMEVIEEA100)

Operációs rendszerek. 6. gyakorlat: Processzusok közti kommunikáció (osztott memória, üzenetsor)

100% BIO Natur/Bio kozmetikumok és testápolás

Hatékony memóriakezelési technikák. Smidla József Operációkutatási Laboratórium január 16.

C++ referencia. Izsó Tamás február 17. A C++ nyelvben nagyon sok félreértés van a referenciával kapcsolatban. A Legyakoribb hibák:

Virtuális függvények (late binding)

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

Információs Technológia

Pásztor Attila. Algoritmizálás és programozás tankönyv az emeltszintű érettségihez

2018, Funkcionális programozás

PROGRAMOZÁSI NYELVEK - CPP. GYAKORLAT JEGYZET

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

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

Cekla. Készítette Doxygen Tue Sep :13:44

C++ programozási nyelv

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

Alapok. tisztán funkcionális nyelv, minden függvény (a konstansok is) nincsenek hagyományos változók, az első értékadás után nem módosíthatók

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

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

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

Tartalom Keresés és rendezés. Vektoralgoritmusok. 1. fejezet. Keresés adatvektorban. A programozás alapjai I.

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

C++ programozási nyelv

Java programozási nyelv 4. rész Osztályok II.

ELTE SAP Excellence Center Oktatóanyag 1

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

Gregorics Tibor Tanácsok modularizált programok készítéséhez 1

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

C++ programozási nyelv Konstruktorok Gyakorlat

Programozási nyelvek (ADA)

5. Gyakorlat. 5.1 Hálós adatbázis modell műveleti része. NDQL, hálós lekérdező nyelv:

7. BINÁRIS FÁK 7.1. A bináris fa absztrakt adattípus 7.2. A bináris fa absztrakt adatszerkezet

Átírás:

C programozási nyelv Struktúrák Dr Schuster György 2011 június 16 Dr Schuster György () C programozási nyelv Struktúrák 2011 június 16 1 / 11

Struktúrák Struktúrák A struktúra egy olyan összetett adatszerkezet, amely nemcsak azonos típusú elemeket rendelhet össze A struktúra definíciójában leírjuk, hogy a strutúra hogyan épül fel Például: struct ember char nev[80]; unsigned kor; float suly; Definiáltunk egy olyan elemet, amely egyben tartalmazza egy egyén adatait A deklarációnál egy adott példányt hozunk létre Példa: Józsi (jozsi) már egy struct ember jozsi; konkrét személy Dr Schuster György () C programozási nyelv Struktúrák 2011 június 16 2 / 11

Struktúrák Mezőhozzáférés közvetlen és indirekt Egy struktúra példány adott mezőjéhez a mezőhozzáférés operátor segítségével férünk hozzá jozsikor=43; Vagyis a jozsi példány kor mezője legyen egyenlő 43-al Ezután úgy használjuk, mint egy normális változót Ha nem a példány neve, hanem a címe van megadva struct ember jozsi; struct ember *jp; jp=&jozsi; jp->kor=43; A jp által megcímzett struktúra kor mezője legyen egyenlő 43-al Dr Schuster György () C programozási nyelv Struktúrák 2011 június 16 3 / 11

Rekurzív struktúra Struktúrák Kérdés: mit tartalmazhat egy struktúra? Válasz: bármilyen adatelemet, de nem tartalmazhat olyan struktúrát, mint önmaga, se közvetlenül se közvetetten De tartalmazhat olyan típusú pointert, mint önmaga Ilyen jellegű alkalmazás az úgynevezett lista adatszekezet Egy ilyen struktúra definíciója: struct LIST int v; struct LIST *next; A v az adatelem, a next az a pointer, amely a következő elemre mutat Valahogy így NULL Dr Schuster György () C programozási nyelv Struktúrák 2011 június 16 4 / 11

Struktúrák Típusként definiált struktúra A struktúrákat a typedef utasítással is definíálhatjuk Példa: typedef struct char nev[80]; unsigned kor; float suly; } ember; Ettől kezdve van egy ember típusunk Láthatjuk, hogy a mezők azonosak az előzőekben hagyományos módon definiált struktúránál A deklaráció egyszerűsödik ember jozsi; A struct kulcsszó elmaradt Nem lehetséges rekurzív struktúrát definiálni ezen a módon! Miért? A típus a struktúra után derül ki Amúgy minden más azonos Dr Schuster György () C programozási nyelv Struktúrák 2011 június 16 5 / 11

Bitmezők Struktúrák Egész jellegű változók esetén definiálhatók un bitmezők Összehasonlító példa: struct chr unsigned x; unsigned y; char code; Ez minimum 9 bájt struct chr unsigned x: 5; unsigned y: 7; unsigned code: 8; Ez 20 bit, de nem lehet az alaptípusnál rövidebb, tehát 4 bájt Ne feledjük, hogy a bitek tologatása növeli a futásidőt PC-s környezetben csak a hardver programozására használjuk Kontrollereknél helytakarékossági szempontokból is használjuk Dr Schuster György () C programozási nyelv Struktúrák 2011 június 16 6 / 11

Struktúrák Bitmező harver példa Az Intel 8254 timer IC parancs regisztere: SC1 SC0 RL1 RL0 M2 M1 M0 BCD 7 6 5 4 3 2 1 0 typedef struct unsigned char bcd: 1; unsigned char m: 3; unsigned char rl: 2; unsigned char sc: 2; } c8254; Dr Schuster György () C programozási nyelv Struktúrák 2011 június 16 7 / 11

union union Speciális szerkezet Arra szolgál, hogy egy adott memóriaterületet többféleképpen érhessünk el Példa: Definíció: union smpl float a; int b; Deklaráció: mintaa float mintab union sample minta; minta Dr Schuster György () C programozási nyelv Struktúrák 2011 június 16 8 / 11

Funkcionális példa union Feladat egy float adatot kell egyik számítógépről egy másikra átküldeni, de az adatcsatorna csak bájtokat képes továbbítani Célszerű egy uniont-t használni union IFC float f; char b[4]; } ifc; ifcf=31415; r=ifcf; ifcb[3] ifcb[2] ifcb[1] ifcb[0] Dr Schuster György () C programozási nyelv Struktúrák 2011 június 16 9 / 11

Eltérő méretű mezők union union SAMPLE float f; short s; char c; } pld; &pld Erre nő a memóri cím union SAMPLE pld; float f; short s; char c; Dr Schuster György () C programozási nyelv Struktúrák 2011 június 16 10 / 11

union Típusként definiált union Hagyományos Definíció: union smpl float a; int b; Deklaráció: union smpl pld; Típusként Definíció: typedef union float a; int b; } smpl; Deklaráció: smpl pld; Dr Schuster György () C programozási nyelv Struktúrák 2011 június 16 11 / 11