Nizove koristimo kada želimo unjeti više brojeva ili slova i svakom od njih dodati njihovo mjesto za pohranu u memoriji. Prednost nizova je što u svakom trenutku možemo pozvati iz memorije i njima računati ili vršiti druge operacije.
U nizove možemo spremati razne tipove podataka, prostor u memoriji pamti naše unose ili rezultate operacija. Za uspješno korištenje nizova potrebna nam je for naredba. Bez nje bi korištenje nizova bilo neisplativo.
Izgled niza i kako se on sprema u memoriju računala:
Program za unos i ispis niza:
#include<iostream>using namespace std;int main(){ int a[20]; Ovdje smo deklarirali da niza naziva a ima 20 mjesta za pohranu svakog podatka u memoriju, int x; što znači da možemo spremiti broj od 20 znamenki u taj prostor. for( x=0;x<10;x++) { cin>>a[x]; Budući da imamo for petlju prilikom prvog unosa taj unos se sprema u polje na 0. poziciju u } memoriji, drugi unos se sprema na 1. poziciju i tako za svaki sljedeći unos....for (x=0;x<10;x++) { cout<<a[x]; Na isti način kako su se podaci spremali u memoriju sada se iz memorije čitaju i zapisuju } na zaslon. system("pause"); return 0;}
Program koji ispisuje svaki drugi broj iz niza:
#include<iostream>using namespace std;int main(){ int a[20]; int x;for( x=0;x<10;x++){ cin>>a[x];}for (x=0;x<10;x=x+2) Vrijednost X može rasti ili padati za koji god vi broj odlučite, to je na vama, ovisi { jedino o rezultatima koje želite postići. cout<<a[x]; } system("pause"); return 0;} Program za računanje prosjeka niza:
#include<iostream>using namespace std;int main(){ int a[20]; float k,l; l=0; Prije petlje potrebno je inicirati varijable l i k na 0 jer na taj način omogučujemo zbrajanje k=0; for(int i=0; i<10; i++) Kao što vidite u for petlji se ne mora koristiti samo x varijabla. { cin>>a[i]; k=k+1; Prije petlje vrijednost varijable k je 0, a prilikom svakog prolaska kroz petlju raste za 1 l=l+a[i]; Prije petlje vrijednost varijable l je 0, a prilikom svakog prolaska kroz petlju raste za vrijednost } vrijednost koja se u nizu nalazi na tom mjestu a[i]. cout<<l/k; system("pause"); return 0;}
#include<iostream>using namespace std;int main(){ int a[20]; float k,l,z; l=0; k=0; cin>>z; for(int i=0; i<z; i++) Ovdje smo umjesto broja 10 stavili varijablu z koju unosimo prilikom izvođenja programa. { Sada se petlja ne izvršava za 10 brojeva, već za onoliko brojeva koliko dodijelili varijabli z. cin>>a[i]; k=k+1; l=l+a[i]; } cout<<l/k; system("pause"); return 0;}
Program koji izračunava najveći broj u nizu:
#include<iostream>using namespace std;int main(){ int a[20]; int najveci; int z; cin>>z; for(int i=0; i<z; i++) { cin>>a[i]; } najveci=a[0]; Izjednačili smo vrijednost variable majveci i for(int i=0; i<z;i++) vrijednosti prvog polja u nizu. { if (najveci<a[i]) Ako je vrijednost nekog polja u nizu veće od varijable { najveci uvjet je ispunjenjen i izvršiti će se zamjena, novi najveci će biti jednak vrijednosti toga polja. najveci=a[i] Ako želimo najmanji u nizu samo moramo izmjeniti znak cout<<"Najveći je "<<najveci; jednakosti. system("pause"); Na kraju samo ispišemo vrijednost varijable najveci. return 0;}Kao što ste primetili možemo kombinirati razne naredbe i na taj način doći do željenih rezultata. Ovdje smo koristili kombinaciju for i if naredbe. Dozvoljen su sve kombinacije koje vam padnu na pamet, ali to ne znači da je svaka kombinacija dobra. Neke od njih su učinkovitije, a neke su "glupe".
Program za sortiranje polja u nizu:
#include<iostream>using namespace std;int main(){ int niz[20]; int x,privremeni,k; int zamjena; cin>>k; for (x=0; x<k; x++) { cin>>niz[x]; } for (x=0;x<k-1;x++) Ovdje je bitno umanjiti raspon for petlje za jedan, jer ćemo kasnije { vrijednost polja uvećavati za jedan. if (niz[x]<niz[x+1]) Ako je vriejdnost drugog polja veća od vrijednsoti prvog uvjet je ispunjen i početi će izvršavanje algoritma za sortiranje. Da smo for petlju ostavili { do k vrijednost polja x+1 za k ne bi bila zadovoljena i program se ne bi izvršio. privremeni=niz[x]; Varijabli privremeno dodjeljujemo vrijednost niz[x]. niz[x]=niz[x+1]; Vrijensot niz[x] mijenjamo vrijednošću niz[x]+1. niz[x+1]=privremeni; Vrijednost niz[x+1] mojenjamo sa vrijenosti varijable privremeni } } Petlja će se izvoditi sve dok se cijeli niz ne for (x=0;x<k;x++) sortira od većeg prema manjem. Ako promjenimo znak { jednakosti niz možemo sortirati i od manjem prema većem. cout<<niz[x]; Ispis sortiranog niza. } system("PAUSE"); return 0;}