## 🎯 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]