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

Hasonló dokumentumok
A C programozási nyelv VI. Parancssori argumentumok File kezelés

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

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

Mérnöki programozás 7. Szerkesztette: dr. Vass Péter Tamás

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.

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

Programozás I. 5. Előadás: Függvények

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

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

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

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

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

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

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

Programozás C és C++ -ban

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

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

Programozás I. gyakorlat

Programozás II. Fájlkezelés

C programozási nyelv

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

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

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

Programozás C++ -ban

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

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.

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

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

7/8. gyakorlat Karaktertömbök és sztringkezelés

Szövegek C++ -ban, a string osztály

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

Adatbázisrendszerek I. File-szintű adattárolás C-ben. 1. gyakorlat

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

10. gyakorlat Tömb, mint függvény argumentum

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

7. gyakorlat Sorozatok, Fájlkezelés

Programozás C++ -ban 2007/4

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

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

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

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

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

Információs Technológia

1. Alapok. Programozás II

Programozás C- és Matlab nyelven C programozás kurzus BMEKOKAM603 Előfeldolgozó rendszer Tömbök. Dr. Bécsi Tamás 4. Előadás

1. Bevezetés szeptember 9. BME Fizika Intézet. Szám. szim. labor ea. Tőke Csaba. Tudnivalók. feladat. Tematika. Moodle Házi feladatok

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

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

A C programozási nyelv I. Bevezetés

A C programozási nyelv I. Bevezetés

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

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

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

Adatbázis rendszerek Gy: Algoritmusok C-ben

5. gyakorlat. Konstansok Tömbök Stringek

Megoldott programozási feladatok standard C-ben

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

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

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

Országzászlók (2015. május 27., Sz14)

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

Programozás C++ -ban 2007/1

Példák tematikus csoportosításban

Rekurzió. Programozás alapjai C nyelv 9. gyakorlat. Rekurzív algoritmus. Rekurzív algoritmus fajtái. Példa: n! (2) Példa: n!

Programozás alapjai C nyelv 9. gyakorlat. Rekurzió. Rekurzív algoritmus

Megoldott programozási feladatok standard C-ben

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

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

Vezérlési szerkezetek

Függvények. Programozás I. Hatwágner F. Miklós november 16. Széchenyi István Egyetem, Gy r

A C++ nyelvben a függvény nevek túlterhelésével biztonságosabbá tehetnénk az adatok kiírását és beolvasását.

Programozas 1. Strukturak, mutatok

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

C programozás. 1 óra Bevezetés

Programozási alapismeretek :: beadandó feladat. Felhasználói dokumentáció. Molnár Tamás MOTIABT.ELTE

Elemi alkalmazások fejlesztése I. Olvassunk be egy fájlból egész számokat egy tömbbe. Keressük meg a tömb valamely

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

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

Bevezetés Kiíratás Beolvasás Formázás Fájlkezelés Gyakorló feladatok C++ I/O. Bevezetés. Izsó Tamás február 20. Izsó Tamás C++ I/O / 1

PROGRAMOZÁSI NYELVEK - CPP. GYAKORLAT JEGYZET

Programozás C++ -ban

Programozás I gyakorlat

Mutatók. Programozás II. Hatwágner F. Miklós március 4. Széchenyi István Egyetem, Gy r

BASH script programozás II. Vezérlési szerkezetek

Dinamikus memóriakezelés Fájlkezelés

Adatszerkezetek és algoritmusok

PROGRAMOZÁSI NYELVEK - CPP. GYAKORLAT JEGYZET

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

