Feladatok

  • Minden feladatot feladatszámnak megfelelő számú megoldásnotebookban oldd meg. Azaz az első feladatot az 1_feladat.html notebookban.
  • A halálfejes (☠) feladatokhoz hozz létre a kötelező feladatokhoz hasonlóan egy új notebookot a MEGOLDASOK könyvtárban.
  • Csak azok a feladatok kerülnek elbírálásra, amelyek a MEGOLDASOK mappában vannak!
  • A megoldás tartalmazza a megoldandó feladat szövegét a megoldás notebook első markdown cellájában!
  • Kommentekkel, illetve markdown cellákkal magyarázd, hogy éppen mit csinál az adott kódrészlet!
    Magyarázat nélkül a beküldött feladatok csak fél feladatnak számítanak!
  • Az elkészített ábrák minden esetben rendelkezzenek ábrafeliratokkal (cím, tengelyfeliratok és — amennyiben indokolt — jelmagyarázat)! Amennyiben a beadott ábrákon nincsenek feliratok, az adott feladat automatikusan csak fél feladatnak számít!

1. Feladat

Listák - I.

Galileo Galilei egyik gondolatát küdték el nekünk SMS-ben, de sajnos hálózati hiba miatt nem sorrendben érkeztek meg a szavak. A következőt olvastuk a telefonunkban:

In [1]:
sms=['Szentírás ', 'bölcs ', 'a ', 'már ', 'szükséges ', 'mondhat ', 'biztosak ', 'a ', 
     'feladata, ', 'Mivel ', 'ellent ', 'a ', 'érzéki ', 'azokkal ', 'következtetésekkel, ',
     'a ', 'vagyunk ', 'a ', 'tapasztalataink ', 'szöveg ', 'azon ', 'igazság ', 'sose ',
     'ami ', 'hogy ', 'melyekben ', 'kísérletek ', 'megtalálják ', 'által.', 'két ', 'fizikai ',
     'egymásnak, ', 'egyezik ', 'és ', 'értelmezőinek ', 'értelmezését, ']

Később a telefonszolgáltató megtalálta a hiba okát, és elküldte, hogy milyen sorrendben kaptuk meg az eredeti szöveg szavait:

In [2]:
sorrend=[8,9,15,26,33,4,27,11,12,0,5,32,29,21,24,22,28,7,30,16,17,2,3,19,13,25,34,14,35,1,23,6,20,31,10,18]

Azaz az általunk megkapott első szó az eredeti szövegben a 8-as indexet viselte, azaz a 9. volt.

Írj egy olyan programot, ami helyreállítja az idézetet, valamint össze is fűzi a lista elemeit egy mondattá.

2. Feladat

Egyszerű ábrázolás és Függvények - I.

Ebben a feladatban adott két lista, amely egy műveleti erősítős integráló RC-kör frekvenciafüggő átviteli erősítési adatait tartalmazza, a frekvenciaadatokat $\mathrm{Hz}$-ben, az átviteli arányt $\mathrm{V}/\mathrm{V}$-ban.

In [4]:
frekvencia=[50.23, 100, 200.5, 499.5, 1000, 1593, 2007, 5017, 10040, 20000, 49800]
atvitel=[30,15.55, 8.8889, 3.1136, 1.5454, 0.9773, 0.7674, 0.2954, 0.2272, 0.1704, 0.1363]

Vizsgáljuk a most már decibelre átszámolt átviteli arányt a frekvencia függvényében!

  • Először írjunk egy függvényt, ami lineáris interpolációt végez a két szomszédos adatpontból azok számtani közepénél!

A lineáris interpoláció algebrai függvénye (Y-t keressük, és X számtani közepe $x_1$ és $x_2$-nek): \begin{equation} Y=y_1+\frac{(X - x_1)\cdot (y_2 - y_1)}{(x_2 - x_1)} \end{equation}

  • Végül ábrázoljuk az eredményt (vízszintesen a frekvenciát (hertzben), függőlegesen az átviteli arányt (decibelben))! Az ábrán piros pontok jelenítsék meg az eredeti adatokat, míg kék "+" mutassa az interpolált adatokat.
In [3]:
def pol(x1,x2,y1,y2):
    # Ide jön a függvény lényege
    return X, Y

3. Feladat

Dictionary - I.

Írjatok egy függvényt, ami a megadott szótár segítségével tetszőleges magyar szöveget angolra fordít!

  • A fordítás történjen szóról szóra.
  • Ha ismeretlen szóval találkoztok, akkor csináljátok azt, amit a Google Translator: csak írjátok ki az eredeti szót fordítás nélkül. ( A szöveg többi részét természetesen le kell fordítani.)
  • Nem baj, ha nyelvtanilag nem helyes vagy értelmetlen a fordítás.
