Informatika2-2022/CsütGyak10

A MathWikiből
(Változatok közti eltérés)
(Feladatok)
 
62. sor: 62. sor:
 
   [[1, 2, 3], [1, 2], [1, 3], [1], [2, 3], [2], [3], []]
 
   [[1, 2, 3], [1, 2], [1, 3], [1], [2, 3], [2], [3], []]
  
===5. Levél felsorolás ===
+
===5. függvény meghívás ===
 
+
⋆ Írjon egy flatten() nevű függvényt, amely egy fában előforduló számok
+
listáját adja vissza, mégpedig a “mélységi bejárás” szerinti sorrendben. Ez azt jelenti,
+
hogy — ha a fa lista — az elejétől vizsgáljuk az elemeit, és ha listával találkozunk, akkor
+
először azt vizsgáljuk, mielőtt az épp vizsgált lista további elemeire térnénk rá. Ha a fa
+
szám, akkor az őt tartalmazó lista a visszatérési érték. Például:
+
  flatten(1)
+
  [1]
+
  flatten([1])
+
  [1]
+
  flatten([1, 2])
+
  [1, 2]
+
  flatten([1, 2, [3, 4]])
+
  [1, 2, 3, 4]
+
  flatten([0, [0, 1, 2], [0, [0, 1, 2], 1, [0, 1, 2], 2], 2])
+
  [0, 0, 1, 2, 0, 0, 1, 2, 1, 0, 1, 2, 2, 2]
+
  flatten([[0, 1, 2], -1, [-2, [3, 4], [5, 6, 7, 8],
+
  ... [9, 10, 11]], [13, 14, 15], [16, 17]])
+
  [0, 1, 2, -1, -2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 14, 15, 16, 17]
+
 
+
===6. függvény meghívás ===
+
  
 
Definiáljon egy kétargumentumú apply() függvényt, ami az első argumentumát (egy egyargumentumú függvény) alkalmazza a második argumentumára,
 
Definiáljon egy kétargumentumú apply() függvényt, ami az első argumentumát (egy egyargumentumú függvény) alkalmazza a második argumentumára,
 
és az eredményt adja vissza.
 
és az eredményt adja vissza.
  
===7. többszörös kompozíció ===
+
===6. többszörös kompozíció ===
  
 
Definiáljon egy kétargumentumú self_compose függvényt úgy, hogy ha
 
Definiáljon egy kétargumentumú self_compose függvényt úgy, hogy ha
100. sor: 79. sor:
 
   3
 
   3
  
===8. Átlag ===
+
===7. Átlag ===
  
 
Írjunk egy atlag() nevű függvény, melynek tetszőlegesen sok bemenete van és kimenetnénk a bemeneti számok átlagát adja vissza. Kezeljük le azt az esetet ha a bemenetek között van nem szám típusú objektum.
 
Írjunk egy atlag() nevű függvény, melynek tetszőlegesen sok bemenete van és kimenetnénk a bemeneti számok átlagát adja vissza. Kezeljük le azt az esetet ha a bemenetek között van nem szám típusú objektum.
  
===9. jó zárójelezés ===
+
===8. jó zárójelezés ===
  
 
Írjunk egy függvényt, aminek a bemenete egy string és eldönti, hogy jól van-e zárójelezve, vagyis, hogy minden nyitó '(' zárójel után következik-e megfelelően egy ')' zárójel valahol a stringben.
 
Írjunk egy függvényt, aminek a bemenete egy string és eldönti, hogy jól van-e zárójelezve, vagyis, hogy minden nyitó '(' zárójel után következik-e megfelelően egy ')' zárójel valahol a stringben.

A lap jelenlegi, 2022. május 11., 23:09-kori változata

Tartalomjegyzék

Feladatok

Elmaradt feladat

1. Zárt terület kifestése

