Низови

Низ је сложени тип податка. Представља “скуп” података истог типа. Сваки од појединачних података унутар низа назива се елеменат низа и може му се приступити на основу његовог редног броја у низу. Низ се описује помоћу имена низа (заједничко је за све елементе низа, а сваки елеменат поред имена низа има и свој редни број), типа променљиве елемената низа и величине низа, односно броја елемената низа.

Величина меморије коју низ заузима зависи од броја елемената низа (означимо га са n) и величине коју тип променљиве елемената низа заузима у меморији (означимо га са p): n x p. p је за целе бројеве (int) најчешће 2 бајта, за реалне бројеве обичне тачности (float) је најчешће 4 бајта, а за реалне бројеве двоструке тачности (double) је најчешће 8 бајтова. Низ заузима n узастопних меморијских локација величине p. Адреса низа, односно почетна адреса низа је, у ствари, адреса првог елемента у низу, а његов редни број (назива се индекс) у програмском језику C је увек 0. Редни број елемената низа, односно индекс креће се од 0 до n-1.

Дефинисање низова

Низ се дефинише декларативном наредбом, слично као и прости типови података, при чему се иза имена низа наводи дужина низа:

tipPodatka imeNiza[duzina];

Дужина низа МОРА бити константан целобројни израз (најчешће се наводи број, или симболичка константа, претходно дефинисана директивом #define). На основу ове дефиниције, приликом превођења програма резервише се меморијски простор димензија duzina x p. У самом програму се уноси величина n која представља стварну дужину низа (n<duzina), тако да део меморије резервисан за низ остаје неискориштен. Овакав начин резервисања, односно додељивања меморије назива се статичко додељивање меморије.

Приступање елементима низа

Елементима низа приступа се помоћу редног броја, индекса:

imeNiza[indeks]

indeks може бити произвољан целобројни израз чија вредност ТРЕБА да се нађе у границама [0, n-1]. Ако се вредност овог израза нађе изван ових граница, програм преводилац неће пријавити грешку, али ће резултати извршавања програма бити крајње неочекивани.

Да би се унели елементи низа у меморију рачунара мора се користити циклус унутар кога се уносе један по један елеменат низа:

for(i=0;i<n;i++)scanf("%d",&a[i]);
 i – redni broj elementa niza, u programskom jeziku C prvi elemenat ima redni broj 0
 a[i] – elemenat niza sa rednim brojem i

Такође, за приказивање вредности елемената низа на екрану мора се користити циклус унутар кога се приказују један по један елеменат низа:

for(i=0;i<n;i++)printf("%d\t",a[i]);
 \t – upravljacki signal (tabulator), sluzi da pregledno ispise elemente niza. Moze se koristiti i
 \n – prelazak u novi red (ako zelimo da svaki elemenat bude prikazan u novom redu)

Исто важи за све операције које се обављају над СВИМ елементима низа, увек се користи циклус, па се дата операција изводи унутар циклуса за један по један елеменат.

Дефинисање новог типа података

За рад са низовима, нарочито ако се користе као аргументи у функцијама, потребно је дефинисати нови тип податка (Niz), па затим дефинисати низове у програму као променљиве тог типа:

typedef tip imeTipa [duzina];

пример:

typedef double Niz[10];
Niz p;

Дефинисали смо нови тип података Niz који представља низ реалних бројева двоструке тачности од 10 елемената. Након тога дефинишемо променљиву p чији је тип новодефинисани тип Niz.

Advertisements

Оставите одговор

Попуните детаље испод или притисните на иконицу да бисте се пријавили:

WordPress.com лого

Коментаришет користећи свој WordPress.com налог. Одјавите се / Промени )

Слика на Твитеру

Коментаришет користећи свој Twitter налог. Одјавите се / Промени )

Фејсбукова фотографија

Коментаришет користећи свој Facebook налог. Одјавите се / Промени )

Google+ photo

Коментаришет користећи свој Google+ налог. Одјавите се / Промени )

Повезивање са %s