{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Feladatok\n",
"- Minden feladatot a feladatszámnak megfelelő számú megoldásnotebookban oldj meg. Azaz az első feladatot az `1_feladat.ipynb` notebookban.\n",
"- A **halálfejes (☠)** feladatokhoz, **hozz létre** a kötelező feladatokhoz hasonlóan egy új notebookot a MEGOLDASOK könyvtárban.\n",
"- Csak azok a feladatok kerülnek elbírálásra, amelyek a MEGOLDASOK mappában vannak!\n",
"- A megoldás tartalmazza a megoldandó **feladat szövegét** a megoldásnotebook első `markdown` cellájában!\n",
"- **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!**\n",
"- Az elkészített ábrák minden esetben rendelkezzenek **ábrafeliratokkal** (cím, tengelyfeliratok és $-$ amennyiben indokolt $-$ jelmagyarázat)!\n",
"**Amennyiben a beadott ábrákon nincsenek feliratok, az adott feladat automatikusan csak fél feladatnak számít**!\n",
"\n",
"----\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 1. Feladat\n",
"#### láthatóság\n",
"\n",
"Írjuk meg `a_fuggveny_ami_azt_mondja_ping()` nevű függvényt, ami a meghívása esetén beleírja a végrehajtás pontos idejét az `utolso_ping` nevű globális változóba.\n",
"\n",
"- `a_fuggveny_ami_azt_mondja_ping()` függvénynek nem lehet argumentuma,\n",
"- a pontos időhöz használjuk a datetime modul datetime.now() függvényét,\n",
"- az `utolso_ping` típusa legyen karakterlánc.\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 2. Feladat\n",
"#### class\n",
"\n",
"Írj egy osztályt, melynek elemei polinomok.\n",
"\n",
"- Az objektumok inicializálásakor megadott lista tartalmazza az adott polinom együtthatóit (tetszőlegesen sok együttható lehet!).\n",
"- Az objektumok inicializálásakor a megadott együthatók számát tároljuk el a `fok_szam` attribútumban.\n",
"- Legyen az osztálynak egy olyan metódusa, ami a $[-1,1]$ intervallumban 100 pontban kiértékeli és ábrázolja a polinomot **piros 3 vonalszélességű egyenletes vonallal**. Legyen a metódus neve `mutasd_meg`!\n",
"- Egy mintapéldával demonstráld, hogy az osztályod jól működik!\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"class polinom:\n",
" '''Ez egy polinom osztály'''\n",
" def __init__(self, ..... ):\n",
" # ide jön az inicializáló függvény\n",
" def mutasd_meg(self):\n",
" # ide jön az ábrázoló függvény\n",
" "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 3. Feladat\n",
"#### class\n",
"\n",
"Írj egy osztályt, melynek elemei két dimenziós alakzatok! \n",
"- Az objektumok inicializálása egy olyan lista alapján történjen, melynek elemei valós számpárok (kételemű listák). Ezek a számpárok az adott alakzat csúcsainak koordinátái.\n",
"- Legyen az osztálynak egy olyan metódusa, mely kiszámítja az alakzatok [súlypontját és felületét](https://en.wikipedia.org/wiki/Centroid#Centroid_of_polygon), és aminek a neve `sulypont_szamolo`! A metódus térjen vissza egy három számból álló listával, ezek közül az első kettő a súlypont koordinátája, a harmadik pedig a felület értéke. \n",
"\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 4. Feladat\n",
"#### speciális method-ok\n",
"\n",
"Egészítsük ki a mintapéldában definiált `Robot` osztályt egy `__mul__` függvénnyel!\n",
"Ez lehetővé teszi két `Robot` összeszorzását a \"`*`\" operátorral. A szorzat eredménye egy harmadik `Robot` legyen, melynek a neve a szorzatban résztvevő robotok neveinek egymás után fűzése."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 5. Feladat\n",
"#### öröklés\n",
"\n",
"A második feladatban definiált polinomosztályból származtassunk egy alosztályt, mely rendelkezik egy új metódussal. \n",
"\n",
"Az új metódus \n",
"\n",
"- egy bemenő `x_0` változóval rendelkezzen, mely egy valós szám,\n",
"- a metódus ellenőrizze le, hogy `x_0` gyöke-e a polinomnak,\n",
"- a metódus térjen vissza `True` értékkel, ha `x_0` gyöke a polinomnak,\n",
"- ha `x_0` nem gyök, akkor a metódus térjen vissza `False` értékkel, és írja ki a polinom értékét az `x_0` helyen.\n",
"- azt, hogy `x_0` gyök vagy nem, azt egy `tol` tolerancia osztályváltozó alapján döntsük el, ami egy kicsi pozitív szám, azaz ha `f(x_0)\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mnumpy\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 2\u001b[0;31m \u001b[0;32mclass\u001b[0m \u001b[0mM\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m...\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 3\u001b[0m \u001b[0;31m#...\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mexp\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 5\u001b[0m \u001b[0;34m\"\"\" Matrix exponencialis.\"\"\"\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;31mTypeError\u001b[0m: EllipsisType takes no arguments"
]
}
],
"source": [
"import numpy as np\n",
"class M(...):\n",
" #...\n",
" def exp(self):\n",
" \"\"\" Matrix exponencialis.\"\"\"\n",
" #..."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
}
],
"metadata": {
"hide_input": false,
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.4.5"
}
},
"nbformat": 4,
"nbformat_minor": 0
}