Váš první program v C++

C++ Základní konstrukce C++ Váš první program v C++

Než začneme psát zdrojový kód, je vhodné(většinou spíše nutné) vytvořit si projekt . Jak už sem napsal dříve, budu popisovat práci v prostředí MS Visual C++ 6.0 - takže si otevřte menuFile->New a vyberte záložku Project. Jak vidíte můžete si vybrat z mnoha přednastavených projektů. Nám bude nejvíce vyhovovat Win32 Console App.

Jméno si zvolte libovolně, klepněte na OK a vyberte An empty project. Vytvořte si nový soubor (pojmenujte ho třeba main.cpp).

Možná bych měl zdůraznit, že zdrojové soubory C++ mají příponu *.cpp, zatímco zdrojové soubory jazyka C pouze *.c - takže jelikož se učíme C++, budeme používat *.cpp (záměna by mohla způsobit, že nebudeme schopni daný soubor přeložit, překladač totiž podle přípony zjišťuje, jestli je daný zdrojový kód v C nebo C++). Teď už ale k věci, a tou je výpis zdrojového kódu:

//main.cpp - zaciname
#include <iostream>       //direktiva preprocesoru
using namespace std;      //zpřístupní definice a deklarace
int main()                //hlavička funkce
{                         //začátek těla funkce
    cout << "Ahoooooj";   //způsobí vytisknutí pozdravu
    cout << "\n";         //vytiskne znak noveho řádku
    return 0;             //ukončí funkci
}                         //konec těla funkce

Pokud něco podobného vidíte poprvé, asi teď bezradně nad tím vším kroutíte hlavou. Nezoufejte, není to tak těžké, jak to vypadá... Takže popořadě.

První řádka začíná znaky "//" - tyto znaky uvozují začátek komentáře, který končí na konci řádku. Překladač ignoruje vše, co se za lomítky objeví.

Na druhé řádce je použíta direktiva preprocesoru include. Ta konkrétně neudělá nic jiného, než že zkopíruje obsah souboru iostream na místo, odkud byla volána. Proč je to tak si povíme později. V tomto souboru(iostream) jsou zapsány informace o tom jak má jazyk komunikovat s okolím, např. přijímat údaje od uživatele nebo vypisovat text (příkladem může být objekt cout, o tom ale také později).

Na dalším řádku je volána další direktiva, tentokráte using. Ta má za úkol zpřístupnit definice a deklarace, které se v souboru iostream nacházejí, a to konkrétně v prostoru jmen (namespace) nazvaném "std". (Pozn.: Pokud vám překladač druhý řádek nespolkne a bude hlásit něco jako že nenalezl soubor iostream, zkuste ho doplnit o příponu ".h". Potom ale smažte celý třetí řádek s direktivou using. Jestli se vám něco takového přihodí, máte pravděpodobně zastaralý překladač). Podrobnější vysvětlení této direktivy si necháme na pozdější lekce.

Dále tu vidíme hlavičku funkce main(). Ano, je tam main(), nikoliv Main(), MAIN() nebo snad MaiN() => jazyk C++ je citlivý na velikost písmen , takže bacha! A proč píšu za název funkce ty závorky? Protože jsou její součásti, obsahují totiž seznam parametrů, které jsou funkci předávány. I když nemá funkce žádné argumenty (parametry), musíme závorky psát také, jinak by pak výraz main překladač chápal jako název proměnné. Před názvem funkce je klíčové slovo int což reprezentuje typ návratové hodnoty funkce, v tomto případě tedy celé číslo (integer).

Uvnitř těla funkce main(), které je vymezeno otevřenou a uzavřenou složenou závorkou, jsou volány 3 příkazy (každý příkaz je v C++ ukončen středníkem !**). Hned první dva příkazy používají objektu cout aby vyslali na obrazovku řetězec "Ahoj" a poté hned znak konce řádku "\n", který způsobí odřádkování... Proč je to zapsáno takhle a ne jinak si povíme opět později.

Nakonec tu máme příkaz return. Je použit pro ukončení funkce main(), ale i jakékoli jiné funkce. Program pak pokračuje hned za místem kde byla dotyčná funkce volána (v případě fce main() se s touto funkcí ukončí i celý program, je to tedy hlavní funkce programu, které se předá řízení programu hned při jeho startu). A co znamená ta nula nakonci? To je návratová hodnota funkce, a informuje nás(v tomto případě spíše operační systém), jestli fce skončila úspěšně nebo neúspěšně. Konečné rozhodnutí výboru ANSI/ISO C++ je, že funkce main() má končit příkazem return 0; pokud ho implicitně nedodáte...

(Pozn.: Pokud se vám stane, že po přeložení a spuštění programu z této nebo následujících lekcí nestihnete přečíst výstup vašeho programu (okno jen "problikne"), přidejte před příkaz return následující kód: cin.get(); Je to proto, že některá prostředí vykonávají program ve svém samostatném okně, které pak, jakmile program skončí, okamžitě zavřou. Pokud by problém přetrvával, vložte na samé místo předchozí kód ještě jednou. První příkaz způsobí načtení znaku nového řádku, který ještě nebyl zpracován v některé z předchozích operací. Ten druhý pak čeká, až uživatel stiskne klávesu Enter)

