Često je potrebno u programu deklarisati i više hiljada promenljivih. Uvođenje toliko promenljivih na uobičajen način praktično je neizvodljiv pa zbog toga koristimo nizovni tip koji spada u strukturirane tipove podataka. Nizovni tip opisuje ograničen uređen skup promenljivih istog tipa, koje se nazivaju komponente (niza). Tako na primer ako u programu imamo deklarisan niz A koji sadrži 100 komponenti tipa integer, onda bismo prvoj od njih pristupili na sledeći način : A[1]:= 56. Tip komponente se naziva bazni tip (u gornjem primeru je bazni tip - integer), a vrednostima pojedinih komponenti može se pristupiti pomoću indeksa (u gornjem primeru pristupili smo elementu niza koji ima indeks 1).
Primeri: var x,y : array [1..10] of boolean; {deklaracija dva niza od po deset elemenata (komponenti) bulovog tipa} z: array [1..1000] of real; {deklaracija niza od 1000 elemenata koji su realnog tipa} stniz: array [1..25] of string [80]; {deklaracija niza od 25 elemenata tipa string od kojih je svaki dugačak 80 karaktera} Nizovni tip se obično koristi sa for ciklusom jer je obično poznat broj komponenti niza. Primer 1: Napisati program kojim se izračunava srednja vrednost niza x od n elemenata. napomena: ukoliko nije navedena maksimalna "dužina niza" obično je postavljamo (u ovakvim zadacima) na 100 ili 1000, a korisnik programa unosi konkretno n koje mora biti manje od 100 ili 1000. Program srednjaVrednost; var x:array [1..100] of real; i,n: integer; suma:real; BEGIN write ('unesite n ' ); readln (n); suma:=0.0; for i:=1 to n do begin write ('x[',i,']=' ); readln (x[i]); suma:=suma+x[i]; end; writeln ('srednja vrednost je ', suma/n :10:2 ) ; END. primer 1b - isti zadatak na drugi način Program srednjaVrednostB; var x:array [1..100] of real; i,n: integer; suma:real; BEGIN write ('unesite n ' ); readln (n); suma:=0.0; for i:=1 to n do begin {ciklus za unos podataka} write ('x[',i,']=' ); readln (x[i]); end; {ciklus koji racuna sumu} for i:=1 to n do suma:=suma+x[i]; writeln ('srednja vrednost je ', suma/n :10:2 ) ; END. Primer 2: Napisati program kojim se izračunava maksimalna vrednost niza x od n elemenata (n<=50). Program MaxNiza; var X:array [1..50] of real; i,n: integer; maxX:real; BEGIN write ('unesite broj elemenata niza ne veci od 50 : ' ); readln (n); for i:=1 to n do begin {ciklus za unos podataka} write ('Unesite X[', i , ']=' ); readln (X[i]); end; maxX:=X[1]; for i:=2 to n do if maxX<X[i] then maxX:=X[i]; writeln ('Maksimum niza je ', maxX:10:5 ) ; END. Primer 3. Kombinujući program MaxNiza i MaxTemp napisati program koji ispisuje redni broj maksimalne vrednosti niza. Program redniBrojMaxNiza; var X:array [1..50] of real; i,n,rb: integer; maxX:real; BEGIN write ('unesite broj elemenata niza ne veci od 50 : ' ); readln (n); for i:=1 to n do begin {ciklus za unos podataka} write ('Unesite X[', i , ']=' ); readln (X[i]); end; maxX:=X[1]; rb:=1; for i:=2 to n do if maxX<X[i] then begin maxX:=X[i]; rb:=i; end; writeln ('Maksimalni element niza X je na ', rb, '. mestu' ) ; END. |