Opakování

Algoritmizace

2. hodina PVA


Matěj Cajthaml — SSPŠ

©

Algoritmus

Algoritmus

  • schématický postup
  • řešení určitého problému
  • vždy má jeden začátek a minimálně jeden konec
  • vstupy a výstupy
  • musí splňovat: konečnost, obecnost, determinovanost, jednoznačnost a efektivnost

Konečnost

  • = konečný počet kroků
  • výjimku tvoří reaktivní procesy

Obecnost

  • = řešit obecný problém
  • 1 + 1 vs. a + b

Determinovanost

  • = pro stejné vstupy vyřeší problém se stejnými výstupy
  • výjimku tvoří náhodné algoritmy

Jednoznačný

  • = musí být jasné, co každý krok provede
  • důvod existence programovacích jazyků

Efektivnost

  • = musí šetřit zdroje počítače
  • některé problémy nejsou na aktuálních PC řešitelné v relativně rychlém čase
  • skoro všechny problémy lze zrychlovat

Reprezentace

Reprezentace

  • různé způsoby
  • různé standardy
  • mělo by být zřejmé k čemu slouží
  • jasně definované kroky

Textově

  • slovní popis
  • nepřesné, náchylné na chyby
  • některé věci nelze přesně popsat
  • zbytečné informace navíc

Strukturogramy

  • zápis do tabulek
  • velké a nepřehledné značení
  • nelze používat na větší algoritmy

Vývojové diagramy

  • předdefinované tvary s jasným účelem
  • velmi jednoduché
  • nejpoužívanější typ obecného zápisu

Začátek

Konec

Vstup a výstup

  • vypsání údajů uživatelovi
  • získání údajů od uživatele

Příkazy

  • vykonání určitých příkazů

Podmínka

  • porovná zda tvrzení je platné
  • dvě odnože - musí se pojmenovat
  • pravda/nepravda nebo obdobně

Cyklus

  • provede uvedené bloky pro určité data - cyklus dat

Tunel

  • propojení dvou částí diagramu
  • používané pro přehlednost

Ukázky

Vývojové diagramy

PRÁCE

Vytvořte vývojové diagramy na papír nebo v programu Visio (popř. na stránce draw.io).

  • sečtení čísel od 1 do zadaného čísla
  • vstup do školy (ověření očkování, testování, ...)
  • výpočet obvodu a obsahu kruhu o zadaném poloměru
  • přechod se semaforem
  • největší číslo ze tří zadaných

Algoritmizace

  • řešení určitého problém za pomoci algoritmů
  • postup: formulace, analýza, vytvoření
  • nutná praxe
  • programování

Programovací jazyk

Programovací jazyk

  • sekvence příkazů k řešení problému na počítači
  • používají se algoritmy
  • implementace algoritmu je konkrétní

Strojový kód

  • = binární soubor s instrukcemi
  • nemusí fungovat na různých počítačích
  • např. .exe
  • v podstatě v něm nelze programovat
  • Assembler

Kompilace

  • = převedení programu v programovacím jazyce do strojového kódu
  • logická struktura
  • samotný program se může zkompilovat i pro jiné počítače
  • např. C#, Java, C++, ...

Kompilované jazyky

  • programy jsou nejdříve kompilovány a potom jsou spouštěny
  • rychlejší, lepší bezpečnost
  • většina jazyků

Interpretované jazyky

  • programy jsou kompilovány až při spuštění
  • vždy musí být nainstalován určitý software

Shrnutí

Co je to algoritmus?
Jak lze algoritmus reprezentovat?
Co musí algoritmus splňovat?
Co je to programovací jazyk?
Jaký rozdíl je mezi kompilovaným a interpretovaným jazykem?

Děkuji za pozornost!

  • matej.cajthaml@ssps.cz
  • https://ssps.cajthaml.eu/