A hétfői alkalmakon lesz a második kis ZH.
Jelentkeztél NZH-ra? Nézted a nagy házik listáját? Ne feledd, ezek határidős feladatok!
Írj függvényeket, amelyek valós számot vesznek át, és visszatérnek a:
kob()
– harmadik hatványával,abszolut()
– abszolút értékével (van beépítettabs()
függvény, de most ne használd)!
Írj programot, amelyik a = −1-től +1-ig, tizedenként lépve, kiírja egymás mellé a
,
a3
, |a|
és sin(a)
értékét, mindig négy tizedesjegy pontossággal!
Készíts függvényt, amelyik adott évszámról eldönti, hogy az szökőév-e. Szökőév minden negyedik, nem szökőév minden századik, mégis az minden 400-adik. (2000-ben ezért volt szökőév.) A függvény visszatérési értéke legyen logikai típusú!
Írj programot, amelyik a felhasználótól évszámokat kér, és mindegyikre kiírja, hogy szökőév-e! Például:
? 2005 Nem szökőév. ? 2000 Szökőév. ? 1980 Szökőév. ? 1900 Nem szökőév.
Írj programot, amely megkérdezi a felhasználótól egy hónap számát (pl. 3 = március), és utána kiírja, hány napos az a hónap!
Írj programot, amelyik egy adott dátumról (év, hónap, nap) kiírja, hogy az év hányadik napja! Az év paraméterre a szökőévek miatt van szükség. Használd fel az előző feladatban megírt függvényed!
Végül tedd be az év napját kiszámító algoritmusod is egy függvénybe! Vagyis az
evnapja(ev, honap, nap)
függvényhívás visszatérési értékében adja meg
a nap sorszámát 1 és 365 (szökőév esetén 366) között.
Egy olyan függvényt kell írnod, amely paraméterként sztringek listáját kapja. Meg kell vizsgálnia a listában található sztringeket, és megválaszolnia ezt a kérdést: van-e olyan sztring, amelyik „a” betűvel kezdődik! Ennek is legyen logikai típusú a visszatérési értéke.
Ügyelj arra, hogy a függvény helyesen működjön abban az esetben is, ha üres sztring van a listában!
Példák:
["körte", "alma", "barack"]
– van „a” betűvel kezdődő szó.["dinnye", "papaja", "", "zeller"]
– nincs „a” betűvel kezdődő szó.[]
– nincs „a” betűvel kezdődő szó.
Teszteld a függvényed ezekkel a példákkal, kiírva a listákat és a függvény visszatérési értékét is a főprogramban!
A programodban egy szót fogsz kapni, továbbá egy pozíciót (indexet), és egy betűt, amire az adott helyen a karaktert cserélni kell. Például a „papa” szó 1-es indexű betűjét „i”-re cserélve a „pipa” szót kapjuk.
Írj függvényt, aminek paraméterei a szó, a pozíció és a betű! Végezze el a függvény a cserét! Hívd meg a főprogramból a függvényt (például a fenti adatokkal), és írasd ki a főprogramból a megváltoztatott sztringet!
Tipp – ha elakadtál
A Pythonban a sztringek immutábilis objektumok, vagyis a tartalmukat nem lehet módosítani. Ezért nem létezhet olyan, hogy indexeléssel, értékadással megváltoztatunk benne egy karaktert, hiába adódik át referencia szerint a függvény paramétereként a sztring is. Új sztringet kell visszaadni a függvényből.
Tipp – ha nincs ötleted
Mivel a sztring tartalma nem módosítható, új sztringet kell létrehozni: eleje + megváltoztatott kararakter + vége.
Egészítsd ki úgy a függvényed, hogy figyelembe vegye az érvénytelen indexeket, és azokra dobjon kivételt! Tehát pl. „papa→pipa”, ha az 1-es indexű karaktert kell cserélni, de dobj kivételt „Érvénytelen pozíció: X” üzenettel, ha mondjuk a 9-es vagy a –5-ös karakter cseréjét kérné a hívó! Az X helyére mindig íródjon a helytelen index. Kapd is el ezt a kivételt a főprogramban!
Az alábbi program a megadott számsorból az átlagnál kisebbeket gyűjti egy listába:
szamok = [24, 31, 22, 43, 10, 84, 38, 44, 84, 56, 67, 51, 56, 84, 31, 65, 69, 83, 39]
szum = 0
db = 0
for x in szamok:
szum += x
db += 1
atlag = szum / db
szurt = []
for x in szamok:
if x < atlag:
szurt.append(x)
print(szurt)
Értsd meg a működését, utána pedig darabold fel függvényekre! Válaszd külön az átlagszámítás és a szűrés műveletét! Ahol lehet, használd a Python már tanult függvényeit! Például a lista hosszát nem úgy szoktuk meghatározni, hogy megszámoljuk az elemeit egyesével, de más részfeladatokra is találsz beépített függvényeket.
Készíts egyszerű menüvezérelt programot! A program tároljon el egy számot, melynek kezdőértéke a = 1
. Ezt
követően a program jelenítse meg a képernyőn a értékét, és az alább látható menüt. A megfelelő menüpont számának megadása
után hajtsa végre a
-n a kiválasztott műveletet, írja ki újból a új értékét és a menüt! A
menüből mindaddig lehessen újból választani, míg a kilépést nem választja a felhasználó!
print("0. Alapertek visszaallitasa (a = 1)",
"1. Hozzaad 1-et",
"2. Megforditja az elojelet",
"3. Szorozza 2-vel",
"9. Kilepes",
sep="\n")
Minden egyes tevékenységet (műveletet) egy pici függvény valósítson meg, amelynek bemenő paramétere az a
változó
tartalma, visszatérési értéke pedig a megváltozott szám! A main()
ezen függvények hívásával végezze el a
feladatát!
Miért olyan lényeges ez a feladat?
Figyeld meg a kapott főprogramot! Ez irányítja a többi függvény működését: meghívja az egyes részfeladatokhoz tartozó alprogramokat, amelyek dolgukat végezve visszatérnek, újra a főprogram kezébe adva az irányítást. A főprogram és az alprogramok a paramétereken és a visszatérési értékeken keresztül kommunikálnak.
Adott az alábbi program, amely madárnyelven (mavadávárnyevelveven) írja ki a beírt szöveget.
szoveg = input()
for c in szoveg:
if c == 'a' or c == 'e' or c == 'i' or c == 'o' or c == 'u':
print(c, 'v', c, sep="", end="")
else:
print(c, end="")
Írj függvényt, amelyik megmondja egy betűről, hogy magánhangzó-e! Alakítsd át úgy
a programot, hogy a megírt függvényt használod a main()
-ben! A magánhangzós
függvény megírható egyetlen egy sorból is (a fejlécén túl, természetesen).
Végezz el egy további átalakítást is: a madárnyelvesítés is legyen függvény! Vagyis írj egy olyan függvényt, amely paraméterként
egy sztringet kap, visszatérési értéke is egy sztring; például madarnyelv("alma") == "avalmava"
. (A sztring
összeállításához a +=
operátort tudod használni.) Használd fel ezt a függvényt a main()
-ben az eredeti
feladat megoldására!
Hogyan lehetne megoldani azt, hogy a nagybetűvel kezdődő szavakat is helyesen kezelje a program? Pl. az „Alma” szóra azt kell kiírnia, hogy „Avalmava”. Ehhez fel kell tudnia ismerni a nagybetűvel írt magánhangzókat is. Ugyanakkor az ismételt magánhangzó már a szó közepén van, tehát kisbetűsíteni kell.
A range()
függvény három különféle paraméterezéssel hívható:
range(min, max)
: például arange(1, 5)
-ből az 1, 2, 3, 4 számok potyognak ki.range(min, max, step)
: adott lépésközzel, példáulrange(0, 5, 2)
paraméterek esetén0, 2, 4
.range(max)
: egy paraméter esetén a kezdeti érték nulla lesz. Példáulrange(3)
esetén 0, 1, 2.
Írj függvényt szamtani()
néven, amely egy számtani sorozatot ír ki a képernyőre! A paraméterezése
legyen pontosan ugyanaz, mint a range()
függvényé, vagyis pont ugyanazokat a számokat írd ki.
A függvény belsejében ne használd a range()
-et, és ne is építs listát! A feladat lényege az, hogy lásd,
hogyan kell eltérő paraméterszámmal hívható függvényt írni.
Tipp
Adj a paramétereknek None
alapértelmezett értéket, és ellenőrizd meglétüket az xyz is None
kifejezéssel!
Ha a laborfeladatokkal elkészültél, dolgozz a példatárban lévő feladatokon, a szorgalmi feladatokon, a minta zárthelyin, vagy a házi feladatodon.
Informatikusok próbálják lekódolni az Algoritmusok és gráfok tárgyon tanult algoritmusokat. A félév elején még nem biztos, hogy minden egyszerűen menni fog, de ahogy megismeritek a vonatkozó adatszerkezeteket és nyelvi elemeket, egyre könnyebb lesz. Ezzel két legyet lehet ütni egy csapásra, mert két tantárgyat is gyakoroltok egyszerre.