1. cvičení
Důležité pojmy
-
Von Neumannova architektura (základní schéma dnešních počítačů)
-
Programování slouží k zadávání instrukcí počítači, který je zpracuje spolu se vstupními daty a po skončení výpočtu nám předá výsledek. Na rozdíl od „klikacího“ způsobu práce s počítačem nejsme omezeni tím, co naprogramoval někdo jiný. Při programování nejsou žádná omezení na to, co výsledný program může nebo nemůže spočítat, pouze určité výpočty nemusí proběhnout v dostatečně krátkém čase. Programování zahrnuje:
- prvotní psaní programů
- modifikace existujících programů
- hledání chyb v programech (tzv. debugování)
- optimalizace programů
Programátor by měl:
- znát nějaký programovací jazyk
- umět dohledat potřebné informace v dokumentaci
- umět se rychle zorientovat v cizím kódu
- být schopen s pomocí určitých nástrojů (např. kompilátor, valgrind) identifikovat a opravit chybu v programu, který sám napsal
Těmto dovednostem (kromě optimalizace) se budeme věnovat v průběhu semestru.
-
Program je ucelená posloupnost instrukcí, kterou lze na počítači spustit, předat jí vstupní data a po proběhnutí výpočtu získat výsledek. Programování pomocí jazyka C nebo C++ spočívá v následujících krocích:
- Psaní zdrojového kódu v textovém editoru. Zdrojové texty (lidově zdrojáky) jsou čitelné lidmy, ale těžko zpracovatelné počítači.
- Zdrojový kód zapsaný ve vyšším programovacím jazyku, např. C nebo C++, je třeba převést do strojového kódu pomocí překladače neboli kompilátoru. Strojový kód ve formě spustitelného binárního souboru lze spustit na příslušném operačním systému.
- Při spuštění programu je třeba předat správná vstupní data, pokud program nějaká vyžaduje.
-
Algoritmus je abstraktní popis práce, kterou program vykonává. Algoritmy jsou často zapisovány v tzv. pseudokódu neboli kombinaci nějakého lidského a nějakého programovacího jazyka. Základní vlastnosti algoritmu jsou:
- Konečnost – zpracování algoritmu skončí po konečném počtu kroků v konečném čase.
- Determinismus – v každém kroku algoritmu lze přesně rozhodnout, jaký bude následující krok. Na rozhodování nemá vliv náhoda.
- Korektnost – algoritmus dává správný výsledek pro libovolná vstupní data. Např. algoritmus pro seřazení posloupnosti čísel od nejmenšího po největší musí být schopen seřadit libovolně permutovanou posloupnost, ne jen předem seřazenou posloupnost.
Analýzou algoritmů se zabývá předmět ZALG v letním semestru. Pokročilé partie analýzy algoritmů a teorie složitosti jsou náplní předmětu TSLO v 1. ročníku navazujícího magisterského studia (obory MI a MINF).
-
Příkaz je v jistém smyslu základní krok ve zpracování algoritmu. Příkazy vystupují ve vyšších programovacích jazycích, v jazycích C a C++ jsou příkazy odděleny středníky. Základními prvky strojového kódu jsou instrukce, přičemž výsledkem překladu jednoho příkazu je typicky posloupnost několika instrukcí.
-
Podprogram (anglicky subroutine) je krátká posloupnost příkazů, která provádí zpracování vstupních parametrů a vrací výsledek. Volání podprogramu znamená předání vstupních parametrů, spuštění podprogramu a přečtení výsledku daného podprogramu. Podprogramy jsou volány typicky několikrát na různých místech programu – jejich účel tedy spočívá ve zkrácení a zpřehlednění zdrojového kódu přemístěním společných částí na jedno místo.
V jazycích C a C++ jsou podprogramy nazývány funkce. Základní příklad funkce je funkce
main
, která je spuštěna automaticky po spuštění programu. V každém programu musí být právě jedna funkcemain
.
Užitečné nástroje
- Vývojové prostředí Dev-C++
- Online překladače: http://cpp.sh/, http://www.tutorialspoint.com/compile_cpp11_online.php, http://codepad.org/ atd.
Probrané příklady
-
Hello, world! Nejjednodušší program v jazyce C, který na obrazovku vypíše text „Hello, world!“.
#include <iostream> using namespace std; int main() { cout << "Hello, world!" << endl; return 0; }
Efektivní používání české klávesnice
Pro usnadnění programování a zrychlení psaní na české klávesnici doporučuji používat následující klávesové zkratky využívající klávesu AltGr:
AltGr
+x
→#
AltGr
+v
→@
AltGr
+b
→{
AltGr
+n
→}
AltGr
+,
→<
AltGr
+.
→>
AltGr
+f
→[
AltGr
+g
→]
V systému Linux navíc fungují následující zkratky využívající horní řadu znaků s diakritikou (speciální znaky jsou na těchto klávesách spolu s číslicemi nakresleny pro snazší zapamatování):
AltGr
+ě
→@
AltGr
+š
→#
AltGr
+č
→$
AltGr
+ř
→%
AltGr
+ž
→^
AltGr
+ý
→&
AltGr
+á
→*
AltGr
+í
→{
AltGr
+é
→}
Pod ostatními klávesami se skrývají další, i když méně užitečné speciální znaky.
Dále velmi doporučuji procvičit si psaní všemi deseti, bude se vám to velmi hodit nejen při programování.