Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

2. Gyakorlat Követelmények / „C” ismétlés

Hasonló előadás


Az előadások a következő témára: "2. Gyakorlat Követelmények / „C” ismétlés"— Előadás másolata:

1 2. Gyakorlat Követelmények / „C” ismétlés
Programozás II. 2. Gyakorlat Követelmények / „C” ismétlés

2 Elérhetőségek Horváth István E-mail: ihorvath@inf.u-szeged.hu
Honlap: (Gyakorlatok anyaga itt érhető el) Coospace egyesített kurzusfórum Fogadóóra: Szerda (Irinyi 110) (Vagy előre megbeszélt időpont/helyszín)

3 Követelmények - előadás
Előadásra járni kötelező! Ennek ellenőrzésére: 3 „röpdolgozat” Vizsgaidőszakban előadásvizsga teljesítése Részletek előadáson…

4 Követelmények - gyakorlat
Gyakorlatok látogatása is kötelező! (katalógus), max. 2 igazolatlan hiányzás megengedett 1 db évközi teszt (40 pont / min: 20 pont), November 4., 5. 1 db kötelező program (I / N), Nov. 22-ig be kell küldeni (Coospace-es feladatbeadás, gyakorlaton ellenőrzés) 1db gyakorlati ZH (60 pont / min: 30 pont) Szorgalmi időszak utolsó két hetében, előre meghirdetett időpontok, melyekre jelentkezni kell.

5 Követelmények – kötprog
A kötelező program témája szabadon választható, de a következő elemeknek benne kell szerepelniük: Legalább 3 db osztály Legalább 1 db örököltetés (saját osztályból való örököltetés) Legalább 3 db operátor overloading, melyek között szerepelnie kell a ( ) vagy a [ ] operátornak ( + - * / = += -= *= /= [] () stb. ) Legalább 2 db virtuális függvény (destruktoron kívül). Legyen benne file-kezelés (olvasás/írás) Az osztályok tartalmazzanak dinamikus adattagot (Member adattag, legalább egy darab osztályban legyen ) Minden osztálynak rendelkeznie kell konstruktorral, destruktorral és copy konstruktorral A kód legyen szétszedve külön header-re és külön source-ra Legyen egy főprogram, ami bemutatja a program működését

6 Javítás Évközi teszt egyszer javítható / pótolható, Nov héten (1 héttel a normál teszt után) Gyakorlati ZH egyszer javítható, vizsgaidőszak elején (szintén előre meghirdetett időpontokra lehet majd jelentkezni) Kötelező program nem javítható/pótolható.

7 Pontozás Órai munkára, és kihirdetett házi feladatokra max pont szerezhető. (Órai munkára heti max. 2). Gyakorlati érdemjegy a pontok függvényében: >= 85% : jeles >= 75% : jó >= 65% : közepes >= 50% : elégséges * < 50% : elégtelen * Az 50%-os minimum pontszámot plusz pontok nélkül kell teljesíteni! A pluszpontok csak e fölött kerülnek beszámításra.

8 Ajánlott irodalom Előadásanyag!!!
Herbert Schildt: C/C++ Referenciakönyv Panem Kft. Budapest (1998) Bruce Eckel: Thinking in C++ (angol) Computerbooks kiadó: Programozzunk C++ nyelven Bjarne Stroustrup: A C++ programozási nyelv

9 Ismétlés – C nyelv

10 Adattípusok Az adattípus olyan egysége a programnak, amely két összetevője által meghatározott: Értékhalmaz Az értékhalmaz elemein végezhető műveletek Minden adattípus vagy elemi, vagy más adattípusokból képzett összetett adattípus.

11 Adattípusok signed / unsigned char short, int, long
float, double, long double pointer, tömb enum union, struct

12 Main függvény A C és a C++ programok kezdő eljárása minden esetben a main() eljárás. Paraméterei: az argc (argument count) a parancssorban szereplő argumentumok száma, az argv (argument vector) a string alakban tárolt argumentumok címeit tároló tömb (indexelés 0-tól, utolsó arg. után NULL.) az envp a string alakban tárolt környezeti változók címeit tároló tömb (indexelés 0-tól, utolsó változó után NULL.)

13 stdio.h – printf() Alapértelmezett kimenetre ír
Első argumentumban string, továbbiak a kiírandó változók. Példa: int x = 5; printf(”x valtozo erteke: %d”, x);

14 stdio.h – printf() Konverziós karakterek:
c: int unsigned char típusra konvertált karakter d, i: int előjeles decimális egész u: unsigned int előjel nélküli decimális egész f: double előjeles tizedestört o: unsigned int előjel nélküli oktális egész s: char* karaktersorozat 0 végjelig stb…

15 stdio.h – scanf() Alapértelmezett bemenetről adatok beolvasása.
Konverziós karakterek használata – printf() függvényhez hasonlóan. Példa: int x; printf("Add meg ‚x’ értékét!\n",x); scanf("%d",&x); (Ne felejtsük el az & jel használatát…)

