Jövő héten ZH
- Számítógép előtt, 4 db programozási feladat megoldása
- Tematika:
- szelekció és ciklus
- tömbök használata (egész tömbök, hosszal és végjellel vagy sztringek)
- egyszerűbben kódolható feladat ami a problémamegoldásra vagy kihegyezve
- házi feladatokhoz hasonló feladat (kiiratás nélkül)
- Feltöltés biro-ra (https://biro.inf.u-szeged.hu/), bejelentkezés h-s azonosítóval: akinek nem sikerül, ellenőrizze a jelszavát, szükség esetén resetelje a help desk-en (Irinyi épület, 3. lph., 220-as szoba)
- Minden feladatot 5 különböző bemenetre tesztel a biro, pontszám -> helyes kimenetek száma (max. 4x5)
- Az asztalon csak toll, fényképes igazolvány lehet, mobilokat kötelező kikapcsolni. Minden más segédeszköz 0 pontot eredményez.
- Időtartam: 135 perc. (150 perc után a biro zár)
- A ZH-ról idő előtt csak az távozhat, aki maximális pontszámot kapott vagy az összes próbálkozását (20) elhasználta.
Próba ZH feladatainak megoldása
Próba ZH elérhető biro-ról vagy a pub-ból (/pub/ProgramozasAlapjai/Gyakorlat/gyak06/2-orai-feladatok/feladat.c)
Tipusok bővebben, typedef
Char
- előjeles (signed) és előjel nélküli (unsigned)
- méret: sizeof(char)
- char[] -> sztring
- inicializálás: char str[] = "Hello World"; //implicit 0 jel a végén, a méret kiszámítása automatikus
- ciklusban, szelekcióban használható a számbeli értéke:
- if (c >= 65) { ...
- vagy maga a karakter is:
- for (c = 'a'; c <='z'; c++) { ...
Int
- signed és unsigned
- rövid (short), normál (int), hosszú (long), hosszabb (long long)
- méret: sizeof(int), sizeof(short int), ...
- túlcsordulás: short int i = 127; i++; printf("%d", i);
Float
- float és double (dupla pontosság)
- sizeof(float), sizeof(double)
Typedef
- saját típusok definiálása (már létező típusokból)
- typedef double vector[3]; //vector nevű háromdimenziós tömb típus
- typedef unsigned short int u16; //16 bites nemnegatív egész szám
- typedef char string[N+1]; //N hosszúságú sztringeket tároló karakteres tömb
- enumnál már láttunk hasonlót, itt is alkalmazható typedef:
- typedef enum { Hetfo, Kedd, ..., Vasarnap } het;
het nap;
for (nap = Hetfo; nap <= Vasarnap; nap++) { ...
I/O műveletek bővebben
A printf és scanf függvények formázása: %[flags][width][.precision][length]type
- flags:
- + - számoknál mindig kiírja az előjelet
- szóköz - a nemnegatív számoknál az előjel helyett szóközt ír ki
- - - a kimenet balra igazítása
- 0 - szóközök helyett nullákkal tölt ki, ha van width definiálva
- width:
- a kiírandó karakterek minimális száma - ha a kiírandó érték hossza kisebb mint a width, akkor a maradék helyet szóközökkel tölti fel (vagy nullákkal)
- .precision:
- maximális precizitás, tizedesek száma float típusnál, kiírható karakterek száma string-nél
- length:
- hh - char hossz
- h - short hossz
- l - long hossz
- ll - long long hossz
- type:
- d/i - decimális kiiratás; beolvasásnál a %i hexadecimálisként vagy oktálisként értelmezi a számot (ha 0x-el vagy 0-val kezdődik)
- u - unsigned int
- f/F - fixpontos ábrázolás; kisbetű/nagybetű csak a végtelen ábrázolását befolyásolja (inf vagy INF, nan vagy NaN)
- e/E - lebegőpontos ábrázolás
- g/G - fix vagy lebegőpontos ábrázolás a szám nagyságától függően
- x/X - hexadecimális ábrázolás
- o - oktális ábrázolás
- s - 0-val terminált sztring
- c - karakter
- p - pointer
- % - '%' jel, pl: printf("szazalek: %d%%\n", szazalek);
Egy-egy karakter kiiratása és beolvasása: getchar, putchar
Egy-egy sor kiiratása és beolvasása: gets, puts
Fájlműveletek
- FILE*: mutató a használni kívánt fájlra
- fopen(útvonal, módok): fájl megnyitása
- mód: r (read), w (írás), + (append), b (bináris), t (szöveges)
- fflush: a puffer kiiratása a fájlba
- fclose: fájl bezárása
- fprintf, fscanf: mint a printf/scanf, de van egy új első paraméter
- egy FILE* típusú változó, ami a fájlt jelöli
- stdin/stdout/stderr
No comments:
Post a Comment