Zadání projektů z BPC2 pro letní semestr 2007/2008



Podobné dokumenty
Základy matematiky kombinované studium /06

Ten objekt (veličina), který se může svobodně měnit se nazývá nezávislý.

Jak pracovat s absolutními hodnotami

Numerická matematika Písemky

Téma je podrobně zpracováno ve skriptech [1], kapitola

FAKULTA ELEKTROTECHNIKY A KOMUNIKAČNÍCH TECHNOLOGIÍ. Matematika 3. RNDr. Břetislav Fajmon, PhD. Autoři textu:

Matematika I: Aplikované úlohy

MATEMATIKA+ MAMPD14C0T01 DIDAKTICKÝ TEST. 2.1 Pokyny k otevřeným úlohám. 1 Základní informace k zadání zkoušky. 2.2 Pokyny k uzavřeným úlohám

Intervalové stromy. Představme si, že máme posloupnost celých čísel p 0, p 1,... p N 1, se kterou budeme. 1. Změna jednoho čísla v posloupnosti.

BAKALÁŘSKÁ PRÁCE. Numerické metody jednorozměrné minimalizace

Matematika I A ukázkový test 1 pro 2014/2015

předmětu MATEMATIKA B 1

Břetislav Fajmon, UMAT FEKT, VUT Brno. Poznámka 1.1. A) první část hodiny (cca 50 minut): představení všech tří metod při řešení jednoho příkladu.

Střední škola informačních technologií a sociální péče, Brno, Purkyňova 97. Vybrané části Excelu. Ing. Petr Adamec

Polynomy a interpolace text neobsahuje přesné matematické definice, pouze jejich vysvětlení

Dodatek č. 3 ke školnímu vzdělávacímu programu. Strojírenství. (platné znění k )

3. série 2015/2016. Termín odeslání 3. série:

Knihomol. Manuál pro verzi 1.2

Několik poznámek na téma lineární algebry pro studenty fyzikální chemie

Registrační číslo Hodnocení - část A Hodnocení - část B Hodnocení - část A+B

A0M15EZS Elektrické zdroje a soustavy ZS 2011/2012 cvičení 1. Jednotková matice na hlavní diagonále jsou jedničky, všude jinde nuly

Skalár- veličina určená jedním číselným údajem čas, hmotnost (porovnej životní úroveň, hospodaření firmy, naše poloha podle GPS )

1. Alternativní rozdělení A(p) (Bernoulli) je diskrétní rozdělení, kdy. p(0) = P (X = 0) = 1 p, p(1) = P (X = 1) = p, 0 < p < 1.

Projekt OPVK - CZ.1.07/1.1.00/ Matematika pro všechny. Univerzita Palackého v Olomouci

Funkce zadané implicitně

VYSOKÁ ŠKOLA EKONOMICKÁ V PRAZE. Optimalizace trasy při revizích elektrospotřebičů

FAKULTA STAVEBNÍ MATEMATIKA II MODUL 2 STUDIJNÍ OPORY PRO STUDIJNÍ PROGRAMY S KOMBINOVANOU FORMOU STUDIA

Matematika B101MA1, B101MA2

Úvod. Integrování je inverzní proces k derivování Máme zderivovanou funkci a integrací získáme původní funkci kterou jsme derivovali

MATEMATICKÁ ANALÝZA A LINEÁRNÍ ALGEBRA PŘÍPRAVA NA ZKOUŠKU PRO SAMOUKY

Interpolace pomocí splajnu

KOMPLEXNÍ ČÍSLA INVESTICE DO ROZVOJE VZDĚLÁVÁNÍ. Tento projekt je spolufinancován Evropským sociálním fondem a státním rozpočtem České republiky

ÚSTAV MATEMATIKY A DESKRIPTIVNÍ GEOMETRIE. Matematika 0A1. Cvičení, zimní semestr. Samostatné výstupy. Jan Šafařík

Západočeská univerzita v Plzni. Fakulta aplikovaných věd Katedra matematiky. Geometrie pro FST 1. Pomocný učební text

Jméno... Cvičení den... hodina... Datum...rok... Počet listů... Varianta A

Aplikované úlohy Solid Edge. SPŠSE a VOŠ Liberec. Ing. Jiří Haňáček [ÚLOHA 34 ŘEZY]

A NUMERICKÉ METODY. Matice derivací: ( ) ( ) Volím x 0 = 0, y 0 = -2.

Součin matice A a čísla α definujeme jako matici αa = (d ij ) typu m n, kde d ij = αa ij pro libovolné indexy i, j.

MATEMATIKA základní úroveň obtížnosti

MINISTERSTVO ŠKOLSTVÍ, MLÁDEŽE A TĚLOVÝCHOVY. Učební osnova předmětu MATEMATIKA. pro studijní obory SOŠ a SOU (13 15 hodin týdně celkem)

