Jdi na obsah Jdi na menu
 


03. Vývoj a rozdělení programů

https://soptik.tech/sinf/temata/temata-loni/99-ALGORITMY-pptx.pdf - 11. stránka

 Programování

  • Algoritmus
    • postup pro řešení úlohy, který má 3 vlastnosti :
      • Determinovanost - jednoznačnost, přesnost, úplnost
      • Hromadnost - obecnost, algoritmus řeší celou třídu = skupinu úloh (např. vyřeší obsah obdélníku)
      • Rezultativnost - konečnost - po konečném počtu kroků algoritmus skončí a dodá výsledek
    • Zápis algoritmu
      • grafický
        • Vývojový diagram
        • Strukturogram
  • slovní
    • česky - popis
    • programovací jazyk
  • Program
    • algoritmus, zapsaný v programovacím jazyce, určený pro PC
    • posloupnost instrukcí (=příkazů), která krok za krokem popisuje řešení
    • Postup při tvorbě programu
      • Formulace úlohy - co máme udělat, řešit
      • Analýza (rozbor) úlohy
        • udělat si konkrétní příklad
        • rozdělit úlohu na jednodušší části
          • vstup, zpracování, výstup
      • Sestavení algoritmu
        • grafický, slovní zápis
      • Sestavení programu
      • Ladění programu = odstraňování chyb
        • chyby
          • syntaktické = špatný způsob zápisu, PC na ně upozorní
          • sémantické = významové, PC na ně neupozorní, např. špatný vzoreček
            • vyjímka dělení nulou
      • Používání programu
      • Aktualizace, optimalizace
  • Zásady strukturovaného programování
    • cílem je vytvářet programy, které jsou
      • Přehledné
      • Srozumitelné
      • Snadno modifikovatelné (změny)
      • Snadno verifikovatelné (ověřitelné)
    • Postup shora dolů (top - down)
      • rozdělit úlohu na jednodušší části
    • Používání doporučených řídících struktur
      • Sekvence
      • Větvení
      • Cyklus
    • nepoužívat příkaz GOTO
  • Struktura, vývoj programovacích jazyků
    • HW = PC, CPU (procesor)
      • procesor má instrukční sadu = strojový kód
    • Strojový kód (jazyk)
      • je blízký HW -> závislý na HW (změna HW -> změna strojového kódu)
      • kód je rychlý, efektivní
      • pro člověka nesrozumitelný
    • Asembler (assembler)
      • jazyk symbolických adres
      • blízký HW, trošku srozumitelnější pro člověka, než SK
    • Vyšší programovací jazyk
      • blízký člověku -> snadno se programuje
      • nezávislé na HW
  • Dělení jazyků
    • Vyšší jazyky
      • procedurální (jak) - C, Java
        • strukturované, objektivně orientované
      • neprocedurální (co) - Lisp, Prolog
    • Podle typu překladače
      • Kompilátor
        • ze zdrojového kódu udělá (přeloží ho) .exe soubor (cílový = spustitelný kód) 
      • Interpret
        • jede po řádcích zdrojového kódu, přeloží je  a postupně je vykonává
        • Př. CMD ve windows = příkazový řádek
  • Příkazy
    • Příkaz vstupu
    • Příkaz výstupu
    • Příkaz přiřazení
      • aritmetický - +, -, *, /
      • relační - >, <, =,
      • logický - and, not, or
    • Větvení
      • if, switch
    • Cyklus
      • do - while - cyklus s podmínkou na konci
      • while - cyklus s podmínkou na začátku
      • for
  • Datové typy v c++
    • celočíselné
      • char (signed, unsigned) - 8 bitů
      • short - 16 bitů
      • int - 32 bitů
      • mohou být unsigned (bez znaménka), long - přesnější, velikost závisí na překladači
    • desetinná čísla
      • double - 15 číslic
      • float - 7 číslic
      • také mohou být long, velikost závisí na překladači
    • další datové typy
      • char - 8 bitů
      • wchar_t - 16 bitů
      • bool - 8 bitů (1 bit nelze adresovat)
    • pole
      • datový typ, jehož prvky jsou stejného typu a jména
      • deklarace
        • datový typ <název> [počet prvků 1. rozměru] [počet prvků 2. rozměru]...[počet prvků n. rozměru]
      • string - řetězec, pole znaků
      • použití i pro práci s množinami
    • práce se soubory
      • v knihovně fstream
      • otevření souboru
        • fstream <název operace se souborem> (“<název souboru>”, ios::out);
        • ios::out soubor vytvoří, neexistuje - li
      • zavření souboru
        • <název operace se souborem>.close()
      • zápis do souboru
        • <název operace se souborem> << “Text”
        • <název operace se souborem >> <název datového typu> - zápis datového typu