9.  Ukazovatele a polia

9.2  Pole - zopakujme si

Pole ako údajovú štruktúru zloženú z prvkov rovnakého typu nie je potrebné zvlášť predstavovať. V jazyku C síce platia isté obmedzenia (pole vždy začína prvkom s indexom 0, medze polí sa nekontrolujú a pod.) ale vďaka úzkej súvislosti medzi poliami a pointermi (pointerová aritmetika) dokážeme s poliami "stvárať" oveľa zaujímavejšie kúsky ako napr. v Pascale :-)

 Cieľom tejto časti nie je vysvetliť všetko, čo sa týka polí v jazyku C, ale predovšetkým poukázať na blízkosť pointerov a polí, pozrieť sa na pole s iného pohľadu ako sme boli doposiaľ zvyknutí (napr. z Pascalu) - z pohľadu pointerovej aritmetiky.


  Vráťme sa na chvíľu k príkladu, ktorý už asi každý z vás niekedy naprogramoval. (Alebo aspoň nejaký podobný :-) Zopakujeme si, čo by ste už o práci s poľom mali vedieť.

Úloha znie takto: V poli, do ktorého načítame n celých čísel zo vstupu, máme vyhľadať najväčší prvok t.j. maximum.

#include <stdio.h>
#define POCET  50 

void main(void)
{
   int  a[POCET];  /* pole 50 prvkov, indexy od 0 po 49! */
   int n, i, max;
	
   printf("pocet prvkov n = ");  /* vstup */
   scanf("%d\n", &n);
   for (i = 0; i < n ; i++) {
      printf("%d. prvok:  ", i + 1);	
      scanf("%d", &a[i]);
   }
   max = a[0];  /* hľadanie maxima */
   for (i = 0; i < n ; i++) {
      if (a[i]>max)  max = a[i];
   }
		
   printf("Maximum je %d \n",  max);  /* výstup */
}