Év végi projektfeladatok
Az alábbi 30 feladat a C# programozás alapvető logikai, algoritmikus és adatszerkezeti (tömbök, listák, stringek) ismereteit kéri számon konzolos környezetben.
- Jelszógenerátor: Írj programot, amely bekéri a kívánt jelszó hosszát, majd véletlenszerűen generál egy jelszót, amely garantáltan tartalmaz legalább egy kisbetűt, nagybetűt, számot és speciális karaktert!
- Titkosírás (Caesar-kódolás): Kérj be egy mondatot és egy eltolási értéket (pl. 3). A program alakítsa át a szöveget úgy, hogy minden betűt az ABC-ben 3-mal arrébb lévő betűre cserél. Készítsd el a dekódoló részt is!
- Számrendszer átváltó: Készíts programot, amely egy bekért 10-es számrendszerbeli egész számot átvált kettes, nyolcas és tizenhatos számrendszerbe, beépített konvertáló függvények (pl.
Convert.ToString(szam, 2)) használata nélkül, tiszta algoritmussal! - Bővített Kő-papír-olló: Készítsd el a klasszikus játékot kiegészítve (pl. Kő-papír-olló-gyík-Spock). A program a konzolon fusson, és vezesse a statisztikát, hogy a játékos vagy a gép nyert-e többször egy 10 körös meccsen.
- Szövegstatisztika: Kérj be egy hosszú szöveget a felhasználótól. A program számolja meg, hány szóból, hány magánhangzóból áll a szöveg, és melyik a leghosszabb szó benne!
- Amőba (Tic-Tac-Toe): Készíts konzolos 3x3-as amőba játékot két játékos számára! A program egy 2D tömbben tárolja az állást, rajzolja ki a táblát minden lépés után, és ellenőrizze, hogy van-e nyertes.
- Bankautomata szimulátor: A program induláskor kérjen PIN kódot (max. 3 próbálkozás). Sikeres belépés után jelenítsen meg egy menüt: egyenleg lekérdezése, pénz befizetése és felvétele. Figyeljen arra, hogy ne lehessen mínuszba menni!
- Kitalálós játék (Számok): A gép gondoljon egy számra 1 és 1000 között. A felhasználónak tippelnie kell. A gép minden tipp után megmondja, hogy a gondolt szám kisebb vagy nagyobb. A végén írja ki a próbálkozások számát!
- Akasztófa: A gép válasszon egy szót egy előre megadott tömbből. A képernyőn jelenjenek meg alsóvonalak a betűk helyén. A felhasználónak betűket kell tippelnie (max. 7 hibázási lehetőség).
- Prímszám elemző: Kérj be egy számot. A program döntse el, hogy prím-e. Ha nem az, bontsa fel prímtényezők szorzatára és írja ki a képernyőre (pl.
12 = 2 * 2 * 3)! - Palindrom vizsgáló: Kérj be egy szót vagy mondatot, és döntsd el róla, hogy palindrom-e (visszafelé olvasva is ugyanaz), figyelmen kívül hagyva a szóközöket és a kis/nagybetű különbségeket!
- Fibonacci sorozat: Kérj be egy
Nszámot, majd írd ki a képernyőre a Fibonacci sorozat elsőNelemét! Számold ki a sorozat generált elemeinek átlagát is! - Saját rendezés (Buborékrendezés): Hozz létre egy 50 elemű, véletlenszerű számokkal feltöltött tömböt. Rendezd a tömb elemeit növekvő sorrendbe beépített
Array.Sort()metódus használata nélkül, buborékrendezés algoritmussal! - Mátrix műveletek: Hozz létre két 3x3-as 2D tömböt (mátrixot) véletlenszámokkal. Írasd ki őket, majd készítsd el és írasd ki a két mátrix összegét és szorzatát tartalmazó új mátrixokat!
- Italautomata (Visszajáró): A program kérje be a termék árát és a bedobott pénzösszeget. Számolja ki a visszajárót, majd írja ki, hogy a gép ezt milyen címletekben (200, 100, 50, 20, 10, 5) tudja a legkevesebb érmével kiadni!
- Hőmérséklet konverter: Készíts menüvezérelt programot, amely képes Celsius, Fahrenheit és Kelvin fokok közötti oda-vissza váltásra. A program addig fusson, amíg a kilépés menüpontot nem választják.
- Kockadobás szimulátor: Szimulálj 10 000 darab dobást két 6 oldalú dobókockával. Vezesd egy tömbben, hogy melyik összeg (2-től 12-ig) hányszor fordult elő, majd jeleníts meg egy sávdiagramot (csillagokkal) a konzolon az arányokról!
- Anagramma ellenőrző: Kérj be két szót, és döntsd el róluk, hogy anagrammái-e egymásnak (pontosan ugyanazokat a betűket tartalmazzák-e, csak más sorrendben)!
- Lottósorsolás (Ismétlődés nélkül): Állíts elő 5 véletlenszerű számot 1 és 90 között úgy, hogy garantáltan ne legyen köztük megegyező (ismétlődés vizsgálata tömbben/listában)! A végén növekvő sorrendben írd ki őket!
- Mondatfordító: Kérj be egy mondatot, majd írd ki úgy, hogy a szavak sorrendje megfordul, de a szavakon belül a betűk sorrendje marad (pl. "Indul a görög alaljrat" -> "alaljrat görög a Indul").
- Armstrong számok: Egy szám Armstrong-szám, ha számjegyeinek a számjegyek darabszámára emelt hatványösszege megegyezik magával a számmal (pl.
153 = 1^3 + 5^3 + 3^3). Keresd meg és írd ki az összes Armstrong számot 1 és 10 000 között! - Pascal háromszög: Kérj be egy egész számot (pl. 7), és rajzold ki a konzolra a Pascal-háromszög első 7 sorát, középre igazítva!
- Collatz-sejtés: Kérj be egy pozitív egész számot! Ha páros, oszd el 2-vel, ha páratlan, szorozd meg 3-mal és adj hozzá 1-et. Ezt ismételd addig, amíg 1-et nem kapsz. Írd ki a lépések sorozatát és azt, hogy hány lépésből jutott el az 1-hez!
- Cenzúra: Kérj be egy szöveget és egy "tiltott szót". A program keresse meg a szövegben a tiltott szót, és cserélje le azonos számú csillagra (
*), majd írja ki a cenzúrázott szöveget! - Tökéletes számok: Tökéletes szám az, amelynek az önmagánál kisebb osztóinak összege megegyezik a számmal (pl.
6 = 1 + 2 + 3). Keresd meg és írd ki az összes tökéletes számot 1 és 10 000 között! - Sakktábla generátor: Kérj be egy
Nszámot, és rajzolj ki a konzolra egyN x N-es sakktábla mintát 'X' és ' ' (szóköz) karakterek felhasználásával! - Leghosszabb növekvő sorozat: Hozz létre egy 30 elemű, véletlen számokkal feltöltött tömböt. Keresd meg és írd ki benne a leghosszabb, folyamatosan növekvő számsorozatot!
- Számjegyek összege: Kérj be egy tetszőlegesen nagy számot (akár 50 karakter hosszút, tehát stringként kell kezelni), és számold ki a számjegyeinek az összegét!
- Tömb elforgatása: Hozz létre egy 10 elemű tömböt, majd kérj be egy
Kszámot. Forgasd el a tömb elemeitKlépéssel jobbra (ami kiesik a jobb szélen, az jöjjön be a bal szélen), majd írd ki az eredményt! - Szikla-tenger (Game of Life 1D): Készíts egy 1 dimenziós sejtautomata szimulációt egy 20 elemű tömbön. A szabály: ha egy sejtnek (1-es érték) pontosan 1 szomszédja van, túléli a kört. Ha 0 vagy 2, meghal (0 lesz). Jelenítsd meg a változásokat 10 generáción keresztül!