Témata zápočtových programů z Programování I. ZS 2019/20 -------------------------------------------------------- * Když si nějaké téma vyberete, pošlete mi mail. * Pokud si vymyslíte nějaké vlastní téma, pošlete mi mail. * Není nutné, aby každé téma řešil pouze jeden člověk, přesto si vyhrazuji právo v případě, že si dané téma už někdo vybral, Vaši volbu tématu zamítnout. * Podobně Vám v některých případech možná napíšu, že dané téma je na Vás příliš snadné nebo naopak příliš obtížné. * Zápočtové programy můžete psát v Pythonu. * Téma zápočtového programu si ujasněte a pošlete mi ho do 31.12.2019 24:00. * Hotový zápočtový program včetně dokumentace mi pošlete nejpozději do 28.2.2020 8:00, ale POZOR: podle nového předpisu se Vám do zimního semestru počítají pouze kredity získané do konce zkouškového období! (Tj. při pozdějším odevzdání Vám mohou chybět kredity pro průchod do léta.) Práce s textem ------------------------------------------------ DIFF čte dva soubory, porovnává řádky (stejný/různý) a vytvoří HTML-soubor znázorňující rozdíly (původní řádky, přidané řádky, smazané řádky mají ruzne CSS-styly (externi CSS soubor)). Nemusí být jednoznačné, co je přidaný řádek, proto navrhněte vlastní způsob. Word-DIFF čte dva soubory, porovnává slova (stejné/různé) a vytvoří HTML-soubor znázorňující rozdíly (původní slova, přidaná slova, umazaná slova mají ruzne CSS-styly (externi CSS soubor)). Nemusí být jednoznačné, co je přidané slovo, proto navrhněte vlastní způsob. REPLACE Z konfiguračního souboru (parametr volání) načte CO má nahradit ČÍM a čte ze standardního vstupu, nahrazuje a vypisuje na standardní výstup. == Michaela Myšáková Duplicitní soubory Prohledá zadanou cestu (adresář/složku nebo disk) včetně podadresářů a vypíše všechny skupiny souborů, které mají shodné - velikost - [x] datum a čas - [x] obsah - [x] jméno (porovnávání položek označených [x] bude volitelné). Je potřeba použít překladač, který umí pracovat s dlouhými jmény souborů a adresářů (FreePascal nebo Delphi). == Vojtěch Kočandrle Derivace výpis derivace funkce == Vladimír Karpenko require v PHP načte zdrojové kódy v PHP a vytiskne tabulku, který soubor se (pomocí require, require_once) odkazuje na který soubor. Společná slova přečte (dlouhý) soubor s (českým) textem, zkoumá dvojice slov vyskytujících se ve stejné větě a nakonec vytiskne tabulku dvojic spolu s počty výskytů, seřazenou od nejčastější. XKCD na tabletech Komix xkcd (www.xkcd.com) zobrazuje dodatečný text k obrázku pomocí HTML-atributu "title", takže po najetí myší na obrázek. To je obtížné na tabletech a dalších dotykových zařízeních. Program zpracuje adresář (složku) s uloženými stránkami XKCD tak, že najde tento dodatečně zobrazovaný text a připíše ho do stránky mezi obrázek a následující tlačítka. Beamer Beamer je makro do \TeX-u pro sázení presentací. Program načte jednoduchý odrážkový seznam, případně doplněný o písmenkové značky na začátku řádky a vyrobí z něj \TeX-ový zdrojový kód presentace v Beameru. MarkDown Program dostane jako vstup text v jazyku MarkDown a jako výstup vypíše stejný text v HTML. == Radovan Haluška == Josef Sviták Počítání ------------------------------------------------ Analýza kurzů akcií 1 na vstupu má soubor - seznam denních kursů jedné akcie. Pro každou dvojici hodnot BUY a SELL lze spočítat zisk (nebo ztrátu), kterou by obchodník získal, kdyby při kursu BUY za všechny své peníze nakoupil a při kursu SELL všechny své akcie prodal. Program nalezne hodnoty BUY a SELL, které by vedly k maximálnímu zisku. ==Kristýna Lhoťanová Analýza kurzů akcií 2 na vstupu má soubor - seznam denních kursů jedné akcie. PRAVIDLA mají tvar: * pokud je kurs větší než K1-násobek kursu před D1 dny, kup. * pokud je kurs větší než K2-násobek kursu před D2 dny, prodej. * pokud je kurs menší než K3-násobek kursu před D3 dny, kup. * pokud je kurs menší než K4-násobek kursu před D4 dny, prodej. * pokud je kurs menší než K5-násobek kursu, za který jsi koupil, prodej. * pokud je kurs větší než K6-násobek kursu, za který jsi koupil, prodej. * pokud je kurs menší než K7-násobek kursu, za který jsi prodal, kup. * pokud je kurs větší než K8-násobek kursu, za který jsi prodal, kup. Pokyn "kup" znamená koupit akcie za všechny peníze. Pokyn "prodej" znamená prodat všechny akcie. Pro známé hodnoty K1..K8, D1..D4 je snadné spočítat výsledný zisk nebo ztrátu (předpokládejme, že v posledním dni datového souboru všechny akcie prodáme). Program bude hledat hodnoty K1..K8, D1..D4, při kterých by zisk byl největší. == Nguyen Ngoc Anh Překládání papíru program načte čísla M a N a spočte a vytiskne počet možností, jimiž lze čtverečkovaný papír rozměrů MxN poskládat na jednu kostičku. == Daniel Habart Konkrétní kalkulačka Program se bude chovat přesně stejně jako (zvolená) kalkulačka, tj. po stejných stiscích kláves bude zobrazovat stejný obsah displeje. Hry ------------------------------------------------ Piškvorky Pro dva hráče, s umělou inteligencí. == Michal Chudoba == Matúš Konig Šachové dvoutažky načte pozici šachové hry s údajem, kdo je na tahu a zjistí, zda může dát druhým tahem mat. == Tomáš Tyle Mat K-V x K hraje koncovku krále a věže proti králi == Tomáš Sourada == Michal Tichý Logik hraje hru logik (master-mind) v pozici toho, kdo hádá. == Jitka Nováková Dáma hraje hru dáma. Prší hraje karetní hru prší. == Dominik Molnár Krávy hraje hru "6 bere", hraje proti hráči i za předem daný počet počítačových protihráčů. Explodující atomy hráči střídavě pokládají své figurky do políček hracího plánu neobsahujících soupeřovy figurky. Figurku nelze položit do políčka, kde už leží figurka soupeře. Když je políčko NAPLNĚNO, tj. obsahuje tolik figurek, kolik má políčko sousedních políček (2, 3 nebo 4), exploduje a rozdělí své figurky mezi sousední políčka. Případné soupeřovy figurky, které tam již byly, přebarví na svou barvu, jeho vlastní figurky zůstávají a zjišťuje se, zda opět není políčko naplněno. Vyhraje hráč, který eliminuje soupeře. Hra lodě == Dmitry Zhukov == Ondřej Chlebovský SUDOKU Program na řešení Sudoku. == Vojtěch Kloda Utility ------------------------------------------------ 404 Program prohledá webovou stránku a odkazy z ní vedoucí až do zadané hloubky - a vypíše přehled neplatných odkazů. DeBOM BOM (Byte Order Mark) je značka na začátku (některých) textových souborů udávající pořadí bajtů v kódování UTF. Problém je v tom, že textové editory ji nezobrazují a na druhou stranu, pokud zdrojové texty např. v PHP obsahují BOM, nebude fungovat správně třeba generování obrázků (protože obrázky před vlastními bajty obrázku budou mít bajty BOM). Program se bude spouštět ve dvou režimech, rozlišených podle parametrů spuštění: 1) DeBOM -f ........... najde a vypíše seznam souborů obsahujících BOM ve tvaru DeBOM -d DeBOM -d DeBOM -d 2) DeBOM -d .. ze zadaného souboru odstraní BOM. Přečasování titulků Vstupem programu bude soubor titulků a dvakrát dva časové údaje: - čas, kdy zazněla určitá věta ve filmu - čas, pod kterým je uvedena v titulkách. Program spočte změnu rychlosti a posunutí a upraví soubor s titulky tak, aby ony dvě zadané věty zazněly zároveň se zobrazením odpovídajícího titulku. == Adam Papula (webová PHP aplikace) Duplicitní soubory Program prohledá zadaný adresář včetně pod-adresářů a vypíše seznam shodných souborů a cest. Soubory jsou shodné, pokud mají stejné - [x] jméno - [x] datum a čas - [x] velikost , přičemž položky označené [x] jsou volitelné při spuštění programu, takže lze třeba hledat soubory, které majé stejné datu a čas a velikost, ale nemusí se jmenovat stejně. == Milan Abrahám Rozbor latinského hexametru == Václav Horký ------------------------------------------------------- 06.01.2020 11:33:11