C++ – funkce
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama

C++ – funkceC++ – funkce

 

C++ – funkce

Google       Google       16. 8. 2006       33 344×

Tak a je tu druhá lekcia nášho kurzu, kde sa budeme zapodievať týmito problémami: Funkcie v C++ (základ), ako sa definujú premenné, kľúčové slová.

Reklama
Reklama

Funkcie v C++

Riadky programu sú volané postupne, dokým nie je zavolaná nejaká funkcia. V tejto chvíli sa program rozvetvuje, aby funkciu predviedol a vracia sa späť na miesto, kde bola funkcia volaná. V analógii to znamená asi to, že keď ide blondínka, narazí na banánovú šupku (kde ako každá blondínka spadne, čiže rozvetví sa) a spadne, pokračuje v ceste od miesta, kde začala padať! Ukážem Vám to na jednoduchom programe, ktorého kód vyzerá takto:

No tu vidíš, čo ta funkcia vlastne spravila:

Používanie Funkcií

Funkcia vracia buď skutočnú hodnotu, alebo prázdnu, čiže hodnotu void ako v našom príklade. Funkcia, ktorá vracia celočíselnú hodnotu, musí niečo vykonať, aby vrátila hodnotu. Naša prvá funkcia mala za úlohu napísať text, ale nevracala žiadnu hodnotu, a preto sme ju deklarovali ako void.

Funkcia sa skladá z hlavičky a tela. Hlavička obsahuje návratový typ, názov funkcie a parametre funkcie. Dáme si príklad, keby mala funkcia vynásobiť dve čísla, hlavička funkcie by vyzerala takto:

int Nasobenie(int a, int b)

Parametrom rozumieme deklaráciu typu hodnoty, ktorá sa funkcii predáva, ale o tom dneska ešte budeme hovoriť. Skutočná hodnota funkcie sa volá argument. Veľa programátorov používa slová argument a parameter ako synonymá. Telo funkcie sa skladná zo zložených zátvoriek a príkazov, ale môže byť aj bez nich. Funkcia vracia špecifickú hodnotu pomocou príkazu return ako aj funkcia main(). Vrátená hodnota musí byť rovnakého typu, ako bola deklarovaná v hlavičke. Tak si jednu takúto funkciu ukážeme:

A ako vidíte na ďalšom obrázku, všetko sa pekne predviedlo:-)

Ako sa definujú premenné.

Čo je to premenná?

Premenná je miesto, kde sa uchovávajú informácie, čiže je to miesto v pamäti počítača, kde môžeme hodnotu uložiť a neskôr ju môžeme z tohto miesta späť načítať. Premenné poskytujú len dočasné uchovanie informácie. Pamäť počítača si môžeme predstaviť ako poličky s číslami, ktoré sú vedľa seba. Každá polička má určené číslo, týmto číslam hovoríme adresy v pamäti, čiže premenná si zaberie jednu alebo viac políčok v pamäti, do ktorých môže uložiť hodnotu.

Názvom premennej rozumieme názov poličky, kvôli ktorému nájdeme hodnotu aj bez toho, aby sme vedeli adresu tejto hodnoty v pamäti. Keď definujeme v C++ premennú musíme kompilátoru oznámiť o aký druh premennej ide, či je to celé číslo, znak alebo niečo iné. Podľa tejto informácie vyhradí kompilátor určité miesto v pamäti a vie akú hodnotu chcete v tejto pamäti uchovávať. Každá s týchto položiek má veľkosť jeden bajt. Prostredníctvom typu premennej oznámite kompilátoru, koľko bajtov má pre premennú vyhradiť.
A na tento účel si urobíme jednoduchý programček, ktorý nám povie, koľko bajtov na našom počítači zaberajú pamäte určité typy premenných. Takto vyzerá jeho kód, ktorý si hneď po ňom rozoberieme:

Teraz Vám ukážem, ako sa to zobrazilo na mojom počítači, pričom mali by ste mať podobné hodnoty. Niektoré hodnoty typov sa však môžu meniť, čo sa ale iba zriedkavo stáva. Mne osobne sa to ešte nestalo, ale môže sa:-) Tu je výsledok:

No a teraz si to ideme všetko postupne rozobrať. Všetky znaky \t sme použili na zarovnanie textu. Tieto znaky si preberieme pri ďalšej lekcii, aby toho dneska nebolo veľmi veľa. V tomto kóde nájdeme novinku a tou je operátor sizeof(), ktorý je súčasťou kompilátoru. Vracia veľkosť objektu, ktorý mu predáte ako parameter, čiže keď sme mu dali parameter typu bool, zistil nám, že typ bool má takú istú veľkosť ako typ premennej char, ktorých význam Vám hneď vysvetlím.

Typy premenných
Typ Veľkosť Hodnoty
unsigned short int 2 bajty 0 až 65 535
short int 2 bajty −31 768 až 32 767
unsigned long int 4 bajty 0 až 4 294 967 295
long int 4 bajty −2 147 483 648 až 2 147 483 647
int 4 bajty −2 147 483 648 až 2 147 483 647
unsigned int 4 bajty 0 až 4 294 967 295
float 4 bajty 1,2 × 10−38 až 3,4 × 1038
double 8 bajtov 2,2 × 10−308 až 1,8 × 10308
char 1 bajt 256 znakových hodnôt
bool 1 bajt true, alebo false (pravda / nepravda)

U všetkých celočíselných typov premenných rozlišujeme dve varianty:
› Čísla čisto kladné unsigned (bez znamienka)
› Čísla, ktoré sú záporné, ale aj kladné signed (s aj bez znamienka)

Pretože obidve varianty sú zastúpené rovnakým počtom bajtov, pri číslach bez znamienka, čiže kladných, je určená dvakrát väčšia maximálna hodnota. Celé čísla typu unsigned short int majú hodnoty od 0 do 65535, ale u (signed) short int je ich rozmedzie od -32768 do 32767. Okrem celočíselných premenných poznáme aj premenné s pohyblivou desatinnou čiarkou, čiže desatinné čísla. A to sú float a double, majú fakt veľké rozmedzie hodnôt, ktoré budete používať až neskôr. Sú to čísla, ktoré vieme vyjadriť pomocou zlomkov, čiže sú to racionálne reálne čísla.

Ďalší veľmi dôležitý typ premennej je char, v ktorom sa skrývajú všetky znaky, ktoré používa počítač (je ich 256), a tak naberá hodnotu jedného bajtu. Posledným typom premennej je typ bool, ktorý označuje pravdivosť alebo nepravdivosť nejakého výroku. Všetky tieto typy si odskúšame pri ich definícii.

Veľkosti premenných sa môže od týchto hodnôt líšiť a to v závislosti od typu kompilátoru a počítača, ktorý používate. Hodnoty by mali sedieť s tými, ktoré uvádza kompilátor.


Definícia premenných

Premenná sa definuje uvedením svojho typu, za ktorou nasleduje medzera, názov premennej a bodkočiarka. Názov môže tvoriť vlastne akákoľvek kombinácia písmen a číslic, ale odporúčam aby ste názvy premenných písali rozumne. Nezabudnite v C++ sa rozlišujú veľké aj malé písmená. Každá premenná svojím názvom prezentuje na čo je alebo na čo sa využíva! Napríklad premenná mojaVyska:

int mojaVyska;

Môžeme vytvoriť aj viac premenných naraz, napíšeme najskôr typ premenných a potom názvy týchto premenných:

unsigned int mojaVyska, mojaVaha;

long int plocha, sirka, vyska, objem;


3. Kľúčové slová v C++

Ako každý jazyk aj C++ má svoje kľúčové slová, ktoré nemôžete používať ako názvy premenných. Sú to vlastne názvy príkazov, ktoré používa kompilátor na preloženie zdrojového kódu. A tu sú všetky tieto kľúčové slová:

asm, auto, bool, break, case, catch, char, class, const, const_cast, continue, default, delete, do, double, dybanic_cast, else, enum, explicit, extern, false, float, for, friend, goto, if, inline, int, long, mutable, namespace, new, operator, private, protected, public, register, reinterpret_cast, return, short, signed, sizeof, static, static_cast, struct, switch, template, this, throw, true, try, typedef, typeid, typemane, union, unsigned, using, virtual, void, volatile, wchar_t, while


4. Priradenie hodnoty premennej

Hodnota sa do premennej načítava pomocou operátora priradenia (=). Premennej mojaVyska priradíme hodnotu 5 takto:

unsigned short mojaVyska;
mojaVyska=5;

Obidva tieto kroky môžeme spojiť aj do jedného:
unsigned short mojaVyska=5;

A na to, čo všetko sa dá robiť pri zadávaní hodnôt premenným, si predvedieme malým programom na výpočet objemu kvádra:)




Tu je náš výtvor, zadal som jednoduché čísla aby bol tento príklad prehľadný:



Tento program by mal byť úplne jednoznačný, ale keby ste si nevedeli s niečím rady, rád Vám pomôžem:-) Ak si chcete zrýchliť písanie programov, ukážem Vám jeden príkaz pre synonymá na vytvorenie premenných, ktorý sa veľmi ľahko využíva. Je to typedef!
Príklad:

typedef unsigned short int USI;
USI mojaVyska;// Zadefinovanie premenné daného typu:-)


5. Špeciálne znaky

Kompilátor C++ rozozná niekoľko špeciálnych znakov určených k formátovaniu. Každý tento znak začína lomítkom, ktoré tento znak uvádza. A tu sú:

Špeciálne znaky
Znak Význam
"\a" Pípnutie.
"\b" Vymazanie predchádzajúceho znaku.
"\f" Posunutie o stránku.
"\n" Nový riadok.
"\t" Posunutie o tabulátor.
"\v" Posunutie o vertikálny tabulátor.
"\'" Apostrof.
"\"" Úvodzovky.
"\?" Otáznik.
"\000" Oktálový (osmičkový) zápis.
"\xhhh" Hexadecimálny (šestnásťkový) zápis.


Tieto znaky Vám ukazujem iba preto, aby ste neboli mimo ak nejaké z nich niekde nájdete.

Čo robiť a čo nie!!!

› ÁNO, definujte premennú tak, že napíšete jej typ a potom názov.
› ÁNO, používajte rozumné názvy.
› ÁNO, pamätajte, že C++ rozlišuje malé a veľké písmená.
› NIE, nepoužívajte kľúčové slová ako názvy premenných
› NIE, nepoužívajte pre záporné čísla premenné typu unsigned

Záver

Na túto lekciu Vám žiadnu praktickú úlohu dávať nebudem! Ale len kvôli tomu, že sme tu brali samu teóriu. Všetko, čo sme si tu prebrali budeme používať a vedieť, to je vaše plus:-)

Uvidíme sa nabudúce!

×Odeslání článku na tvůj Kindle

Zadej svůj Kindle e-mail a my ti pošleme článek na tvůj Kindle.
Musíš mít povolený příjem obsahu do svého Kindle z naší e-mailové adresy kindle@programujte.com.

E-mailová adresa (např. novak@kindle.com):

TIP: Pokud chceš dostávat naše články každé ráno do svého Kindle, koukni do sekce Články do Kindle.

Hlasování bylo ukončeno    
0 hlasů
Google
Autor rád robi vsetko co ho napadne vramci IT.

Nové články

Obrázek ke článku Hackerský kongres přiveze v září do Prahy špičky světové kryptoanarchie

Hackerský kongres přiveze v září do Prahy špičky světové kryptoanarchie

Hackerský kongres HCPP16 pořádá od 30. září do 2. října nezisková organizace Paralelní Polis již potřetí, a to ve stejnojmenném bitcoinovém prostoru v pražských Holešovicích. Letos přiveze na třídenní konferenci přes 40 většinou zahraničních speakerů – lídrů z oblastí technologií, decentralizované ekonomiky, politických umění a aktivismu. Náměty jejich přednášek budou také hacking, kryptoměny, věda, svoboda nebo kryptoanarchie.

Reklama
Reklama
Obrázek ke článku ICT PRO školení zaměřené nejenom na ICT

ICT PRO školení zaměřené nejenom na ICT

Dovolte, abychom se představili. Jsme zaměstnanci společnosti ICT Pro, profesionálové v oblasti poskytování komplexních ICT služeb. Neboli služeb spojených s informačními a komunikačními technologiemi, které dnes - ve 21. století - tvoří  nedílnou součást běžného provozu všech moderních firem.

loadingtransparent (function() { var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true; po.src = 'https://apis.google.com/js/plusone.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s); })();
Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý