Informatika a práce s počítačem Mgr. Jan Dolejš 30. 5. 2014
Obsah hodiny Algoritmizace Práce na webových stránkách
Informatika a práce s počítačem Algoritmizace
Algoritmus Algoritmus je přesný návod či postup, kterým lze vyřešit daný typ úlohy Vlastnosti algoritmů: Konečnost Obecnost Determinovanost Výstup Elementárnost http://cs.wikipedia.org/wiki/Algoritmus
Vlastnosti algoritmu Konečnost Každý algoritmus musí skončit v konečném počtu kroků Obecnost (hromadnost, masovost, univerzálnost) Algoritmus neřeší jeden konkrétní problém (např. „jak spočítat 3×7“), ale obecnou třídu obdobných problémů (např. „jak spočítat součin dvou celých čísel Determinovanost Každý krok algoritmu musí být jednoznačně a přesně definován; v každé situaci musí být naprosto zřejmé, co a jak se má provést, jak má provádění algoritmu pokračovat, takže pro stejné vstupy dostaneme pokaždé stejné výsledky
Vlastnosti algoritmu Výstup Elementárnost Algoritmus má alespoň jeden výstup, veličinu, která je v požadovaném vztahu k zadaným vstupům, a tím tvoří odpověď na problém, který algoritmus řeší Elementárnost Algoritmus se skládá z konečného počtu jednoduchých (elementárních) kroků.
Způsoby zápisu algoritmů Algoritmy můžeme zapisovat slovně nebo graficky a to například pomocí tzv. vývojových diagramů
Vývojový diagram - formálně
Trochu méně formální diagram http://4.bp.blogspot.com/-wHl5FzAJv8g/T4qeOv3adxI/AAAAAAAAa7I/DsS2bbTWbqA/s1600/toiletseatflowchart_reddit.jpg
A jeden ze života…
Textový zápis algoritmu http://www.spsemoh.cz/vyuka/algor/slovzap.htm
Algoritmus zatloukání hřebíků Formulace problému Zatluč hřebík do desky. Analýza úlohy Vstupní údaje: kladivo, hřebík, deska Výstupní údaje: hřebík zatlučen do desky Analýza: tlouct tak dlouho, dokud není hřebík zatlučen až po hlavičku
Algoritmus zatloukání hřebíků Sestavení algoritmu Vezmi kladivo a hřebík Přilož hřebík k desce Uhoď kladivem na hlavičku Je hřebík zatlučen? ANO - pokračuj bodem 5 NE - vrať se na bod 3 Ukonči činnost a odlož kladivo
Algoritmus přechodu křižovatky, řízené semaforem Formulace problému Přejdi na druhou stranu ulice. Analýza úlohy Vstupní údaje: přechod, semafor Výstupní údaje: pozice na druhé straně ulice Analýza: přes přechod se nechodí na červenou
Algoritmus přechodu křižovatky, řízené semaforem Slovní popis: Dojdi až k semaforu Svítí na semaforu červená? ANO - čekej, vrať se na bod 2 NE - pokračuj bodem 3 Přejdi přes přechod
Navrhněte algoritmus pro Určení největšího čísla ze seznamu Seřazení seznamu čísel podle velikosti Určení, zda-li je číslo prvočíslo Nalezení všech prvočísel menších než zadaná horní mez
Úloha na závěr Akce! Tma, bouřka, silný déšť. Podminovaná lávka přes širokou rozvodněnou řeku. Dvoučlené komadno prozatím uspělo. Oba politici držení v zajetí teroristy byli osvobozeni. Ještě je třeba se dostat na druhou stranu lávky, která exploduje za 17 minut. Lávka je ale moc úzká a bambus víc jak dva lidi najednou neunese. A pak, je hrozná tma a oni mají jenom jednu baterku (asi nízkorozpočtový film). Bez baterky se lávka prostě přejít nedá. http://hlavolamy.stylove.com/
Úloha na závěr Oba komandos jsou celkem ve formě: první přeběhne lávku za 1 minutu, druhý za 2 minuty. Politici jsou na tom, ale hůř: Jeden přejde lávku za 5 a druhý za 10 minut. Přes lávku mohou jít jen dva najednou a ten rychlejší samozřejmě musí čekat na toho pomalejšího Jak to stihnou? 1&2 == 2; 1 zpátky == 3 5&10 == 13; 2 zpátky == 15 1&2 == 17 @@ všichni zpátky http://hlavolamy.stylove.com/
DISKUSE