Helló világ
Készíts programot, mely kiírja a képernyőre azt a szöveget, hogy „Hello World”!
Üdvözlés
Készíts programot, amely bekéri a felhasználó nevét, majd üdvözli őt a nevén szólítva!
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ó!
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 egyenletek. Ha létezik megoldás, számítsd ki x és y értékét!
Számok kiírása
Az ábrán egy program pszeudokódja látható, amely kiírja a számokat 1-től 20-ig.
Gondolok egy számra, legyen ez 1. Ismétlés, amíg a szám ≤ 20 Leírom a számot. Új sort kezdek. Növelem a számot 1-gyel. Ismétlés eddig
Írd meg ezt a programot Pythonban while
ciklussal!
Figyeld meg: ahogy begépeled a while
utáni :
kettőspontot, az Enter billentyű hatására a
gép egyből néhány szóközzel beljebb kezdi a sorokat. Ez kell ahhoz, hogy a következő utasításokat a ciklustörzs részének tekintse a
Python.
Emlékezz arra is, hogy a ciklusokban az elvégzendő művelet van a ciklustörzsben (ki akarjuk írni a számokat, tehát a
print
), utána pedig a következő elemre lépés (x
növelése). Ezt használd mindig így, ez a
legjobban követhető!
Megoldás
szam = 1
while szam <= 20:
print(szam)
szam = szam+1
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!
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
modul 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 egy 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!
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.)
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
Egyre több
Egy olyan Python programot kell írnod, amelyik kér egy számot a felhasználótól, majd kirajzol egy háromszöget az oldalt látható módon. A háromszög egyre több számot tartalmaz. Benne a számok mindig egyesével nőnek minden sorban.
Az egyik példában a bemenet n=5
, ezért a leghosszabb sorban pontosan öt darab szám van: 11 12 13 14 15, előbb
1-től 5-ig lesznek egyre többen. A másik példa az n=4
esetet mutatja, itt a leghosszabb sor négy számból áll: 7 8 9
10. Ha a felhasználó túl kicsi számot ad, nullát, esetleg negatívat, akkor adj hibajelzést! Használj tabulátor karaktereket a számok
között!
n = 5 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
n = 4 1 2 3 4 5 6 7 8 9 10
Tipp
Ezt két egymásba ágyazott ciklussal legegyszerűbb megoldani; egyik a sorokért felel, másik pedig azon belül a számokért. A kiírt számot tárold külön változóban, amely független a ciklusváltozóktól! Mikor kell ezt a kiírt számot növelni?
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?
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ó.
Csúcsán álló háromszög 1.
ooooo ooo o
Írj egy 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 egy 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 egy 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:
print("XX XX XX XX ");
print("XX XX XX XX ");
Adott méretű négyzet rajzolása
+--+ | | | | +--+
Írj egy 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!
Tetszőleges méretű sakktábla
n=1 **.. n=2 **..**.. **.. **..**.. ..** ..**..** ..** ..**..** **..**.. **..**.. ..**..** ..**..**
Írj egy 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.
Derékszögű háromszög
/| / | / | ---+
Írj egy 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.:
Gyémánt
/\ / \ \ / \/
Írj egy 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:
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 Python 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.)
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!
Szinusz
Rajzold ki programból a szinusz függvényt, 90 fokkal elforgatva és
X
-ekből kirakva! A mintát lásd az ábrán.
Ehhez a math
modul függvénye, a sin()
használható.
Figyelj arra, hogy ez a paraméterét radiánban várja, vagyis
1°=π/180 rad.
X X X X X X X X X X X X X X X X X X X
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!
Egyszerű ábrák, ciklus nélkül
Összetettebb ábrák, ciklusokkal
Rajzolj cápafogat és piramist! A fogak számát és a piramis magasságát lehessen a programban beállítani egy változóval, vagy kérd azt a felhasználótól!
Színátmenet
Rajzolj zöld-piros színátmenetet színes négyzetekből! A négyzetek számát kérd a felhasználótól, vagy lehessen a programban beállítani! Ügyelj arra, hogy a legszélső négyzetek mindig ugyanolyan színűek legyenek: a bal szélső teljesen zöld, a jobb szélső teljesen piros, függetlenül a négyzetek számától! Ha kész, rajzold meg ezt két dimenzióban, alulról fölfelé legyen egyre kékebb!
Sokszög rajzolása
Rajzolj sokszöget! A szögek számát és az oldalhosszt lehessen beállítani, vagy kérd azt a felhasználótól! Rajzold meg a sokszög köré írt körét!
Szinusz
Rajzolj szinuszgörbét teknőcgrafikával! Ehhez abszolút koordinátákat érdemes használni:
lásd a turtle.goto
leírását.