Shrnutí minulého dílu
V minulém díle jsme si řekli něco málo z úvodní teorie a naučili jsme se založit nový projekt ve Visual Studiu, čili nyní jsme připraveni napsat první program v C++. Pojďme tedy napsat naši první, jednoduchou aplikaci.
První program
Otevřete si projekt, který jsme minule založili. Pokud jste ho smazali, založte nový. Do vašeho prázdného .cpp souboru nyní přepište následující kód (to zelené číslování řádků opisovat nemusíte, jsou to komentáře, bude o nich řeč za chvíli):
#include <iostream> // první řádek
// druhý řádek
// třetí řádek
int main() // čtvrtý řádek
{ // patý řádek
std::cout << "Prvni program v jazyce C++\n"; // šestý řádek
// sedmý řádek
return 0; // osmý řádek
} // devátý řádek
Nyní stiskněte kombinaci kláves Ctrl + F5 (pokud používáte Visual Studio). Jestliže jste kód dobře opsali, měli byste před sebou mít toto okno:
Vysvětlení kódu
Na prvním řádku je do aktuálního souboru zahrnut soubor iostream. Příkaz include je instrukce pro preprocesor, kterému tím říká, že to, co následuje za slovem include je nějaký soubor, jehož obsah se má vložit přímo do daného místa programu. Soubor iostream (input – output stream) používá objekt cout, který zajišťuje výpis na obrazovku. S příkazem include se budeme ještě hodně potkávat v dalších dílech.
Na čtvrtém řádku začíná samotný program – funkcí main. Jakýkoliv program, napsaný v C++, má tuto funkci. Funkci můžeme pro začátek chápat jako nějaký úsek kódu, který provádí nějakou akci. Funkcemi se budeme podrobně zabývat v některém z dalších dílů. Funkce main je oproti jiným funkcím něčím výjimečná – je zavolána automaticky ihned po spuštění programu. Je to tedy místo, kde začíná každý program (pokud nebude řečeno jinak, vždy mám na mysli program napsaný v C++). Klíčové slovo int před samotným názvem funkce určuje, jaký typ hodnoty bude funkce vracet. V tomto případě vrací funkce po svém ukončení operačnímu systému hodnotu nula (to je vidět na řádku osmém – return 0). Každá funkce je ohraničena složenými závorkami – počáteční závorka u funkce main je na pátém řádku, koncová je je na devátém řádku. To, co se nachází mezi těmito závorkami, se nazývá tělo funkce. V kódu jsou ještě vidět dvě kulaté závorky, ihned za slovem main. V těchto závorkách se nic nenachází, což znamená, že funkce nepřebírá žádné parametry. To si vše vysvětlíme v díle, kdy se budeme zabývat pouze funkcemi.
Nejpodstatnější část celého programu se nachází na šestém řádku. Jak jsem již výše napsal, objekt cout se používá, chceme-li něco vypsat na obrazovku. Tento objekt se používá tak, že napíšeme slovo cout, za něj operátor přesměrování výstupu (to jsou ty dva “zobáky” <<) a poté napíšete, co chcete vypsat. Pokud se jedná o nějaký řetězec, jako je tomu v tomto případě, musíte jej uzavřít do uvozovek. Poslední dva znaky v řetězci (\n) slouží k zalomení řádku. Celý příkaz je zakončen středníkem.
Určitě jste si všimli, že jsem ještě nezmínil, k čemu je před objektem cout slovo std. Jde o specifikátor oboru názvů, který kompilátoru oznámí, že objekt cout je součástí standardní knihovny, jejíž název je právě std. Pokud byste psali nějaký program, kde byste objekt cout používali často, určitě by Vás omrzelo neustále psát std::cout. Proto lze výše uvedený kód přepsat, a to tak, že na druhý řádek napíšete
using namespace std;
čímž zajistíte, že před objekt cout již nemusíte std psát. Šestý řádek by tedy vypadal takto:
cout << "Prvni program v jazyce C++\n";
Program by fungoval úplně stejně. Můžete si to zkusit.
Komentáře
Ve chvíli, kdy píšete program, je Vám úplně jasné, co dělá každý řádek, víte přesně proč tam je, víte co by se stalo, kdyby tam nebyl, zkrátka kódu dokonale rozumíte. Představte si ale situaci, že napíšete nějaký program a později, třeba za měsíc, se k němu budete chtít vrátit a něco na něm vylepšit. Pokud nebudete mít kód okomentovaný, můžete se spolehnout, že už Vám nebude jasné, jako roli hraje v kódu nějaký řádek apod. Proto je dobré kód komentovat, neboli na rozumná místa v části kódu napsat, co dělá daná část zdrojového kódu. Komentář je tedy text, který kompilátor ignoruje. Jsou dva typy komentářů – jednořádkové a víceřádkové. Jednořádkový komentář můžete vidět i v našem prvním jednoduchém programu. Vytvoříte jej pomocí dvou lomítek ( // ). Kompilátor potom ignoruje vše, co následuje za těmito lomítky až do konce řádku. Víceřádkový komentář začíná lomítkem a hvězdičkou ( /* ) a končí hvězdičkou a lomítkem ( */ ). Vše, co se nachází mezi těmito značkami, kompilátor ignoruje.
/* Toto je
komentář, který
je na více
řádcích, kompilátoru
to ale vůbec nevadí.
*/
U našeho prvního programu byly komentáře zcela zbytečné – já jsem je napsal pouze na ukázku a také kvůli tomu, abych se mohl v textu odkazovat na jednotlivé řádky. Později, až budete psát rozsáhlejší aplikace, doporučuji komentáře opravdu rozumně používat. Na druhou stranu zase není dobré psát extra dlouhé komentáře, stačí, když budou krátké, ale výstižné.
Formátování kódu
Určitě jste si na našem prvním programu všimli, že řádky, které se nachází ve funkci Main, jsou odsazeny, také jste si určitě všimli složených závorek, které se nacházejí každá na samostatném řádku. To vůbec není nutné, kód by se dal přepsat například takto, přičemž funkčnost by zůstala nedotčena:
#include <iostream>
using namespace std; int main() {
cout << "Prvni program v jazyce C++\n"; return 0; }
Zcela jistě mi dáte za pravdu, když řeknu, že toto je “hnus”. Kompilátoru je úplně jedno, jestli kód vypadá hezky nebo ne, hlavně když je v pořádku. Člověk na to už ale má jiný názor. Proto se při psaní programů snažte kód psát tak, aby nějak vypadal. V dalších dílech tohoto seriálu bude kód vždy napsán “pěkně”, takže doufám, že si na to postupem času zvyknete a pak už Vám přijde zcela banální psát přehledný kód.
Závěr
To je pro tento díl vše, v příštím díle se podíváme na to, jak se deklarují a definují proměnné, jak se jim přiřazují hodnoty a jak se hodnota proměnné vypíše na obrazovku. To vše poté použijeme při programování “kalkulačky”. Píši to v uvozovkách, neboť to bude pouze kalkulačka, která sečte dvě čísla. Až se dostaneme dále, můžeme si třeba napsat pokročilejší kalkulačku, například takovou, která vyhodnotí výraz v postfixovém zápisu.