První program

2. díl - První program

Petr Sklenička       15.06.2010       C++/C       15414 zobrazení

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.

 

hodnocení článku

4 bodů / 8 hlasů       Hodnotit mohou jen registrované uživatelé.

 

Všechny díly tohoto seriálu

 

Mohlo by vás také zajímat

C++/CLI a interoperabilita managed a unmanaged kódu - díl 1.: Úvod do jazyka a základní konstrukce

V tomto článku je popsána nadstavba C++ pro práci s .NET prostředím zvaná C++/CLI umožňující vytvářed mixed assembly obsahující jak managed tak unmanaged kód. V prvním díle je popsána myšlenka jazyka a základní syntaktické konstrukty (základní typy, podmínky, cykly, pole, namespace a část tříd a objektů). U čtenáře je předpokládána znalost .NET frameworku a nativního programování nejlépe v C++ (alespoň syntaxi a základy).

C++/CLI a interoperabilita managed a unmanaged kódu - díl 2.: Složitější konstrukty, low-level přístup a generické programování

V tomto článku je popsána nadstavba C++ pro práci s .NET prostředím zvaná C++/CLI umožňující vytvářed mixed assembly obsahující jak managed tak unmanaged kód. V tomto díle jsou popsány pokročilejší partie jazyka týkající se hlavně objektů, low-level přístupu k managed objektům a generického programování.

Virtuální souborový systém

Článek pojednává o způsobu návrhu virtuálního souborového systému. Před čtením Vám doporučuji stáhnout si a přečíst zadání, abyste věděli o co vlastně jde. Ke stažení jsou i zdrojové kódy v jazyce C++. Aplikace asi nemá žádné velké využití, nicméně přišlo mi to jako zajímavý problém - jednalo se o semestrální projekt.

 

 

Nový příspěvek

 

Diskuse: První program

Ahoj, kdyz zmacknu Ctrl+f5, tak mi to hodi tohle:

"C:\Jmeno\Desktop\c++\cecko\Debug\projekt.exe" není názvem vnitřního ani vnějšího příkazu, spustitelného programu nebo dávneho souboru.

nahlásit spamnahlásit spam -1 / 1 odpovědětodpovědět

Diskuse: První program

'kj.exe': Loaded 'C:\Users\Vašek\Documents\Visual Studio 2010\Projects\kj\Debug\kj.exe', Symbols loaded.

'kj.exe': Loaded 'C:\Windows\SysWOW64\ntdll.dll', Cannot find or open the PDB file

'kj.exe': Loaded 'C:\Windows\SysWOW64\kernel32.dll', Cannot find or open the PDB file

'kj.exe': Loaded 'C:\Windows\SysWOW64\KernelBase.dll', Cannot find or open the PDB file

'kj.exe': Loaded 'C:\Windows\SysWOW64\msvcp100d.dll', Cannot find or open the PDB file

'kj.exe': Loaded 'C:\Windows\SysWOW64\msvcr100d.dll', Cannot find or open the PDB file

The program '[3228] kj.exe: Native' has exited with code 0 (0x0).

jako kdyby mi chybely ty soubory. kdyz spustim program ihned se ukonci takze si ani nestihnu precist "ahoj svete" nevite co s tim?

nahlásit spamnahlásit spam -1 / 1 odpovědětodpovědět

Diskuse: První program

Skvělý, jsem rád, že jsem něco takového našel v českém jazyce :)

nahlásit spamnahlásit spam -1 / 1 odpovědětodpovědět

Diskuse: První program

Skvele,tesim se na dalsi dil,vzdycky jsem se chtel od pocatku naucit C++ ci C#

nahlásit spamnahlásit spam -1 / 1 odpovědětodpovědět

Tak to jsem rád, že alespoň někdo to čte :)

nahlásit spamnahlásit spam -1 / 1 odpovědětodpovědět

samozrejme, že to niekto číta ;) a som vďačný za takéto tutorialy od "piky". :) Pozdrav zpoza východných hranic ;)

nahlásit spamnahlásit spam -1 / 1 odpovědětodpovědět

Jen aby ste vedeli ja to ctu taky je to moc poucne :)...dekuji vam:)..

nahlásit spamnahlásit spam -1 / 1 odpovědětodpovědět

Diskuse: První program

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 :)

nahlásit spamnahlásit spam -1 / 1 odpovědětodpovědět

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.

nahlásit spamnahlásit spam -1 / 1 odpovědětodpovědět

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.

nahlásit spamnahlásit spam 0 / 2 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.

Nyní zakládáte pod článkem nové diskusní vlákno.
Pokud chcete reagovat na jiný příspěvek, klikněte na tlačítko "Odpovědět" u některého diskusního příspěvku.

Nyní odpovídáte na příspěvek pod článkem. Nebo chcete raději založit nové vlákno?

 

  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback