Házi feladat javaslatok C programozásból

1. Készítsen programot, mely az általa beolvasott C nyelvű programból kigyűjti a benne deklarált eljárások és függvények azonosítóit a deklarációt tartalmazó sor sorszámával együtt, majd ezt a listát az azonosítók ABC rendjében kiírja.

A program hagyja figyelmen kívül a megjegyzések és string konstansok tartalmát!

 

2. Készítsen programot, mely az általa beolvasott C nyelvű programból kigyűjti a nem standard azonosítókat és azt, hogy hányadik sorokban fordult az adott azonosító elő, majd ezt az azonosítók ABC rendjében kilistázza.

A program hagyja figyelmen kívül a megjegyzések és string konstansok tartalmát!

 

3. N darab különböző anyagot akarunk raktározni. Bizonyos anyag-párok nem tárolhatók azonban ugyanabban a helyiségben, pl. robbanásveszély miatt. Azt, hogy melyek ezek az összeférhetetlen anyag-párok, egy bemenő adatként megadott tömb tartalmazza; A[I, J] = true, ha az I-edik és J-edik anyag nem tárolható együtt, egyébként A[I, J] = false.

Írjon programot, mely eldönti, hogy megoldható-e az anyagok tárolása két helyiségben, és ha igen, akkor ennek megfelelően felosztja őket két csoportra.

Keressen megoldást arra az általánosabb problémára is, hogy minimálisan hány helyiséggel oldható meg a tárolás, ha kettő nem elegendő.

 

4. Egy gyár N darab terméket tudna egyszerre gyártani, de közülük bizonyos párokat nem gyárthat egyszerre, az erőforrások szűkössége miatt. Hogy melyek ezek a tiltott párok, azt egy bemenő adatként adott tömb határozza meg, T[L, K]=1 ha az L-edik és a K-adik termék nem gyártható egyszerre, egyébként T[L, K]=0.

Írjon programot, amely eldönti, hogy maximálisan hány termék gyártható egyszerre az adott megszorítás mellett és kinyomtatja ezek egy lehetséges megválasztását a termékeket például sorszámukkal azonosítva.

 

5. Készítsen órarend generáló programot!

Bemenő adatok:

- tantárgyak, azok heti óraszáma.

- egy tárgyból egyszerre tartható maximális óraszám

- napi maximális óraterhelés,

- az egyes tárgyak lehetséges időtartományai (a tárgyhoz rendelt terem, illetve labor szabad.)

Kimenő adatok:

- a lehetséges heti órarendverziók megadása. (Ha ez a szám nagyobb, mint 10, akkor ezt a

  program a verziók kinyomtatása előtt jelezze).

 

6. Készítsen programot, amely alkalmas egy raktárkészlet nyilvántartására.

Bemenő adatok:

- alkatrész, készülék megnevezése

- mennyiség (db)

- az alkatrészhez rendelt leltári szám.

Kimenő adatok: a naprakész raktári állomány

- elnevezés szerint

- leltári szám szerint

rendezett formában.

A készlet módosítása legyen lehetséges akár a leltári szám, akár az elnevezés megadásával! Legyen lehetséges egy adott darabszám alatti tételek kilistázása is!

 

7. Írjon programot amely egy adott C forrássszöveget átformáz úgy, hogy az "szebben" nézzen ki. (Például a blokk nyitó‑záró {} párok ránézésre felismerhetőek legyenek.)

 

8. Egy speciális áramköri kapcsolásban szükséges a benne szereplő 2 tranzisztor áramerősítési tényezőjének igen jó egyezése. Adott mennyiségű tranzisztorból a lehető legtöbb áramkört akarjuk előállítani. Készítsen olyan programot, amely a rendelkezésre álló tranzisztorokat optimálisan párosítja! Adott az egyes tranzisztorok áramerősítési tényezője és az egy párban az áramerősítési tényező megengedett legnagyobb relatív eltérése.

 

9. Írjon programot amely bűvös négyzeteket állít elő. Javasolt irodalom:

                Csákány-Vajda: Játékok számítógéppel

 

