A Programozás alapjai 1. - BMEVIHIA106 - 2011/12 II. félév
6. Gyakorlat

Felkészülés a gyakorlatra

  1. Az 4. előadás anyagának átnézése

    1. Típusok

    2. Ábrázolási korlátok és pontosság

  2. Az 5. előadás anyagának átnézése

    1. Struktúrák

    2. Operátorok

  3. Az 5. gyakorlat anyagának átismétlése

1. Feladat

Egy síkbeli pont tárolásához tároljuk el egy struktúrában a koordinátáit. Induljunk ki a 6_01.c programból!

  1. Definiáljuk a megfelelő adattípust!

  2. Próbáljuk ki a függvényt, amely kiírja egy ilyen pont koordinátáit!

  3. Írjunk függvényt, mely két síkpontot összekötő szakasz felezőpontját adja vissza!

2. Feladat

Írjunk C függvényt, amely bitenként kiír egy egész számot!

  1. Írjuk meg a függvényt előjel nélküli egészekhez!

  2. Oldjuk meg úgy is, hogy a bitek nem fordított sorrendben vannak! Az ezt megvalósító függvény letölthető innen.

3. Feladat

Egy int változó alulról harmadik bitjét állítsuk át! Minden beállítás után hívjuk meg a fenti maszkolós kiírót, hogy látsszon az eredmény!

  1. Állítsuk be 1-be!

  2. Állítsuk be 0-ba!

  3. Invertáljuk!

4. Feladat

Vizsgáljuk meg az egész típus méretét.

  1. Írjunk függvényt, mely egészekkel dolgozik és egy szám faktoriálisát adja vissza! Hívjuk meg a függvényt 1-től 30-ig és írassuk ki az eredményt!

  2. Írjuk meg és próbáljuk ki a függvényt úgy is, hogy az eredményt egy double-ban számolja!

5. Feladat

Vizsgáljuk meg a double pontosságát! Használjuk fel az innen letölthető függvényeket.

  1. Hívjuk meg a dblpontossag_1 függvényt és határozzuk meg annak a számtartománynak a nagyságrendjét (EXP), ahol már nem tudjuk pontosan ábrázolni a számegyenes egészeit double-ként!

  2. Hívjuk meg a dblpontossag_2 függvényeket és határozzuk meg, hogy a 3.0 környezetében hány tizedesjegyre pontos a double ábrázolás!

Fakultatív házi feladatok

  1. Definiáljunk adattípust középpontjával (pont struktúra) és sugarával adott kör ábrázolására! Írjunk függvényt, amely egy paraméterként kapott körnek egy ugyancsak paraméterként kapott pontra vett tükörképét (egy kört) adja vissza!

  2. Írjuk meg a bitminta kiíró függvényt előjeles egészekhez! Tipp: az előjelet külön kezeljük, a többi lépés azonos az előjel nélküli esettel.

  3. A 6_f3.c forráskódot kiegészítve készítsük el egy közlekedési lámpa váltásait „szimuláló” programot. A lámpa aktuális állapotát három biten tároljuk, de nem az int legalsó három bitjén és a többi bitet nem szabad módosítani!

  4. Írjunk függvényt, amiből bitben számolva megvizsgálhatjuk a double pontosságát!

  5. Írjunk függvényt, mely visszaadja a legnagyobb ábrázolható egész számot.

  6. Írjunk függvényt, mely visszaad egy előjel nélküli egészet, aminek a bitmintája megfelel a bemeneten érkezett előjel nélküli egészének, csak fordított sorrendben!

  7. Írjunk függvényt, amely beolvas két egész számot, és kiírja az összegüket úgy, hogy az előjel nélküli egész paramétereket és az eredményt is BCD-ben kódolt számokként értelmezi! A BCD számábrázolásban egy-egy bájton két-két decimális számjegyet tárolunk.

  8. A példatár kapcsolódó feladatai

Felkészülés a következő foglalkozásra

  1. Az 6. előadás anyagának átnézése

    1. Pointerek

    2. Pointerek és tömbök kapcsolata

    3. Tömb átadása függvénynek

    4. Sztringek

  2. A 4. gyakorlat anyagának átismétlése

  3. A 5. gyakorlat anyagának átismétlése

  4. A 6. gyakorlat anyagának átismétlése