Informatika2-2015/Gyakorlat04
A MathWikiből
(Változatok közti eltérés)
(Új oldal, tartalma: „= 4. gyakorlat - opcionális paraméter és könyvtárak = Ezen a gyakorlaton az [[Informatika2-2015/Eloadas 3 Python-3 Opcionalis parameter Dokumentacio|előző heti …”) |
|||
7. sor: | 7. sor: | ||
Feladatok a CloudCoder-en megtalálhatóak. Ajánlott sorrend: | Feladatok a CloudCoder-en megtalálhatóak. Ajánlott sorrend: | ||
# buli | # buli | ||
− | # | + | # polarbol_sima |
# matrixlog | # matrixlog | ||
# huto | # huto | ||
+ | |||
+ | == Feladatok megoldása == | ||
+ | |||
+ | === buli === | ||
+ | |||
+ | Megoldás listaértelmezés nélkül: | ||
+ | |||
+ | <python>import calendar | ||
+ | |||
+ | def buli(napok, honap, ev=2015): | ||
+ | hetvegek = [] | ||
+ | for nap in napok: | ||
+ | if calendar.weekday(ev, honap, nap) > 4: | ||
+ | hetvegek.append(True) | ||
+ | else: | ||
+ | hetvegek.append(False) | ||
+ | return hetvegek</python> | ||
+ | |||
+ | Megoldás listaértelmezéssel: | ||
+ | |||
+ | <python>import calendar | ||
+ | |||
+ | def buli(napok, honap, ev=2015): | ||
+ | return [calendar.weekday(ev, honap, nap) > 4 for nap in napok]</python> | ||
+ | |||
+ | === polarbol_sima === | ||
+ | |||
+ | Megoldás listaértelmezéssel: | ||
+ | |||
+ | <python>import math | ||
+ | |||
+ | def polarbol_sima(polarok): | ||
+ | return [(round(hossz*math.cos(szog)), round(hossz*math.sin(szog))) for hossz, szog in polarok]</python> | ||
+ | |||
+ | === matrixlog === | ||
+ | |||
+ | Egy olyan megoldás ami nem módosítja a paraméterként kapott ''mutable'' listákat: | ||
+ | |||
+ | <python>import math | ||
+ | |||
+ | def matrixlog(n, M): | ||
+ | if n == 0: | ||
+ | uj_szam = round(math.log(M, 2), 2) | ||
+ | return uj_szam | ||
+ | else: | ||
+ | uj_M = [] | ||
+ | for elem in M: | ||
+ | uj_elem = matrixlog(n-1, elem) | ||
+ | uj_M.append(uj_elem) | ||
+ | return uj_M</python> | ||
+ | |||
+ | === huto === | ||
+ | |||
+ | <python>import calendar | ||
+ | |||
+ | def huto(ev, honap, felir): | ||
+ | honaphossz = calendar.monthrange(ev, honap)[1] | ||
+ | |||
+ | return [szam - (honaphossz - nap) for nap, szam in felir]</python> | ||
+ | |||
+ | == Házi feladatok megoldása == | ||
+ | |||
+ | === cegesbuli === | ||
+ | |||
+ | <python>import calendar | ||
+ | |||
+ | def cegesbuli(ev, honap, nap=1): | ||
+ | temak = [ | ||
+ | "Hepi Hetfo", | ||
+ | "Kellemes Kedd", | ||
+ | "Szerelmes Szerda", | ||
+ | "Csaloka Csutortok", | ||
+ | "Perverz Pentek", | ||
+ | "Szomoru Szombat", | ||
+ | "Vidam Vasarnap"] | ||
+ | |||
+ | return temak[calendar.weekday(ev, honap, nap)]</python> | ||
+ | |||
+ | === teki === | ||
+ | |||
+ | <python>import math | ||
+ | |||
+ | def teki(k, lepeshossz, fi): | ||
+ | x, y = 0, 0 | ||
+ | szog = 0 | ||
+ | for i in range(k): | ||
+ | x = x + lepeshossz*math.cos(szog * math.pi / 180) | ||
+ | y = y + lepeshossz*math.sin(szog * math.pi / 180) | ||
+ | szog += fi | ||
+ | return (round(x), round(y))</python> |
A lap jelenlegi, 2015. március 19., 14:13-kori változata
Tartalomjegyzék |
4. gyakorlat - opcionális paraméter és könyvtárak
Ezen a gyakorlaton az előző heti előadás anyagát dolgozzuk fel.
Feladatok
Feladatok a CloudCoder-en megtalálhatóak. Ajánlott sorrend:
- buli
- polarbol_sima
- matrixlog
- huto
Feladatok megoldása
buli
Megoldás listaértelmezés nélkül:
import calendar def buli(napok, honap, ev=2015): hetvegek = [] for nap in napok: if calendar.weekday(ev, honap, nap) > 4: hetvegek.append(True) else: hetvegek.append(False) return hetvegek
Megoldás listaértelmezéssel:
import calendar def buli(napok, honap, ev=2015): return [calendar.weekday(ev, honap, nap) > 4 for nap in napok]
polarbol_sima
Megoldás listaértelmezéssel:
import math def polarbol_sima(polarok): return [(round(hossz*math.cos(szog)), round(hossz*math.sin(szog))) for hossz, szog in polarok]
matrixlog
Egy olyan megoldás ami nem módosítja a paraméterként kapott mutable listákat:
import math def matrixlog(n, M): if n == 0: uj_szam = round(math.log(M, 2), 2) return uj_szam else: uj_M = [] for elem in M: uj_elem = matrixlog(n-1, elem) uj_M.append(uj_elem) return uj_M
huto
import calendar def huto(ev, honap, felir): honaphossz = calendar.monthrange(ev, honap)[1] return [szam - (honaphossz - nap) for nap, szam in felir]
Házi feladatok megoldása
cegesbuli
import calendar def cegesbuli(ev, honap, nap=1): temak = [ "Hepi Hetfo", "Kellemes Kedd", "Szerelmes Szerda", "Csaloka Csutortok", "Perverz Pentek", "Szomoru Szombat", "Vidam Vasarnap"] return temak[calendar.weekday(ev, honap, nap)]
teki
import math def teki(k, lepeshossz, fi): x, y = 0, 0 szog = 0 for i in range(k): x = x + lepeshossz*math.cos(szog * math.pi / 180) y = y + lepeshossz*math.sin(szog * math.pi / 180) szog += fi return (round(x), round(y))