Informatika1-2012/Gyakorlat3
A MathWikiből
Tartalomjegyzék |
Ismétlés az elõadásról
- Egyszerû adattípusok: None, int, long, float, complex
- Összetett adattípusok: str, list, tuple, set, dict
- Lista mûveletek: [], [:], len(), range()
- Tuple elemei változtathatatlanok
- Halmaz: .remove(), in
- Szótár: [], in, .keys(), .values()
- type függvény
- Feltételes utasítás: if, elif, else
- While ciklus
- For ciklus
Lista és tuple alapok
- Adj meg egy legalább 5 elemű, egész számokat tartalmazó listát, és rendeld az L változóhoz!
- Írasd ki a lista második elemét!
- Írasd ki a lista második, harmadik, és negyedik eleméből álló részlistát (használd a kettőspontot a szögletes zárójelen belül)!
- Írasd ki a lista első 3 elemét!
- Írasd ki a lista utolsó elemét (negatív index)!
- Fűzz a lista végére egy új elemet, értéke legyen ugyanaz, mint az első elem! (append())
- Keresd meg hogy egy elem hányadik indexen szerepel a listádban! (index())
- Számold meg, hányszor szerepel az első elem a listában! (count())
- Mennyi a listádban szereplő számok összege? (sum())
- Rendezd a listádat növekvő sorrendbe! (sort())
- Fűzd össze az L listát az [1,2,3] listával! (használd a + operátort)
- Készíts listát (A néven) az "abrakadabra" stringből! (list())
- Készíts stringet az A listából! (str())
- Készíts tuple-t T néven az A listából, majd írd ki az utolsó elemét!
- Változtasd meg a T első elemét!
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.
- Írj egy Sage függvényt primek_szama néven, amely bemenetként kap egy számot (n) és visszaadja az n-nél kisebb prímek darabszámát! (Segítség: a range függvényt, és for ciklust használj)
- Írj egy függvényt elso_primek néven, amely bemenetként kap egy számot (n) és kiírja az első n prímszámot! (Segítség: itt egyszerûbb ha while ciklust használsz)
Listák kezelése
- Egészítsd ki a kódot, hogy a függvény az elsõ paraméterként kapott listának csak minden n-edik elemeibõl álló listát adja vissza, ahol n a második paraméter!
def kivalaszt(l, n): l2 = [] hossz = <!> <!> e in range(n, hossz, n): l2.<!>(l[e]) return <!>
- Ezek után lássuk be, hogy a fenti függvény azonos kimenetet ad mint a következõ (ebben a feladatban csak végig kell gondolni a következõ függvényt):
def kivalaszt2(l, n): l2 = [] i = n while i < len(l): l2.append(l[i]) i += n # ez ekvivalens a következõvel i = i + n return l2
- Í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 függvényt reszlista néven, amely bemenetként kap egy listát, és a függvény kimenete az a részlistája legyen az eredetinek, amely a két első 0 közötti elemekből áll. Ha nincs a bemeneti listában legalább 2 nulla, akkor legyen a kimenet az üres lista.
Például reszlista(1, 4, 0, 3, 5, 6, 3, 0, 23, 5, 0, 1, 0, 4) eredménye legyen [3, 5, 6, 3] - Í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!
Összetettebb feladatok
Tökéletes számok
- Írj függvényt, amely egy a számról eldönti, hogy az tökéletes szám-e (megegyezik a nála kisebb osztóinak az összegével, pl: 6, 28).
- Írj függvényt, amely 1-től n-ig összegyűjti és egy listában visszaadja a talált tökéletes számokat!
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!