Programozás I. - 11. gyakorlat



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

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

C programozási nyelv

Programozás I gyakorlat

Óbudai Egyetem. C programozási nyelv

5. Gyakorlat. struct diak {

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

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

Programozás I gyakorlat

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

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

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

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

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.

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

Programozás I gyakorlat

Programozas 1. Strukturak, mutatok

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

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

Egyirányban láncolt lista

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

Programozás C++ -ban

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

Adatszerkezetek Adatszerkezet fogalma. Az értékhalmaz struktúrája

C++ programozási nyelv Konstruktorok-destruktorok

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)

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

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

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:

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

Algoritmusok és adatszerkezetek gyakorlat 06 Adatszerkezetek

Láncolt listák. Egyszerű, rendezett és speciális láncolt listák. Programozás II. előadás. Szénási Sándor

Keresés és rendezés. A programozás alapjai I. Hálózati Rendszerek és Szolgáltatások Tanszék Farkas Balázs, Fiala Péter, Vitéz András, Zsóka Zoltán

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

Pénzügyi algoritmusok

Információs Technológia

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

mul : S T N 1 ha t S mul(s, t) := 0 egyébként Keresés Ezt az eljárást a publikus m veletek lenti megvalósításánál használjuk.

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

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

Programozás C és C++ -ban

A lista adatszerkezet A lista elemek egymásutániságát jelenti. Fajtái: statikus, dinamikus lista.

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

Programozás II. segédlet

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

Adatszerkezetek 1. előadás

Bevezetés a C++ programozási nyelvbe

Programozás alapjai II. (7. ea) C++ Speciális adatszerkezetek. Tömbök. Kiegészítő anyag: speciális adatszerkezetek

Speciális adatszerkezetek. Programozás alapjai II. (8. ea) C++ Tömbök. Tömbök/2. N dimenziós tömb. Nagyméretű ritka tömbök

Információs Technológia

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.

2019, Funkcionális programozás. 5. el adás. MÁRTON Gyöngyvér

Láncolt Listák. Adat1 Adat2 Adat3 ø. Adat1 Adat2 ø Adat3

Adatszerkezetek és algoritmusok

Programozás alapjai II. (7. ea) C++

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

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

8. gyakorlat Pointerek, dinamikus memóriakezelés

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

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

C++ programozási nyelv Konstruktorok Gyakorlat

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

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

Információs Technológia

Algoritmusok és adatszerkezetek I. 1. előadás

IPv4 címkiosztó program Hardverközeli programozás 1 Beadandó feladat

Objektumok inicializálása

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

Típusok és konstansok

Tájékoztató. Használható segédeszköz: -

Adatszerkezetek és algoritmusok

OOP #14 (referencia-elv)

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

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?

Programozási Nyelvek: C++

Információs Technológia

Láncolt listák. PPT 2007/2008 tavasz.

van neve lehetnek bemeneti paraméterei (argumentumai) lehet visszatérési értéke a függvényt úgy használjuk, hogy meghívjuk

Alkalmazott modul: Programozás 9. előadás. Strukturált programozás: dinamikus adatszerkezetek

C++ programozási nyelv

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

Programozási nyelvek JAVA EA+GY 1. gyakolat

A verem (stack) A verem egy olyan struktúra, aminek a tetejéről kivehetünk egy (vagy sorban több) elemet. A verem felhasználása

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

Alkalmazott modul: Programozás 8. előadás. Strukturált programozás: dinamikus memóriakezelés. Dinamikus memóriakezelés. Dinamikus memóriakezelés

Programozás C++ -ban

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

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

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

A C programozási nyelv I. Bevezetés

A C programozási nyelv I. Bevezetés

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

A lista eleme. mutató rész. adat rész. Listaelem létrehozása. Node Deklarálás. Létrehozás. Az elemet nekünk kell bef zni a listába

2. Készítsen awk szkriptet, amely kiírja az aktuális könyvtár összes alkönyvtárának nevét, amely februári keltezésű (bármely év).

Láncolt listák Témakörök. Lista alapfogalmak

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

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.

Java II. I A Java programozási nyelv alapelemei

Adatszerkezetek 2. Dr. Iványi Péter

Átírás:

Programozás I. - 11. gyakorlat Struktúrák, gyakorlás Tar Péter 1 Pannon Egyetem M szaki Informatikai Kar Rendszer- és Számítástudományi Tanszék Utolsó frissítés: November 16, 2009 1 tar@dcs.vein.hu Tar Péter (PE-MIK-DCS) Programozás I. - 11. gyakorlat November 16, 2009 1 / 18

1 Struktúrák struct union biteld enum 2 Láncolt listák 3 Feladatok Tar Péter (PE-MIK-DCS) Programozás I. - 11. gyakorlat November 16, 2009 2 / 18

Struktúrák Tar Péter (PE-MIK-DCS) Programozás I. - 11. gyakorlat November 16, 2009 3 / 18

Alapok Deníció A struktúra több tetsz leges típusú elem együttese Használata Összetett adatszerkezetek tárolására Változók hierarchiába rendezésére Struktúrált programok készítésére Tar Péter (PE-MIK-DCS) Programozás I. - 11. gyakorlat November 16, 2009 4 / 18

Struktúra deniálása és létrehozása Deniálás struct konyv{ int sorszam; int ertek; char nev[40]; }; Létrehozás struct konyv micimacko; Tar Péter (PE-MIK-DCS) Programozás I. - 11. gyakorlat November 16, 2009 5 / 18

Typedef használata Deniálás typedef struct konyv{ int sorszam; int ertek; char nev[40]; }konyvtype; Létrehozás konyvtype micimacko; Tar Péter (PE-MIK-DCS) Programozás I. - 11. gyakorlat November 16, 2009 6 / 18

