Informatika2-2016/Gyakorlat11Megold

A MathWikiből
A lap korábbi változatát látod, amilyen Kkovacs (vitalap | szerkesztései) 2016. május 16., 12:59-kor történt szerkesztése után volt.
(eltér) ←Régebbi változat | Aktuális változat (eltér) | Újabb változat→ (eltér)

Tartalomjegyzék

Feladatok

Pascal-háromszög

Írjunk egy függvényt! Bemenete egy egész szám, n, kimenete pedig a Pascal-háromszög n-edik sora (lista).

def pascal(n):
    if n == 1:
        return [1]
    if n == 2:
        return [1,1]
    else:
        previous = [1,1]
        for i in range(2,n):
            actual = [1]
            for i in range(1,len(previous)):
                actual.append(previous[i]+previous[i-1])
            actual.append(1)    
            previous = actual
    return previous
print pascal(14)

Huszárok

Áll a sakktáblán egy huszár. Számoljuk ki a sakktábla minden mezőjére, hogy legkevesebb hány lépéssel tudunk eljutni oda az előbbi huszárral! A feladat megoldásához írjunk egy függvényt, knight(x,y), amelynek két bemenete a huszár táblán elfoglalt helyének koordinátái. A visszatérési érték legyen egy nyolcszor nyolcas lista! Hsználjunk dinamikus programozást!

Zárt terület kifestése

Olvassuk be az alábbi "szöveget" listák listájába (minden karakter egy elem): mentsük le egy fájlba kézzel, majd nyissuk meg a fájlt Pythonnal! Í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!

.....................................
...#######################...........
...#.....................#...........
...#.....................#...........
...#.....................#...........
...#.....................#...........
...#.....................#...........
...#.....................#######.....
...###.................##......#.....
...#..##.............##........#.....
...#....##.........##..........#.....
...#......##.....##............#.....
...#........#####..............#.....
...#........#..................#.....
...#.......##..................#.....
...#.....##....................#.....
...#...##......................#.....
...#############################.....
.....................................
.....................................
.....................................
.....................................
Személyes eszközök