Základy C++
Kompilátory:
Dev C++ (free) http://www.slunecnice.cz/sw/dev-c/stahnout/
Code::blocks http://www.codeblocks.org/downloads/5
Pozn: kompilátor je program, který Vámi napsaný kód přelouská do spustitelné podoby (.exe souboru)
1. Jednoduchý program:
#include <iostream>
int main(){
using namespace std;
cout << "Zacatky v C++";
return 0;
}
Rozbor:
iostream je knihovna pro řízení vstupů a výstupů pro jazyk C++ (příkazy cin, cout), do programu se vloží příkazem include
int main - základní funkce programu, zdrojový kód se vpisuje do ní
using namespace std - zjednoduší psaní vstupů a výstupů - místo std::cout píšete jen cout
cout - výstup programu, vypisuje text na obrazovku
return - návratová hodnota funkce main, v programu nesmí chybět, většinou se jí přiřazují hodnoty 1, nebo 0
Pozn : !!!Všechny příkazy musí končit středníkem!!!
Příloha 1.1 - Pády programu
Jistě jste si všimly, že program při spuštění jen problikne a spadne. Toto není chyba, ale program dokončil zadanou úlohu a skončil a výsledkem toho je, že jste neviděly, co jste vytvořily. Řešení tohoto problému je hned několik:
1) spustit program přes příkazovou řádku (start - spustit - cmd)
2) přidat před return libovolnou proměnnou (program bude čekat na její zadání a nespadne) viz příklad 2.
3)přidat před return příkaz getchar(); - občas nefunguje
2. Jednoduché operace - kalkulačka
#include <iostream>
int main(){
using namespace std;
int a;
int b;
int soucet;
cout << "Toto je priklad jednoduche kalkulacky v C++\n";
cout << "Zadejte cislo 1: " ;
cin >> a;
cout << "Zadejte cislo 2: " ;
cin >> b;
soucet = a + b;
cout << "Soucet cisel je: " << soucet;
return 0;
}
Rozbor:
cin - vstup programu, z klávesnice zadáte proměnnou (v našem příkladu "a" a "b"), se kterou program dále pracuje
int a - deklarace proměnné, proměnnou je potřeba nejříve deklarovat, než s ní začnete pracovat.
soucet = a + b; = secte hodnoty v proměnných a a b
\n - skočí ve výpisu na další řádek, podobný efekt jako klávesa ENTER
Příloha 2.1 - datové typy:
Proměnné v C++ mohou být různých datových typů, podle toho, co do nich chceme ukládat.
int - běžné číslo ( -32768 až 32767 ) * např : 0, 158, -574
long int - velké číslo (-2147483 až 2147483647) * např: 15, 15874455, -125412554
double - velmi velká čísla (cca do až 2,2* 10 na 308 - 1,8* 10 na 308) a desetinná čísla * např: 15,254 , -854444424624624576115145414552
bool - hodnoty 0, nebo 1 (pravda, lež)
char - jeden znak např: a, +, /
unsigned - čísla mohou být jen kladná (unsigned int a) a čísla tohoto typu mohou nabývat dvojnásobných hodnot. (např unsigned int - 0 až 65535)
Příloha 2.2 - základní matematické operace:
+ - * / = snad všichni chápou
% - celočíselný zbytek z dělení (např 13%6 = 1)
logické operace:
!= - nerovná se
|| - nebo
&& - a zároveň
3. smyčky a komentáře
/* toto je příklad komentáře na více
řádků */
#include <iostream>
int main(){
using namespace std;
int a;
int soucet = 0, prumer, cislo;
//priklad komentare na jeden radek, i takto mohou byt promenne
// deklarovany a zaroven jim uz pri deklaraci muze byt prirazena hodnota
cout << "Losuji 15 nahodnych cisel od 0 do 9.....";
for(a = 0; a < 15; a++){
cislo = rand()% 10;
soucet = soucet + cislo;
}
prumer = soucet / 15;
cout << "Soucet cisel je: " << soucet;
cout << "Prumer cisel je: " << prumer;
return 0;
}
Rozbor:
For - je smyčka s určitým počtem opakování, v našem případě proběhne 15 krát (a = 0; a < 15 ; a++) - začíná počítat průběhy od 0; počítá, dokud je a menší, než 15; při každém průběhu přičte k a 1
rand() - funkce pro generování náhodných čísel, tady generuje čísla od 0 do 9 - viz příloha 2.2.
/* abcd..... */ - libovolně dlouhý komentář, začíná znaky /* a končí znaky /* - nasmíme ho zapomenout ukončit
//abcd - komentář na jeden řádek, po stisknutí ENTER už zase píšete kód
Pozn: - Komentáře se používají ve složiťejších kódech pro přehlednost.
Příloha 3.1 - další smyčky
while - smyčka s neznámím počtem opakování, nemusí proběhnout ani jednou, pokud není splněna podmínka Př:
while(a != 5){
// kod
}
do while - jako while, ale vždy proběhne minimálně jednou. Př:
do{
//kod
}while (a != 5); //ukončeno středníkem
Pozn: za deklarací smyčky se NEPOUŽÍVÁ středník, jedinou výjímkou je smyčka do while na konci
4. Větvení programu a práce s časem- jednoduchý kalendář:
#include <iostream>
#include <time.h>
int main(){
using namespace std;
int den;
// ziskani casu v sekundach od 1.1.1970 a ulozeni do promenne sekundy
time_t sekundy;
time (&sekundy);
// odecteni roku
while(sekundy >= (3600 * 24 * 365.25)){
sekundy = sekundy - (3600 * 24 * 365.25);
}
//vypocet dne
den =( sekundy / (3600 * 24)) % 7;
if((den == 2)||(den == 3)){
cout << "Je vikend";
}
else{
switch(den){
case 0:
cout << "Dnes je ctvrtek";
break;
case 1:
cout << "Dnes je patek";
break;
case 4:
cout << "Dnes je pondeli";
break;
case 5:
cout << "Dnes je utery";
break;
case 6:
cout << "Dnes je streda";
break;
}
}
cin.get();
return 0;
}
Rozbor:
time.h - je knihovna pro práci s časem
If / else - v ifu je napsána podmínka, pokud je splněna, program projde kód v něm, pokud ne, provede kód zapsaný v příkazu else. else nemusí být v programu obsaženo.
switch - je to podobný příkaz jako IF, akorát rozvětvený - hledá se, jestli je hodnota v proměnné stejná jako v příkazu case, pokud ano, provede kód v něm, pokud se nesplní ani jeden case, provede se možnost default. Příkaz break; slouží k ukončení case. V případě, že ho nenapíšete by se provedli i všechny ostatní case pod tím splněným. (Např: byl by splněn case 1 a provedly se casy 1, 2, 3, 6 a default, nebo by switch skončil na jiném breaku v procházených casech).
Postupně to ještě rozšírim; za chyby gramatické a překlepy neručim , pokud něco najdete, tak me pls přes PM upozorněte