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!