Struktúra deklarálása Struktúrák kölcsönös egymásra hivatkozása esetén szükség van azok deklarálására. Létrehozás struct ember; struct kutya; struct ember{ char nev[20]; struct kutya* kutyaja; }; struct kutya{ char nev[20]; struct ember* gazdaja; }; Tar Péter (PE-MIK-DCS) Programozás I. - 11. gyakorlat November 16, 2009 7 / 18

Hivatkozás az adattagokra Adattagokra való hivatkozáshoz a. operátort használjuk. Példa konyvtype micimacko; micimacko.sorszam=12; micimacko.ertek=2000; strcpy(micimacko.nev,"micimacko kalandjai"); Tar Péter (PE-MIK-DCS) Programozás I. - 11. gyakorlat November 16, 2009 8 / 18

Struktúrák és mutatók A struktúrák tartalmazhatnak dinamikus adattagokat Memória foglalás és felszabadítás szükséges dinamikus adattagok esetén A dinamikus adattagokra való hivatkozás kétféleképp történhet * és. operátorok együttes használatával -> operátorral Példa struct kutya {char* nev}; struct kutya* kutyam; kutyam=(struct kutya*)malloc(sizeof(struct kutya)); kutyam->nev=(char*)malloc(sizeof(char)*40); (*kutyam).nev="pityu"; printf("%s",kutyam->nev); Tar Péter (PE-MIK-DCS) Programozás I. - 11. gyakorlat November 16, 2009 9 / 18

Struktúrák inicializálása A struktúra typedef struct {int a[2],b,c} adatok; Els példa adatok adataim={{1},2}; Második példa adatok adattomb[2]={{1,2},{1,2,3}}; Tar Péter (PE-MIK-DCS) Programozás I. - 11. gyakorlat November 16, 2009 10 / 18

Az union típus Deníció Olyan összetett típus, amelyben az adattagok egy megosztott memóriaterületen helyezkednek el. Tulajdonságai Olyan esetekben hasznos, amikor egyszerre pontosan egy adattagra van szükség, de az különböz típusú lehet A felhasznált memória mérete a legnagyobb adattag méretével egyezik meg Memóriát spórolhatunk meg vele Szintaktikája megegyezik a struct-al Tar Péter (PE-MIK-DCS) Programozás I. - 11. gyakorlat November 16, 2009 11 / 18

A biteld Deníció Olyan egész "típus", ami kisebb mint az alapvet egész típusok. Tulajdonságai Egy bájtban több adatot is tárolhatunk vele Memóriát spórolhatunk meg vele Egyaránt lehet el jeles, vagy el jel nélküli Tar Péter (PE-MIK-DCS) Programozás I. - 11. gyakorlat November 16, 2009 12 / 18

A biteld Példa struct bitfield{ /* field 4 bits wide */ unsigned field1 :4; /* unnamed 3 bit field for padding */ unsigned :3; /* one-bit field can only be 0 or -1 in two's complement!*/ signed field2 :1; /* align next field on a storage unit */ unsigned :0; unsigned field3 :6; }full_of_fields; Tar Péter (PE-MIK-DCS) Programozás I. - 11. gyakorlat November 16, 2009 13 / 18

Az enum típus Deníció A programozó által létrehozott típus, amely felsorolást határoz meg. Tulajdonságai Minden értéke string, "" használata nélkül Az értékekhez int értékek tartoznak Egyaránt lehet el jeles, vagy el jel nélküli Példa enum jegyek{egyes, kettes, harmas, negyes, otos}; Tar Péter (PE-MIK-DCS) Programozás I. - 11. gyakorlat November 16, 2009 14 / 18

Láncolt listák Tar Péter (PE-MIK-DCS) Programozás I. - 11. gyakorlat November 16, 2009 15 / 18

A láncolt lista Felépítése Minden elem két részb l áll, egy adatból és egy mutatóból Minden elem mutatója a következ elemre mutat A legels elem mutatóját külön kell tárolni A legutolsó elem mutatója NULL Tulajdonságai Dinamikus adatszerkezet, ügyelnünk kel a memóriafoglalásra Bármilyen adatokat tartalmazó lista tárolására alkalmas Az n. elem megkeresése m veletigényes Tar Péter (PE-MIK-DCS) Programozás I. - 11. gyakorlat November 16, 2009 16 / 18

Beszúrás, törlés Elem beszúrása Ügyelnünk kell az új elem létrehozására Be kell azt szúrni a listába a megfelel helyre Elem törlése Ügyelnünk kel a törlend elem felszabadítására A többi listaelem mutatóját ha szükséges át kell állítanunk Tar Péter (PE-MIK-DCS) Programozás I. - 11. gyakorlat November 16, 2009 17 / 18

1 Hozz létre egy struktúrát egy háromszög tárolására Legyenek benne oldalhossz, terület, kerület adatok A main függvényben hozz létre két háromszöget Írj függvényt, ami bekéri a háromszög adatait és letárolja azokat Írj függvényt, ami kiszámolja a kerületet Írj függvényt ami kiszámolja a területet Írassuk ki hogy a két háromszög közül az els nek, vagy a másodiknak bekért területe-e a nagyobb Használj dinamikus memóriaterületeket a struktúrák tárolására 2 Valósíts meg egy láncolt listát hozzá tartozó insert és delete függvényekkel Készíts main függvényt, ami felépít egy 5 elem láncolt listát, kiírja, majd lebontja azt Egészítsd ki a listát kétszersen láncolt listává Tar Péter (PE-MIK-DCS) Programozás I. - 11. gyakorlat November 16, 2009 18 / 18