Programozás I. házi feladatok
- 2. heti házi feladatok
- 3. heti házi feladatok
- 4. heti házi feladatok
- 5. heti házi feladatok
- 6. heti házi feladatok
- 8. heti házi feladatok
- 9. heti házi feladatok
- 10. heti házi feladatok
- 11. heti házi feladatok
- 12. heti házi feladatok
- 13. heti házi feladatok
2. heti házi feladat(ok)
- Rajzoljon folyamatábrát a következő problémák megoldására:
- Olvassa be egy kör r sugarát, majd ennek ismeretében határozza meg a kör területét és kerületét!
- Bővítse ki az előző folyamatábrát úgy, hogy a sugár értékének
csak pozitív valós számot fogadjon el!
Ha a beolvasott adat nem felel meg a követelményeknek, akkor
ismételjük az adatbeolvasást mindaddig, amíg helyes értéket nem kapunk!
- Beolvasandó egy pozitív egész szám, n. Számítsuk ki az n! (faktoriális) értéket, azaz az egész számok szorzatát 1-től n-ig!
Használjon előltesztelő ciklust a feladat megoldásához!
- Alakítsa át az előző feladat megoldását úgy, hogy az növekményes ciklust tartalmazzon!
- Adjon meg három pozitív valós számot növekvő sorrendben! Alkalmazza itt is a második feladatban megismert hátultesztelő ciklust
az input ellenőrzésére.
- Állapítsa meg, hogy egy háromszög a megadott oldalhosszakkal megszerkeszthető-e!
- Állapítsa meg, hogy a háromszög derékszögű-e!
- Számítsa ki a háromszög kerületét és területét!
Vissza az elejére!
3. heti házi feladat(ok)
- Készítsen programokat, melyek a karakteres üzemmódú képernyő egy 21x21-es
ablakában csillag karakterekkel megjelentetnek:
- egy keresztet a 10. sor és 10. oszlop feltöltésével!
- a főátlót (bal felső sarokból a jobb alsóba menőt)!
- a mellékátlót (a másik átlót)!
- egyszerre mindkét átlót, azaz egy X-et!
Vissza az elejére!
4. heti házi feladat(ok)
- Készítsen programokat a
PELDA4.C
alapján a következőképpen:
- A Fahrenheit fok 300-tól 0-ig csökkenjen 20-asával!
- A Celsius fok növekedjék 0-tól 300-ig 20-asával!
- A Fahrenheit 0-tól 580-ig növekedjen 20-asával! Az eredmény a képernyőn
fejléccel ellátva két oszloppárban oszlopfolytonosan haladva jelenjen meg,
azaz a bal oldali oszloppár 0-val-, a jobb oldali viszont 300-zal kezdődjék és
mindegyik oszloppár 20-asával haladjon!
- A feladat ugyanaz, mint az előbb, de a megjelentetés legyen sorfolytonos,
azaz a bal oldali oszloppár 0-val-, a jobb oldali 20-al kezdődjék és mindegyik
oszloppárban 40 legyen a lépésköz!
- Maradva a sorfolytonos megjelentetésnél kérjük be előbb a kijelzendő
oszloppárok számát ellenőrzött inputtal! Az oszloppárok száma 1, 2, 3 vagy 4
lehet. A még kijelzendő felső érték ennek megfelelően 280, 580, 880 vagy 1180.
Az eredmény a képernyőn fejléccel ellátva az előírt számú oszloppárban
jelenjen meg úgy, hogy 20 a lépésköz!
- A Fahrenheit 0-tól 3000-ig növekedjen 20-asával! Az eredmény a képernyőn
fejléccel ellátva lapozhatóan jelenjen meg!
- Legyen ugyanaz a feladat, mint az előző pontban, de az eredmény a
képernyőn fejléccel ellátva nem csak előre-, hanem előre-hátra lapozhatóan
jelenjen meg!
Vissza az elejére!
5. heti házi feladat(ok)
- Készítsen programot, mely a szabvány bemenetet olvassa EOF-ig!
Megállapítandó és kijelzendő, hogy hány A, B, C, stb. karakter érkezett! A
kis- és nagybetűk között nem teszünk különbséget! A betűkön kívüli többi
karaktert tekitsük egy kategóriának, s ezek darab számát is jelezzük ki! Aki
fokozni kívánja a feladatot, vegye be a magyar ékezetes kis- és nagybetűket is
a betűk közé!
- Készítsen programot, mely neveket olvas a szabvány bemenetről
EOF-ig vagy üres sorig! Megállapítandó egy fordítási időben megadott
névről, hogy hányszor fordult elő a bemeneten! A feladat megoldásához
készítendő egy
int strcmp(char s1[], char s2[])
függvény, mely
két karakterlánc összehasonlítását végzi, és egyezés esetén nullát szolgáltat
visszaadott értékül! E függvényt később fejlesszük úgy tovább, hogy működése
egyezzék a szabvány könyvtári változatéval!
Vissza az elejére!
6. heti házi feladat(ok)
- Készítsen szorzatpiramist! A piramis első sora álljon 100 és 115 közötti
egész számokból! A következő sorokat úgy kapjuk, hogy a számokat páronként
összeszorozzuk.
Tehát a második sor számai: 100*101=10100, 102*103=10506,
..., 114*115=13110
A harmadik sor pedig a következő: 10100*10506=106110600,
10920*11342=126854640, ..., 12656*13110=165920160
Figyeljünk arra, hogy az
eredményül kapott számokat mindig a lehető legkisebb helyen tároljuk, de a
számoknak és a közbenső eredményeknek nem szabad csonkulniuk!
- Készítsen
void reverse(char s[])
függvényt, mely a saját
helyén megfordítja a paraméter karakterláncot!
Vissza az elejére!
8. heti házi feladat(ok)
- Készítsen
int toi(char s[])
függvényt, mely tizenegynél
kisebb alapú számrendszerbeli számjegyekből álló karakterláncból előállít egy
egész számot! A számrendszer alapja legyen fordítási időben változtatható!
- Készítsen
int htoi(char s[])
függvényt, mely hexadecimális
számjegyekből álló karakterláncból állít elő egész számot!
- Készítsen
int toi(char s[])
függvényt, mely a fordítási
időben változtatható számrendszernek megfelelő számjegyekből álló
karakterláncból állít elő egy egészet! A számrendszer alapja maximum 36 lehet.
- Készítsen
int toi36(char s[], int n)
függvényt, mely a
második paraméterként megadott számrendszernek megfelelő számjegyekből álló
karakterláncból állít elő egy egészet! A számrendszer alapja maximum 36 lehet
itt is.
A bekért számok mind a négy feladatnál természetesen
ellenőrzendők a konverzió végrehajtása előtt!
Vissza az elejére!
9. heti házi feladat(ok)
- Készítsen
unsigned rotl(unsigned)
függvényt, mely visszaadja
1 bittel balra forgatva paramétere értékét!
- Készítsen
unsigned rotr(unsigned)
függvényt, mely 1 bittel
jobbra forgatva adja vissza paramétere értékét!
- Készítsen
unsigned tobbrotl(unsigned, unsigned)
függvényt,
mely az első paramétere értékét a másodikban megkapott bitszámmal forgatja
balra!
- Készítsen
unsigned tobbrotr(unsigned, unsigned)
függvényt,
mely az első paramétere értékét a másodikban megkapott bitszámmal forgatja
jobbra!
A függényeket kipróbáló programban célszerű binárisan
megjelentetni a forgatni kívánt unsigned
forgatás előtti és utáni
állapotát, akár egy void BitekKi(unsigned)
függvény segítségével.
- Készítsen programot, mely egész számokat kér be, meghatározza átlagukat,
minimumukat, maximumukat és rendezi őket növekvőleg! Az egészek száma csak
futás közben dől el. Csak formailag helyes egész számok fogadhatók el. A
program elsőnek kérje be, hány egész szám lesz, s csak azután a számokat
magukat!
Vissza az elejére!
10. heti házi feladat(ok)
- Készítsen
void itoa(int n, char s[])
függvényt, mely az első
paraméterként kapott egészet karakterlánccá konvertálja és a második
paraméterben visszaadja! Figyeljünk rá, hogy a függvény INT_MIN-re is
működjék!
- Készítsen
int indexe(char s[], char t[])
és int
indexu(char s[], char t[])
függvényeket, melyek meghatározzák és
visszaadják a t
paraméter karakterlánc s
karakterláncbeli első, illetve utolsó előfordulásának indexét! Egy a
függvényeket felhasználó tesztprogram írja ki a képernyőre egy adott
próbakarakterlánc összes előfordulását is a billentyűzetről érkező sorokban! A
próbakarakterlánc összes előfordulásának közlését - később visszatérve -
oldjuk meg mutató segítségével is!
- Készítsen programot mely valós számokat kér be, meghatározza átlagukat,
minimumukat, maximumukat és rendezi őket növekvőleg! A valós számok száma csak
futás közben dől el. Csak formailag helyes számok fogadhatók el. A program
elsőnek kérje be, hány szám lesz, s csak azután a számokat magukat! A
konverzióhoz a szabvány könyvtári
atoi
és atof
rutinok használandók!
Vissza az elejére!
11. heti házi feladat(ok)
- Készítse el a
void itoa(int n, char s[])
függvény rekurzív
változatát! Az új függvény paramétereit a rekurzív kivitelezéshez a lehető
legcélszerűbben kell megválasztani.
- Készítsen rekurzív
double hatvany(double alap, int kitevo)
függvényt!
- Készítsen programot, mely kiszámítja, hogy hány nyúlpárunk lesz 3, 4, 5,
... , n hónap múlva, ha egy nyúlpár kéthónapos korától kezdve havonta egy-egy
új nyúlpárt hoz a világra! Feltéve, hogy az új párok is e törvény alapján
szaporodnak, és mind életben maradnak. A megoldás a Fibonacci-számok sora, ha
a 0 kezdőelemet figyelmen kívül hagyjuk.
a0 = 0
a1
= 1
an = an-1 + an-2
- Készítsen programot, amely a [10;20] intervallumba eső számokat olvas a szabvány bemenetről, amíg
üres sort vagy EOF-ot nem adnak meg! Állapítsa meg, hogy melyik szám hány alkalommal fordult elő!
Formailag hibás, vagy az intervallumon kívüli értékeket nem fogadhat el!
- Készítsen programot, amely neveket olvas a standard bemenetről üres sor, vagy EOF beviteléig!
Minden egyes névről megállapítandó, hogy formailag helyes-e, vagy sem! Egy nevet helyesnek tekintünk,
ha legalább 5 és legfeljebb 30 karakterből áll, valamint a benne lévő szavak száma 2 vagy 3.
Vissza az elejére!
12. heti házi feladat(ok)
A gyakorlat szabad felhasználású. Lehet foglalkozni:
- Valamilyen elmaradás pótlásával.
- A prodzsekttel.
- A forrás szintű nyomkövetéssel.
Vissza az elejére!
13. heti házi feladat(ok)
- Készítse el a
PELDA24.C
-hez hasonlóan a valós számok tömbbe
olvasását és visszaírását! Az int getint(int *)
függvény
int getfloat(float *)
-ra változtatandó! Az int bufp;
lecserélendő char *bufp;
-re! Tegyünk legalább annyi
inputellenőrzést a getfloat
-ba, hogy legalább egy numerikus
karakter meglétét megkövetelje, ill. konvertálhatatlan karakterek esetén
ürítsük ki a bemeneti puffert a legközelebbi fehér karakterig!
- Készítse el az alább felsorolt, ismert C függvények mutatós változatát! A
char * visszatérésű függvények az eredmény címével térnek vissza!
- Karakterlánc másolása:
void strcpy(char cel[], char forras[]) --
char *strcpy(char *, char *)
- Két karakterlánc egyesítése:
void strcat(char s[], char t[]) --
char *strcat(char *, char *)
Vissza az elejére!