6. előadás (2005. április 5.) Struktúrák Úniók Új adattípus definíálása Dinamikus memória foglalás 1.

Slides:



Advertisements
Hasonló előadás
C# nyelvi áttekintő A „Programozás C# nyelven (Illés Zoltán)”
Advertisements

Összetett adattípusok 8/b tétel
Tömbök C#-ban.
LEgyméretű tömbök, vektorok Alkalmazott Informatikai Tanszék SZÁMÍTÁSTECHNIKA I. dr.Dudás László 17./0. lVektorok definiálása lVektorok definiálása kezdőértékekkel.
LFüggvények Alkalmazott Informatikai Tanszék MŰSZAKI INFORMATIKA dr.Dudás László 20./0. lFüggvények deklarációja és prototípusa lA függvénydefiníció lHivatkozás.
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
9. előadás (2005. április 26.) Parancssor argumentum kezelés példák (K&R) Fordítóprogramok A C előfordító 1.
8. előadás (2005. április 19.) Pozicionálás fájlban (folyt.) I/O mechanizmus váltás Hibakezelő függvények Változók tárolási osztályai Parancssor-argumentumok.
© Kozsik Tamás Tömbök, kollekciók és egyéb alaposztályok.
Dinamikus tömbök.
Csala Péter ANDN #4. 2 Tartalom  C# - ban előre definiált típusok  Változók  Változókkal műveletek  Elágazás  Ciklus.
Programozás Alapjai (2008)
10. előadás (2004. április 20.) A C előfordító (folytatás) Néhány hasznos compiler opció Egy tanulságos könyvtári függvény Változó hosszúságú argumentum.
11. előadás (2005. május 10.) A make segédprogram Alacsony szintű műveletek és bitmezők Fájl, katalógus rendszer hívások 1.
1 Programozás alapjai GEIAL312B (ANSI C) BSc (Bachelor of Science) / Alap képzés 2005/2006. őszi félév Miskolci Egyetem Általános Informatikai Tanszék.
7. előadás (2005. április 12.) Láncolt lista File kezelés 1.
5. előadás (2005. március 22.) Függvények definíciója, deklarációja, hívása Enumerációs adattípus 1.
4. előadás (2005. március 8.) Pointerek Pointer aritmetika
2. Gyakorlat Követelmények / „C” ismétlés
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Programozás II. 6. Gyakorlat const, static, dinamikus 2D.
Tömbök ismétlés Osztályok Java-ban Garbage collection
Függvények, mutatók Csernoch Mária.
Mutatók, tömbök, függvények
Borland C/C++ mintapéldák
Borland C/C++ mintapéldák függvényekre. 1. példa Írjunk olyan függvényt amely egy számot kiirat.
Borland C/C++ mintapéldák struktúrákra. 1. példa /* Egyszerû példa a struktúrák használatára */ #include #define SIZE 5 struct szemely { char nev[26];
Borland C/C++ mintapéldák mutatókra
A C++ programozási nyelvSoós Sándor 1/14 C++ programozási nyelv Gyakorlat hét Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet.
LDinamikus tömbök, kétdimenziós tömbök Alkalmazott Informatikai Tanszék MŰSZAKI INFORMATIKA dr.Dudás László 21./0. lVektorok létrehozása futásidőben, dinamikusan.
WEB Technológiák Dr. Pance Miklós – Kolcza Gábor Miskolci Egyetem.
1 Programozás alapjai GEIAL312B (ANSI C) BSc (Bachelor of Science) / Alap képzés 2005/2006. őszi félév Miskolci Egyetem Általános Informatikai Tanszék.
C++ Alapok, első óra Elemi típusok Vezérlési szerkezetek
Programozás I. Adatállományok dr Póder Margit f. docens Rendszer és Szoftvertechnológia Tanszék.
További vektor, mátrix algoritmusok
Ficsor Lajos Template-ek CPP8/ 1 Template-ek. Ficsor Lajos Template-ek CPP8/ 2 A template fogalma Kiindulási probléma: tetszőleges típusokon kellene ugyanolyan.
PHP I. Alapok. Mi a PHP? PHP Hypertext Preprocessor Szkriptnyelv –Egyszerű, gyors fejlesztés –Nincs fordítás (csak értelmező) Alkalmazási lehetőségek:
C nyelv utasításai.
Tömbök Csernoch Mária.
Programozási Nyelvek (C++) Gyakorlat Gyak 02.
Szoftvertechnológia alapjai Java előadások Förhécz András, doktorandusz tárgy honlap:
A REKORD TIPUS Páll Boglárka. Ismétlés: Feladat Készítsünk kimutatást a XI.B osztály tanulóiról. Minden tanuló esetén a következő adatokat tartjuk nyilván:
Klasszikus Programozás a FoxPro-ban
Készítette: Csíki Gyula
1 Hernyák Zoltán Web: Magasszintű Programozási Nyelvek I. Eszterházy.
Széchenyi Isván Egyetem Számítógépes hálózatok II 1 Számítógépes Hálózatok II Széchenyi István Egyetem.
Komoróczy Tamás 1 Java programozási nyelv Stringek.
Miért is jók a rétegek?  Ha alkalmazást készítünk, nem akarunk IP csomagok küldésével bajlódni Ethernet keretekkel foglalkozni Implementálni megbízható.
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Programozás II. 4. Gyakorlat Függvény paraméterek, dinamikus.
Objektum orientált programozás
CUDA C/C++ programozás Textúra memória A segédanyag készítése a TÁMOP A/ Nemzeti Kiválóság Program című kiemelt projekt keretében.
Objektum orientált programozás
A Visual Basic nyelvi elemei
Függvények a C nyelvben 1 Függvényeket a következő esetekben szokás írni: Ha ugyanazt a tevékenységet többször is el kell végeznünk ugyanolyan típusú,
CUDA C/C++ programozás CUDA C bevezetés A segédanyag készítése a TÁMOP A/ Nemzeti Kiválóság Program című kiemelt projekt keretében.
Excel programozás (makró)
Programtervezés, programozás I. 2.5 tömbök,stringek
Objektum orientált programozás 4. Mutatók, típusok és struktúrák Nagy Szilvia.
Struktúrák a C nyelvben 1 Akkor használjuk, ha az egy egyedre jellemző különböző típusú adatokat együtt akarjuk tárolni. Lényegében típusdeklaráció. A.
Függvények, mutatók Csernoch Mária. Függvények függvény definíciója az értelmezési tartomány tetszőleges eleméhez hozzárendel egy értéket –függvény helyettesítési.
Informatikai gyakorlatok 11. évfolyam
A C++ programozási nyelv
Programozási alapismeretek
Excel programozás (makró)
A C++ programozási nyelv
Változók.
A struct, az union és az enum típus
JAVA programozási nyelv NetBeans fejlesztőkörnyezetben I/13. évfolyam
Az objektum-orientáltság
Típusok, változók, konstansok
Függvénysablonok használata
Előadás másolata:

