{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Második beadandó\n", "\n", "Három feladat van, mindegyik két pontot ér. A jegy a pontok száma, de legfeljebb 5. Megoldásként ezt a fájlt kell visszaküldeni kitöltve. A programoknak úgy kell működniük, hogy a Restart & Run All parancsra hiba nélkül végigfusson a notebook.\n", "\n", "A megoldásodat röviden (kb 10 perc) be kell mutatnod az egyik vizsgaidőpontban. Ekkor képben kell lenni mindennel, és képes kell legyél apróbb változtatások végrehajtására élőben. (Ilyen típusú kérdésekre számíthatsz: melyik részt és hogyan kellene átírni, hogy a programod még azt is tudja, hogy xy)\n", "\n", "A vizsgán való részvétel feltétele, hogy legalább 3 nappal korábban elküldöd a beadandót, hogy legyen időm megnézni. \n", "\n", "**Ha valamivel nagyon elakadsz, írj egy emailt és segítek.**\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 1. Algoritmikus feladat\n", "Implementáld az alábbi két algoritmus közül VALAMELYIKET! \n", "- A részleteket rád bízom, például, ha több verziója is van az algoritmusnak, válassz egyet. \n", "- **Teszteld meggyőző módon, mutasd be példákon az algoritmusod!**\n", "- Egy gráf reprezentálásához vagy használj egy könyvtárat (pl. networkx) vagy pedig hozz létre egy gráf osztályt objektum orientáltan.\n", "- Az algoritmust ,,kézzel'' rakd össze, azaz nem használhatsz kész megoldásokat. \n", "- A bemutatás során használhatsz kézi példákat, vagy pedig a networkx, vagy egyéb könyvtárak beépített algoritmusait, hogy összehasonlítsd azzal, amit te implementáltál.\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Prim algoritmus\n", "Implementáld a Prim algoritmusát (https://en.wikipedia.org/wiki/Prim%27s_algorithm) egy gráf legkisebb összsúlyú feszítőfájának meghatározására.\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Lempel–Ziv–Welch\n", "\n", "Implementáld a Lempel–Ziv–Welch (https://en.wikipedia.org/wiki/Lempel%E2%80%93Ziv%E2%80%93Welch) tömörítési eljárást." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "#algoritmus" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "#bemutatás példán" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 2. Vizualizációs feladat\n", "- Az alábbi feladatot a Matplotlib csomag segítségével oldd meg!\n", "- A grafikonokon (amikor van értelme) legyen tengely, tengelyfelirat, tengelybeosztás, jelmagyarázat stb.\n", "- A grafikon színét mindig változtasd meg, ne az automatikus szín legyen. \n", "- A feladathoz szükséges fájlokat a honlapon találod [ITT](http://damasdigabor.web.elte.hu/python/beadando2/vizu/), ezek értelmezése is a te feladatod. (Általában a fájl első sora segít)\n", "\n", "\n", "(A .csv fájlok beolvasására használhatod például ezt \n", "`import csv` \n", "\n", "`f=csv.reader(csvfile, delimiter=',', quotechar='\"')` \n", "\n", "`for row in f:`\n", "\n", "persze a paramétereket be kell állítanod. A delimeter az elválasztó karakter, quotechar pedig azt jelöli, hogy azokat az elválasztó karaktereket ne vegye figyelembe, amik a megadott idézőjelek között vannak. )" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Box office \n", "Készíts egy elemzést minden idők 200 legnagyobb filmes bevétele alapján. Az adatokat a `boxoffice.csv` fájlban találod. \n", "\n", "a) Készíts egy hisztogrammot, amely megmutatja, hogy melyik évben hány film került be a top 200-ba. \n", "\n", "b) Készíts egy kördiagrammot, amely megmutatja az összes Star Wars témájú film bevételének összehasonlítását. \n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "#két ábra és az őket generáló kód" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 3. Puzzle feladat\n", "Ebben a feladatban neked kell algoritmust kitalálnod egy feladatra. \n", "- Írj egy rövid leírást (feladat, algoritmus, miért jó az algoritmus) és példákon mutasd be a működését.\n", "- Általában törekedj az objektum orientáltságra. \n", "- Törekedj rá, hogy a programod gyors legyen, pár másodpercnél ne tartson tovább. (A vizsgán rákérdezhetek, hogy milyen gyors matematikai értelemben, lehet-e gyorsítani, stb)\n", "\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Ugráló békák\n", "Írj egy programot, amely tetszőleg, akár különböző számú piros és kék béka esetén megoldja az ugráló békák feladványt. A feladvány leírását megtalálod itt: [link](http://www.primefactorisation.com/frogpuzzle/). A lépések menetét vizualizáld is. \n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#Rövid leírás:" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "#algoritmus" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "#példa" ] } ], "metadata": {}, "nbformat": 4, "nbformat_minor": 2 }