II Grupa Flashcards

1
Q
  1. Opisite ulogu klase Math u Java programima? Da li se kreira Math objekat za pozive metoda?
A

Klasa Math je deo Javine biblioteke koja sadrzi veliki broj metoda koji obezbedjuju izracunavanje razlicitih matematickih funkcija. Math objekti se ne kreiraju kao tradicionalne metode.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q
  1. Pokažite polimorfizam na primeru metoda klase Math.
A
Math.max (a, b) - ako su a i b int onda ce izraz vratiti int. Ako su vrednosti long, vratice long, itd.
Isto npr Math.round (x) - za double x - ce vrednost biti double, za float x - ce vrednost biti float, itd.
Ali sqrt(x) uvek pretvara x u double i vraca vrednost tipa double.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q
  1. Objasnite redosled izvrsavanja matematickih operacija u Java programima.
A

Redosled zavisi od vrste operacija koje treba izvrsiti i od zagrada koje se koriste.
Recimo da imamo izraz:
x = ( -b + Math.sqrt(bb - 4ac) ) / ( 2a )
Prvo se koriste operacije mnozenja i deljenja, a zatim sabiranja i oduzimanja.
Pri ovome, postuje se i redosled operacija koji definisu zagrade. Prvo se izracunavaju operacije u okviru unutrasnjih zagrada, pa onda operacije u okviru spoljasnjih.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q
  1. Objasnite eksplicitnu i implicitnu konverziju primitivnih tipova podataka.
A
Eksplicitna konverzija (downcasting) predstavlja konverziju veceg tipa u manji tip (na primer: int x = (int)y; a y je tipa long). 
Implicitna konverzija (upcasting) predstavlja konverziju manjeg tipa u veci tip (na primer: long y = x; a x je tipa int).
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q
  1. Kako se ucitavaju stringovi sa tastature?
A
Kreiranjem objekta klase Scanner kome je kao argument proslendjen (System.in) omogucavamo unos vrednosti sa tastature u program. U slucaju unosa teksta koristimo metode .next() i .nextLine(). Metoda .next() omogucava unos samo jedne reci. Dok unos recenice koristimo metodu .nextLine().
        Scanner sc = new Scanner ( System.in );
	//prosledjuje se rec
	String a = sc.next();
	//prosledjuje se recenica
        String b = sc.nextLine();
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q
  1. Objasnite formatiranje izlaza primenom naredbe printf().
A
→Metoda System.out.printf() može imati jedan argumenat ili vise njih razdvojenih zapetama. Prvi argument je formatirani string (objekat tipa String) kojim se odredjuje format izlaznih podataka. Preostali argumenti predstavljaju vrednosti koje se prikazuju. 
     System.out.printf(formatiraniString, argument1, argument2...argumentN);
→Zeljeni izlazni format neke vrednosti se navodi u prvom argumentu metoda printf() zapisom koji pocinje znakom procenta (%), zavrcava se odredjenim slovom, a izmedju mogu biti jos neke informacije. Slovo na kraju ukazuje na tip podatka koji se prikazuje, pri cemu se d koristi za cele brojeve, f za realne brojeve, s za stringove i tako dalje. Između pocetnog znaka % i slova na kraju moze se navesti minimalan broj mesta za ispis podataka.
     double prosekOcena = 89.0 / 9;
     System.out.printf("Prosek ocena je: %5.2f\n", prosekOcena);
     //na ekranu bismo dobili sledeci rezultat:
     Prosek ocena je: 9.89
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q
  1. Koje tipove petlji poznajete u Java jeziku? Napisite ih u opstem obliku. Pokazite jedan jednostavan Java primer uradjen primenom razlicitih vrsta petlji.
A

→ U Javi postoji 4 vrsta petlji, a to su: for petlja, for-each petlja, while petlja i do-while petlja.

for
for (kontrolni deo) {
naredba1;
…
naredbaN;
}
Gde je kontrolni deo:
(inicijalizacija;logickiIzraz;
zavrsnica )
int suma = 0;
for ( int i = 0; i < 10; i++ ) {
suma += 1;
}
System.out.print(suma);
for-each
for (kontrolni deo) {
naredba1;
…
naredbaN;
}
Gde je kontrolni deo: ( inicijalizacija : niz )
int suma = 0;
int[] niz = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
for ( int i : niz ) {
suma += 1;
}
System.out.print(suma);
while
while (logickiIzraz) {
naredba1;
…
naredbaN;
}
int suma = 0;
int i = 0;
while ( i < 10 ) {
suma += 1;
i++;
}
System.out.print(suma);
do-while
do {
naredba1;
…
naredbaN;
} 
while ( logickiIzraz);
int suma = 0;
int i = 0;
do {
suma += 1;
i++;
} while (i < 10);
System.out.print(suma);

