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

Hasonló dokumentumok
Programozás 5. Dr. Iványi Péter

Programozás C nyelven (10a. ELŐADÁS) Sapientia EMTE

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

Példák tematikus csoportosításban

Információs Technológia

Programozás II. Fájlkezelés

Bevezetés a C++ programozási nyelvbe

Példatár a Programozás 1 tárgyhoz

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

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

Preprocesszor. Programozás alapjai C nyelv 11. gyakorlat. Makrók (2) Makrók (#define) Makrók (3) #include

Programozás alapjai C nyelv 11. gyakorlat. Preprocesszor. Makrók (#define)

C string műveletek (string.h alkalmazása)

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

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

tétel: különböző típusú adatokat csoportosít, ezeket egyetlen adatként kezeli, de hozzáférhetünk az elemeihez is

Pénzügyi algoritmusok

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 C nyelven (10. ELŐADÁS) Sapientia EMTE

Programozás C nyelven (13. ELŐADÁS) Sapientia EMTE

Programozás C nyelven (9. ELŐADÁS) Sapientia EMTE

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

Programozás alapjai C nyelv 5. gyakorlat. Írjunk ki fordítva! Írjunk ki fordítva! (3)

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

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

Dinamikus memóriakezelés Fájlkezelés

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

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

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

Programozas 1. Strukturak, mutatok

Programozás C++ -ban 2007/4

Adatszerkezetek és algoritmusok

6. gyakorlat Egydimenziós numerikus tömbök kezelése, tömbi algoritmusok

500. CC Megoldó Alfréd CC 500.

C programozási nyelv

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

PHP alapjai, bevezetés. Vincze Dávid Miskolci Egyetem, IIT

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

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

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.

Információs Technológia

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

PROGRAMOZÁSI NYELVEK - CPP. GYAKORLAT JEGYZET

III. Adatszerkezetek és algoritmusok

Óbudai Egyetem. C programozási nyelv

5. gyakorlat. Konstansok Tömbök Stringek

Információs Technológia

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

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

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

Programozás alapjai 1. (BMEVIEEA100)

PROGRAMOZÁSI NYELVEK - CPP. GYAKORLAT JEGYZET

félstatikus adatszerkezetek: verem, várakozási sor, hasítótábla dinamikus adatszerkezetek: lineáris lista, fa, hálózat

Minimum feladat: Teljes feladat: Minimum feladat: Teljes feladat: Minimum feladat:

Információs Technológia

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

PHP II. WEB technológiák. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) PHP II / 19

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 10. gyakorlat. Standard függvények. Union

Programozás alapjai C nyelv 7. gyakorlat. Függvények. Függvények(2)

Programozás alapjai 1. (BMEVIEEA100)

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

3. Gyakorlat Ismerkedés a Java nyelvvel

Fejlett programozási nyelvek C++ Iterátorok

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 számítógépes rendszerekbe programozóknak

5. Gyakorlat. struct diak {

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

Programozás alapjai II. (9. ea) C++ többszörös öröklés, cast, perzisztencia

C# nyelv alapjai. Krizsán Zoltán 1. Objektumorientált programozás C# alapokon tananyag. Általános Informatikai Tanszék Miskolci Egyetem

main int main(int argc, char* argv[]) { return 0; } main return 0; (int argc, char* argv[]) main int int int main main main

C_Programozas 2008/6/2 17:13 page 5 #1. Előszó Bevezetés 13

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

Programozás I gyakorlat

Osztály és objektum fogalma

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

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:

7. gyakorlat. Fájlkezelés IO haladó Függvények haladó

Stack Vezérlés szerkezet Adat 2.

Adatbázisrendszerek I. Fájlszintű adattárolás C-ben

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

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

Programozás C és C++ -ban

Programozás. C++ típusok, operátorok. Fodor Attila

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

Programozás I gyakorlat. 5. Struktúrák

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

Posztert a szobámba! Speciális fejezetek informatikából PROJEKT / II

C változók. Feladat: Deklaralj egy valos, egy karakter es ket egesz tipusu valtozot! int main() {

Típusok és konstansok

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

Elôszó a magyar kiadáshoz A Kiadó Elôszó

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

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

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

Programozás alapjai 1. (BMEVIEEA100)

1. Beolvasunk két egész számot. A CSEREL eljárás (függvény) segítségével felcseréljük a két változó tartalmát, majd kiírjuk őket.

Programozás alapjai 1. (BMEVIEEA100)

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

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

Átírás:

malloc free malloc free int sum(int a[4]) { return a[0] + a[1] + a[2] + a[3]; int main() { int b[4] = {1, 2, 3, 4}; printf("%d\n", sum(b)); return 0;

\ \t \n \r \r\n \r

string char* \0 a l m a \0

"alma" \0 "" int main() { char* s = "alma"; printf("%s\n", s); return 0; 'a' '\t' ''

string strlen strcmp strcpy strcat sprintf \0 char* \0

iconv \r \n fscanf fgets fgetc fread

\t

fscanf

void read_matrix(file* f, double* m, int cols, int rows) { for (int i = 0; i < rows; i++) { for (int j = 0; j < cols; j++) { fscanf(f, "%lf", &m[i * cols + j]); void write_matrix(file* f, double* m, int cols, int rows) { for (int i = 0; i < rows; i++) { for (int j = 0; j < cols; j++) { fprintf(f, "%f ", m[i * cols + j]); fprintf(f, "\n"); double* alloc_matrix(int cols, int rows) { double* m = (double*)malloc(cols * rows * sizeof(double)); if (m == 0) { printf("memory allocation error.\n"); exit(-1); return m; m cols rows

double struct matrix { double* m; int cols; int rows; ;

struct matrix{ double* m; int cols; int rows; ; void read_matrix(file* f, struct matrix mat) { for (int i = 0; i < mat.rows; i++) { for (int j = 0; j < mat.cols; j++) { fscanf(f, "%lf", &mat.m[i * mat.cols + j]); void write_matrix(file* f, struct matrix mat) { for (int i = 0; i < mat.rows; i++) { for (int j = 0; j < mat.cols; j++) { fprintf(f, "%f ", mat.m[i * mat.cols + j]); fprintf(f, "\n"); struct matrix alloc_matrix(int cols, int rows) { struct matrix mat; mat.cols = cols; mat.rows = rows; mat.m = (double*)malloc(cols * rows * sizeof(double)); if (mat.m == 0) { printf("memory allocation error.\n"); exit(-1); return mat; struct

struct struct matrix typedef struct matrix { double* m; int cols; int rows; matrix_t; matrix_t sizeof()

typedef struct matrix { double* m; int cols; int rows; matrix_t; void read_matrix(file* f, matrix_t mat) { for (int i = 0; i < mat.rows; i++) { for (int j = 0; j < mat.cols; j++) { fscanf(f, "%lf", &mat.m[i * mat.cols + j]); void write_matrix(file* f, matrix_t mat) { for (int i = 0; i < mat.rows; i++) { for (int j = 0; j < mat.cols; j++) { fprintf(f, "%f ", mat.m[i * mat.cols + j]); fprintf(f, "\n"); matrix_t alloc_matrix(int cols, int rows) { matrix_t mat; mat.cols = cols; mat.rows = rows; mat.m = (double*)malloc(cols * rows * sizeof(double)); if (mat.m == 0) { printf("memory allocation error.\n"); exit(-1); return mat; struct

matrix_t alloc_matrix(int cols, int rows) { matrix_t mat; mat.cols = cols; mat.rows = rows; mat.m = (double*)malloc(cols * rows * sizeof(double)); if (mat.m == 0) { printf("memory allocation error.\n"); exit(-1); return mat; matrix_t

void alloc_matrix(matrix_t* mat) { mat->m = (double*)malloc(mat->cols * mat->rows * sizeof(double)); if (mat->m == 0) { printf("memory allocation error.\n"); exit(-1); matrix_t matrix_t* -> int main() { matrix_t m; m.cols = 5; m.rows = 10; alloc_matrix(&m);

int double double float int short float double typedef typedef létező_típus új_név;

typedef typedef int index_t; typedef double elem_t; typedef struct matrix { elem_t* m; index_t cols; index_t rows; matrix_t; void read_matrix(file* f, matrix_t mat) { for (index_t i = 0; i < mat.rows; i++) { for (index_t j = 0; j < mat.cols; j++) { fscanf(f, "%lf", &mat.m[i * mat.cols + j]); void write_matrix(file* f, matrix_t mat) { for (index_t i = 0; i < mat.rows; i++) { for (index_t j = 0; j < mat.cols; j++) { fprintf(f, "%f ", mat.m[i * mat.cols + j]); fprintf(f, "\n"); matrix_t alloc_matrix(index_t cols, index_t rows) { matrix_t mat; mat.cols = cols; mat.rows = rows; mat.m = (elem_t*)malloc(cols * rows * sizeof(elem_t)); if (mat.m == 0) { printf("memory allocation error.\n"); exit(-1); return mat;

first data pointer data pointer data pointer NULL struct hallg { char neptun[10]; char nev[50]; ; struct hallg_list { struct hallg* data; struct hallg_list* next; ; typedef struct hallg hallg_t; typedef struct hallg_list hallg_list_t;

listaelem* void print_list(hallg_list_t* first) { for (hallg_list_t* i = first; i; i = i->next) { printf("%s\n", i->data->nev);

void append_list(hallg_list_t* last, hallg_list_t* n) { last->next = n; n->next = NULL;

void insert_list(hallg_list_t* item, hallg_list_t* n) { n->next = item->next; item->next = n; append_list NULL

int main() { // Hallgatok letrehozasa hallg_t h1 = {"f83id7", "Kiss Virag"}; hallg_t h2 = {"c7hs7f", "Toth Erika"}; hallg_t h3 = {"a7jc74", "Kovacs Peter"}; // Listaelemek letrehozasa hallg_list_t n1 = {&h1, NULL}; hallg_list_t n2 = {&h2, NULL}; hallg_list_t n3 = {&h3, NULL}; // Lista osszeallitasa append_list(&n1, &n2); append_list(&n2, &n3); print_list(&n1); printf("\n"); // Uj hallgato hallg_t h4 = {"sd34f2", "Horvath Gabor"}; hallg_list_t n4 = {&h4}; insert_list(&n2, &n4); print_list(&n1); printf("\n"); return 0;