C++ tutorial

C++ tutorial

Příspěvekod Forlis » 15 červenec 2012 17:47:55

Ahoj wlku,

ty by si sem mohol tiež šúpnúť nejaký C++ tutoriál ;) Hello World, premenné atď. Definícia pojmov, príklad, vysvetlenie príkladu, úloha na záver. Diki ;)
Forlis
 
Příspěvky: 5
Registrován: 13 červenec 2012 12:43:14

Re: C++ tutorial

Příspěvekod Wlezley » 16 červenec 2012 23:26:56

Hello World? Jednoduché. Používám pro vývoj Visual C++ 2008 Express Edition (pro soukromé a opensource projekty). Snad to nebude vadit.

Hello World je jednoduchý (napíšu to z hlavy).

Kód: Vybrat vše
#include <iostream>

using namespace std;

int main()
{
    cout << "Ahoj svete! :)" << endl; // vypise na obrazovku Ahoj svete! :) - endl provede odradkovani stejne jako \n nebo \n\r...
    return 0;
}


#include říká kompilátoru (překladači), že má do souboru zahrnout další soubor. A soubor iostream je prostě součást C++.. proto se používají <> znaky místo uvozovek "". Když jde o projektový soubor, používají se právě ty úvozovky. Znaky <> se používají v případě, že jde o include překladače nebo specifikovaného prostoru nějakého frameworku (řekněme například .NET framework atd..).

using namespace std; říká: "používám jmenný prostor std, tak bacha na to." Kdyby tam tohle nebylo, musel bys před ten cout vždycky napsat std:: a před endl taky. Takže bez "using namespace std;" by to vypadalo takhle:
Kód: Vybrat vše
#include <iostream>

int main()
{
    std::cout << "Ahoj svete! :)" << std::endl; // vypise na obrazovku Ahoj svete! :) - endl provede odradkovani stejne jako \n nebo \n\r...
    return 0;
}


int main() - začátek hlavní funkce. Tato funkce může mít 2 argumenty, ale teď to je k ničemu, nebudu to vysvětlovat, až později...
Tělo funkce je uvozené v "bachratých" závorkách {} (Alt-B a Alt+N - na CZ klávesnici)... int je datový typ, který funkce musí navracet (v případě main funkce to vrací errorlevel ID při ukončení programu a u main musí být int). main je název funkce. V kulatých závorkách () mají být argumenty. Když tam není nic, funkce nepřebírá žádné argumenty. Argumenty jsou hodnoty, které se funkci předávají při jejím volání. O tom ale později, jak jsem řekl.

cout je součástí jmenného prostoru std. Jmenný prostor je jako krabice (každý to tak popisuje začátečníkům, tak se toho budu držet). Je to krabice, která obsahuje další objekty, jako je právě cout, nebo třeba cin atd.. cout je stream pro výpis na obrazovku. Pro chybové hlášení je dobré používat cerr, používá se stejně jako cout...

endl je také součástí jmenného prostoru std. Způsobuje odřádkování. Jednoduchý. Dá se ale místo toho napsat přímo do řetězce napsat \n nebo \n\r. Například:
Kód: Vybrat vše
    std::cout << "Ahoj svete! :)\n";


return 0; končí funkci a navrací hodnotu 0. O tom později.

Chceš úkol? Trénuj výpis na obrazovku. Tohle je suchý. :flex:
Uživatelský avatar
Wlezley
 
Příspěvky: 316
Registrován: 24 září 2011 22:54:46
Bydliště: Plzeň
Projekt: Wlezley EU

Re: C++ tutorial

Příspěvekod Forlis » 20 červenec 2012 11:25:39

Trénoval som výpis, perfektne zatiaľ chápem :D Na dva riadky som písal na tri, skúšal som obe typi bez namespace std, aj s namespace std. Teraz by bolo dobré asi niečo o premenných vedieť, nejaké pokračovanie nato, nebudem tu teraz dva týždne takže času dosť ;)
Forlis
 
Příspěvky: 5
Registrován: 13 červenec 2012 12:43:14

Re: C++ tutorial

Příspěvekod Wlezley » 26 červenec 2012 23:30:03

Omlouvám se, mám teď rozdělaný jeden hodně důležitý projekt. Zítra si ale zkusím najít čas a napíšu něco o základních datových typech. Zvažuji i vytvoření samostatné sekce pro výuku programovacích jazyků s patřičnými podsekcemi (jednotlivé jazyky dále rozdělené na platformy, adp...). Zatím je toto forum spíše poradenské a obsahuje příklady využití různých programovacích jazyků. Jsem pro každou změnu k lepšímu.

