Ešte jedna ukážka s poľom
Než sa vrhneme na reťazce, chcel by som ukázať ešte jeden program vhodný pre začiatočných programátorov. Samozrejme, s poľami sa dá robiť všeličo, ale ďalšie ukážky budú až keď si ukážeme cykly.
#include <iostream> // hlavičkový súbor using namespace std; // priestor mien int main() //hlavná funkcia { float pole[5] = {1, 22, 1757, 1112, 45}; // deklarácia poľa float vysledok; // premenná typu float // výstupy na obrazovku // PS: komentáre má spravidla len prvý program, pretože zvyčajne ostatné programy v ústrednej téme článku podobnú funkcionalitu. cout << "Scitanie hodnot v prvkoch pola: "<<pole[0]+pole[1]+pole[2]+pole[3]+pole[4]<<"\n"; cout << "Odcitanie hodnot v prvkoch pola: "<<pole[0]-pole[1]-pole[2]-pole[3]-pole[4]<<"\n"; cout << "Nasobenie hodnot v prvkoch pola: "<<pole[0]*pole[1]*pole[2]*pole[3]*pole[4]<<"\n"; cout << "Delenie hodnot v prvkoch pola: "<<pole[0]/pole[1]/pole[2]/pole[3]/pole[4]<<"\n"; return 0; // koniec programu }
Výsledok:
Scitanie hodnot v prvkoch pola: 2937 Odcitanie hodnot v prvkoch pola: -2935 Nasobenie hodnot v prvkoch pola: 1.93425e+09 Delenie hodnot v prvkoch pola: 5.16997e-10
Reťazce
Reťazec chápeme ako špecifický typ poľa. Miesto číselnej hodnoty reťazec obsahuje znaky. V krátkostí, reťazec je pole znakov.
Reťazec má v C++ veľkú podporu, ktorá sa odráža napríklad v rozsiahlej knižnice cstring, o ktorej by som chcel neskôr v seriáli rozprávať. Najskôr ale musíme prebrať cykly a pointery, aby ste si viac užili komplikovanejšie algoritmy napr. palindrom pomocou tejto knižnice cstring.
Ukážeme si dve podporované štýly deklarácie reťazca. Prvý klasický C-štýl a druhý štandardný C++. Síce môže byť pre niekoho zbytočne uvádzať zastaralý C-štýl, ale programátor by mal poznať viacero možností deklarácii. Taktiež z C-štýlu sa ľahšie chápe pojem reťazec ako klasické pole, naplnené znakmi.
Deklarácia reťazca (C štýl) je nasledovná:
char retazec[6] = {'w', 'o', 'r', 'l', 'd', '\0'};
Znak \0 znamená koniec reťazca. Treba si len dať pozor pri tomto definovaní, aby nedeklarovali menej prvkov ako je počet znakov aj so znakom \0. Znak \0 sa automatický pridáva v každom reťazci. Ešte pripomienka, že táto deklarácia je v C-štýle tá staromodnejšia. Pekne vykopávky vás tú nútim „učiť“.
Príklad, že to vážne funguje si ukážeme teraz.
2. príklad: C-štýl deklarácie reťazcov
#include <iostream> using namespace std; int main() { char retazec[8] = {'j', 'u', 'p', 'i', 't', 'e', 'r', '\0'}; cout <<retazec<<"\n"; return 0; }
Výsledok: zobrazí sa reťazec jupiter.
Ukážme si novší C-štýl, ktorý je pohodlnejší pre využívanie. Dokonca, nemusíme udávať počet prvkov. Všetko už kompilátor zistí sám. Nezabudnite, že síce máte reťazec takýto:
char retazec[] = "mama";
Prvkov je 5 nie 4! Nezabudnite práve na ten znak \0. Je to dôležité vedieť a neskôr sa naučíte efektívne pracovať s poľom pomocou cyklu for.
No fajn, chcelo by to overovací program že?
3. program: C-štýl efektívnejší spôsob
#include <iostream> using namespace std; int main() { char retazec[] = "Svet je pekelnym miestom pre zivot"; cout <<retazec<<"\n"; return 0; }
Súčasný spôsob deklarácie reťazca v C++
V súčasnom spôsobe deklarácie hraje ústrednú rolu magické slovo string. Rýchly príklad na koniec.
4. príklad: Súčasný C++ štýl deklarácie reťazca
#include <iostream> using namespace std; int main() { string retazec = "Svet je pekelnym miestom pre zivot"; cout <<retazec<<"\n"; return 0; }
Výsledok je každému jasný. V článku sme si rýchlo prezreli možností deklarácie reťazca. Samozrejme, odporúčam C-štýl brať ako zaujímavosť a nemusíte sa ju učiť. To s reťazcami nie je ani zďaleka koniec. Avšak, chcem vás už nabudúce previesť cyklami, nech túto veľmi dôležitú vec máme za sebou. Potom nás čakajú ešte pointery a štruktúry. A môžeme sa potom vrhnúť na knižnicu cstring s plnou energiou. Snáď to všetko zvládneme v zdraví a pokoji.