Úvod
Polia používame vtedy, keď potrebujeme v pamäti evidovať a spracovávať veľké množstvo údajov (tabuľky hodnôt, zoznamy čísel...).
Pole zadeklarujeme:
float v[7];
V pamäti vznikne 7 premenných typu float, ktoré sú uložené postupne za sebou - takúto údajovú štruktúru nazývame pole (anglicky array). Jednotlivým premenným hovoríme prvky poľa {pole v má 7 prvkov):
v[0] v[1] v[2] ... v[6]
...
S prvkami pracujeme pomocou indexov: v[0], v[1], v[2], ..., v[6]. Napríklad, výraz v[2] predstavuje v poradí tretí prvok poľa (pozor na číslovanie od nuly). Prvok v[2] je už jednoduchá premennú typu float.
v[0]=12.3; // teplota v pondelok v[1]=13.7; // teplota v utorok v[2]=18.5; // teplota v stredu ... v[6]=10.4; // teplota v nedeľu
Po priradeniach budú v poli uložené hodnoty:
v[0] v[1] v[2] ... v[6]
12,3
13,7
18,5 ...
10,4
Výpočet priemeru z nameraných hodnôt:
float priemer; priemer=(v[0]+v[1]+v[2]+v[3]+v[4]+v[5]+v [6])/7;
Na vypočítanie priemeru máme aj elegantnejšie riešenie. Vieme, že v hranatých zátvorkách sa uvádza index prvku. Index nemusí byť iba konštanta, ale môže to byť aj výraz, napríklad:
v[5-3]=18.5; // je to isté ako v[2]=18.5;
alebo aj:
int a=5; v[a-3]=78.5; // opäť pracujeme s prvkom v[2]
Výpočet priemernej hodnoty:
void __fastcall TForm1::Button1Click(TObject *Sender) { float v[7]; float priemer=0; int i; v[0]=12.3; // teplota v pondelok v[1]=13.7; // teplota v utorok v[2]=18.5; // teplota v stredu v[3]=16.1; v[4]=14.3; v[5]=17.9; v[6]=10.4; // teplota v nedeľu for (i=0; iTextOut(0, 0, priemer); }
Výpis nadpriemerných hodnôt (pokračujeme v predchádzajúcej funkcii): int y=20; for (i=0; i=priem) { // zaujímajú nás iba nadpriemerné hodnoty g->TextOut(0, y, v[i]); y=y+15; }
Hľadanie maximálnej hodnoty:
int max; max=v[0]; for (i=1; i=1, ale nesmie byť príliš veľký (inak by sa pole nezmestilo do pamäte). Počet prvkov poľa musí byť známy už pri kompilácii (vo výraze nesmú byť premenné).
- 2. Predchádzajúcou deklaráciu vznikne pole, ktoré má prvky meno[0], ... , meno[index], ... meno[počet-1]. My sami sa musíme postarať o to, aby sme indexovali iba existujúce prvky poľa, t.j. aby vždy platilo, že: