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.