Svaka petlja izbacuje rezultat 10 za sumu.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q
  1. Napravite razliku izmedju while i do-while petlje. Pokazite na primeru.
A

→ Razlika izmedju while i do-while petlje je u tome sto se kod while petlje prvo proveri uslov, a zatim izvrsi blok petlje (ukoliko je uslov zadovoljavajuc) dok kod do-while petlje se prvo izvrsi blok petlje, a zatim se proverava uslov. Do-while petlja ce se uvek izvrsiti bar jednom.

While petlja:
int i = 11;
while (i < 10) {
//nista se nece stampati
System.out.print(i);
i++;
}
Do-while petlja:
int i = 11;
do {
//stampa broj 11
System.out.print(i);
i++;
} while (i < 10);
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q
  1. Po cemu se razlikuju for i for-each petlja?
A

→ For petlja je dobar izbor kada vam treba
petlja koja se izvrsava tacno odredjeni
broj puta. Koristi se kada vam nisu potrebne
unutrasnje kontrole u petlji.
→ For-each petlja je korisna kada neka
operacija treba da bude izvrsena nad
svim clanovima niza, ili neke druge
container klase. Eliminise sanse da se pojavi greska pri
definisanju petlje i njenoj aritmetici.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q
  1. Pokazite na primeru i objasnite primenu ugnjezdenih petlji.
A
Ugnježdene petlje možemo da koristimo kada pravimo matricu. Tada nam jedna petlja služi za kretanje po kolonama, a druga po redovima.
int n = 3;
int m = 3;
/*kretanje po redovima, svaki put kada se zavrsi logicki iskaz unutrasnje for petlje, spoljasnja se ponavlja, i tako sve dok se i sama ne izvrsi tj. dok i ne dobije vrednost 3*/
for (int i = 0; i < n; i++) {
//kretanje po kolonama, prati vrednost m promenjive i izvrsava se sve dok j ne dobije vrednost 3
for (int j = 0; j < m; j++) {
//stampa zvezdicu posle svakog prolaza unutrasnje patlje
System.out.print("*");
}
//posle svakog izvrsenja unutrasnje pelje prebacuje na novi red
System.out.println();
}
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q
  1. Sta su metode? Kako se definisu metode? Kako se pozivaju metode?
A

Metode predstavljaju potprograme koji pomazu glavnom programu u toku njegovog izvrsavanja. Potpis metode se sastoji od modifikatora, povratnog tipa, imena (prvo slovo je uvek malo) i parametara. Metode se mogu pozivati u glavnom programu ili u drugim metodama pomocu njihovog imena ( pr. imeMetode(parametri || ako postoje) ). Unutar zagrada stoje parametri ukoliko su oni definisani unutar originalne metode.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q
  1. Sta su modifikatori pristupa? Objasnite ih pojedinacno.
A

Postoje:
private = metod moze da bude aktiviran samo od objekta klase gde se nalazi.
protected = metod moze da bude aktiviran iz programa istog paketa, objekta ove klase i njenih podklasa.
public = metod moze biti aktiviran bilo kojim java programom.
default = ako ne koristimo nikakav modifikator pristupa i on je dostupan samo unutar paketa.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q
  1. Na osnovu povratnog tipa kako delimo metode?
A

Na osnovu povratnog tipa metode delimo u dve vrste. Sa i bez povratnog tipa. Bez povratne vrednosti su metode tipa void, dok su sve ostale metode imaju povratni tip. One moraju sadrzati kljucnu rec return i vrednost koju vraca. Ta vrednost mora da se slaze sa navedenom vrednoscu tipa rezultata metode koji se definise. Sto znaci da ako nam je metod tipa boolean, return moze biti samo true ili fals. Dok ako nam je metod double return vrednost mora vracati double broj.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q
  1. Na osnovu nacina pozivanja kako delimo metode?
A

Generalno, poziv nekog metoda u Javi moze imati tri oblika. Najprostiji oblik naredbe poziva metoda je imeMetoda(listaArgumenata). Prema tome na mestu u programu gde je potrebno izvrsavanje zadatka koji neki metod obavlja, stavlja se samo njegovo ime i argument u zagradi kojoj odgovara parametrima metode. Drugi je pozivanje statickih metoda. One se definisu modifikatorom static i mogu se pozvati i izvan klase u kojoj su definisani. Sto znaci da se zapisuju kao ImeKlase.imeMetoda(listaArgumenata), gde je ImeKlase ime one klase u kojoj se metod definise. I poslednje je pozivanje metoda objekata. Metod objekata ima efekta samo na odredjenom objektu gde se poziva navodjenjem odredjenog objekta. On se definise u okviru klase, ali vazi samo za odredjeni objekat te klase. On ne pripada celoj klasi u kojoj je definisan, te se poziva obavezno uz navodjenje imena metoda kome pripada i na koji ima efekta. imeObjekta.imeMetada(listaArgumenata);

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q
  1. Navedite prednosti primene metoda u programima.
