Kihagyás

4. gyakorlat

Kapcsolódó tananyagok

  • dinamikus memória allokálás

  • pointerek (be és kimenő módú függvényparaméterek)

  • malloc, free

Órai feladatok

Órai segédletek
  1. Vegyük a kiinduló feladatunkat! Ez most egy struktúrán belül egy dimenziós statikus tömböt kezel. Ezt láttuk, nem működik megfelelően! A stacken létrehozott, statikus tömböt tartalmazó struktúrával több gond is akadat! Mik voltak ezek?

  2. Alakítsuk át a programot, hogy a struktúra tömbjének dinamikusan allokálunk memóriát! Természetesen ne feledkezzünk meg arról, hogy a dinamikusan allokált memóriát fel is kell szabadítani! Mely függvényekben kellett kódot átírni?

  3. Mozgassuk át a beolvasást és a memóriafelszabadítást külön függvényekbe! Próbáljuk ki a megoldásunkat, szükség esetén javítsuk!

  4. Módosítsuk a programot, hogy az két dimenziós tömbben tudja kezelni a képet!

Gyakorló feladatok

  1. Írj egy programot, amelyben deklarálj egy 10 elemű int tömböt, majd töltsd fel értékekkel a standard inputról! Írasd ki a tömb elemeit!

  2. Az előző programban deklarálj egy int pointert is, és a beolvasást ennek segítségével valósítsd meg!

  3. Most az első tömbelem értéke előtt kérd be a tömb méretét (a beolvasandó elemek számát). Mi történik, ha 10-nél kisebb értéket, 10-et, 10-nél nem sokkal nagyobb értéket, illetve 10-nél sokkal nagyobb értéket adsz meg elemszámként?

  4. Ezután töröld a tömb deklarációját és az azonosítóját pointerként deklaráld! Az elemszám megadása után de a tömbelemek bekérése előtt dinamikusan foglalj helyet a tömb elemei számára (pontosan annyit, amennyi kell)! Most mi történik, ha tömbméretnek különböző értékeket adsz meg?

  5. Készíts egy programot, amely létrehoz egy hallgato típust! Minden hallgato-nak van neve, amely egy legfeljebb 20 hosszúságú sztring, illetve van egy érdemjegye. Készíts egy programot, amely dinamikusan hoz létre egy hallgatókat tároló tömböt! A tömb méretét a felhasználótól kérd be, csakúgy, mint utána a méretnek megfelelő hallgatói adatokat! Készíts egy függvényt, amely alkalmas arra, hogy meghatározza a hallgatók átlagát! A megfelelő memóriakezelésről gondoskodnod kell!

  6. Írj egy programot ami sorbarendezi a bekért valós értékeket! A program inputjának első eleme egy egész szám, a sorozat elemeinek száma, ezt követi a megadott számú valós érték. A program kimenetének első eleme egy egész szám, a sorozat elemeinek száma, utána pedig a sorozat elemei növekvő sorrendben, 3 tizedesjegy pontossággal. A kimeneten az értékek egy-egy szóközzel vannak elválasztva. A sorozat elemeit egy dinamikus tömbben tárold el, a tömbbe való beszúrást pedig egy függvény végezze el úgy, hogy az eltárolás már eleve rendezett legyen!

  7. A feladatunk egy adott, számokat tartalmazó tömbről kiíratni a képernyőre, hogy melyik értékből hány darab van benne, és mindezt egy hisztogram formájában is jelenítsük meg. (A hisztogram egy olyan oszlopdiagram, ahol nem az egyes adatpontok értékét ábrázoljuk, hanem agy oszlop az egy értéknek felel meg, a magassága pedig azt mutatja, hogy hány adatpontnak volt ennyi az értéke.) A tömb mérete legyen konstans, és a számokat egy \([0,N)\) tartományból válasszuk (véletlenszerűen). Az egyes értékek darabszámát és a hisztogram "kirajzolását" külön-külön függvények valósítsák meg.