In [ ]:
szotar={'a':'the',
        'majom': 'monkey',
        'kutya':'dog',
        'szereti':'likes',
        'banánt':'banana',
        'kolbászt':'sausage'}

pelda_szoveg='a majom szereti a banánt minden kutya szereti a kolbászt'

4. feladat

Függvények - II.

Írj egy függvényt, ami a $$ ax^2+bx+c=0 $$ másodfokú egyenlet (valós és komplex) gyökeit határozza meg. Csak akkor kapjunk eredményként komplex számot, ha a diszkrimináns negatív!

Példaként add meg a következő négy egyenlet megoldását:

  1. $x^2=100$
  2. $3x^2-25x=10$
  3. $-4x^2+4x=1$
  4. $25x^2+16x=-100$
In [ ]:
def masodfoku(a,b,c):
    
    
    return x1,x2

5. Feladat

Docstring és változó számú argumentumok - I.

Írjunk egy függvényt, amely egy kezdőértékből, egy kvóciensből és egy N egész számból legyárt egy N hosszú mértani sorozatot.

Az általunk megírt függvény teljesítse a következő feltételeket:

  • írjunk docstringet,
  • a függvény egy listával térjen vissza
  • ha egy bemeneti értéke van, akkor azt tekintse kezdőértéknek, a kvóciens legyen 0.5, N pedig 10
  • ha két bemeneti érték van, akkor az első legyen a kezdőérték, a második a kvóciens, N pedig 10
  • ha megvan mind a három paraméter, akkor ugyanúgy viselkedjen, mint ahogy azt az előző feladatban tette
In [ ]:
def mertani(x0,q,N):
    """...""" # ide jön a docstring
    #
    # ide jön a varázslat..
    #

☠ 6. feladat

Dictionary - II.

A harmadik feladat magyar-angol szótárának megfordításával készítsétek el az angol-magyar szótárt, majd ennek segítségével a függvényt, ami tetszőleges angol szöveget magyarra fordít!

  • A kézzel bevitt szótár nem jó megoldás! (használjátok a dict típus items() tagfüggvényét!)

  • Ha ismeretlen szóval találkoztok, akkor csináljátok azt, amit a Google Translator: csak írjátok ki az eredeti szót fordítás nélkül. ( A szöveg többi részét természetesen le kell fordítani.)

  • Nem baj, ha nyelvtanilag nem helyes, vagy értelmetlen a fordítás.


In [ ]:
szotar={'a':'the',
        'majom': 'monkey',
        'kutya':'dog',
        'szereti':'likes',
        'banánt':'banana',
        'kolbászt':'sausage'}

angol_mondat='The monkey likes banana. Every dog likes sausage.'

☠ 7. feladat

Kulcsszavas függvény változó számú argumentummal

Írjunk egy függvényt, amely egy adott x array-ben tárolt valós értékekre kiértékel egy tetszőleges polinomfüggvényt, vagy ábrázolja azt!

  • A polinom-együtthatókat egy tetszőleges hosszúságú args nevű váltózóban kapjuk.
  • Ha a kwargs kulcsszavas argumentumban a csinal_kepet kulcsszo True akkor ábrázoljuk a polinomot és ne térjünk vissza semmilyen értékkel, ellenkező esetben a függvény térjen vissza egy array változóval amely polinom értékeit tartalmazza az x változóban tárolt helyeken.
  • Az ábrázolás stilisztikai paramétereit a függvénynek adott egyéb kulcsszavas argumentumok segítségével állítsuk be!
In [ ]:
def fuggveny(x,*args,**kwargs):
    "Kiértékelek vagy ábrázolok egy polinom-ot"
    #
    #ide jön a varázslat
    #
    

☠ 8. feladat

Listák - II.

Ábrázold hisztogramon az Anyám tyúkja versben a szavak hosszának eloszlását.

☠ 9. feladat

Véletlen számok

Bizonyítsuk numerikusan a centrális határeloszlás-tételt!

☠ 10. Péksütemény

Véletlen számok-II

Írj egy olyan függvényt, melynek bemeneti értéke a p valószínűség (mely egy 0 és 1 közötti szám), kimeneti értéke pedig p valószínűséggel a "kakaós csiga" string, 1-p valószínűséggel pedig a "túrós táska" string. Demonstráld hisztogram segítségével, hogy a függvényed helyes eloszlással generálja a kívánt péksüteményeket!