Články

Tisk článku Tisk článku

První program

[Zpět na kategorii]

Datum: 15. 6. 2010 21:03       Autor: Petr Sklenička       Zobrazeno: 5816x

Kategorie: Začínáme

Témata: C++

Seriál: C++ krok za krokem - Díl 2.

V tomto díle si napíšeme velmi jednoduchou aplikaci a vysvětlíme si její kód. Podíváme se také na psaní komentářů a na formátování kódu.


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:

image

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.


> Na začátek

 

Hodnocení:

Hlasů: 27
Zvolte své hodnocení

Petr Sklenička

Jsem studentem Vysoké školy Báňské v Ostravě. V poslední době dost programuji v jazyce Java, konkrétně aplikace pro platformu Android. Dále mě zajímá programování v C++, typografický systém latex a spousta dalších maličkostí.

Související články

DílNázev článku 
Díl 1. Úvod, příprava na psaní aplikací v C++ 8. 6. 2010
Díl 2. První program 15. 6. 2010
Díl 3. Proměnné a konstanty 22. 6. 2010
Díl 4. Relační operátory a podmínky, příkaz switch 29. 6. 2010
Díl 5. Pole 13. 7. 2010
Díl 6. Cykly, neboli smyčky 26. 10. 2010
Díl 7. Cykly, neboli smyčky - pokračování 19. 11. 2010
Díl 8. Funkce 18. 12. 2010
Díl 9. Ukazatele a odkazy, vyhledávání půlením intervalu 26. 1. 2011
Díl 10. Úvod do objektově orientovaného programování 10. 3. 2011
Díl 11. Konstruktory, destruktory a hrátky s objekty 28. 5. 2011
Díl 12. Dědičnost 24. 7. 2011
Díl 13. Virtuální metody 1. 2. 2012

RSS Feed RSS Feed

Diskuse

Jen tak dal

Datum: 21.6.2010 22:57
Autor: neregistrovaný (84.242.68.210)
Hodnocení autora: není
Příspěvků: 0
Skvele,tesim se na dalsi dil,vzdycky jsem se chtel od pocatku naucit C++ ci C#
 
           [Odpovědět]
 
Hodnocení: 0 Čekejte, prosím...

Re: Jen tak dal

Datum: 22.6.2010 17:16
Autor: Petr Sklenička
Hodnocení autora: 82
Příspěvků: 80
Tak to jsem rád, že alespoň někdo to čte :)
 
           [Odpovědět]
 
Hodnocení: 0 Čekejte, prosím...

Re: Jen tak dal

Datum: 20.1.2011 18:04
Autor: neregistrovaný (88.212.40.93)
Hodnocení autora: není
Příspěvků: 0
samozrejme, že to niekto číta ;) a som vďačný za takéto tutorialy od "piky". :) Pozdrav zpoza východných hranic ;)
 
           [Odpovědět]
 
Hodnocení: 0 Čekejte, prosím...

Re: Jen tak dal

Datum: 8.11.2010 16:23
Autor: neregistrovaný (85.71.153.34)
Hodnocení autora: není
Příspěvků: 0
Jen aby ste vedeli ja to ctu taky je to moc poucne :)...dekuji vam:)..
 
           [Odpovědět]
 
Hodnocení: 0 Čekejte, prosím...

return 0;

Datum: 13.7.2010 11:11
Autor: neregistrovaný (217.112.160.250)
Hodnocení autora: není
Příspěvků: 0
Když tam chybí to "return 0;", vůbec to nevadí... Jinak taky děkuju, zatím to celkem chápu a to je velký úspěch :)... V podstatě je to první jazyk který se učím :)
 
           [Odpovědět]
 
Hodnocení: 0 Čekejte, prosím...

Re: return 0;

Datum: 19.7.2010 23:19
Autor: neregistrovaný (84.242.68.210)
Hodnocení autora: není
Příspěvků: 0
To je sice pekne,je to vase volba,ale doporucuji vam na zacatek alespon ten Visual Basic,C++ neni opravdu moc dobra volba pro zacatecniky v programovani,nebot se tu hur chapou vsechny principy programovani,pokud s tim jiz nejste castecne obeznamen,aspon to zkuste,nic neztratite.
 
           [Odpovědět]
 
Hodnocení: 0 Čekejte, prosím...

Re: return 0;

Datum: 20.7.2010 17:01
Autor: Petr Sklenička
Hodnocení autora: 82
Příspěvků: 80
Přiznávám, že C++ není úplně nejvhodnější jazyk pro člověka, který zatím nemá s programováním zkušenosti. Na druhou stranu, pokud umíte C++, neměl by být problém přejít třeba na C#. Všechno má své pro a proti, proto je každém, co si vybere.
 
           [Odpovědět]
 
Hodnocení: 2 Čekejte, prosím...

Děkuji

Datum: 10.9.2011 14:43
Autor: neregistrovaný (83.208.117.24)
Hodnocení autora: není
Příspěvků: 0
Skvělý, jsem rád, že jsem něco takového našel v českém jazyce :)
 
           [Odpovědět]
 
Hodnocení: 0 Čekejte, prosím...
 

VBNET.CZ | © 2007 Tomáš Herceg, Tomáš Jecha | Kopírování a přejímání jakéhokoliv obsahu z tohoto webu je bez písemného svolení autorů zakázáno.