Pénzezés
Készíts programot, mely bekéri a felhasználótól, hogy a kasszában hány 100, 200 és 500 Ft-os található. A program számolja ki, hogy mennyi a beírt pénz összege!
Celsius–Fahrenheit
Készíts programot, amely bekér a felhasználótól egy valós számot (Celsius fok), az eredményt átváltja Fahrenheit értékbe, és kiírja az eredményt a képernyőre (0°C=32°F, 40°C=104°F, lineáris)! Írd meg ugyanezt fordítva is!
Időtartam
Készíts programot, mely két időpontot kérdez a felhasználótól (óra, perc, másodperc külön), majd kiszámítja a két időpont közötti időtartamot másodpercben, és az eredményt kiírja a képernyőre.
Háromszög
Készíts programot, mely egy síkbeli háromszög a.) kerületét, b.) területét, c.) szögeit, d.) a három magasság hosszát (ma, mb, mc), képes kiszámítani. A háromszög pontjait (x,y) koordinátáival jellemezzük.
Négyszög
Készíts programot, melyben a felhasználó megadja egy tetszőleges négyszög csúcsainak koordinátáit, A program pedig kiszámítja a négyszög kerületét. Feltételezzük, hogy a bevitt pontok által meghatározott szakaszok nem metszik egymást. Számíttasd ki a területet is! (Ehhez Hérón képlete használható.)
Pozitív, negatív, nulla
Készíts programot, mely a felhasználótól bekért számról megállapítja, hogy az a.) pozitív, negatív vagy nulla, b.) egész vagy nem egész. Az eredményt a képernyőre szöveges válasz formájában írja ki!
Fizetés
Készíts programot, mely beolvas a felhasználótól egy fizetést, és a fizetés nagyságától függően kiírja, hogy az alacsony, átlagos, vagy magas! A kategóriákat a saját preferenciád alapján határozhatod meg! :D
Turi
Egy turkálóban minden póló darabja 500 Ft. Ha egy vásárlás során valaki több darabot is vesz, a második ára már csak 450 Ft, a harmadik pedig 400 Ft, de a negyedik és további darabok is ennyibe kerülnek, tehát az ár a harmadik vásárlása után már nem csökken tovább.
Írj programot, amely a vásárolt pólók darabszámának ismeretében megmondja, hogy mennyit fizet a vásárló!
Másodfokú egyenlet
Írd át úgy a labor másodfokú egyenlet programját, hogy vegye az figyelembe a diszkrimináns előjelét, és jelezze külön azt is, ha nincs megoldás, vagy ha pontosan egy valós megoldás van! Ha tanultál már komplex számokról, oldd meg úgy is a feladatot, hogy komplex gyökök esetén azokat írja ki a program!
Egyenletrendszer
Készíts programot, mely képes megoldani az alábbi egyenletrendszert:
ax + by = p cx + dy = q
Az adatok: a, c, b, d, p és q. Vizsgáld meg, hogy az egyenletrendszer megoldható-e, illetve függetlenek-e az egyeneletek. Ha létezik megoldás, számold ki x és y értékét!
Négyzetszámok
Írj programot, amely kiírja az első N darab négyzetszámot! N értékét kérd a felhasználótól!
Írd ki a képernyőre az összes N-nél kisebb négyzetszámot! Vigyázz: ez nem ugyanaz a feladat, mint az előző!
Gömbök
Készíts programot, mely kiírja az 1 köbméternél kisebb térfogatú, 10 cm-ként növekvő sugarú gömbök térfogatait!
Hatványozó program
Írj programot, amely hatványozni képes! Kérdezze meg az alapot (valós) és a kitevőt (egész), és írja képernyőre a hatvány értékét!
Sorozat eleme
Írj programot, ami ki tudja számolni a következő sorozat n-edik elemét: x0=2;
xi=2·xi-1+5. Az n értékét kérd a felhasználótól! Írd meg úgy
is, hogy csak az n-edik íródik ki a képernyőre, és úgy is, hogy az első n eredmény!
Köbgyök
Newton módszere a köbgyök számítására azon alapszik, hogy ha van egy tippünk a szám köbgyökére, akkor
szám/tipp2+2·tipp
─────────────────
3
jobb közelítés. Írj az előadáson bemutatott „Hérón módszere” programhoz hasonlót köbgyök számítására!
Ferde hajítás I.
Egy ágyúból kilőtt golyó v0 (m/s) kezdeti sebességgel, alfa (fok)
szöggel indul.
Írj programot, amely bekéri ezeket az adatokat, továbbá egy
t (mp) időpontot. Írja ki, hogy abban a pillanatban épp
hol jár a golyó (x és y koordináta), továbbá hogy milyen messze
van az ágyútól légvonalban!
Ehhez a math.h függvényei, a sin() és a cos()
használhatóak. Vigyázz arra, hogy a szöget ezeknek radiánban kell megadni! 1°=π/180 rad.
g=9,81 m/s2.
Ferde hajítás II.
Írd meg most úgy a programot, hogy t=0,0; 0,1; 0,2; … s
időpontokban (tized másodpercenként) írja ki az ágyúgolyó helyét; egészen addig, amíg
be nem csapódik az a földbe (y≤0)!
Ferde hajítás III.
Most az ágyúval nem sík terepen lövünk, hanem egy adott magasságú dombra. Alakítsd át az előző programodat úgy, hogy kérdezze meg az a domb magasságát, aztán addig írja ki a röppálya adatait, amíg az ágyúgolyó a dombba be nem csapódott!
Osztók
Írj C programot, amely bekér egy számot a standard bemeneten, és kiírja az összes osztóját.
Összes szám
Írj programot, amely a képernyőre írja a 4, 5 és 6 számjegyekből képezhető összes négyjegyű számot!
Buszjegyek
Helyettesítsük az 1-9 számjegyekkel az autóbuszjegyen található lyukasztási helyeket! Írj programot, amely kiírja az összes olyan buszjegy "kódját", amely három helyen van kilyukasztva! Törekedj a képernyő minél jobb kihasználására!
Számtani sorozat
Egy program bekér a felhasználótól három valós számot, kiírja, hogy az első szám negatív
vagy nemnegatív, majd az első számtól indulva, a második szám által meghatározott lépésközzel
halad a harmadik számig, a számsorozat elemeit kiírja.
Pl. be: 3.2 0.6 5.1 ki: nemnegativ 3.2 3.8 4.4 5.0
Pl. be: -1.7 1.0 2.5 ki: negativ -1.7 -0.7 0.3 1.3 2.3
Feltételezheted, hogy az első szám kisebb, mint a harmadik, és a
második szám pozitív. Ezek ellenőrzésével nem kell foglalkoznod.
Sorozat növekvő lépésekkel
Egy program bekér a felhasználótól két pozitív egész számot, és a kisebbiktől a nagyobbikig
növekvő lépésközzel kiírja a számokat. A lépésköz kezdetben 1, és minden lépésben eggyel nő. A
program akkor is helyesen működik, ha a felhasználó előbb a felső, aztán az alsó határt adja meg
(és fordítva is).
Pl. be: 4 23 ki: 4 5 7 10 14 19
Pl. be: 23 4 ki: 4 5 7 10 14 19
Szögek
Egy program bekér a felhasználótól két valós számot, melyek két szöget jelentenek °-ban. A
program a kisebb szögtől a nagyobbig haladva kiírja a szögeket egy fokonként, és mindegyik szög
mellett zárójelbe téve radiánban is kiírja a szöget (1°=π/180 rad). A program akkor is helyesen
működik, ha a felhasználó előbb a nagyobb, aztán a kisebb szöget adja meg (és fordítva is).
Pl. be: 11.3 14.9 ki: 11.3 (0.197), 12.3 (0.215), 13.3 (0.232), 14.3 (0.249),
Pl. be: 180 176 ki: 176 (3.07), 177 (3.09), 178 (3.11), 179 (3.12), 180 (3.14),
Csökkenő sorozat
Egy program bekér a felhasználótól két pozitív valós számot, és a nagyobbiktól induló
csökkenő számsorozatot ír ki. A csökkenés lépésköze a kisebbik szám. A csökkenés addig tart,
amíg a kiírandó érték nagyobb, mint a kisebbik szám. A program akkor is helyesen működik, ha a
felhasználó előbb a nagyobb, aztán a kisebb számot adja meg (és fordítva is).
Pl. be: 1.1 5.2 ki: 5.2 4.1 3.0 1.9
Pl. be: 6.3 2.1 ki: 6.3 4.2
A/0 papír
Egy A/0-s, poszter méretű lap területe 1 m2; a szélessége a magasság √2-ed része.
Az A/1-es lap ebből úgy keletkezik, hogy a
rövidebb oldalával párhuzamosan középen kettévágjuk (vagyis a hosszabbat felezzük). Az A/2-es az A/1-eshez viszonyul ugyanígy stb.
Írj programot, amelyik kiszámolja és kilistázza ezeket a papírméreteket A/0-tól A/6-ig! A program az összeset álló változatban
írja ki, ne fekvő tájolással! Pl. az A4-es állóban: 210×297 mm.
(A matek: mekkora ez alapján egy A/0-s lap? Legyen h a lap magassága, w pedig a
szélessége! Tudjuk, hogy T=w·h, és azt is, hogy w=h/√2. Ebből T=h·h/√2,
amibe az 1 m2-t is behelyettesíthetjük. 1=h·h/√2,
√2=h·h, h=√√2. A szélessége pedig w=1 m2/h.)
Táblázat
Készíts programot, mely egy n×n-es táblázat formájában kiírja a pozitív egész számokat 1-től n2-ig. Az n értékét induláskor kérje be a felhasználótól!
Szorzótábla fejléccel
| 1 2 3 4 5 --+------------------- 1| 1 2 3 4 5 2| 2 4 6 8 10 3| 3 6 9 12 15 4| 4 8 12 16 20 5| 5 10 15 20 25
Tervezz programot pszeudokóddal, amely kiírja a képernyőre az N×N-es szorzótáblát, ahol N értékét a felhasználó adhatja meg. Valósítsd meg C nyelven! Ügyelj arra, hogy a számok állandó oszlopszélességgel jelenjenek meg (maximum 16×16-as táblát feltételezve), azaz pl. az oldalt látható módon. (Ez abban nehezebb az előadáson bemutatottnál, hogy a szorzótáblának kerete is kell legyen.)
Adott méretű négyzet rajzolása
+--+ | | | | +--+
Írj C programot, amelyik bekér egy számot, és utána akkora négyzetet rajzol a +, - és | karakterekből, mint a megadott szám (annyi - és | karakterből áll az oldala). Pl. ha n=2, akkor a jobb oldalt látható négyzet legyen a kimenet!
Gyémánt
/\ / \ \ / \/
Írj C programot, amelyik egy számot kér (n), és n hosszú oldalú „gyémántot” rajzol a képernyőre a / és \ karakterekből. n=2 esetén így néz ki a kimenet:
Derékszögű háromszög
/| / | / | ---+
Írj C programot, amelyik egy számot kér, és a |, +, - és / karakterekből derékszögű háromszöget rajzol, a megadott méretű (annyi karakterből álló) oldalakkal. n=3 esetén pl.:
Csúcsán álló háromszög 1.
ooooo ooo o
Írj C programot, amely kér a felhasználótól egy számot, és utána egy akkora, csúcsán álló egyenlőszárú háromszöget rajzol a képernyőre "o" betűkből, hogy annak éppen a megadott számú sora van! Például 3 esetén:
Csúcsán álló háromszög 2.
o oo ooo oo o
Írj C programot, amely kér a felhasználótól egy számot, és utána egy akkora, csúcsán álló egyenlőszárú háromszöget rajzol a képernyőre "o" betűkből, hogy annak éppen a megadott számú sora van! Például 3 esetén:
Paralelogramma
ooooooo ooooooo ooooooo
Írj C programot, amely kér a felhasználótól egy szélességet és egy magasságot, és utána egy akkora paralelogrammát rajzol a képernyőre "o" betűkből! Például x=7, y=3 esetén:
Még egy háromszög
ooooo
oooo
ooo
oo
o
Írj programot, amely kér egy n egész számot a felhasználótól, és utána „o”
betűkből egy akkora háromszöget rajzol, amennyi a szám. Pl. n=5 esetén az alábbi
rajz jelenik meg a kimenetén.
Háztető
##
# #
# #
# #
# #
Írj programot, amely kér egy n egész számot a billentyűzetről, és utána akkora
„háztetőt” rajzol kettőskereszt karakterekből, amekkora a szám. Pl. n=5 esetén az
alábbi rajz jelenik meg a kimeneten.
Szakasz
xxx
xxx
xxx
xxx
xxx
Írj programot, amely két számot (m és n) kér a billentyűzetről, és
egy szakaszt rajzol karakterekből összerakva. A szakasz darabjainak a hosszát az első szám adja
meg, a sorok számát a második. Pl. m=3, n=5 esetén:
Két szakasz
# #
# #
# #
# #
# #
Írj programot, amely beolvas egy egész számot, és egymás mellé rajzol két ferde vonalat,
karakterekből összerakva. A második vonal teteje egy karakterrel arrébb kezdődik, mint az első
vége. Pl. ha a megadott n szám 5, a kimeneten az alábbi rajz jelenik
meg.
Sakktábla
XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX
Rajzolj a képernyőre sakktáblát, ahogyan az oldalt látható! Hogyan lehet ezt a legtöbb ciklussal, a programban szereplő legrövidebb kiírt szövegekkel megoldani? Vagyis ne szerepeljen a programban ilyesmi:
printf("XX XX XX XX \n");
printf("XX XX XX XX \n");
Tetszőleges méretű sakktábla I.
Az előző feladatban a sakktáblán minden mező két karakter méretű volt: széltében és hosszában két x betű vagy két szóköz. Írd meg úgy a programot, hogy ezt a felhasználó adhassa meg!
Tetszőleges méretű sakktábla II.
n=1 **.. n=2 **..**..
**.. **..**..
..** ..**..**
..** ..**..**
**..**..
**..**..
..**..**
..**..**
Írj C programot, amelyik egy egész számot kér, utána pedig . és * karakterekből adott méretű sakktáblát rajzol. Pl. n=1 és n=2 esetén a jobb oldalt látható eredmények.
Téglalapok
ooooo ooooo ooooo ooooo ooooo ooooo ooooo ooooo ooooo ooooo ooooo ooooo
Készíts programot, mely egy m oszlopból és n sorból álló mátrixot rajzol a képernyőre, melynek minden eleme egy a×b méretű, "o" betűkből álló téglalap. A téglalapok között k szóköz/sortörés távolságot hagyj ki! Példa: m=3, n=2, a=5, b=2, k=1 értékekre a jobb oldalt látható.
Négyzet (téglalap) rajzolása
****** ****** ****** * * ****** * * ****** * * ****** * * ****** ******
****** ** * * * * * * * * ** ******
Írj programot, amely bekér a felhasználótól egy pozitív egész számot, és kirajzol egy ekkora, * karakterekből álló, teljesen kitöltött négyzetet a képernyőre!
Keret. Oldd meg a feladatot úgy is, hogy csak a négyzet kerete álljon csillagokból, a belseje legyen üres! Erre két logikus megoldás is van: külön programrészben is megrajzolhatod a keretet, de csinálhatod azt is, hogy az n×n-es ciklus belsejében figyeled egy feltétellel, a négyzet belsejében vagy-e, vagy a kereten.
Átló. Alakítsd át a programot úgy, hogy a négyzet átlóját is behúzza! Az előző két átalakítási lehetőség közül ehhez melyiket érdemes választani? Hogyan lehetne ezt a programot megírni úgy, hogy ne használjon elágazásokat, csak ciklust? És hogyan úgy, hogy lényegében két egymásba ágyazott ciklust tartalmaz (y és benne x), amelyeken belül pedig tetszőleges kód lehet?
Láda
+---+ |\ | | \ | | \| +---+
Írj programot, amely +, |, -, és \ karakterekből egy,
a felhasználó által adott méretű ládát rajzol!
Figyelj a visszaper karakter kirajzolására: azt
"\\" formában kell megadni. Ez a feladat megoldható
kizárólag ciklusok alkalmazásával: próbáld meg így! Hova hány
darab szóköz kell?
Szinusz
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
Rajzold ki programból a szinusz függvényt, 90 fokkal elforgatva és
X-ekből kirakva! A mintát lásd a jobb oldalon.
Ehhez a math.h függvénye, a sin() használható.
Figyelj arra, hogy ez a paraméterét radiánban várja, vagyis
1°=π/180 rad.
Tipp
Mindegyik sorban ki kell írnunk valahány szóközt, és utána egy X-et.
Hány sor van összesen? Mitől függ az, hogy hány szóközt kell tenni?
Először írj erre képletet! Gondold végig, a feladat megoldásában melyik
változó lehet egész, és melyiknek kell valósnak lennie!