To by snad bylo pro začátek všechno... V dalším díle se trochu blíže podíváme na práci s proměnnými, takže to bude zase krapet zajímavější:))


 

  Aktivity (3)

Článek pro vás napsal Jiří Pipošiar
Avatar
Moc toho tady o sobě prozrazovat nebudu, raději:)) Takže momentálně žiju v Klatovech(velkoměsto v západních Čechách), a 22.5.2003 jsem zde i odmaturoval na střední průmyslové škole. No a novinka - byl jsem přijat na Západočeskou univerzitu - Faku...

Jak se ti líbí článek?
Celkem (14 hlasů) :
4.785714.785714.785714.785714.78571


 


Miniatura
Předchozí článek
Cvičení ke 14. lekci C++
Miniatura
Všechny články v sekci
Základy C++

 

 

Komentáře
Zobrazit starší komentáře (25)

Avatar
Maxfx
Redaktor
Avatar
Maxfx:

visual studio 2008 je pro xp

Odpovědět 24.2.2013 18:40
Být ovládán znamená být sledován, pod dohledem, špehován, veden, uzákoněn, reglementován, ohrazen, indoktrinován, pře...
Avatar
xxxvodnikxxx
Člen
Avatar
xxxvodnikxxx:

"The program '[2120] RiAnSoftware.exe: Native' has exited with code 0 (0x0)."
Takže to máš ok ;) :-D
kód 0 je když všechno proběhne jak má :)

ale je dobrý si tam dát buďto breakpoint a debuggerem spustit, a nebo myslim, že fungovalo něco jako system("pause");

Odpovědět 12.3.2013 18:15
Unix- svět, kde chcete být nulou :) (UID)
Avatar
xxxvodnikxxx
Člen
Avatar
xxxvodnikxxx:

jo ps, doplnil bych, že jde používat veškerý konstrukce z céčka, čili výpisy jde klidně dělat printfem .. (jen to neni moc elegantní, ale znám jednoho pána, kterej programuje cpp 20 let, a všechno dělá printfem )
a nemusí se uvádět using namespace std, ale pak se musí u každýho cout psát std::cout :)

Odpovědět 12.3.2013 18:17
Unix- svět, kde chcete být nulou :) (UID)
Avatar
Odpovídá na xxxvodnikxxx
Lukáš Hruda (Luckin):

Spousta C++ programátorů používá printf/scanf raději než iostream, někdy je to pohodlnější, pro některé situace mají lepší formátování. Funkce system by se používat neměla, u windows se sice program často spouští dvojklikem a ne z konzole (je to pohodlnější), místo system("pause") bych ale raději použil getchar nebo getch, popřípadě si napsal nějakou vlastní funkci.

 
Odpovědět  +1 12.3.2013 18:32
Avatar
xxxvodnikxxx
Člen
Avatar
Odpovídá na Lukáš Hruda (Luckin)
xxxvodnikxxx:

jo jasně, zapomněl jsem napsat, že system("pause");
už je potom systémově závislý (win), ale předpokládám že tu neni moc lidí co programuje pod unixem :)
a pro odzkoušení programu se hodí..
a getche(); jsem používal v Céčku (kdysi v TurboC IDE), ale ve Visual Studiu už to kompilátor neznal :)
a pokud se člověk učí výpisy na obrazovku, tak předpokládám, že nebude schopnej napsat svojí funkci pro zastavení :D , ale ok :)

Odpovědět 17.3.2013 9:30
Unix- svět, kde chcete být nulou :) (UID)
Avatar
Odpovídá na xxxvodnikxxx
Lukáš Hruda (Luckin):

Můžeš použít getchar() nebo cin.get(), ty fungujou i ve VS.

 
Odpovědět  +1 17.3.2013 10:16
Avatar
xxxvodnikxxx
Člen
Avatar
Odpovědět 17.3.2013 11:25
Unix- svět, kde chcete být nulou :) (UID)
Avatar
KlimiCZ
Člen
Avatar
KlimiCZ:

mas tam chybu v tucnem pisme (každý příkaz je v C++ ukončen středníkem !**).

Odpovědět 3.6.2013 20:17
Nesnaž se zakrýt něco, co jsi provedl úmyslně. Svět je tak malý, že dotyčný se to stejně dozví.
Avatar

Neregistrovaný
Avatar
:

mne to nejde mam verziu 4.9.9.2

 
Odpovědět 2.11.2013 19:39
Avatar
Odpovídá na xxxvodnikxxx
Jirka Vavřík:

Bylo by dobré napsat, že funkce

system();

se nachází v souboru <cstdlib>

http://www.cplusplus.com/…dlib/system/

Odpovědět  +1 6.7.2014 12:11
Inteligentní nemá čas si pamatovat, inteligentní musí vymýšlet.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 10 zpráv z 35. Zobrazit vše