Koneckoncům, nedělám to jen pro sebe, či vlastní ego. Rád pomůžu ostatním, rád se podělím o vědomosti, získané za ~z hruba~ 6 let. No, 6 let C/C++ ... Z toho 2 roky WinAPI, půl roku C++/CLI (.NET), zbytek konzolové aplikace (převážně kvůli studiu a pochopení principů jazyka) serverové aplikace (podpora rozvoje emulátorů pro World of Warcraft on-line gaming), knihovny, pluginy pro apache, atd, atd.

Za dosavadních 24 let svého života jsem vystřídal několik jazyků.

Z počátku to u mně byl, díky konfigurování tehdejšího MS-DOSu, "jazyk" BATch (.BAT soubory). Píšu to v uvozovkách proto, protože de-facto to ani jazyk není; jde o dávkový soubor, vykonávající povely v dané posloupnosti. Na linuxu je obdobná věc, říká se tomu "bash file" (sh).

V osmi letech jsem směle programoval svoje první "pokusy" v BASICu a později v quick basicu (qBasic - rozdíl mezi "AS" basicem je v tom, že qBasic byl strukturální jazyk, což basic nebyl). Je to jazyk, který už svou podstatou nevyhovuje dnešním požadavkům vývoje SW. Programátor v basicu měl 3 možnosti. 1) vykašlat se na to, 2) unudit se k smrti kopírovaním a úpravami kódu, nebo 3) zatnout zuby a dodělat to ikdyž ho to v půlce přestalo bavit psát a ten jazyk proklínal.

Z hruba když mi bylo 10 nebo 11 let, chytnul mě Pascal. Konkrétně šlo o Turbo Pascal 6.0 od Borlandu. To bylo pro mě důležitý období. Odpoutal jsem se od strukturálního "pseudo" jazyka "basic" a vrhnul jsem se na jazyk procedurální. Některé výrazy zůstaly stejné (podmínkování, cyklování (do jisté míry)). V podstatě pascal se tváří jako strukturální jazyk, ale má právě že ty procedury. U jazyka C máme třeba "funkce", ale v podstatě je to strašně podobný, jen se liší zápis a to, jak to překladač "vnímá". Stále se mi to ale zdálo hrozně nepřehledný. Chodil jsem na kurzy do SMT, rodiče mi je platili asi 2 roky.

Když jsem zjistil, že mi to nestačí, přestal jsem s programováním. Bouřlivé období puberty trvalo několik let a já jsem na počítač ani nesáhnul. Nebylo proč. Občas jsem si pouze poslechl nějaký MP3 a nahrál do PC fotky nebo jsem se kouknul na film. Prostá, tupá konzumace.

Začal jsem pracovat, vydělával jsem slušný peníze (ikdyž manuálně - ve fabrice) a toužil jsem po notebooku. Byl to můj sen od dětství. V roce 2006 jsem si koupil první notebook (Asus A6U [B-093]). Začal jsem se opět zajímat o programování. Tentokrát šlo o jazyk C/C++. Našel jsem si na netu všechno co jsem potřeboval a začal jsem se to intenzivně učit. Ze začátku jsem kompiloval příklady, zkoušel jsem dělat různý blbinky. S většíma či menšíma pauzama jsem to pořát zkoušel, zkoumal a hrál jsem si s tím. Když jsem takhle psal prkotiny, pomalu jsem se do toho začínal dostávat. Ale stále jsem se učil. Ze začátku to chce do toho investovat jenom tolik času, na kolik se cítíš. Není dobrý hned začít na ostro, s plánem že se všechno naučíš za měsíc. Je to tak pružnej jazyk, že mě když se otevřela brána poznání linkování knihoven, využití dynamického linkování, atd... cítil jsem se jako Alenka v říši Divů. Není sporu o tom, že mě ten jazyk hodně zaujal již na samém počátku. Jakmile tě to chytne, už tě to nepustí. A kdyby náhodou ano, vždycky se k tomu rád budeš vracet.

Samozdřejmně umím i jiné jazyky. Například HTML (potažmo CSS), PHP, znám sílu XML. Jedinou a mým účelům vždy dostačující databází bylo a je MySQL. Jistě že ten query language také do jisté míry ovládám, jinak to snad ani nejde.

Jestli chceš zatím našprtat nějaký datový typy, napsal jsem je tu pro C#, ale řeknu ti který do C++ standardu nepatří. viewtopic.php?f=7&t=1118
V jazyce C++ nenajdeš z té tabulky tyto typy:
sbyte,
byte,
ushort (místo toho je unsigned short),
uint (místo toho je unsigned int),
ulong (místo toho je unsigned long),
decimal,
string (string je dostupný, ale jen po includování.. #include <string> a je nutno používat namespace std (nebo std::string...)).
Uživatelský avatar
Wlezley
 
Příspěvky: 316
Registrován: 24 září 2011 22:54:46
Bydliště: Plzeň
Projekt: Wlezley EU


Zpět na C/C++

Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 1 návštěvník


cron