int tokeletes(int szam) { int i,oszto=0; for(i=1; i<szam; i++) { if(szam %i == 0) { oszto+=i; }

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

A C programozási nyelv VI. Parancssori argumentumok File kezelés

Programozás alapjai gyakorlat. 2. gyakorlat C alapok

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

1. Egyszerű (primitív) típusok. 2. Referencia típusok

INFORMATIKA tétel 2018

Programozás C és C++ -ban

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

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

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

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

Átírás:

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

Előfeldolgozás része Makrók A forrás kódban elvégzi a helyettesítéseket a fordító Csak egyszer végez helyettesítést Nem olyan makrók, mint a LISP vagy Scheme esetén Csak szintaktikai helyettesítést lehet megadni #define PI 3.1415 kor_terulet = r * r * PI; kor_terulet = r * r * 3.1415; 2

Makrók mint függvények #define SQUARE(z) z * z y = SQUARE(x); y = x * x; /* működik */ 3

Makrók mint függvények #define SQUARE(z) z * z y = SQUARE(x+1); y = x+1 * x+1; /* nem jó */ y = x + (1*x) + 1; /* kellene */ y = (x+1) * (x+1); 4

Makrók mint függvények #define SQUARE(z) (z) * (z) y = SQUARE(x+1); y = (x+1) * (x+1); /* működik */ az argumentumot tegyük zárójelbe 5

Makrók mint függvények #define SQUARE(z) (z) * (z) /* és most mi lesz */ q = 1 / SQUARE(x); q = 1 / (x) * (x); /* vagy */ q = (1 / (x)) * (x); /* szintén hibás */ 6

Makrók mint függvények #define SQUARE(z) ((z) * (z)) q = 1 / SQUARE(x); q = 1 / ((x) * (x)); /* működik */ 7

Makrók mint függvények #define SQUARE(z) ((z) * (z)) q = SQUARE(x++); q = ((x++) * (x++)); /* kétszer végez növelést!!!! */ 8

Makrók mint függvények Óvatosab bánjunk a makrókkal ha függvényként akrjuk őket használni!!! 9

Előre definiált makró DATE TIME FILE LINE STDC : Fordítás dátuma szövegesen : Fordítás ideje szövegesen : A forrás file neve szövegesen : A forrás file aktuális sorának sorszáma szövegesen : Értéke 1, ha ANSI C fordító 10

Feltételes fordítás double osztas(double a, double b) { #ifdef TESZT printf( Argumentumok: %d %d, a, b); #endif return(a/b); } 11

Feltételes fordítás 1. #define TESZT double osztas(double a, double b) { printf( Argumentumok: %d %d, a, b); return(a/b); } 12

Feltételes fordítás 2. /* #define TESZT */ double osztas(double a, double b) { return(a/b); } 13

Parancssori argumentumok #include <stdio.h> /* parancssor feldolgozasa */ int main(int argc, char **argv) { int j; printf( Argumentumok szama: %d\n, argc); for(j = 0; j < argc; j++) { printf( %d. argumentum: %s\n, j, argv[j]); } return 0; } 14

Fájl kezelés A fájlokat egy struktúrán keresztül, függvénnyekkel tudjuk elérni. A struktúra: FILE Nincs szükség a struktúra szerkezetének ismeretére (obscure/opaq) 15

Fájl megnyitása <állománymutató> = fopen( <filenév>, <mód >); Alapesetben háromféle megnyitási módról beszélhetünk : 1. Megnyitás olvasásra: "r" File pointer az állomány elejére áll. 2. Megnyitás írásra: "w" File pointer az állomány elejére áll. 3. Megnyitás hozzáfűzésre: "a" File pointer az állomány végére áll. 16

Fájl megnyitása r mód esetén a fájlnak léteznie kell w mód esetén, ha már létezik a fájl akkor felülíródik (eredeti fájl tartalom elveszik) w mód esetén, ha a fájl nem létezik egy új fájl jön létre A megnyitási módot lehet módosítani t : ASCII, text fájl (alapeset) b : bináris fájl 17

Példa { FILE *fp; fp = fopen("adatok.txt","rt"); if(fp == NULL) { /* error */ }... 18

Írás, olvasás és lezárás Írás: fprintf(file_ptr, formátum,...); Olvasás: fscanf(file_ptr, formátum,...); Lezárás: fclose(file_ptr); 19

Példa A program a beolvasott számokatkiírja egy fileba. A beolvasás véget ér, ha negatív számot gépelünk be. 20

#include <stdio.h> int main() { FILE *fp; int szam; fp = fopen( szamok.dat, w ); if(fp == NULL) exit(1); while(1) { scanf( %d, &szam); if(szam < 0) break; fprintf(fp, %d\n, szam); } fclose(fp); return 0; } 21

Rekurzió void count_to_ten ( int count ) { printf( %d\n, count); if ( count < 10 ) { count_to_ten( count + 1 ); } } int main() { count_to_ten ( 0 ); } 22

Include file stdio.h : adat beolvasás és kiírás ctype.h : karakterkészletek kezelése string.h : szöveg kezelő függvények stdlib.h : standard függvények, memória kezelés, véletlen szám generálás, stb... math.h : matematikai függvények, pl: sin, cos 23

stdio.h FILE* fopen(char *fname, char *mode); int fclose(file *file); int fgetc(file *in_file); int fputc(int ch, FILE *out_file); int printf(char *format,...); int scanf(char *format,...); int fprintf(file *fp, char *format,...); int fscanf(file* fp, char *format,...); 24

ctype.h int isalpha(int ch); int islower(int ch); int isupper(int ch); int isspace(int ch); int isdigit(int ch); int toupper(int ch); int tolower(int ch); 25

string.h int strlen(char *string); char *strcpy(char *hova, char *honnan); char *strcat(char *hova, char *mit); int strcmp(char *a, char *b); char *strncpy(char *hova, char *honnan, int n); char *strchr(char *miben, char mit); char *strstr(char *miben, char *mit); 26

stdlib.h int rand(); void srand(unsigned int seed); void *malloc(int size); void free(void *ptr); void exit(int status); 27

Függvény mutatók Nem tárgyaltuk A függvények címét is lehet mutatóban tárolni Változó hosszúságú argumentumok Például: printf, scanf Unió És még néhány dolgot 28