Informatika1-2013/Gyakorlat4
A MathWikiből
(Változatok közti eltérés)
108. sor: | 108. sor: | ||
* Definiálj egy Sage függvényt ''elojel'' néven, amelynek egy bemenete van (''a''), és a "pozitiv" karakterláncot (vagyis stringet) írja ki ha a kapott paraméter pozitív, "negativ"-at ad vissza ha a szám negatív, és "nulla"-ta ad ha nulla volt a paraméter értéke. | * Definiálj egy Sage függvényt ''elojel'' néven, amelynek egy bemenete van (''a''), és a "pozitiv" karakterláncot (vagyis stringet) írja ki ha a kapott paraméter pozitív, "negativ"-at ad vissza ha a szám negatív, és "nulla"-ta ad ha nulla volt a paraméter értéke. | ||
+ | |||
+ | |||
+ | === Listák kezelése === | ||
+ | |||
+ | * Egészítsd ki a kódot, hogy a függvény a kapott lista legkisebb elemét adja vissza: | ||
+ | <python> | ||
+ | def minimum(l): | ||
+ | minelem = <!> | ||
+ | <!> e in l: | ||
+ | if e < <!>: | ||
+ | minelem = e | ||
+ | <!> e | ||
+ | </python> | ||
+ | |||
+ | * Írj függvényt ami a kapott lista elemeinek a szummáját visszaadja. (Ne használjátok a '''sum''' beépített függvényt.) | ||
+ | |||
+ | * Írj függvényt ''sokszorozo'' néven, amely bemenetként kap egy számot (''n'') és még egy paramétert, ''a''-t (ennek a típusa bármi lehet). A függvény adjon vissza egy listát, amiben ''n''-szer szerepel az ''a'' értéke. <br/>Például: ''sokszorozo(3, "bla")'' kimenete ["bla", "bla", "bla"] legyen. | ||
+ | |||
+ | * Írj Sage függvényt amely megfordít egy bemenetként kapott listát! | ||
+ | |||
+ | === Szótárak kezelése === | ||
+ | |||
+ | * Legyen egy ''gyumolcs_arak'' nevű szótárunk, a következő kulcs-érték párokkal:<br/> | ||
+ | : 'alma': 150<br/> | ||
+ | : 'szilva': 190<br/> | ||
+ | : 'ananász': 450<br/> | ||
+ | : 'banán': 300<br/> | ||
+ | |||
+ | * És legyen egy másik, ''vasarlas'' nevű szótár, amely azt tárolja, miből mennyit vettünk:<br/> | ||
+ | : 'banán': 0.6<br/> | ||
+ | : 'alma': 1.5<br/> | ||
+ | : 'ananász': 2<br/> | ||
+ | |||
+ | *Írj Sage függvényt (legyen a neve ''ar_szamolo''), amely megkapja a fenti két szótárat (első paramétere legyen az árakat tartalmazó), és kiszámolja, hogy mennyit kell fizetnünk a gyümölcsökért! | ||
+ | |||
+ | === A 3n+1 probléma === | ||
+ | |||
+ | A híres 3x+1 probléma ([http://mathworld.wolfram.com/CollatzProblem.html Collatz-sejtés]) : | ||
+ | végy egy számot, ha páratlan, szorozd meg 3-mal és adj hozzá 1-et, ha páros, oszd el 2-vel. | ||
+ | Az az állítás, hogy így bármilyen pozitív egész számból indulva előbb-utóbb eljutunk 1-ig. | ||
+ | |||
+ | Írj Sage függvényt, amely ''x''-et kap bemenetként, és sorban kiírja a lépéseket 1-ig! |
A lap 2013. október 1., 11:47-kori változata
Tartalomjegyzék |
Ismétlés az elõzõ gyakról
- String: 'kutya'
- Lista: [1, 8, 'ketto', 1, 9]
- Lista indexek 0-tól kezdõdnek, így az utolsó eleme egy n elemû listának n - 1
- Listák 3. elemének lekérdezése, feltéve, hogy l a lista: l[2]
- Listák hosszának lekérdezése: len(l)
- Új elem hozzáadása: l.append('nyolc')
- stb.
Ismétlés az elõadásról
- Szótár: {'one':1,'two':2}
- Szótár elemének lekérdezése (d a szótár): d['one']
- Elágazás:
if feltétel1: mûvelet1 elif feltétel2: mûvelet2 else: mûvelet3
- Minden aminek igaz-hamis értéke van lehet feltétel. Pl: x > 5, vagy akár x * 6 + 16 == 15 * y + 1
- For ciklus:
l = [4, 5, 2] for e in l: print e * 2
- Ennek az eredménye:
8 10 4
- While ciklus:
i = 1 x = 254 while i <= x: if x % i == 0: print i i = i + 1
- Ezt találjátok ki mit csinál!
- Függvény definiálás:
def titok(x): i = 1 while i <= x: if x % i == 0: print i i = i + 1
- Függvény meghívása:
titok(4752)
- Függvényeknek akárhány paramétere (bemenete) lehet, akár 0 is.
- Nagy különbség van a kiírás és érték visszaadás közt:
def fv1(x): print x * x + 2 * x - 1 def fv2(x): return x * x + 2 * x - 1 ertek1 = fv1(5) ertek2 = fv2(5)
- Az ertek1 értéke None mivel a fv1 nem ad vissza semmilyen értéket, csak kiírja.
- Az ertek2 értéke 34, mert a fv2 visszaadta azt az értéket (return) és nem kiírta
- Függvény csak egy értéket tud visszaadni, de akárhányat ki tud írni:
def pelda(): print 22 return 5 print 15 x = pelda()
- A 15 nem lesz kiírva, mert a return 5 paranccsal visszatér a függvény, azaz ezt az értéket visszaadja és értékül adódik az 5 x-nek
Feladatok
Lista ismétlés
- Készítsétek el a 2, 4, 'tizenot', 4 elemeket tartalmazó listát
- Kérdezzétek le a méretét
- Kérdezzétek le a 3. elemét
- Fûzzétek a lista végére a 'negy' stringet
- Kérdezzétek most le a 2. elemtõl utolsó elemig tartó részlistát, mentsétek ezt egy másik változóba
- A részlistának is kérjétek le a méretét
Elágazások
Vezérlési szerkezetek (if, for, while)
- Egészítsd ki a függvényt, hogy ha az elsõ paraméter kisebb mint a második, akkor azt a karakterláncot adja vissza, hogy "kisebb", ha nagyobb, akkor azt, hogy "nagyobb" és ha egyenlõ akkor "egyenlo"-t!
<!> hasonlit(a, b): if a < b: <!> "kisebb" elif a > b: <!> "nagyobb" <!>: <!> "egyenlo"
- Definiálj egy Sage függvényt elojel néven, amelynek egy bemenete van (a), és a "pozitiv" karakterláncot (vagyis stringet) írja ki ha a kapott paraméter pozitív, "negativ"-at ad vissza ha a szám negatív, és "nulla"-ta ad ha nulla volt a paraméter értéke.
Listák kezelése
- Egészítsd ki a kódot, hogy a függvény a kapott lista legkisebb elemét adja vissza:
def minimum(l): minelem = <!> <!> e in l: if e < <!>: minelem = e <!> e
- Írj függvényt ami a kapott lista elemeinek a szummáját visszaadja. (Ne használjátok a sum beépített függvényt.)
- Írj függvényt sokszorozo néven, amely bemenetként kap egy számot (n) és még egy paramétert, a-t (ennek a típusa bármi lehet). A függvény adjon vissza egy listát, amiben n-szer szerepel az a értéke.
Például: sokszorozo(3, "bla") kimenete ["bla", "bla", "bla"] legyen.
- Írj Sage függvényt amely megfordít egy bemenetként kapott listát!
Szótárak kezelése
- Legyen egy gyumolcs_arak nevű szótárunk, a következő kulcs-érték párokkal:
- 'alma': 150
- 'szilva': 190
- 'ananász': 450
- 'banán': 300
- És legyen egy másik, vasarlas nevű szótár, amely azt tárolja, miből mennyit vettünk:
- 'banán': 0.6
- 'alma': 1.5
- 'ananász': 2
- Írj Sage függvényt (legyen a neve ar_szamolo), amely megkapja a fenti két szótárat (első paramétere legyen az árakat tartalmazó), és kiszámolja, hogy mennyit kell fizetnünk a gyümölcsökért!
A 3n+1 probléma
A híres 3x+1 probléma (Collatz-sejtés) : végy egy számot, ha páratlan, szorozd meg 3-mal és adj hozzá 1-et, ha páros, oszd el 2-vel. Az az állítás, hogy így bármilyen pozitív egész számból indulva előbb-utóbb eljutunk 1-ig.
Írj Sage függvényt, amely x-et kap bemenetként, és sorban kiírja a lépéseket 1-ig!