6. előadás (2005. április 5.) Struktúrák Úniók Új adattípus definíálása Dinamikus memória foglalás 1

Struktúrák 1. Összetett adattípusok: –tömb, –struktúra, –unió. Struktúra deklarációja: struct struktnev {típus1 név1; típus2 név2;...}; struct struktnev változónév; 2

Struktúrák 2. Pl. struct szgep{char gyarto[50]; enum {intel, mips, motorola} proci; long memoria, disk; enum {cga, vga, svga,egyeb} monit; }; Inicializálás: struct szgep sajat = {"Xcomp", intel, 64L, 2000L, svga}; 3

Struktúrák 3. Memóriabeli tárolása szóhatárra igazított: sizeof (struct struktnev) >= sizeof (típus1)+sizeof (típus2) sizeof (típusn) 4

Struktúrák 4. Hivatkozás a struktúra mezőire:. pont operátor struct strukttip valtazon; valtazon.mezonev Pl. printf("\n%s%d%ld%ld%d", sajat.gyarto, sajat.proci,...); 5

Struktúrák 5. Struktúra pointer Deklarációja: struct szgep{... } szerver, *p_str; p_str = &szerver; Hivatkozás a mezőkre: p_str -> gyarto/* char* */ p_str -> proci/* enum */ 6

