1) Datové typy, proměnné a pole (Přesah do Grafiky a Databází)
U této otázky (č. 1) tě komise požádá, abys vysvětlil, co to je proměnná a pole.
Jak to rozebrat do detailu:
Představ si proměnnou jako krabičku v paměti, do které si program ukládá informace. Ale protože je počítač hloupý, musíme na krabičku nalepit štítek, co přesně v ní je -- to je ten datový typ.
- V databázích (MySQL) je to naprosto kritické. Když navrhuješ tabulku e-shopu, musíš sloupci pro cenu nastavit číselný datový typ (např. INT nebo DECIMAL). Kdybys tam nechal textový typ (VARCHAR), někdo by mohl do ceny napsat slovo „Zdarma“, databáze by se pokusila sečíst tržby a celý systém by spadl. Typování dat nás tedy chrání před chybami.
Pole (Array) si pak představ jako obří pořadač, který má spoustu šuplíků vedle sebe.
- Krásným příkladem z praxe je počítačová grafika a fotografie. Pokud máš digitální fotku s rozlišením 24 megapixelů, počítač ji ve skutečnosti nevidí jako obrázek. Vidí ji jako gigantické dvourozměrné pole (matici), které má 6000 sloupců a 4000 řádků. Každý jeden „šuplík“ v tomto poli (pixel) v sobě nese tři číselné proměnné: hodnoty Red, Green a Blue (od 0 do 255).
- Když v grafickém editoru stáhneš expozici, program ve skutečnosti vezme toto obří pole a pomocí matematiky odečte od každé proměnné určitou hodnotu.
2) Řídicí struktury: Větvení a Cykly (Přesah do Tvorby webu a Maker)
Program normálně čte kód shora dolů, řádek po řádku. Řídicí struktury (Otázka č. 4) mu ale umožňují uvažovat a opakovat činnosti.
Jak to rozebrat do detailu:
- Větvení (Podmínky If / Else): Slouží k rozhodování. Bez nich by počítač byl jen glorifikovaná kalkulačka. Na webových stránkách se s tím setkáváme neustále. Na pozadí (v PHP) je napsáno: If (uživatel je přihlášen) -> zobraz HTML kód pro jeho profil. Else (jinak) -> zobraz HTML formulář pro zadání hesla.
- Cykly (For / While): Počítač vyniká v tom, že ho nudná práce neunaví. Cyklus říká: „Dělej tuhle činnost pořád dokola, dokud platí nějaká podmínka.“
- Spojení s makry a automatizací: Zde rozeber ten příklad z Excelu. Chceš obarvit 10 000 buněk. Program by vypadal takto:
- Spustí se cyklus For Each, který vezme první buňku.
- Uvnitř cyklu je podmínka If: Je číslo menší než 0? Pokud ano, obarvi na žluto. Pokud ne, nedělej nic.
- Cyklus se posune na další buňku. Zopakuje se to 10 000x a trvá to zlomek vteřiny. To je síla řídicích struktur.
3) Funkce a Podprogramy (Přesah do Interaktivity a Zpracování videa)
Zde (Otázka č. 3) ukaž, že chápeš princip „černé skříňky“ a recyklace kódu. Funkce vznikly proto, aby programátor nemusel psát ten samý vzoreček na padesáti místech znovu a znovu.
Jak to rozebrat do detailu:
- Funkce má tři fáze: Vstupy (parametry, které jí dáš), Zpracování (to, co je uvnitř a tebe vlastně nemusí zajímat, jak funguje) a Výstup (tzv. návratová hodnota).
- Využití na webu (JavaScript): Když vyplňuješ na webu registraci a zapomeneš zavináč v e-mailu, hned to zčervená. Proč? Protože na tlačítku je zavěšená JS funkce ZkontrolujEmail(). Jako vstup dostane tvůj text, uvnitř pomocí cyklu prohledá, jestli tam je znak „@“, a jako výstup vrátí True (v pořádku) nebo False (zčervenat).
- Využití v Color Gradingu (např. DaVinci Resolve): Když aplikuješ Node a vložíš do něj LUT (Look-Up Table) pro filmový vzhled nebo zvýšíš kontrast, z programátorského hlediska na pozadí voláš matematickou funkci. Vstupem do funkce jsou surová zdrojová data pixelu ze snímače, uvnitř se provede složitý matematický přepočet kontrastních křivek a výstupem je ten krásný nabarvený pixel, který vidíš v náhledu. Nemusíš umět tu matematiku napsat, stačí ti umět tu funkci „zavolat“ tím, že přidáš Node.
4) Tabulkové kalkulátory vs. Databáze (Přesah mezi Excel a MySQL)
Otázka č. 6 se ptá na Excel, ale ty to můžeš geniálně posunout dál k Otázce č. 9 a 10 (Databáze), protože obojí pracuje s daty v tabulkách. Komisi vysvětli ten obrovský rozdíl v praktickém využití.
Jak to rozebrat do detailu:
- Na co je dobrý Excel: Skvěle se hodí na individuální práci, na počítání vzorců (třeba i těch složitých jako y = 2^(6x-1) ze zadání), vytváření grafů, filtrování dat a účetnictví. Ale má své obrovské limity.
- Proč musely vzniknout Relační databáze (MySQL): Představ si, že by e-shop jako Alza ukládal objednávky do Excelu.
- Problém s přístupem: Excel je obyčejný soubor. Když si ho otevřeš na svém počítači, zamkne se a nikdo jiný do něj nemůže zapisovat. MySQL je architektura Klient-Server, dokáže zpracovat požadavky od 10 000 lidí ve stejnou vteřinu.
- Problém s duplicitou (Relace): V Excelu bys u každé objednávky musel znovu vypisovat jméno a adresu zákazníka. Kdyby si ten zákazník změnil adresu, musel bys v Excelu ručně najít a přepsat jeho 50 předchozích objednávek. Databáze to řeší pomocí relací -- vytvoří se jedna tabulka Zákazník (s jedním unikátním ID) a druhá tabulka Objednávka, kde je jen to ID. Adresa se tedy při stěhování přepíše jen na jednom jediném místě.