10. Ritka mátrixoknak nevezzük azokat a mátrixokat, amelyek elemének többsége zérus. A ritka mátrixokat nem célszerű a szokásos módon ábrázolni. A legkézenfekvőbb ábrázolás szerint egy vektort használunk, amelyben csak az értékes mátrixelemet tároljuk, ezen kivül pedig két egészekből álló vektort, amelyekben az elemek indexe van tárolva. Az első egészekből álló vektor indexe az egyes sorokra utal, a tartalma pedig azt mondja meg, hogy mennyi elem van az adott sorban. A második egészekből álló vektor mérete megegyezik a mátrix értékes elemeinek számával, tartalma pedig az adott soron belüli index. Tehát, ha az értékes elemek száma N, és a mátrix MxM-es, akkor egy M méretű egész tömböt, egy N méretű egész és float tömböt használunk.

Írjon programot, amely

     kiszámítja egy ritka mátrix determinánsát,

     invertál egy ritka mátrixot.

Lehetőleg ne fejtse ki a mátrixot a szokásos alakra!

 

11. Készítsen egy speciális adatbázis-kezelő programot! Az adatbázisról a következőket tudjuk:

                - Nem túl nagy, tehát manipulálható teljes egészében a memóriában

                - Az adatbázis egy speciális szövegfile-ban található.

                - A file sorainak első karakterei 'utasítások'

                - Van az adatbázis szerkezetére vonatkozó utasítás

                - Az adatbázis rekordjait is utasítások adják meg

                - Bevezethet bármilyen szükséges más utasítást

                      - Az adatbázis rekordjainak megengedett típusait válassza meg, de a következők ne maradjanak ki:

                                - egész szám

                                - valós szám

                                - nagy egész szám

                                - string

                                - dátum

                                - felsorolásos típus (adott stringek közül választ)

                - Lehessen definiálni kulcs(ok)at

 

Definiálja a pontos szintaxist, végezzen szintaktikai ellenőrzést az input file-ra. Legyen lehetőség kulcs szerinti sorrendezésre és listázásra.

Legyen lehetőség az adatbázis bővítésére . A program legyen képes új adatbázis előállítására.

A feladatot annak bonyolultságától függően többen is választhatják.

 

12. Írjon egy primitív helyesírást ellenőrző programot, bővíthető szótárral. Nem kell foglalkozni a ragozással !

Megvalósítandó funkciók:

                Input file szavakra bontása

                nagy betűk kisbetűre konvertálása

                szavak sorrendezése

                azonos szavak kitörlése

                szavak kikeresése a szótárból és ha kell felvétele a szótárba

 

13. Írjon programot két szövegfile összehasonlítására. Dolgozzon ki eljárásokat a file-ban talált eltérést követő tartomány tartalmának az ujraszinkronizálására. Például egy új sor beszúrásakor adódhat olyan eset, hogy az új sortól eltekintve a többi rész megegyező.

 

14. A tudományos világban legelterjedtebb kiadvány előkészítő rendszer a TEX. Itt lehetőség van képletek szerkesztésére is. Egy TEX file csak 7 bites ASCII karaktereket tartalmaz, és '\'-el kezdődő parancsokkal van definiálva a szöveg végső, nyomtatásban megjelenő formátuma. A képletek megadásának szintaxisa egyértelmű. Egy másik elterjedt szövegszerkesztő program a Word for Windows, amelyben a képletek megadásának egyik módja, az úgynevezett 'eq field'-eken keresztül történhet. Mindkét megadási mód egy matematikai és struktúrális megközelítést követ, ezért elvileg átalakíthatóak egymásba, de a szintaxis eltérő. Írjon programot, amely átkonvertálja a TEX képleteket WinWord equation-okká!.

 

15. Írjon programot Huffmann kódolás elkészítéséhez. Számolja ki a tömörítés hatásfokát.

Info:        http://www.faqs.org/faqs/compression-faq/

 

16. Írjon tanuló barkochba programot.

 

17. Írjon programot, amely tetszőleges logikai áramkör szimulációját valósítja meg. Dolgozzon ki ASCII input formátumot az áramkör felépítésének megadására! A program kezelje a következő logikai elemeket: AND; XOR; OR; INV ; NAND; NOR .

 

18. Készítsen programot kifejezéssorozat értékének meghatározására, amelyben a kifejezés kiszámított értéke eltehető egy max 4 betűs névvel ellátott változóba, amire később hivatkozhatunk. A kifejezés a szokásos aritmetikai operátorokon kívül tartalmazza a C nyelvben használatos standard matematikai függvényeket is! Válasszon megfelelő input formátumot.

 

19. Írjon nyelvtanulást segítő programot, amely a megtanult szavakat kikérdezi a nyelvtanulótól. A program könyvelje a hibákat, és ennek megfelelően kérdezzen újabb szavakat. Adjon értékelést is a nyelvtanuló aktuális tudásáról.