Matematika I A ukázkový test 1 pro 2011/2012. x + y + 3z = 1 (2a 1)x + (a + 1)y + z = 1 a

Mária Sadloňová. Fajn MATIKA. 150 řešených příkladů (vzorek)

Aplikovaná matematika I

2.7.6 Rovnice vyšších řádů (separace kořenů)

10. Editor databází dotazy a relace

Po obrazovce přejede formule, před kterou se budou postupně objevovat písmena slova formule.

2.7.6 Rovnice vyšších řádů

Matice se v některých publikacích uvádějí v hranatých závorkách, v jiných v kulatých závorkách. My se budeme držet zápisu s kulatými závorkami.

2 Spojité modely rozhodování

Téma je podrobně zpracováno ve skriptech [1], kapitola 6, strany

1. Je dána funkce f(x, y) a g(x, y, z). Vypište symbolicky všechny 1., 2. a 3. parciální derivace funkce f a funkce g.

Regresní a korelační analýza

Soustavy lineárních rovnic

Parametrizace, harmonogram

Naučte se víc... Metodická příručka pro školy k aplikaci Microsoft Office PowePoint 2007

Pro bodový odhad při základním krigování by soustava rovnic v maticovém tvaru vypadala následovně:

Matematika vzorce. Ing. Petr Šídlo. verze

MATEMATIKA vyšší úroveň obtížnosti

II. Úlohy na vložené cykly a podprogramy

SYLABUS PŘEDNÁŠKY 6a Z INŽENÝRSKÉ GEODÉZIE (Polohové vytyčovací sítě) 4. ročník bakalářského studia studijní program G studijní obor G

Bloky, atributy, knihovny

Metodický list pro první soustředění kombinovaného studia. předmětu MATEMATIKA A

Semestrální písemka BMA3 - termín varianta A13 vzorové řešení

zejména Dijkstrův algoritmus pro hledání minimální cesty a hladový algoritmus pro hledání minimální kostry.

Rámcový manuál pro práci s programem TopoL pro Windows

Mobilní telefon s funkcí určení polohy a možností vzdálené správy a ovládání.

Gymnázium, Brno. Matice. Závěrečná maturitní práce. Jakub Juránek 4.A Školní rok 2010/11

Školní kolo soutěže Baltík 2010, kategorie A a B

MATEMATIKA 1 4 A B C D. didaktický test. Zadání neotvírejte, počkejte na pokyn! Krok za krokem k nové maturitě Maturita nanečisto 2006

Přehled učiva matematiky 7. ročník ZŠ

4 Numerické derivování a integrace

Semestrální projekt. Předmět: Programování v jazyce C. Zadání: Operace s maticemi. Uživatelský manuál. ver. 1.0

SPZ Uživatelská příručka

Uživatelská příručka systému pro administrátory obcí a manuál pro správce portálu

Program SMP pro kombinované studium

Přechod z Google Apps na Office 365 pro firmy

8. Posloupnosti, vektory a matice

Modely diskrétní náhodné veličiny. Jiří Neubauer. Katedra ekonometrie, FVL, UO Brno kancelář 69a, tel

FAKULTA STAVEBNÍ VUT V BRNĚ PŘIJÍMACÍ ŘÍZENÍ PRO AKADEMICKÝ ROK

na magisterský studijní obor Učitelství matematiky pro střední školy

Numerická integrace a derivace

Obsah. Začínáme pracovat v InventorCAMu - frézování SolidCAM All Rights Reserved.

Jazyk matematiky Matematická logika Množinové operace Zobrazení Rozšířená číslená osa

Manuál pro studenty. Obsah

Stručný návod pro pořadatele software na zpracování výsledků AGI (od Canis Familiaris)

