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

Hasonló dokumentumok
8. gyakorlat Pointerek, dinamikus memóriakezelés

Programozás I gyakorlat

5. Gyakorlat. struct diak {

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

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

11. gyakorlat Sturktúrák használata. 1. Definiáljon dátum típust. Olvasson be két dátumot, és határozza meg melyik a régebbi.

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

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

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

Programozás alapjai gyakorlat. 2. gyakorlat C alapok

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)

Programozas 1. Strukturak, mutatok

Programozás alapjai. 6. gyakorlat Futásidő, rekurzió, feladatmegoldás

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

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

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

INFORMATIKA javítókulcs 2016

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

Bevezetés a programozásba I 10. gyakorlat. C++: alprogramok deklarációja és paraméterátadása

Programozás I gyakorlat

7. gyakorlat Sorozatok, Fájlkezelés

C programozási nyelv

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

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.

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

Programozási nyelvek II.: JAVA, 4. gyakorlat

Óbudai Egyetem. C programozási nyelv

Bánsághi Anna 2014 Bánsághi Anna 1 of 33

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

A C programozási nyelv I. Bevezetés

A C programozási nyelv I. Bevezetés

Pénzügyi algoritmusok

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

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

Bevezetés a Programozásba II 2. előadás. Adattípusok megvalósítása egységbe zárással. Adattípusok megvalósítása egységbe zárással

Felvételi tematika INFORMATIKA

1. Olvassuk be két pont koordinátáit: (x1, y1) és (x2, y2). Határozzuk meg a két pont távolságát és nyomtassuk ki.

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

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

Algoritmizálás, adatmodellezés 1. előadás

Bevezetés a programozásba. 9. Előadás: Rekordok

Programozás II. segédlet

Programozási Nyelvek: C++

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

HORVÁTH ZSÓFIA 1. Beadandó feladat (HOZSAAI.ELTE) ápr 7. 8-as csoport

Alkalmazott modul: Programozás 4. előadás. Procedurális programozás: iteratív és rekurzív alprogramok. Alprogramok. Alprogramok.

Programozás C++ -ban

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:

1. Alapok. Programozás II

Bánsághi Anna 2014 Bánsághi Anna 1 of 68

Java II. I A Java programozási nyelv alapelemei

Programozási nyelvek Java

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

Példatár a bevezetés a Matlab programozásába tárgyhoz

Programozás I. zárthelyi dolgozat

3. ZH-ban a minimum pontszám 15

Maximum kiválasztás tömbben

Programozás I gyakorlat

Mutatók és mutató-aritmetika C-ben március 19.

Adatszerkezetek I. 1. előadás

Készítette: Nagy Tibor István

1. Írjunk programot mely beolvas két egész számot és kinyomtatja az összegüket.

Programozási nyelvek II.: JAVA, 4. gyakorlat

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

STL gyakorlat C++ Izsó Tamás május 9. Izsó Tamás STL gyakorlat/ 1

5. gyakorlat. Konstansok Tömbök Stringek

BME MOGI Gépészeti informatika 1.

Programozás I gyakorlat

C++ programozási nyelv Konstruktorok-destruktorok

Java II. I A Java programozási nyelv alapelemei

Bevezetés a programozásba I 4. gyakorlat. PLanG: Szekvenciális fájlkezelés. Szekvenciális fájlkezelés Fájlok használata

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.

Bevezetés a C++ programozási nyelvbe

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

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

OOP #14 (referencia-elv)

500. AA Megoldó Alfréd AA 500.

Bevezetés a programozásba I 4. gyakorlat. PLanG: Szekvenciális fájlkezelés

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

Információk. Ismétlés II. Ismétlés. Ismétlés III. A PROGRAMOZÁS ALAPJAI 2. Készítette: Vénné Meskó Katalin. Algoritmus. Algoritmus ábrázolása

Bevezetés a programozásba I.

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

Magas szintű programozási nyelvek 1 beugró (levelező tagozat) május 19.

Megjegyzés: A programnak tartalmaznia kell legalább egy felhasználói alprogramot. Példa:

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

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

Programozás I. Sergyán Szabolcs Óbudai Egyetem Neumann János Informatikai Kar szeptember 10.

Algoritmizálás, adatmodellezés 1. előadás

Ajánlott elemi feladatok az AAO tárgyhoz 41 feladat

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?

1. feladat Készítse el szövegszerkesztővel, majd mentse osztály.txt néven a következő tartalmú szöveges fájlt:

Programozás II. 2. gyakorlat Áttérés C-ről C++-ra

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

Felhasználó által definiált adattípus

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

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

Fogalmak: Adatbázis Tábla Adatbázis sorai: Adatbázis oszlopai azonosító mező, egyedi kulcs Lekérdezések Jelentés Adattípusok: Szöveg Feljegyzés Szám

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

Smalltalk 2. Készítette: Szabó Éva

Átírás:

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

Házi - (f0218) Olvass be 5 darab maximum 99 karakter hosszú szót úgy, hogy mindegyiknek pontosan annyi helyet foglalsz, amennyi kell! A sztringeket írasd ki, majd szabadítsd fel a lefoglalt területet! (Természetesen beolvasáskor használhatsz egy átmeneti tárolót.)

Házi - (f0230) Egy számsorozat negatív és nemnegatív elemeit kell szétválogatni. A program inputja egy A számsorozat "(n)[a_1,...,a_n]" alakban megadva. A kimenet első sora az A negatív elemeiből, a második sora az A nemnegatív elemeiből képzett számsorozat, az inputhoz hasonló formában megadva. A két részsorozatban az elemek sorrendje megegyezik az eredeti sorozatban megadott sorrendjükkel.

