Professional Documents
Culture Documents
Pole je štruktúrovaný údajový typ. Obsahuje niekoľko hodnôt rovnakého typu (napr. int, float,
char, atď.). Každá hodnota je uložená v samostatnom prvku poľa a počítač ukladá všetky prvky za sebou
do pamäte. Všetky prvky poľa sú rovnakého typu.
Pole je vytvárané pomocou deklarácie (podobne ako keď vytvárame jednoduchú premennú). Pri
deklarácii zadávame typ poľa (jeho jednotlivých prvkov), jeho meno a počet prvkov, ktoré bude
obsahovať. Každý prvok má svoj index – prvý prvok má index 0, druhý index 1, atď.
Popis:
typPola – údajový typ, napr. int, float, char, string atď.
menoPola – identifikátor poľa, napr. tlak, teplota, vyska
rozsahPola – počet prvkov poľa
Príklad:
1.
int teplota[5];
- v pamäti sa vytvorí 5 prvkové pole teplota, pričom každý prvok bude typu int
0 1 2 3 4 index
Pri deklarácii poľa je často krát vhodné jednotlivé prvky aj inicializovať. Niektoré spôsoby
deklarácie a inicializácie uvádzajú nasledovné príklady:
short int pocet[3] = {7,2,9}; //vytvorí sa 3 prvkové pole
float vek[] = {16,21,14,19,19,15}; //vytvorí sa 6 prvkové pole, pričom jednotlivé prvky budú
//obsahovať uvedené hodnoty; v tomto prípade sám
//kompilátor určí koľko miesta má v pamäti vyhradiť
int polePrvkov[100] = {0}; //všetkých 100 prvkov bude obsahovať 0
teplota[4] =18;
teplota[0] teplota[1] teplota[2] teplota[3] teplota[4]
14 18
Keďže sa väčšinou pracuje so všetkými prvkami poľa (napĺňanie poľa hodnotami, výpis hodnôt
poľa, vyhľadávanie konkrétneho prvku atď.), je vhodné pri práci s poľami využívať cykly, najmä cyklus for.
Pri práci s poľom je potrebné dávať si vždy pozor, aby nedošlo k zápisu „za“ pole. Mohlo by dôjsť
k pádu programu, alebo dokonca k nestabilite OS.
Zaujímavými poľami sú polia typu char. Ide vlastne o reťazce C-čkovského typu. Sú ukončené
tzv. nulovým znakom \0. Pomocou indexov je možné pristupovať k jednotlivým znakom reťazca. Úplne
rovnako možno pristupovať k jednotlivým znakom aj pri reťazcoch, vytvorených pomocou string:
char ret1[]=“Pocitac“;
cout << ret1[4]; //vypíše sa t
string veta(“Ucime sa programovat“);
cout << veta[10]; //vypíše sa r
Vo voľnom úložišti sa rezervuje podľa typPola a rozsahPola príslušný počet bajtov a adresa
prvého bajtu sa uloží do ukazateľa menoPola. S poľom potom pracujeme rovnako ako s poľom, ktoré je
vytvorené v zásobníku.
Alokovanú časť pamäte uvoľníme nasledovne:
detele [] menoPola;
Pointer vynulujeme:
menoPola=0;
Príklad:
int *ptPocet = new int[20]; //vo voľnom úložišti sa rezervuje 80B a adresa prvého bajtu sa uloží
//do ptPocet
ptPocet[0]=25; //prvý prvok poľa bude mať hodnotu 25 – VŠIMNITE SI, NEPOUŽÍVAME
//DEREFERENČNÝ OPERÁTOR * !!!
cin >> ptPocet[3]; //vstup hodnoty do štvrtého prvku poľa