Gyakorlattal kapcsolatos anyagok

Gyakorlat időpont
Hétfő 10:00-12:00
Gyakorlat helyszín
É 5.56
Előadás időpont
Szerda 16:00-17:00
Előadás helyszín
É 0.87

FIGYELEM! Az oldalra feltöltött kódokat nem én írtam és nem is ellenőriztem őket. Az órán írt kódokat hallgatók küldték el nekem, amiket változatlan formában tettem közzé azoknak segítségül, akik esetleg lemaradtak.

1. Gyakorlat

Témakörök

  • Fordítás folyamata, preprocesszálás, fordítás, linkelés
  • Hello world, printf, scanf
  • if, alapvető aritmetikai kifejezések
  • sqrt
  • Másodfokú egyenlet megoldó program

2. Gyakorlat

Témakörök

  • Nem várt konverziók
  • Fahr2Cels
  • Ciklusok
  • "Párbeszéd" a felhasználóval

A kódok letölthetőek innen.

3. Gyakorlat

Témakörök

  • Túlcsordulás
  • Random generálás
  • Egy dimenziós tömbök
  • VLA (variadic length array)

A kódok letölthetőek innen.

4. Gyakorlat

Témakörök

  • Függvények
  • Paraméterátadás C-ben
  • Tömbök átadása paraméterként
  • Mutatók

A kódok letölthetőek innen.

5. Gyakorlat

Témakörök

  • Többdimenziós tömbök
  • Többdimenziós tömbök mint függvény paraméterek
  • Beépített típusok méretei
  • Tömb méretének meghatározása

A kódok letölthetőek innen.

6. Gyakorlat

Témakörök

  • Stringek ábrázolása
  • Stringek onput/outputja
  • Stringek összehasonlítása
  • Keresés stringekben

A kódok letölthetőek innen.

7. Gyakorlat

Témakörök

  • Parancssori paraméterek kezelése
  • Szöveges fájlok kezelése

A kódok letölthetőek innen.

8. Gyakorlat

Témakörök

  • I/O gyakorlás

A kódok letölthetőek innen.

9. Gyakorlat

Témakörök

  • struct
  • Dinamikus memóriakezelés: malloc/free
  • Láncolt lista adatszerkezet

A kódok letölthetőek innen.

10. Gyakorlat

Témakörök

  • Bináris rendezőfa

A kódok letölthetőek innen.

11-12. Gyakorlat

Témakörök

  • Minta vizsga feladatok

A kódok letölthetőek innen.

Beadandó feladatok

A feladatokat Fizikus C tárggyal az e-mail címemre várom.

1. Beadandó

Tetszőleges polinom egy adott helyen vett helyettesítési értékének kiszámítása. A polinom foka tetszőleges, a helyet ahol az értékére kíváncsiak vagyunk, valamint az együtthatókat a felhasználótól kérjük be. A feladat megoldása lehetséges anélkül, hogy előre megkérdeznénk a polinom fokát, valamint anélül, hogy tömböket használnánk. Segítség: Nézzetek utána a Horner elrendezésnek.

2. Beadandó

Kérdezzük meg a felhasználót, hogy hány adatpontot akar. Eztán kérdezzük meg, hogy random generált adatpontokat szeretne, vagy kézzel adja-e meg az adatokat. Az adatokat egy tömbe olvassuk be. A beolvasott adatok a [-100, 100] intervallumban legyenek. Legyenek ezek az adatok tengerszint feletti magasságok, adjuk meg, hogy hány hegycsúcs van (0 feletti lokális maxium). Figyeljünk az elfajuló esetkere (hosszabb fennsíkok, intervallum kezdete és vége). Ha lokális maximum az intervallum eleje vagy a vége az is csúcsnak számít. Ha egy fennsíkre alulról érkeztünk és lefelé hagyhatjuk el, az is csúcsnak számít. Ellenkező esetben nem. Az egyetlen fennsíkból álló terepet is csúcsnak vesszük.

3. Beadandó

Felhasználótól olvassunk be [0..100] közötti értékeket amiket rajzoljunk ki mint domborzatot. A kirajzoláskor a vízszintes tengely legyen a 0 magasság és a # jelöljön 10 egységnyi magasságot. A kerekítések módja tetszőleges. A kirajzolást végző kód legyen egy függvény.

4. Beadandó

Valósítsuk meg a TabuCat programot. A TabuCat program abban különbözik a unixos cat programtól, hogy a felhasználó megadhat neki a futás kezdetekor maximum 5 maximum 20 karakter hosszú tabut. Ezután a standard bemenetre kapott stringet úgy írja ki a standard kimenetre, hogy ha szerepel benne valamelyik tabu karaktersorozat, akkor azt a karaktersorozatot kivágja a bemenetből. Plusz fél pontot ér, ha mind a tabu szavakban mind a bemenetben jól működnek a fehér karakterek (space, tab).

5. Beadandó

Írjunk egy programot, ami parancssori paraméterként tetszőleges számú szöveges fájlt vár. A szöveges fájlok első sorában két szám van, ami megmondja hány soros és hány oszlopos a mátrix amit tartalmaznak. A program írja ki a szabványos kimenetre a paraméterként kapott fájlokban található mátrixok szorzatát (a szorzás sorrendje a fájlnevek megjelenési sorrendje a parancssorban). Amennyiben a mátrixok nem kompatibilisek, az első olyan szorzásnál ahol ez gondot jelent írjuk ki, hogy melyik mátrix miatt nem lehet elvégezni a műveletet.

6. Beadandó

Írjunk egy programot, ami beolvas egy mátrixot tartalmazó szövegfájlt. A szovegfájlban a sorok sortöréssel a sorokon belül az értékek egyéb fehér karakterekkel lehet elválasztva. A fájl nem tartalmazza a mátrix sorainak és oszlopainak a számát. Amennyiben a fájlban nem szabályos mátrix található, az első sornál ahol nem szerepel az elemek száma szóljon a program a felhasználónak, hogy hibás a mátrix.

7. Beadandó

A 8. órán írt feladatot egészítsük ki úgy, hogy amennyiben nem szerepel txt kiterjesztés a bemenetként kapott fájl nevében, akkor bináris fájlként értelmezzük a paraméterfájlt. A bináris fájl első integer mezője a fájlban szereplő értékek számát, a maradék integer mezők meg az aktuális összeadandó értékeket tartalmazzák. Használjuk az fread függvényt az integerek beolvasására. A tesztfájlok elkészítéséhez írjunk egy programot, ami fwrite segítségével készíti el a bemenetnek szánt bináris fájlt.