A

Metod dosta olaksava rad u izradi neke aplikacije. Moze se skratiti pisanje u slucaju kada jedan blok koda pozivamo vise puta. Takodje cini nas kod preglednijim. Dobra praksa je da program ima vise metoda, cime ga delimo na manje celine i cinimo ga laksim za citanje i rad.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q
  1. Objasnite kako metoda vraca vrednost?
A

Metod moze vracati jednu vrednost koja mora biti onog tipa koji je naveden u potpisu metoda, a koja se dobija kao rezultat pozivanja te metode. Ovo se postize dodavanjem naredbe return pri kraju bloka koda koja vraca rezultat metode. Ako metoda ne vraca vrednost onda koristimo kljucnu rec void.

17
Q
  1. Sta je preklapanje metoda (overloading)?
A

Preklapanje metoda (overloading) nastaje kada dve ili vise metoda u klasi imaju isto ime, a razlicitu listu parametara.

18
Q
  1. Sta je redefinisanje metoda (overriding)?
A

Redefinisanje metoda (overriding) predstavlja promenu metode superklase u njenoj podklasi. Za redefinisanje metode koristimo anotaciju @Override.

19
Q
  1. Sta je jednodimenzionalni niz?
A

Jednodimenzionalni niz predstavlja skup sa konacnim brojem istorodnih elemenata koji su poredjani horizontalno jedan pored drugog.

20
Q
  1. Kako se konstruise niz?
A

Niz se moze konstruisati na dva nacina.
Prvi je niz sa ne odredjenim elementima kome se poznaje velicina i konstruise se kao
int[] imeNiza = new int[brojElemenata];
Drugi nacin je kod niza sa vec poznatim elementima, i on se konstruise
int[] niz = {0, 1, 2, 3, 4};

21
Q
  1. Kako se pristupa clanovima niza?
A

Clanovima niza se pristupa pomocu njihovih indeksa. Pocetna vrednost indeksa u nizu je 0 (nula) i ide do n-1. Time, ako imamo niz velicine n = 5 njeni elementi su niz[0], niz[1], niz[2], niz[3], niz[4].

22
Q
  1. Ukoliko se ne dodeli vrednost svim clanovima niza, koje podrazumevane vrednosti dobijaju ti clanovi?
A

U koliko se ne dodeli vrednost svim clanovima niza, oni dobijaju vrednosti na osnovu njihovog tipa. Za tipove byte, short, int i long vrednosti su 0 (nula), float i double su 0.0, za boolean je false, a za char je \u0000.

23
Q
  1. Objasnite na koji nacin klasa Arrays olaksava rad sa nizovima?
A

Do olakšavanja rada sa nizovima dolazi tako sto klasa Arrays ima nekoliko statickih metoda koje obezbedjuju korisne operacije nad nizovima, ciji je bazni tip jedan od primitivnih tipova.

24
Q
  1. Navedite nedostatke nizova.
A

Jedan od glavnih nedostataka nizova jeste njihova fiksna duzina. Prilikom svakog kreiranja nizova, mora se definisati njihova duzina.

25
Q
  1. Objasnite ucitavanje i obradu jednodimezionalnog niza.
A

→ Ucitavanje velicine niza n se cini pomocu for ili for-each petlje. Recimo da radimo sa for petoljom imali bi:

Scanner sc = new Scanner(System.in);
// odredjujemo duzinu niza
int a = sc.nextInt();
int[] niz = new int[a];
for ( int i = 0; i < niz.lenth; i++) {
// upisujemo elemente niza
niz[i] = sc.nextInt(); 
}
// ispisujemo niz
for(int i = 0; i < niz.length-1; i++){
System.out.print(niz[i]); 
}

→ Ovde prvo pomocu skenera dodeljujemo vrednost elementu a, koja odredjuje velicinu niza u sledecoj liniji. Nakon toga prolazimo kroz for petlju gde ispitujemo ako je i manji od duzine niza. Ako jeste upisujemo broj za element niza i povecavamo i za 1. Tako sve dok i ne bude iste velicine kao i duzina niza gde izlazimo iz for petlje i pomocu dodatne for petlje ispisujemo elemente niza.

26
Q
  1. Algoritam sortiranja jednodimenzionalnog niza.
A
for (int i = 0; i < niz.length - 1; i++) {
for (int j = i + 1; j < niz.length; j++) {
if (niz[i] > niz[j]) {
int temp = niz[i];
niz[i] = niz[j];
niz[j] = temp;
    }
  }
}