Struktúrák 6. Struktúra tömb Deklarációja: struct szgep{... } gep[10]; Hivatkozás a mezőkre: gep[0].gyarto/* char* */ 7

Struktúrák 7. Struktúra pointer tömb Deklarációja: struct szgep{... } gep[10],*p_str[6],sajat; Hivatkozás: p_str[0]=&sajat; p_str[1]=&gep[5]; p_str[0] -> proci p_str[1] -> gyarto 8

Struktúrák 8. Beágyazott struktúrák A struktúra mezőtípusa tetszőleges típus lehet. Pl. struct halozat{struct szgep csomopont; enum{tcpip,ipx,decnet} protokoll; int felhasznszam; }egyetem[100]; Hivatkozás: egyetem[2].protokoll egyetem[1].csomopont.proci 9

Struktúrák 9. Önhivatkozó struktúrák struct elem {char nev[50];.... struct elem *kovetkezo; }; Példa később: láncolt lista. 10

Struktúrák 10. Kölcsönösen egymásra hivatkozó struktúrák struct s1 {int a, struct s2 *p; }; struct s2 {int a, struct s1 *p; }; 11

Struktúrák 11. A struktúra mint függvény paraméter érték (verem!) és cím szerint is átadható. Függvény visszatérő értéke is lehet struktúra. 12

Úniók Lehetővé teszi ugyanannak a memóriaterületnek több, különböző hivatkozással való elérését (buffer, változó szerkezetű struktúra). Deklarációja: union megoszt{int i; long l; float f; double d} uvalt; Hivatkozás: uvalt.i/* integer */ uvalt.l/* long */ Az únió mérete: max(sizeof(int), sizeof(long),sizeof(float),sizeof(double)) 13

Különféle byte-folyam feldolgozás struct adatok {int a,b,c; double d;}; union buf{ char buffer [sizeof(struct adatok)]; struct adatok bin;}; double get_buffer () { union buf b; int i; for(i=0; i<sizeof(struct adatok); i++) b.buffer[i]=getbyte(); return b.bin.d; } 14

Változó szerkezetű struktúra 1. struct hallg{int evf,tankor;...}; struct okt{int tanszek,beosztas,vegzettseg,...}; struct polgar{ enum{oktato,hallgato}tipus; union{ struct hallg uh; struct okt ut; }ember; }egyetemi; 15

Változó szerkezetű struktúra 2. switch (egyetemi.tipus) {case oktato: printf("\n%d%d%d", egyetemi.ember.ut.tanszek, egyetemi.ember.ut.beosztas, egyetemi.ember.ut.vegzettseg); break; case hallgato: printf("\n%d%d", egyetemi.ember.uh.evf, egyetemi.ember.uh.tankor); } 16

Új adattípus definíálása Egyszerűbb írásmód, karbantartás, logikai adatfüggetlenség. typedef típus típusnév; /*ez nem deklaráció*/ typedef struct fegyver {char name[50]; int tarmeret, float kaliber; } tfegyver; /*ez egy adattipus*/ tfegyver pisztoly={"Uzi",30,7.0}; tfegyver agyuk[60];... agyuk[50].kaliber=100; 17

Define vagy typedef (csapda!) #define CPOINTER char* CPOINTER a,b; --> char*a,b; typedef char* CPOINTER; CPOINTER a,b; --> char *a, *b; 18

Dinamikus memória kezelés Header: void *malloc(size_t meret) /*nem inicializál*/ void *calloc(size_t nobj, size_t meret) /*inicializál 0 byte-ra*/ Újrafoglalás: void *realloc(void* ptr, size_t meret) Visszatérő érték: a memória kezdő címe, vagy NULL Felszabadítás: void free(void*) 19

Dinamikus tömb allokálás struct elem *p; p=(struct elem *) malloc(elemszam*sizeof(struct elem)); if (p==(struct elem *) NULL) { perror("allokálási hiba"); exit(...); }... p[i].mezo1=... 20