16 stdio.h – fopen() – fclose()
File *fopen (const char *filename, const char *mode); Fájl megnyitása: r – read w – write a – append int fclose(FILE *stream) Megnyitott fájl bezárására. Példa: FILE *file; file = fopen("proba.txt", "r"); //proba.txt megnyitása olvasásra fclose(file); //bezárása

17 stdio.h – fprintf() – fscanf()
printf() és scanf() függvényekhez hasonlóan működnek (konverziós karakterek) int fprintf(FILE *stream,const char * format, ... ); Példa: int x = 5; fprintf( file, "Egy próba %d kiíratás fájlba.\n",x); int fscanf(FILE *stream,const char * format, ... ); Példa: int x; fscanf( file, "%d", &x);

18 Igazságtáblák - NOT NOT (negálás, tagadás). Az eredeti érték ellentettje. Jelölése C-ben: ! (logikai művelet), ~ (bitenkénti művelet) Igazságtáblája: bemenet kimenet A NOT A 1

19 Igazságtáblák - OR AND (logika VAGY). Akkor igaz, ha LEGALÁBB az egyik feltétel igaz. Jelölése C-ben: | (bitenkénti), || (logikai) Igazságtáblája: bemenet kimenet A B A OR B 1

20 Igazságtáblák - XOR AND (logika KIZÁRÓ VAGY). Akkor igaz, ha PONTOSAN az egyik feltétel igaz. Jelölése C-ben: ^(bitenkénti) Igazságtáblája: bemenet kimenet A B A XOR B 1

21 Igazságtáblák - AND AND (logika ÉS). Igaz, ha mindkét feltétel igaz.
Jelölése C-ben: & (bitenkénti), && (logikai) Igazságtáblája: bemenet kimenet A B A AND B 1

22 Operátorok – aritmetikai műveletek
kif + kif : összeadás kif – kif : kivonás kif * kif : szorzás kif / kif : osztás kif % kif : maradékos osztás - kif : ellentett képzés

23 Operátorok – bitszintű műveletek
~kif : komplemens képzés (bitenkénti negálás) kif >> kif : bitléptetés jobbra kif << kif : bitléptetés balra kif & kif : bitenkénti és művelet kif | kif : bitenkénti vagy művelet kif ^ kif : bitenkénti kizáró vagy

24 Operátorok – logikai műveletek
kif && kif : logikai és kif || kif : logikai vagy ! kif : logikai tagadás

25 Operátorok – relációs műveletek
kif == kif : egyenlő kif != kif : nem egyenlő kif < kif : kisebb kif > kif : nagyobb kif <= kif : kisebb-egyenlő kif >= kif : nagyobb-egyenlő

26 Operátorok – értékadó műveletek
változó = kif : értékadás +=, -=, *=, /=, %= : művelettel egybekötött értékadás >>=, <<=, &=, ^=, |= : művelettel egybekötött értékadás Pl. int x = 2; x += 3; //x = 5

27 Operátorok – inkrementációs műveletek
++kif : inkrementálás (növelés 1-el), prefix operátorral. Visszatérési értéke a megnövelt érték! kif++ : inkrementálás, postfix operátorral. Visszatérési értéke a növelés előtti érték! --kif, kif-- : dekrementálás (csökkentés 1-el), visszatérési értékei lsd. inkrementálás. Pl. int x = 0, y = 2; x = ++y; //x = 3, y = 3 x = y++; //x = 3; y = 4

28 string műveletek C-ben a string egy karakter tömb, melyet ‚\0’ karakter zár le. #include <string.h> size_t strlen( const char *s) a paraméterként kapott string méretét adja vissza (\0 karakter előttig számolva) char *strcpy( char *s1, const char *s2) s2 string tartalmát az s1 karaktertömbbe másolja char *strncpy( char *s1, const char *s2, size_t n) s2 stringből (legfeljebb) n számú karaktert másol s1-be

29 string műveletek char *strcat( char *s1, const char *s2) s2 string tartalmát hozzáfűzi s1-hez (s1 végi \0-t törli, és a hozzáfűzött s2 végére teszi) char *strncat( char *s1, const char *s2, size_t n) n karaktert fűz s1 végéhez s2-ből char *strchr( const char *s,  int c) A stringben a megadott c karakter legelső előfordulására mutató pointert ad vissza. (NULL, ha nem fordul elő benne). char *strrchr( const char *s,  int c) A megadott c karakter utolsó előfordulására mutató pointert ad vissza. (NULL, ha nem fordul elő)

30 string műveletek int strcmp( const char *s1, const char *s2) Összehasonlítja s1 és s2 stringet. Visszatérési értéke 0, ha a két string egyforma. <0, ha s1 < s2. >0, ha s1 > s2. int strncmp( const char *s1, const char *s2, size_t n) strcmp-hez hasonló, az első n karaktert vizsgálja char *strstr( const char *s1,  const char *s2) Ha az s2 string előfordul s1-ben, az s2 kezdetére mutató pointert ad vissza. NULL különben char *strrev( const char *s1) Megfordítja a string tartalmát


Letölteni ppt "2. Gyakorlat Követelmények / „C” ismétlés"

Hasonló előadás


Google Hirdetések