## 🎯 Cíl projektu Vytvořit **funkční a užitečný nástroj** (sadu skriptů), který automatizuje řešení vybraného problému. Cílem není napsat co nejvíce řádků kódu, ale napsat kód, který je **přehledný, modulární (využívá funkce)** a dokáže zpracovat data nebo simulovat fyzikální děj. ## 🛠️ Povinné technické požadavky (Checklist) _Pokud projekt nesplní tyto body, nemůže být přijat k hodnocení._ 1. **Modularita:** Projekt musí obsahovat **hlavní skript** (`main.m`) a minimálně **jednu vlastní funkci** v samostatném souboru. 2. **Řízení toku:** Smysluplné využití **cyklu** (`for`/`while`) a **větvení** (`if`/`switch`). 3. **Vstup/Výstup:** Program musí komunikovat s okolím – buď načítat data ze souboru, nebo interaktivně od uživatele, a výsledky ukládat nebo formátovaně vypisovat. 4. **Vizualizace:** Alespoň jeden graf s kompletními popisky (titulek, osy, legenda, mřížka). ## 📋 Varianty zadání (Vyberte si jedno) ### 🧪 Varianta A: Analýza dat (Chemie/Bio/Geo) _Ideální pro zpracování měření._ **Úkol:** Vytvořte skript pro automatické vyhodnocení série měření. 1. **Vstup:** Načtěte soubor `data.csv` (nebo `.txt`), který obsahuje zašuměná data (např. časový vývoj teploty, spektrometrie, pH). _Data si vygenerujte nebo stáhněte._ 2. **Zpracování:** - Vyčistěte data (odstraňte `NaN` nebo zjevné chyby měření). - Použijte cyklus pro zpracování více sloupců nebo úseků dat. - Vypočtěte statistiku (průměr, odchylka) nebo proložte data křivkou (`polyfit`). 3. **Výstup:** Vykreslete graf "Surová data vs. Proložená křivka" a uložte výsledky do `report.txt`. ### 🚀 Varianta B: Fyzikální simulace (Fyzika/Technika) _Ideální pro modelování dějů._ **Úkol:** Naprogramujte simulaci pohybu nebo děje v čase. 1. **Vstup:** Uživatel zadá počáteční podmínky (např. úhel výstřelu, počáteční rychlost, koeficient tření) přes `input`. 2. **Zpracování:** - Pomocí cyklu (`while` nebo `for`) vypočítejte vývoj systému v čase (např. šikmý vrh s odporem vzduchu, nabíjení kondenzátoru, kmitání na pružině). - Program musí hlídat fyzikální limity (např. "dopad na zem" = konec cyklu). 3. **Výstup:** Vykreslete trajektorii nebo časový průběh veličin. Bonus: Jednoduchá animace (`drawnow`). ### 📐 Varianta C: Matematický nástroj (Matematika/IT) _Ideální pro algoritmizaci._ **Úkol:** Vytvořte "chytrou kalkulačku" pro analýzu funkcí. 1. **Vstup:** Uživatel zadá parametry funkce (např. koeficienty polynomu) a interval. 2. **Zpracování:** - Nástroj nalezne nulové body funkce (`roots` nebo `fzero`). - Nalezne lokální extrémy (min/max). - Vypočítá určitý integrál na zadaném intervalu. 3. **Výstup:** Přehledný výpis vlastností funkce do konzole a graf s vyznačenými význačnými body (kořeny, extrémy). ## ⚖️ Hodnoticí kritéria (40 bodů) | **Kategorie** | **Body** | **Co hodnotím** | | --------------------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | **Funkčnost a originalita** | **25 b** | • Program běží bez chyb (`Error`).<br>• Dělá to, co má (splněné zadání).<br>• Obsahuje vlastní logiku (není to jen opsaný příklad z hodiny).<br>• Ošetření chyb (co když zadám zápornou hmotnost?). | | **Kvalita zpracování** | **10 b** | • **Grafy:** Popisky os, jednotky, legenda, čitelnost.<br>• **Vstupy/Výstupy:** Přehledný výpis výsledků (ne jen holá čísla).<br>• **Kód:** Členění, odsazení, smysluplné názvy proměnných, komentáře. | | **Obhajoba / Popis** | **5 b** | • **README:** Krátký textový soubor (nebo komentář v hlavičce), jak program spustit a co dělá.<br>• **Schopnost vysvětlit kód:** Student rozumí tomu, co napsal (při odevzdání/kontrole). | ## 💡 Tipy pro úspěšné splnění 1. **Začněte jednoduše:** Nejprve napište skript, který funguje pro jedno číslo. Až pak přidávejte cykly a interaktivitu. 2. **Komentujte:** Pár slov u složitějšího výpočtu pomůže Vám (až to budete za týden číst) i mně při hodnocení. 3. **Testujte:** Zkuste programu zadat nesmysly (nulu, záporné číslo). Spadne to? Nebo vypíše hezkou chybu (`error`, `warning`)? ## 📤 Odevzdání - **Formát:** `.zip` archiv (obsahuje `main_prijmeni.m`, funkce `moje_funkce.m`, případně data). - **Termín:** do konce akademického roku - **Kam:** [email protected]