Tvorba programu - algoritmizace a programování

01-Tvorba programu

Postup při řešení problému

Návrh seshora dolů byl dalším z nových postupů. Myšlenka spočívá v rozdělení velkého programu do menších, lépe zvladatelných úkolů. Je-li jeden z těchto úkolů stále příliš rozsáhlý rozdělte ho do ještě menších úkolů. Pokračujte tímto způsobem dokud nebude program rozškatulkován do malých, jednoduše programovatelných modulů. Návrh C tento přístup usnadňuje, podporuje vás, abyste navrhovali programové jednotky nazývané funkce, které představují jednotlivé moduly úlohy. Jak jste si mohli všimnout, postupy strukturovaného programování odrážejí postupný myšlenkový proces, jenž přemýšlí o programu v rámci činností, které provádí.

  1. Shora dolů - rozklad úlohy na segmenty, které se neustále zjemňují, až můžeme řešit problemativu v konkrétním programovacím jazyce.
  2. Zdola nahodu - z elementárních kroků vytváříme prostředky ke zvládnutí problému
  3. oba současně

Definice algoritmu

Algoritmus

Tvorba algoritmů S algoritmy se setkáváme v běžném životě. Těmito algoritmy jsou například recepty na vaření, postup ovládání video kamery, cesta do školy.

Vlastnosti algoritmů "HERgoD"

  1. Hromadnost – algoritmus musí být použitelný pro všechny úlohy stejného typu (dva lidé dojdou podle stejného popisu na stejné místo)
  2. Elementárnost - algoritmus se skládá z konečného počtu jednoduchých kroků (elementy: chůze, jízda autobusem)
  3. Resultativnost – od libovolných vstupních dat musíme dospět k požadovaným výsledkům (vždy dojdeme k výsledku - nezasekneme se uprostřed)
  4. Konečnost – činnost algoritmu skončí v reálném čase
  5. Determinovanost – v každém kroku je znám následující krok (člověk vystoupí z autobusu a ví, že jde na nějaké místo)

Program

Možnosti zápisu algoritmu:

  1. Slovně
  2. Graficky - vývojové diagramy a strukturogramy.
  3. Pomocí programovacího jazyka
  4. Matematicky

Ke kreslení vývojových diagramů používáme standardní grafické symboly:

Jednotlivé značky spojujeme čárami a spojkami:

Slovní vyjádření

Používá se pro skupinu lidí, která nemá programátorské vzdělání - návody k obsluze, recepty, postup práce

Výhody:

Nevýhody:

Vývojové diagramy

Je to symbolický, algoritmický jazyk, který se používá pro názorné zobrazení algoritmu. Zápis ošetřen normou.

Výhody:

Nevýhody:

Počítačový program

Používá se pro zápis instrukcí z vytvořeného algoritmu, kterému počítač rozumí a umí z něho vytvořit strojový kód.

Výhody:

Nevýhody:

Matematické vyjádření

Používá se tam, kde je možné daný problém popsat matematickým vyjádřením - řešení kvadratická rovnice, apod.

Výhody:

Nevýhody:

Zpracování programu

Integrované vývojové prostřední (IDE - integrated development enviroment) = soubor programů, které si volám podle toho, co potřebuju.
Skládá se z: "EPic KLDr"

  • Editor
  • Preprocesor
  • Kompilátor
  • Linker
  • Debugger

Preprocesor

  1. Vkládá knihovny (#include...)
  2. Odstraňuje komentáře
  3. Rozvíjí makra (s parametrem / bez parametru, projde a nahradí)
  4. Zpracovává podmíněný překlad (nástroj k testování určité části programu - ostatní je jako vykomentováno)

[SKE] Příkazy pro něj začínají "#" typicky incude: když ho najde, vyhodí ten řádek a vloží tam tu dotyčnou knihovnu.
V hlavickovych souborech nejčastěji: deklarace fcí, maker, konstant. "<>" zobáčky znamenají, že se includy hledají v defaultním místě standartních inkludů. Jiná možnost: napsat do uvozovek - hledá se v aktuálním adresáři: "C:\MOJE\MOJE.h" nedávají se znaky "\" dvakrát, bo to není string!

Kompiler

Přeloží každý soubor programu - výsledkem je *.OBJ (object module - binární soubor) v TurboC++, DevC++ *.o. V OBJ nejsou odvolávky z knihoven, kontroluje syntaktické chyby. Tyto soubory si předávají členové týmu, protože neodhaluje know-how.

  • Syntaxe - pravidla zápisu, pravidla jazyka - lze dohledat v dokumentaci jazyka
  • Sémantika - význam napsaného kódu

Linker

Poskládá OBJ moduly s knihovnami a vytvoří *.exe soubor. Také vkládá absolutní adresy paměti.

Debugger

Ladící prostředek součástí IDE. Hledá běhové chyby při spuštěném programu. Umí breakpointy a skoky po instrukcích: (Turbo)

  • F7 - trace into
    - na řádku, kde jsem se zastavil je volání nějaké mé funkce, zmáčknu F7, tak krokuje tu mou funkci (skočím dovnitř a krokuju)
  • F8 - step over
    - zavoláme svou funkci - už se nekrokuje - dodělá se a jde na další řádek
  • F4 - run to cursor - nepotřebuje break pointy
  • F9 - pokračuj