You are on page 1of 25

BILD-IT

LEKCIJA 7: 1D & 2D nizovi


PONAVLJANJE
Šta su metode ?

Koje vrste metoda imamo ?

Možemo li koristiti return u void metodama ?

Šta je method overloading ?


PONAVLJANJE
Šta je to variable scope ?

Java je PASS-BY-VALUE ili PASS-BY-REFERENCE?

Kako pozivamo metode ?

Kako generišemo nasumične brojeve?


ZADATAK
Napisati metodu koja ima sledeci header:
public static String removeChar(String str, char ch)

Metoda prima string i karakter i vraca novi string koji predstavlja


originalni string sa izuzetkom proslijedjenog karaktera.
NIZOVI (ARRAYS)
Pretpostavimo, na primjer, da moramo učitati 100 brojeva, izračunati
njihov prosjek, te odrediti koliko je učitanih brojeva iznad izračunatog
prosjeka.

Kako bi to uradili ?
NIZOVI (ARRAYS)
Jedan način:
int br1 = unos.nextInt();
int br2 = unos.nextInt();
int br3 = unos.nextInt();

br100 = unos.nextInt();
NIZOVI (ARRAYS)

Bolji način - korištenjem nizova.

Primjer: AnaliziranjeBrojeva.java
NIZOVI (ARRAYS)

Nizovi - kolekcije podataka istog tipa.

ili ako je lakše: kolekcije varijabli istog tipa.


NIZOVI (ARRAYS)
Da bi koristili nizove u našim programima, moramo prvo deklarisati
varijablu kako bi mogli referencirati kreirani niz:

tipPodataka[] referentnaVarijabla;

Tip podataka može biti bilo koji tip podataka - svi elementi u nizu će biti
ovog tipa.
double[] niz;
KREIRANJE NIZOVA
Imamo 2 načina kreiranja(deklaracija) nizova:

tipPodataka[] referentnaVarijabla = new tipPodataka[veličinaNiza];


tipPodataka referentnaVarijabla[] = new tipPodataka[veličinaNiza];

int[] niz = new int[10];


KREIRANJE NIZOVA
Ako želimo dodati neku vrijednost u niz:
niz[index] = 25;

Ako želimo pročitati vrijednost iz niza:


Sysout( niz[index] );

Primjer: PopuliranjeNizova.java
KREIRANJE NIZOVA
Imamo 2 načina inicijalizacije nizova:

double[] niz = {1.9, 2.4, 5.4, 23.2};


lista[0] = 1.9;
lista[1] = 2.4;
lista[2] = 5.4;
lista[3] = 23.2;
PROCESIRANJE NIZOVA
Prilikom procesiranja nizova elemenata, najčešće koristimo for petlju, iz
2 razloga:
1. Svi elementi u nizu su istog tipa te ih je moguće vrlo lako jednako
procesirati koristeći se petljom
2. Budući da je dužina niza unaprijed poznata, prirodno je koristiti for
petlju.
Primjer: ProcesiranjeNizova.java
ZADATAK

Napisati program koji pita korisnika da unese veličinu niza, i popuniti taj
niz random brojevima.

Na kraju, ispisati sve elemente niza u konzolu.


NIZOVI I METODE
Java koristi pass-by-value da proslijedi argumente metodama.

Za argumente primitivnih tipova podataka, vrijednost argumenta biva


prosljeđena.
Za argumente niz tipa, vrijednost arugmenta nije primitivna vrijednost
nego referenca na niz;
Primjer: Test.java
NIZOVI I METODE

Kao što smo mogli vidjeti u prethodnim primjerima, niz možemo


proslijediti metodama. Isto tako, metoda može vratiti niz.

Primjer: Naopako.java
VAR-ARG
Metodama možemo proslijediti varirajući broj argumenata istog tipa
(variable-length argument list - var arg). Da bi ovo postigli, parametar u
potpisu metode trebamo deklarisati na sljedeći način:

tipPodataka... imeParametra

int… brojevi
KOPIRANJE NIZOVA
Kopiranje nizova:

1. Korištenjem petlje da kopiramo svaki individualni element, jedan po


jedan, iz niza u niz
2. Korištenjem static arraycopy metode iz System klase

Primjer: KopiranjeNizova.java
SORTIRANJE NIZOVA
Sortiranje nizova:

1. Pješke, pišući sami algoritme za sortiranje


2. Korištenjem static sort metode iz Arrays klase
2D NIZOVI
Svaki 2D niz je u suštini niz u kojem je svaki element 1D niz.

Koristimo da pohranimo matrice ili tabele podataka.

int[][] matrica = new int[5][5];


2D NIZOVI

Prilikom procesiranja 2D nizova elemenata, najčešće koristimo dvije for


petlje, iz istih razloga kao i kod 1D nizova.

Primjer: Procesiranje2DNizova.java
2D NIZOVI I METODE

Isto kao i 1D nizove, i 2D nizove možemo proslijediti metodi, i vratiti iz


metode.

Primjer: Proslijedi2DNiz.java
ZADATAK

Napisati program, gdje korisnik unese velicinu niza, i unosi vrijednosti


niza. Kad unese sve vrijednosti niza, program ispisuje najveci element
niza i index na kojem se on nalaze.
ZADATAK

Napisati metodu koja prima dva niza, i vraca niz zajednickih elemenata
u oba niza. Method header:
public static int[] returnCommonElements(int[] a,int[] b)
ZADATAK
Napisati dvije overload-ane metode koje vraćaju aritmetičku
sredinu(prosjek) niza sa sledećim header-ima:
public static int average(int[] array)
public static double average(double[] array).
Napisati test program koji kaže korisniku da unese 10 double brojeva,
izračunava prosjek pozivajući metodu i prikazuje prosjek tog niza
brojeva.

You might also like