Olvassuk be a picture.txt fájlt listák listájába (minden karakter egy elem)! Írjunk egy fill(x,y) függvényt, ami ugyanazt csinálja, mint a Paint kitöltő funkciója! Az (x,y) pontból kiindulva a . helyére # jelet tesz, amíg a # jel által jelölt falba nem ütközik! A módszer rekurzív: kifestjük az (x,y) pontot, majd a szomszédait, ha azok nem # jelek. Hívjuk meg a szomszédokra (akik nem # jelek) a függvényt rekurzívan. Ha nincs kit kiszínezni, akkor álljunk meg!

.....................................
...#######################...........
...#.....................#...........
...#.....................#...........
...#.....................#...........
...#.....................#...........
...#.....................#...........
...#.....................#######.....
...###.................##......#.....
...#..##.............##........#.....
...#....##.........##..........#.....
...#......##.....##............#.....
...#........#####..............#.....
...#........#..................#.....
...#.......##..................#.....
...#.....##....................#.....
...#...##......................#.....
...#############################.....
.....................................
.....................................
.....................................
.....................................

Lekezelések

2. Osztás

Írjunk egy divide() nevű függvényt, aminek nincs paramétere. A függvény futásakor inputként kér két számot és kimenetként a két szám hányadosát adja vissza. Kezeljük le azokat a kivételeket ha nem számot adunk meg, hanem például stringet, illetve azt az esetet, amikor nullával osztanánk.

Függvényekről általában

3. lista összeg

Hívjunk fának egy objektumot ha szám, vagy ha fák listája. Tehát például 0, 1 és 2 fák, mert számok, és így [0, 1, 2] is fa, mert fák listája. Ugyanezért [0, 1, [0, 1, 2], 2] is fa, és [0, [0, 1, 2], [0, [0, 1, 2], 1, [0, 1, 2], 2], 2] is az.
Írjon egy sumtree() nevű függvényt, amely egy fában szereplő számok összegét adja vissza. Például a fenti utolsó fára 14-et.

4. részlisták

Írjon egy sublists() nevű függvényt, amely az argumentumaként adott

lista összes részlistájának listáját adja vissza (tetszőleges sorrendben). (Itt most l1 részlistája l2-nek, ha kalkulus értelemben részsorozata, azaz ha l1 minden tagja szerepel l2-ben, mégpedig ugyanabban a sorrendben.) Például:

  sublists([])
  [[]]
  sublists([1])
  [[1], []]
  sublists([1,2])
  [[1, 2], [1], [2], []]
  sublists([1,2,3])
  [[1, 2, 3], [1, 2], [1, 3], [1], [2, 3], [2], [3], []]

5. függvény meghívás

Definiáljon egy kétargumentumú apply() függvényt, ami az első argumentumát (egy egyargumentumú függvény) alkalmazza a második argumentumára, és az eredményt adja vissza.

6. többszörös kompozíció

Definiáljon egy kétargumentumú self_compose függvényt úgy, hogy ha fun egyargumentumú függvény és n természetes szám, akkor self_compose(fun, n) fun n. hatványát (azaz n-szeres kompozícióját saját magával) adja vissza. Speciálisan, self_compose(fun, 1) magát fun-t, self_compose(fun, 2) pedig fun kompozícióját magával. Mit kellene visszaadnia self_compose(fun, 0)-nak? Ha nem tudja, tegye fel (és ellenőrizze assert-tel), hogy a második argumentum mindig pozitív.
Például:

  (self_compose(lambda x: x+1,3))(0)
  3

7. Átlag

Írjunk egy atlag() nevű függvény, melynek tetszőlegesen sok bemenete van és kimenetnénk a bemeneti számok átlagát adja vissza. Kezeljük le azt az esetet ha a bemenetek között van nem szám típusú objektum.

8. jó zárójelezés

Írjunk egy függvényt, aminek a bemenete egy string és eldönti, hogy jól van-e zárójelezve, vagyis, hogy minden nyitó '(' zárójel után következik-e megfelelően egy ')' zárójel valahol a stringben.

Személyes eszközök