Feladat (f0187) Fordítsd le és futtasd a rekordok.c programot. Figyeld meg és magyarázd el, mi a különbség a struct és a union között! Most alakítsd át a programot úgy, hogy előbb hajtsd végre az összes értékadást, és csak utána a kiíratásokat. Most mit tapasztalsz? Miért? Minden egyes kiíratáskor írasd ki az éppen kiírt mező kezdőcímét is. Mit tapasztalsz?

Struktúrák Eddig adatokat két módon tárolhattunk Változókban: egy típusa lehet, előre meg kell adni és egyszerre egy értéket tárolhat Tömbökben: egy típusa lehet, előre meg kell adni, viszont egyszerre több (előre megadott) számú értéket tárolhat A gyakorlatban sokszor előfordul, hogy logikailag összetartozik több adat, azok viszont nem azonos típusúak mit tehetünk ilyenkor?

Struktúrák Tárolhatjuk az elemeket egy-egy megfelelő típusú tömbben, és valahogy számon tartjuk őket, mi tartozik össze Pl. ha egy személy adatait akarjuk tárolni, akkor lehet egy int tömbünk a születési évnek, egy a hónapnak és egy a napnak, egy string tömb (2D char tömb) pedig a neveknek Ennek nehézkes a használata, nem elég átlátható A struktúra arra való, hogy összekapcsoljon különböző típusú, de logikailag összetartozó adatokat egy egységbe

Uniók Az uniók nagyon hasonlítanak a struktúrára, azaz Logikailag összetartozó, de különböző típusú értékeket tárolnak egyben Azonban nem foglal a rendszer minden tulajdonságnak külön memóriát, hanem egy helyen kezdődnek kevesebb helyet foglal egyszerre csak az egyiket használhatjuk

Struktúrák - létrehozása Létrehozás struct szemely { char nev[40]; int kor; int nem; }; Ezután a struct szemely utasítást egy új típusként használhatjuk: struct szemely user;

Struktúrák - typedef Szebbé tehetjük typedef haszálatával typedef struct szemely { } szemely; Ekkor a létrehozás: szemely user; a struct utáni és az utolsó szónak nem kell megegyezni, az utóbbi lesz a típusnév

Struktúrák - mezőhivatkozás Egy struktúra tulajdonságait mezőknek, elemeknek, attribútumoknak nevezhetjük Ezeket a. operátorral érhetjük el user.kor = 20; Ha a struktúra pointer, akkor. Helyett a -> operátort kell használni

Struktúra - mezők inicializálása A struktúra tulajdonságait megadhatjuk deklarációkor, mint egy tömb elemeit szemely user = {.nev = Admin,.kor = 20};

Struktúra egymásba ágyazhatóság Egy struktúrában egy tulajdonság lehet másik struktúra/unió is Deklarálhatjuk helyben is struct my_struct { int k; union {int i, j; } inner; }; struct my_struct s = {.inner.i = 3,.k = 5}; Anonim módon is struct my_struct { int k; union {int i, j; }; }; struct my_struct s = {.i = 3,.k = 5};

Feladat (f0181) Írj egy programot ami három oldalhosszból kiszámítja egy háromszög kerületét és területét! A számítást egyetlen függvény végezze, a főprogram csak a bemenetkimenetért feleljen. A terület és kerület tárolására hozz létre egy struct adattípust, a számítást végző függvény egy ilyen típusú értékkel térjen vissza. Hérón képlet

Feladat (f0182) - önállóan Írj egy programot ami három kétdimenziós koordináta-párból kiszámítja egy háromszög kerületét és területét! Az érdemi számításokat függvények végezzék, a főprogram csak a bemenet-kimenetért feleljen. A kétdimenziós pont tárolására, valamint a terület és kerület együttes tárolására is hozz létre struct adattípusokat, és a számítást végző függvények ezeket használják (ahol ez lehetséges). Euklideszi távolság

Feladat (f0222) Egészítsd ki a matrixszorzas-1d.c programot a foglal() és megszuntet() függvények implementációjával úgy, hogy a program helyesen lefusson. A többi függvényt ne módosítsd! A cim() függvényből következtess vissza, hogy hogyan tárolódnak a mátrix értékei.

Feladat (f0223) Egészítsd ki a matrixszorzas-2d.c programot a foglal() és megszuntet() függvények implementációjával úgy, hogy a program helyesen lefusson. A többi függvényt ne módosítsd! A cim() függvényből következtess vissza, hogy hogyan tárolódnak a mátrix értékei. Hasonlítsuk össze az előző megoldással. Milyen különbségeket láttunk?

Feladat (f0227) Számítsuk ki egy mátrix skalárral való szorzatát. A program inputja egy s valós szám (a skalár), a mátrix mérete "(n,m)" alakban (ahol n a sorok, m az oszlopok száma), majd a mátrix valós elemei sorfolytonosan "[a_11,a_12,...,a_1m,a_21,...,a_n1,...,a_nm]" alakban. A program kimenete a skalárszorzás eredménye az input mátrixhoz hasonló "(n,m)[b_11,b_12,...,b_1m,b_21,...,b_n1,...,b_nm]" alakban. Dinamikus memóriafoglalással dolgozzunk.

Következő ZH-k A jövő heti ZH-n tömbös algoritmikus és szemantikai hibajavító feladatok lesznek. A két héttel ezután következő (azaz utolsó) zh-n struktúrákkal kapcsolatos algoritmikus és 1 illetve 2 dimenziós dinamikus tömbfoglalással kapcsolatos feladatok lesznek.