V praxi pracujeme s daty nominálními (nabývají pouze dvou hodnot), kategoriálními (nabývají více

WiFiS Uživatelská příručka Obsah

11 Soustavy rovnic a nerovnic, Determinanty a Matice

. Určete hodnotu neznámé x tak, aby

Katedra aplikované matematiky FEI VŠB Technická univerzita Ostrava

Centrální evidence závětí NK ČR

Návod k ovládání administrační části nového turistického portálu Olomouckého kraje

OBSAH. ÚVOD...5 O Advance CADu...5 Kde nalézt informace...5 Použitím Online nápovědy...5. INSTALACE...6 Systémové požadavky...6 Začátek instalace...

Stručná uživatelská příručka

Příručka pro uživatele Navigační software

Euklidovský prostor Stručnější verze

Studentská tvůrčí činnost. O letu volejbalového míče při podání

Tabulkové processory MS Excel (OpenOffice Calc)

Maticové operace projekt č. 3

Transkript:

Zadání projektů z BPC2 pro letní semestr 2007/2008 Několik poznámek na úvod Projekt může být i konzolová aplikace. Záleží však na typu zadání, ne každé v konzolové aplikace vyřešit lze. Mezi studenty jsou oblíbené tzv. databázové projekty. Ve skutečnosti však programy tohoto druhu zdaleka nejsou ty nejjednodušší. A proto: Nebojte se matematiky a nedejte se zastrašit honosnými názvy, jako např. numerická integrace. Některé z matematických projektů jsou velmi jednoduché. Není nutné splnit úplně vše, co je v zadání uvedeno podle toho pak bude projekt hodnocen. Má-li někdo s programováním potíže, mohu mu poradit, co všechno by šlo vynechat. Nejjednodušší projekty jsou označeny symbolem. Není v nich nutno vymýšlet žádné složité algoritmy, u některých stačí načíst vstupní proměnné a podle vzorce vypočítat výstup. Vhodné pro lidi, kteří se považují za beznadějné případy. Nevhodné pro lidi, kteří by chtěli nějakou lepší známku! Nebojte se práce se soubory není o mnoho složitější než čtení z klávesnice a výpis na obrazovku u konzolových aplikací. Návod na práci se soubory najdete v mém adresáři na disku Q. Na disku Q též najdete knihovnu pro práci s matematickými funkcemi (zadávání funkce z klávesnice apod.) a návod pro její používání. U některých projektů by se její použití hodilo (i když není nutné). NEPODVÁDĚJTE!!! Projekt, u kterého bude zřejmé, že jej autor ve skutečnosti nevytvořil, bude hodnocen 0 body.

1. Něco dle vlastní volby (nutno nechat si ode mě schválit) Pokud vás napadá nějaké vlastní téma, např. vás zaujalo něco, co jste probírali v jiném předmětu a co se hodí řešit pomocí programu (ne úplně triviálního), nebo už jste dřív něco většího naprogramovali, mohli byste to mít jako projekt. Výslovně zakázána jsou však tato témata - kalkulačka (ledaže jste ji už skutečně sami naprogramovali) - textový editor - hodiny v jakékoli podobě, včetně budíku 2. Bodování studentů Vytvořte databázovou aplikaci pro bodování studentů. Záznam bude obsahovat položky: - jméno studenta - příjmení studenta - počet bodů ze cvičení - počet bodů na zkoušku - celkový počet bodů (ten se bude určovat automaticky po zadání dílčích bodů) - známku (opět určujte automaticky) Seznam studentů bude možno sestavit za běhu nebo načíst z uživatelem zadaného souboru. V databázi bude umožněno vyhledávání jednotlivých studentů a zobrazování jejich výsledků, změna dílčího výsledku vybraného studenta (musí následovat změna součtu a případně známky). Naprogramujte také vypsání seznamu studentů s výsledky seřazeného podle příjmení a jména, resp. podle celkového počtu bodů. Umožněte uložení tohoto seznamu do souboru. 3. Závody Přihlášené závodníky bude možno načíst ze souboru nebo zadat přímo. Pak se bude postupně jednotlivým závodníkům zadávat výkon (v čase, v metrech, v bodech... - jak chcete). Po zadání výkonu se zobrazí aktuální pořadí závodníka a aktualizované pořadí všech. Na závěr se vypíše konečné pořadí (s případným vyhlášením vítězů - dle vlastní fantazie) s možností uložení do souboru. 4. Evidence motorových vozidel Napište databázovou aplikaci pro evidenci motorových vozidel. Záznam bude obsahovat položky - jméno majitele - SPZ - značka auta - případně něco dalšího, dle vlastní fantazie Seznam bude možno načíst ze souboru a změněný pak opět uložit do souboru. Bude umožněno přidávat nové záznamy, mazat záznamy, vyhledat vozidlo podle majitele a majitele podle vozidla, najít všechny vlastníky auta dané značky atd. (vlastní tvořivosti se meze nekladou). Můžete omezit max. možný počet záznamů (např. na 20).

5. Autobazar Napiště databázovou aplikaci pro nabídku autobazaru. Záznam bude obsahovat položky - značka auta - rok výroby - cena - počet najetých kilometrů - případně něco dalšího, dle vlastní fantazie, např. obrázek (resp. jméno souboru s obrázkem) Seznam se bude načítat ze souboru. Bude možno vyhledat všechna auta žádané značky, všechna auta v zadaném cenovém rozmezí, všechna auta zadaného ročníku nebo novější apod. (vlastní tvořivosti se meze nekladou). Můžete omezit max. možný počet záznamů (např. na 30). 6. Knihovna Vytvořte databázovou aplikaci pro evidenci knih v knihovně. Záznam bude obsahovat položky: - jméno autora - titul - žánr - jestli je kniha zrovna půjčená Seznam knih se bude načítat ze souboru. Bude možno vyhledat, zda je určitá kniha půjčená, zadanou knihu půjčit nebo vrátit (všechny provedené změny musí zůstat zachovány i při dalším spuštění programu), vyhledat všechny knihy zadaného žánru, zadaného autora, autora zadané knihy apod. (vlastní tvořivosti se meze nekladou). Můžete omezit max. možný počet záznamů. 7. Prodejna potravin (nebo něčeho jiného) Vytvořte databázovou aplikaci pro evidenci zboží v prodejně potravin (nebo něčeho jiného než potravin dle vlastní volby). Můžete se omezit na zboží, které se prodává na kusy, ne na váhu, nebo evidovat oba typy. Záznam by mohl obsahovat např. položky: - název - kategorie (pečivo, mléčné výrobky,... ) - počet kusů na skladě - cena za kus Seznam zboží se bude načítat ze souboru. Bude možno vyhledat všechno zboží ze zadané kategorie, zjistit, zda je určité zboží v evidenci a kolik ho máme kusů, přidat nové zboží. Dále bude možno prodávat (např. vytvořit seznam, kolik čeho se prodává a spočítat cenu) a objednávat, případně další věci, vlastní tvořivosti se meze nekladou. Můžete omezit max. možný počet záznamů.

8. Test znalostí Napište program, který bude testovat znalosti nějakého oboru (může to být i zábavný test, najděte si třeba něco v novinách). K dispozici budou alespoň dva různé testy, které budou uloženy v souborech a z nichž si uživatel na začátku bude moci vybrat. Jednotlivé otázky se budou zobrazovat postupně, ale bude umožněno vrátit se k předchozí otázce a změnit svou odpověď. Na závěr se zobrazí počet a procentuální podíl správně zodpovězených otázek. Jméno osoby a výsledek testu se připíše do souboru s výsledky dříve testovaných osob. 9. Zoologická zahrada Napište databázovou aplikaci pro evidenci zvířat v zoologické zahradě. Záznam bude obsahovat položky: - název druhu - kategorie (opice, šelmy,... ) - oblast původu (stačí kontinent, ale možno rozdělit jemněji) - počet zvířat tohoto druhu - obrázek (nebo spíš název souboru s obrázkem) není bezpodmínečně nutné, ale bylo by to velmi pěkné - případně něco dalšího, dle vlastního uvážení, třeba nějaké podrobnější údaje o tomto druhu apod. Seznam zvířat se bude načítat ze souboru. Bude možno vyhledat všechna zvířata ze zadané kategorie, všechna zvířata ze zadané oblasti, zjistit, zda nějaké zvíře v ZOO je či není, a pokud ano, zobrazit údaje o něm (případně včetně obrázku). Též bude možno měnit počet zvířat nějakého druhu a přidávat nové druhy. Můžete omezit max. možný počet záznamů (např. na 30). 10. Atlas rostlin Napište databázovou aplikaci, která bude fungovat jako atlas rostlin. Záznam bude obsahovat položky: - druh (např. bledule jarní) - rod (např. bledule) - čeleď (např. amarylkovité) - barva květu - obrázek (nebo spíš název souboru s obrázkem) není bezpodmínečně nutné, ale bylo by to velmi pěkné - případně něco dalšího, dle vlastního uvážení, třeba doba květu, nějaké podrobnější údaje o tomto druhu apod. Seznam rostlin se bude načítat ze souboru. Bude možno vyhledat všechny rostliny zadaného rodu či zadané čeledi, všechny rostliny zadané barvy květu, zjistit, zda nějaká rostlina v atlasu je či není, a pokud ano, zobrazit údaje o ní (případně včetně obrázku). Též bude možno přidávat nové rostliny. Můžete omezit max. možný počet záznamů (např. na 30).

11. Atlas hub Napište databázovou aplikaci, která bude fungovat jako atlas hub. Záznam bude obsahovat položky: - druh (např. hřib smrkový) - rod (např. hřib) - typ (hřibovité, lupenaté,... ) - poživatelnost (jedlé, nejedlé, jedovaté, smrtelně jedovaté) - obrázek (nebo spíš název souboru s obrázkem) není bezpodmínečně nutné, ale bylo by to velmi pěkné - případně něco dalšího, dle vlastního uvážení, třeba nějaké podrobnější údaje o tomto druhu apod. Seznam hub se bude načítat ze souboru. Bude možno vyhledat všechny houby zadaného rodu, zadaného typu či zadané jedlosti, zjistit, zda nějaká houba v atlasu je či není, a pokud ano, zobrazit údaje o ní (případně včetně obrázku). Též bude možno přidávat další houby. Můžete omezit max. možný počet záznamů (např. na 30). 12. Slovník Vytvořte aplikaci, která bude fungovat jako slovník (jazyk zvolte dle vlastních znalostí). Umožněte přepínání z češtiny do vybraného jazyka a zpět. Umožněte slova do slovníku přidávat (nová slova musí být ve slovníku i při dalším spuštění aplikace). Naprogramujte též zkoušení slovíček s následným zobrazením úspěšnosti. 13. Jednoduchá hra Naprogramujte jednoduchou hru dle vlastní fantazie. 14. Sudoku Vytvořte aplikaci, pomocí které bude moci uživatel luštit oblíbený hlavolam. Zadání se zadá na místě nebo načte ze souboru, člověk pak bude moci vpisovat čísla do tabulky, případně si do tabulky dělat poznámky, co všechno v daném políčku může být. Až je celá tabulka vyplněná, zkontroluje se správnost. Jestli se odvážíte i na to, aby se sudoku vyluštilo samo, počítačem, tím lépe můžete se omezit jen na jednodušší případy. 15. Piškvorky Naprogramujte piškvorky. Hrají dva hráči (lidi). Program pozná, když některý hráč vyhraje a patřičným způsobem to dá najevo. Naprogramujete-li i hru člověka proti počítači, tím lépe, ale není to nutné. 16. Řešení dvou nebo tří lineárních rovnic pomocí Cramerova pravidla Napište program, který bude řešit soustavu maximálně tří lineárních rovnic pomocí Cramerova pravidla (tj. pomocí determinantů). Rozeznejte případy, kdy soustava nemá jediné řešení. Umožněte zadávání matice soustavy a vektoru pravých stran i ze souboru (není nutné).

17. Kreslení grafu funkce Napište program, který nakreslí graf zadané funkce f(x) na zadaném intervalu a, b. Umožněte uložit obrázek jako BMP. Jednodušší varianta: Funkce f bude napsána přímo v programu. Po spuštění se bude zadávat jen interval, případně délka kroku, po jakém se bude kreslit. Když se bude chtít nakreslit graf jiné funkce, přepíše se zdrojový kód a program se spustí znovu. Složitější varianta: Funkce f se bude zadávat až za běhu. Knihovna pro zadávání funkce zvenku je na disku Q nebo si můžete někde najít nějakou jinou. Pokud si troufáte, můžete zadávání funkce naprogramovat sami, ale není to zrovna triviální problém. 18. Kreslení křivky dané parametricky Napište program, který nakreslí křivku parametricky zadanou rovnicemi x = ϕ(t), y = ψ(t) pro t ze zadaného intervalu a, b. Umožněte uložit obrázek jako BMP. Jednodušší varianta: Funkce ϕ, ψ budou napsány přímo v programu. Po spuštění se bude zadávat jen interval, případně délka kroku, po jakém se bude kreslit. Když se bude chtít nakreslit jiná křivka, přepíše se zdrojový kód a program se spustí znovu. Složitější varianta: Funkce ϕ, ψ se budou zadávat až za běhu. Knihovna pro zadávání funkcí zvenku je na disku Q nebo si můžete někde najít nějakou jinou. Pokud si troufáte, můžete zadávání funkce naprogramovat sami, ale není to zrovna triviální problém. Co jsou to parametrické křivky: Ze střední školy byste měli znát parametrickou rovnici přímky či úsečky. Obecně si můžeme vznik parametrické křivky představit např. takto: v rovině se pohybuje bod. Jeho poloha v čase t je určena jeho x-ovou a y-ovou souřadnicí. Tyto souřadnice jsou funkcemi času, x = ϕ(t), y = ψ(t), čas t je z nějakého intervalu. V každém čase vyznačíme polohu bodu tím dostaneme křivku v rovině. V programu se to ovšem dělá tak, že nebereme všechny časy (to by technicky dost dobře nešlo), ale rozdělíme si interval na malé dílky a odpovídající body propojíme lomenou čarou. Vhodné příklady na testování jsou např. úsečky nebo křivka x = cos(t), y = sin(t), t 0, 2π, což je jednotková kružnice. Pokud si tohle vyberete, mohla bych vám poradit další rovnice, které dávají pěkné křivky. 19. Řešení lineární diferenciální rovnice druhého řádu Napište program, který bude řešit homogenní lineární diferenciální rovnici druhého řádu s konstantními koeficienty y + p y + q y = 0, kde p a q jsou reálná čísla, která se na vstupu zadají. Jednoduchá varianta: Najděte pouze obecné řešení zadané rovnice. Tj. výstup bude takový, že se na vhodné místo vypíše něco jako Obecné řešení zadané rovnice je y = c1 exp(2x) + c2 exp(3x) (Pokud kořeny charakteristické rovnice budou zrovna 2 a 3.) Složitější varianta: Najděte i partikulární řešení, které vyhovuje počátečním podmínkám y(0) = a, y (0) = b (čísla a, b zadáte na vstupu). Nakreslete graf tohoto řešení na zadaném intervalu.

20. Řešení soustavy lineárních rovnic Gaussovou eliminační metodou Napište program, který bude řešit soustavu n lineárních rovnic pomocí Gaussovy eliminační metody (tj. soustavu nejprve programem upravte na trojúhelníkový tvar). Můžete omezit maximální možný počet rovnic např. na 10. Umožněte zadávání matice soustavy a vektoru pravých stran i ze souboru (nebo pouze ze souboru - dle vlastního uvážení). Rozeznejte (programem), zda má soustava jediné řešení. 21. Statistické zpracování dat Vytvořte aplikaci, která pro zadanou posloupnost n čísel x 1, x 2,..., x n vypočte následující charakteristiky - průměr - směrodatnou odchylku - medián - modus (případně všechny mody, je-li jich víc) Umožněte zadávání vstupní posloupnosti čísel i ze souboru. Definice požadovaných veličin a příklad pro jejich objasnění: Průměr x = 1 n (x 1 + x 2 + + x n ) Směrodatná odchylka S = S 2, kde S 2 = 1 n ((x 1 x) 2 + (x 2 x) 2 + + (x n x) 2 ), což lze zjednodušit na tvar S 2 = 1 n (x2 1 + x 2 2 + + x 2 n) (x) 2. Medián je prostřední hodnota v posloupnost seřazené podle velikosti. Modus je nejčastější hodnota. Příklad: Máme posloupnost 20 čísel 3, 1, 1, 3, 1, 2, 0, 2, 4, 4, 1, 2, 2, 1, 2, 1, 2, 3, 3, 3 Průměr je x = 2,05, směrodatná odchylka S = 1 20 (32 + 1 2 + 1 2 + + 3 2 ) 2,05 2. = 1,07. Pro výpočet mediánu posloupnost seřadíme podle velikosti: 0, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 4, 4 Protože máme sudý počet čísel, medián je průměr z prostředních dvou členů (těch podtržených), tj. 2. Mody je máme dva, a to 1 a 2, protože jednička i dvojka jsou v posloupnosti obsaženy nejčasteji (šestkrát).

22. Dopravní problém metoda severozápadního rohu Napište aplikaci, která bude řešit dopravní problém metodou severozápadního rohu. Umožněte zadávání vstupních dat i ze souboru a výpis výsledků i do souboru. Podrobnější popis problému a metody: Máme m dodavatelů nějakého zboží a n zákazníků. První dodavatel má d 1 kusů onoho zboží, druhý dodavatel d 2 kusů, obecně i-tý dodavatel má d i kusů. První zákazník požaduje z 1 kusů, druhý z 2 kusů, obecně j-tý požaduje z j kusů zboží. Předpokládá se, že celkové zásoby všech dodavatelů jsou stejné jako celkové požadavky všech zákazníků, tj. d 1 + d 2 + + d m = z 1 + z 2 + + z n. (Platnost této podmínky v programu zkontrolujte.) Chceme naplánovat, kolik kusů zboží se poveze (proto dopravní problém) od prvního dodavatele k prvnímu zákazníkovi (tento počet označíme x 11 ), kolik kusů od prvního dodavatele ke druhému zákazníkovi (tento počet označíme x 12 ), atd., tj. musíme nějak vyplnit matici x 11 x 12 x 1n x 21 x 22 x 2n X =.., x m1 x m2 x mn kde x ij je počet kusů zboží, který se poveze od i-tého dodavatele k j-tému zákazníkovi. (Ve skutečnosti je u dopravního problému cílem minimalizovat celkovou cenu přepravy, ale u metody SZ rohu na ceně dopravy jednoho kusu zboží od i-tého dodavatele k j-tému zákazníkovi nezáleží, takže o ceně dál mluvit nebudeme.) Metodu severozápadního rohu vysvětlíme na příkladu. Máme 3 dodavatele a 4 zákazníky. Kapacity dodavatelů jsou d 1 = 310, d 2 = 200, d 3 = 190. Požadavky zákazníků jsou z 1 = 250, z 2 = 100, z 3 = 150 a z 4 = 200. Nejprve vyvezeme všechno, co má první dodavatel: První zákazník chce 250 kusů, tak mu je dáme: x 11 = 250. Druhý zákazník chce 100 kusů, ale první dodavatel už má jenom 60 (původně měl 310, 250 vyvezl), takže x 12 = 60. Tím je kapacita prvního dodavatele vyčerpána a začne vyvážet druhý dodavatel. První zákazník už je nasycen, takže od druhého dodavatele nedostane nic. Druhý zákazník ještě potřebuje 40 kusů (původně potřeboval 100 kusů, 60 už dostal od prvního dodavatele), takže x 22 = 40. Třetí zákazník chce 150 kusů a dostane je, protože druhý dodavatel má ještě 160 kusů: x 23 = 150. Čtvrtý zákazník chce 200, ale dostane už jen 10 víc druhému dodavateli nezbývá, takže x 24 = 10. Tím je vše od druhého dodavatele vyvezeno a na řadě je třetí dodavatel. První tři zákazníci už jsou nasyceni, nedostanou od třetího nic. Čtvrtý zákazník chce ještě 190 kusů, tak je dostane, x 34 = 190. Tím jsou všichni dodavatelé vyčerpáni a všichni zákazníci nasyceni. Výsledná matice je X = 250 60 0 0 0 40 150 10 0 0 0 190 Při jejím vyplňování jsme postupovali z jejího levého horního rohu (tj. ze severozápadního rohu při pohledu jako na mapu) směrem doprava nebo dolů (podle toho, kterým směrem to ještě šlo), dokud jsme nedošli do pravého dolního rohu.,

23. Numerická integrace lichoběžníková metoda Napište program, který bude přibližně počítat b a f(x) dx lichoběžníkovou metodou. Popis metody: Interval a, b rozdělíme na n stejných dílků. Dělicí body označíme x 0, x 1,... x n. Délku jednoho dílku označíme h. Integrál se pak vypočte přibližně jako b a f(x) dx =. ( 1 L n = h 2 f(x 0) + f(x 1 ) + f(x 2 ) + + f(x n 1 ) + 1 ) 2 f(x n) Např. 4 ln(x 2 + 1) dx by se pro n = 8 spočítal přibližně jako 4 2 2 ln(x 2 + 1) dx. = L 8 = 0,25 ( 1 2 ln(22 + 1) + ln(2,25 2 + 1) + ln(2,5 2 + 1) + + ln(3,75 2 + 1) + 1 ) 2 ln(42 + 1) Bližší popis metody a další příklady najdete ve skriptech z BMA3 v kapitole o numerickém integrování. Jednoduchá varianta: Funkce f bude zadaná přímo v programu. Zadávat se budou jen krajní body intervalu a, b a počet dílků n. Když se bude chtít integrovat jiná funkce, program se přepíše. Případně lze mít v programu definováno několik různých funkcí, uživatel si bude moci vybrat některou z nich. Trochu složitější varianta: Funkce se bude zadávat až po spuštění programu (knihovnu na tohle najdete na Q). Složitější varianta: Funkce f se bude zadávat až po spuštění programu. Dále se budou zadávat krajní body intervalu a, b a přesnost ε, s jakou chceme integrál vypočítat. Pak se bude postupně počítat L 1, L 2, L 4, L 8,..., dokud nezačne vycházet zhruba tentýž výsledek, tj. dokud nebude pro nějaké n platit L 2n L n < ε. (Pokuste se při výpočtu L 2n použít L n a jenom k němu něco přidat.) Ošetřete případ, kdy se hodnoty na ničem neustalují: Zadejte nejmenší možnou hodnotu kroku h. Bude-li překročena, výpočet ukončete a vypište vhodné hlášení. Můžete též ošetřit možné chybové stavy zadání špatného výrazu pro funkci, nemožnost dosazení některého z dělicích bodů do funkce apod.

24. Numerická integrace Simpsonova metoda Napište program, který bude přibližně počítat b a f(x) dx Simpsonovou metodou. Popis metody: Interval a, b rozdělíme na n stejných dílků, přičemž n musí být sudé. Dělicí body označíme x 0, x 1,... x n. Délku jednoho dílku označíme h. Integrál se pak vypočte přibližně jako b a f(x) dx. = S n = h 3 (f(x 0) + 4f(x 1 ) + 2f(x 2 ) + 4f(x 3 ) + + 2f(x n 1 ) + 4f(x n 1 ) + f(x n )) (funkční hodnoty v krajních bodech jsou tam jednou, ve vnitřních bodech s lichými indexy čtyřikrát, ve vnitřních bodech se sudými indexy dvakrát). Např. 4 ln(x 2 + 1) dx by se pro n = 8 spočítal přibližně jako 4 2 2 ln(x 2 + 1) dx. = S 8 = 0,25 3 ( ln(2 2 + 1) + 4 ln(2,25 2 + 1) + 2 ln(2,5 2 + 1) + 4 ln(2,75 2 + 1)+ +2 ln(3 2 + 1) + 4 ln(3,25 2 + 1) + 2 ln(3,5 2 + 1) + 4 ln(3,75 2 + 1) + ln(4 2 + 1) ) Bližší popis metody a další příklady najdete ve skriptech z BMA3 v kapitole o numerickém integrování. Jednoduchá varianta: Funkce f bude zadaná přímo v programu. Zadávat se budou jen krajní body intervalu a, b a počet dílků n. Když se bude chtít integrovat jiná funkce, program se přepíše. Případně lze mít v programu definováno několik různých funkcí, uživatel si bude moci vybrat některou z nich. Trochu složitější varianta: Funkce se bude zadávat až po spuštění programu (knihovnu na tohle najdete na Q). Složitější varianta: Funkce f se bude zadávat až po spuštění programu. Dále se budou zadávat krajní body intervalu a, b a přesnost ε, s jakou chceme integrál vypočítat. Pak se bude postupně počítat S 2, S 4, S 8, S 1 6,..., dokud nezačne vycházet zhruba tentýž výsledek, tj. dokud nebude pro nějaké n platit S 2n S n < ε. (Můžete se při výpočtu S 2n pokusit použít nějaké předchozí výsledky z výpočtu S n.) Ošetřete případ, kdy se hodnoty na ničem neustalují: Zadejte nejmenší možnou hodnotu kroku h. Bude-li překročena, výpočet ukončete a vypište vhodné hlášení. Můžete též ošetřit možné chybové stavy zadání špatného výrazu pro funkci, nemožnost dosazení některého z dělicích bodů do funkce apod. 25. Interpolace nebo kubický splajn Trochu složitější než ostatní zde uvedené numerické metody, ale dají se k tomu kreslit celkem pěkné obrázky. Zběžný popis problému: Je zadáno n + 1 bodů [x 0, y 0 ], [x 1, y 1 ],..., [x n, y n ] (x-ové souřadnice jsou navzájem různé) a chceme těmito body proložit křivku. Bližší popis metod pro hledání těchto křivek najdete ve skriptech z BMA3.

26. Metoda nejmenších čtverců přímka Napište program, který pomocí metody nejmenších čtverců aproximuje zadanou tabulku hodnot přímkou. Jednoduchá varianta: K zadaným bodů najděte pouze rovnici přímky. (Pro řešení soustavy dvou rovnic o dvou neznámých doporučuji Cramerovo pravidlo.) Složitější varianta: Najděte rovnici přímky. Výslednou přímku nakreslete spolu se zadanými body. Umožněte zadávání bodů i ze souboru (nebo jenom ze souboru dle vlastního uvážení). Bližší popis problému: Máme n+1 bodů [x 0, y 0 ], [x 1, y 1 ],..., [x n, y n ] a hledáme přímku y = ax + b, která by procházela mezi těmito body co nejlépe. Koeficienty a, b hledané přímky najdeme jako řešení soustavy rovnic (pozor na pořadí neznámých!) A 11 b + A 12 a = B 1 A 21 b + A 22 a = B 2, kde A 11 = (n + 1) (tj. počet zadaných bodů), A 12 = A 21 = x 0 + x 1 + + x n, A 22 = x 2 0 + x 2 1 + + x 2 n, B 1 = y 0 + y 1 + + y n, B 2 = x 0 y 0 + x 1 y 1 + + x n y n. (Odvození těchto rovnic a řešený příklad i s obrázkem najdete ve skriptech z BMA3, kapitola Aproximace funkcí.) 27. Metoda nejmenších čtverců - parabola Napište program, který pomocí metody nejmenších čtverců aproximuje zadanou tabulku hodnot parabolou. Jednoduchá varianta: K zadaným bodů najděte pouze rovnici paraboly. (Pro řešení soustavy tří rovnic o třech neznámých doporučuji Cramerovo pravidlo.) Složitější varianta: Najděte rovnici paraboly. Výslednou parabolu nakreslete spolu se zadanými body. Umožněte zadávání bodů i ze souboru (nebo jenom ze souboru dle vlastního uvážení). Bližší popis problému: Máme n+1 bodů [x 0, y 0 ], [x 1, y 1 ],..., [x n, y n ] a hledáme parabolu y = ax 2 + bx + c, která by procházela mezi těmito body co nejlépe. Koeficienty a, b, c hledané paraboly najdeme jako řešení soustavy rovnic (pozor na pořadí neznámých!) A 11 c + A 12 b + A 13 a = B 1 A 21 c + A 22 b + A 23 a = B 2 A 31 c + A 32 b + A 33 a = B 3, kde A 11 = (n + 1) (tj. počet zadaných bodů), A 12 = A 21 = x 0 + x 1 + + x n, A 13 = A 31 = A 22 = x 2 0+x 2 1+ +x 2 n, A 23 = A 32 = x 3 0+x 3 1+ +x 3 n, A 33 = x 4 0+x 4 1+ +x 4 n, B 1 = y 0 +y 1 + +y n, B 2 = x 0 y 0 +x 1 y 1 + +x n y n, B 3 = x 2 0 y 0 +x 2 1 y 1 + +x 2 n y n (Odvození těchto rovnic a podobný příklad (i když ne zrovna na parabolu) najdete ve skriptech z BMA3, kapitola Aproximace funkcí.)