Professional Documents
Culture Documents
Zadaci JAVA
Zadaci JAVA
For petlja
Zadatak 1
Napraviti klasu TestProveraIspisivaca koja kreira jedan objekat klase Ispisivac i poziva sve njene metode.
Reenje
void ispisi1_50(){
for (int i=1; i<=50; i++) System.out.println(i);
}
void ispisi0_30(){
for (int i=0; i<=30; i++) System.out.println(i);
}
void ispisi50_1(){
for (int i=50; i>=1; i--) System.out.println(i);
}
void ispisi32_minus2(){
for (int i=32; i>=-2; i--) System.out.println(i);
}
is.ispisi1_50();
is.ispisi0_30();
is.ispisi50_1();
is.ispisi32_minus2();
is.ispisi0_n(12);
is.ispisi0_minusn(-3);
is.ispisiA_B(10,20);
is.ispisiA_BbezAB(10, 20);
is.ispisiB_A(2, 8);
Zadatak 2
Napraviti klasu ProveraNaucnogKalkulatora koja proverava rad klase Kalkulator pozivanjem nekih
njenih metoda i ispisivanjem rezultata koji metode vraaju na ekranu uz odgovarajuu poruku.
Reenje
public class NaucniKalkulator {
}
public class ProveraNaucnogKalkulatora {
Nizovi
Zadatak 1
Metodu za dodavanje elemenata u niz. Ova metoda prima kao ulazni argument broj koji je
potrebno dodati u niz. Broj se dodaje na prvo slobodno mesto u nizu. Naravno, potrebno je u
okviru metode i uveati vrednost brojaa za jedan.
Metodu koja ispisuje na ekranu prvi element niza.
Metodu koja ispisuje na ekranu deseti element niza.
Metodu koja ispisuje na ekranu jedan od elemenata niza iji se indeks unosi u obliku argumenta
metode.
Metodu za ispisivanje svih elemenata niza.
Metodu koja rauna i vraa zbir elemenata niza.
Metodu koja rauna i vraa proizvod elemenata niza.
Metodu koja pronalazi i vraa minimalni element niza.
Metodu koja pronalazi i vraa maksimalni element niza.
Metodu koja proverava da li se odreeni broj nalazi u nizu. Ako se nalazi, metoda vraa TRUE, u
suprotnom vraa FALSE. Broj koji se trai se unosi kao ulazni argument.
Napraviti i klasu ProveraNizaBrojeva koja kreira dva objekta klase NizBrojeva i u prvi unosi elemente 4 i
7, a u drugi 3 , 5 i 10. Ispisati na ekranu zbir elemenata prvog niza i minimalni element drugog niza.
Reenje
void ispisiPrvi(){
System.out.println (niz[0]);
}
void ispisiDeseti(){
System.out.println (niz[9]);
}
void ispisi(){
for (int i=0; i<brojac; i++) System.out.println(niz[i]);
}
int zbirNiza(){
int zbir = 0;
for(int i=0; i<brojac; i++) zbir=zbir+niz[i];
return zbir;
}
int proizvodNiza(){
int proizvod = 1;
for (int i=0; i< brojac; i++) proizvod = proizvod*niz[i];
return proizvod;
}
int minimalniElement(){
int min=niz[0];
for (int i=0; i<brojac; i++) if (niz[i]<min) min=niz[i];
return min;
}
int maksimalniElement(){
int max=niz[0];
for (int i=0; i<brojac; i++) if (niz[i]>max) max=niz[i];
return max;
}
return false;
}
n1.dodajElement(4);
n1.dodajElement(7);
n2.dodajElement(3);
n2.dodajElement(5);
n2.dodajElement(10);
Zadatak 2
Metodu za dodavanje elemenata u niz. Ova metoda prima kao ulazni argument broj koji je
potrebno dodati u niz. Pre nego to se izvri dodavanje, proverava se da li je kapacitet prekoraen
(da li je broja dostigao maksimalni kapacitet niza). Ako je kapacitet prekoraen, ispisuje se
poruka o greci. Ako nije, broj se dodaje na prvo slobodno mesto u nizu. Ako je element dodat,
potrebno je u okviru metode uveati vrednost brojaa za jedan.
Metodu koja sabira vrednosti prvog i poslednjeg elementa niza i vraa rezultat. Ako je niz prazan,
ispisuje se poruka o tome i metoda vraa nulu.
Metodu koja sabira samo pozitivne elemente niza i vraa njihovu vrednost.
Metodu koja mnoi samo negativne elemente niza i vraa njihov proizvod.
Metodu koja vraa broj ponavljanja nekog broja u nizu. Broj se prosleuje metodi u vidu ulaznog
argumenta.
Metoda koja ispisuje na ekranu lanove niza koji su parni brojevi.
Metoda koja ispisuje lanove niza koji su deljivi sa 5.
Metoda koja ispisuje lanove niza u obrnutom redosledu.
Potrebno je napisati i klasu ProveraNizaCelihBrojeva. U okviru nje je potrebno kreirati tri objekta klase
NizCelihBrojeva: prvi kapaciteta 3 lana, drugi kapaciteta 5 lanova, a trei kapaciteta 10 lanova. U prvi
niz je potrebno ubaciti elemente 1, -1 i 3 u drugi elemente 34 i 45 a u trei elemente 56, 67 i 89. Ispisati
na ekranu zbir prvog i poslednjeg elementa prvog niza. Drugi i trei niz ispisati u obrnutom redosledu.
Reenje
int[] celibrojevi;
int brojac;
int saberiPrviIPoslednji(){
if (brojac>0) {
int rezultat = celibrojevi[0]+celibrojevi[brojac-1];
return rezultat;
}
else {
System.out.println("Niz je prazan");
return 0;
}
}
void ispisiParne(){
for (int i=0; i<brojac; i++)
if ((celibrojevi[i]%2)==0)
System.out.println(celibrojevi[i]);
}
void ispisiDeljiveSaPet(){
for (int i=0; i<brojac; i++)
if ((celibrojevi[i]%5)==0)
System.out.println(celibrojevi[i]);
}
void ispisiObrnuto(){
for(int i=brojac-1; i>=0; i--) System.out.println(celibrojevi[i]);
}
n1.dodajElement(1);
n1.dodajElement(-1);
n1.dodajElement(3);
n2.dodajElement(34);
n2.dodajElement(45);
n3.dodajElement(56);
n3.dodajElement(67);
n3.dodajElement(-89);
Zadatak 3
Potrebno je napraviti klasu NizCena koja predstavlja niz cena raznih proizvoda i ima:
Atribut koji predstavlja niz cena proizvoda (primer cene: 100.5 dinara). Maksimalni kapacitet niza
je uvek 100 elemenata.
Atribut koji predstavlja broja elemenata niza. Broja na poetku ima vrednost nula jer je niz
prazan.
Metodu za dodavanje nove cene u niz. Dodavanje se vri samo ako je nova cena vea od nule i
ako u nizu ima mesta (broja je manji od maksimalnog kapaciteta). U suprotnom, potrebno je
ispisati poruku o greci. Ako se ubacivanje izvri, potrebno je broja uveati za jedan.
Metodu koja izraunava i vraa prosenu cenu proizvoda. Ukoliko je niz prazan, ispisuje se
poruka da je niz prazan i vraa se nula.
Metodu koja vraa najniu cenu proizvoda. Ukoliko je niz prazan, ispisuje se poruka da je niz
prazan i vraa se nula.
Metodu koja vraa najviu cenu proizvoda. Ukoliko je niz prazan, ispisuje se poruka da je niz
prazan i vraa se nula.
Metodu koja vraa razliku izmeu najnie i najvie cene. Ukoliko je niz prazan, ispisuje se poruka
da je niz prazan i vraa se nula.
Metodu koja ispisuje samo one cene proizvoda koje su vee od neke zadate vrednosti. Ta vrednost
se unosi u metodu kao ulazni argument. Ukoliko je niz prazan, ispisuje se poruka o tome.
Napisati klasu TestNizCena koja kreira jedan objekat klase NizCena. U ovaj niz cena je potrebno uneti
sledee cene: 123.0 , 234.55, 301.0 i 5000.0. Kada se to uradi,potrebno je na ekranu ispisati one cene koje
su vee od 300.0 dinara i razliku izmeu najnie i najvie cene.
Reenje
double prosecnaCena(){
if (brojac == 0) {
System.out.println("Niz je prazan");
return 0;
}
else {
double suma=0;
double prosek;
for (int i=0; i<brojac;i++) suma=suma+cene[i];
prosek=suma/brojac;
return prosek;
}
}
double najnizaCena(){
if (brojac == 0) {
System.out.println("Niz je prazan");
return 0;
}
else {
double min = cene[0];
for (int i=0; i<brojac;i++)
if (cene[i]<min) min=cene[i];
return min;
}
}
double najvisaCena(){
if (brojac == 0) {
System.out.println("Niz je prazan");
return 0;
}
else {
double max = cene[0];
for (int i=0; i<brojac;i++)
if (cene[i]>max) max=cene[i];
return max;
}
}
double razlikaMaxMin(){
if (brojac == 0) {
System.out.println("Niz je prazan");
return 0;
}
else {
double razlika = najvisaCena()-najnizaCena();
return razlika;
}
}
nc.dodajCenu(123.0);
nc.dodajCenu(234.55);
nc.dodajCenu(301.0);
nc.dodajCenu(5000.0);
nc.ispisiCeneVeceOd(300.0);
Zadatak 4
Konstruktor u kome se lanac kreira tako da mu maksimalni broj karika bude jednak vrednosti koja
se prosleuje konstruktoru u obliku ulaznog argumenta. Ako se desi da je ulazni argument manji
ili jednak nula, maksimalni kapacitet treba podesiti na 256 karika.
Metodu za dodavanje karika u DNK lanac. Nova karika se daje u vidu ulaznog argumenta.
Dodavanje se vri samo ako nova karika ima vrednost 'A', 'C', 'G' ili 'T' i ako u lancu ima mesta
(broj karika je manji od maksimalnog kapaciteta). U suprotnom, potrebno je ispisati poruku o
greci.
Metodu koja prebrojava i vraa koliko ima 'A' karika u lancu.
Metodu koja vraa trenutnu duinu lanca (broj karika).
Metodu koja vraa maksimalni kapacitet lanca.
Metodu koja vraa broj nepopunjenih mesta u lancu.
Metodu koja ispisuje karike DNK lanca u jednom redu.
Metodu koja ispisuje karike DNK lanca u jednom redu ali u obrnutom redosledu.
Potrebno je napraviti klasu TestDNKLanac koja kreira jedan DNK lanac maksimalne duine 8 karika i
unosi u njega elemente ACCGTTTT. Potrebno je ispisati ovaj DNK lanac u regularnom i obrnutom
redosledu.
Reenje
char[] karike;
int broj_karika;
int trenutnaDuzinaLanca(){
return broj_karika;
}
int maksimalniKapacitetLanca(){
return karike.length;
}
int preostaliKapacitet(){
return (karike.length-broj_karika);
}
dnk.dodajKariku('A');
dnk.dodajKariku('C');
dnk.dodajKariku('C');
dnk.dodajKariku('G');
dnk.dodajKariku('T');
dnk.dodajKariku('T');
dnk.dodajKariku('T');
dnk.dodajKariku('T');
dnk.ispisiDNKLanac();
dnk.ispisiDNKLanacObrnuto();
}
}
Zadatak 5
Potrebno je napraviti klasu TestAutobus koja kreira jedan objekat klase Autobus i uvodi u njega tri
putnika: na prvo, dvadeseto i poslednje mesto u autobusu. Posle toga, potrebno je ispisai statuse svih mesta
u autobusu.
Reenje
boolean imaSlobodnihMesta(){
for (int i=0; i<50; i++)
if (sedista[i]==true) return true;
return false;
}
int brojSlobodnihMesta(){
int broj_s=0;
for (int i=0; i<50; i++)
if (sedista[i]==true) broj_s++;
return broj_s;
}
int brojZauzetihMesta(){
int broj_z=0;
for (int i=0; i<50; i++)
if (sedista[i]==true) broj_z++;
return broj_z;
}
void ispisStatusaAutobusa(){
for (int i=0; i<50; i++)
if (sedista[i]==true)
System.out.println("Sediste broj "+i+" je slobodno");
else
System.out.println("Sediste broj "+i+" je zauzeto");
}
}
a.uvediPutnika(0);
a.uvediPutnika(19);
a.uvediPutnika(49);
a.ispisStatusaAutobusa();
}
}
Osnovni operatori
Zadatak 1
Napraviti klasu ProveraKalkulatora koja proverava rad klase Kalkulator pozivanjem svih njenih metoda sa
konkretnim vrednostima i ispisivanjem rezultata na ekranu.
Reenje
Zadatak 2
Reenje
}
public class TestKonvertorMetrickihJedinica {
Zadatak 3
Reenje
}
}
Zadatak 4
Metodu postaviKursEvra koja kao ulazni parametar prima novi kurs evra u dinarima i atribut
kurs_evra postavlja na tu vrednost.
Metodu postaviKursDolara koja kao ulazni parametar prima novi kurs dolara u dinarima i atribut
kurs_dolara postavlja na tu vrednost.
Metodu konvertujDinareUEvre koja, na osnovu unetog dinarskog iznosa izraunava i vraa
iznos u evrima po trenutnom kursu.
Metodu konvertujDinareUDolare koja, na osnovu unetog dinarskog iznosa izraunava i vraa
iznos u dolarima po trenutnom kursu.
Metodu konvertujEvreUDinare koja, na osnovu unetog iznosa u evrima izraunava i vraa
dinarski iznos po trenutnom kursu.
Metodu konvertujDolareUDinare koja, na osnovu unetog iznosa u dolarima izraunava i vraa
dinarski iznos po trenutnom kursu.
Metodu ispisiKursnuListu koja ispisuje trenutne kurseve za dolar i evro.
Napraviti klasu TestKonvertorValute koja kreira jedan objekat klase Konvertor valute i postavlja trenutni
kurs dolara na 60.34 dinara i evra na 76.89 dinara. Iskoristiti taj objekat za izraunavanje: dinarske
protivvrednosti 60 dolara, dinarske protivvrednosti 45 evra, dolarske protivvrednosti 6034 dinara i evro
protivvrednosti 150 dinara. Ispisati rezultate raunanaj, pa zatim ispisati kursnu listu na ekranu.
Reenje
double kurs_evra;
double kurs_dolara;
void ispisiKursnuListu(){
System.out.println("Kurs evra: 1 evro = "+kurs_evra+" dinara");
System.out.println("Kurs dolara: 1 dolar = "+kurs_dolara+" dinara");
}
}
k.postaviKursDolara(60.34);
k.postaviKursEvra(76.89);
k.ispisiKursnuListu();
}
}
Zadatak 1
Metodu ukljui koja ukljuuje televizor (postavlja vrednost atributa ukljucen na TRUE).
Metodu iskljui koja iskljuuje televizor (postavlja vrednost atributa ukljucen na FALSE).
Metodu daLiJeUkljucen koja vraa trenutnu vrednost atributa ukljucen.
Metodu pojacajTon koja povecava vrednost atributa jacina_tona za jedan.
Metodu smanjiTon koja smanjuje vrednost atributa jacina_tona za jedan.
Metodu iskljuciTon koja potpuno utiava ton (smanjuje vrednost jacine tona na 0).
Metodu vratiJacinuTona koja vraa trenutnu vrednost atributa jacina_tona.
Metodu promeniProgramNavise koja poveava vrednost atributa trenutni_program za jedan.
Metodu promeniProgramNanize koja smanjuje vrednost atributa trenutni_program za jedan.
Metodu vratiTrenutniProgram koja vraa vrednost atributa trenutni_program.
Metodu ispisiParametre koja ispisuje na ekranu trenutne vrednosti svih atributa televizora uz
odgovarajuu poruku.
Napraviti klasu TestTelevizor koja kreira jedan objekat klase Televizor i poziva neke od njegovih metoda.
Posle svakog poziva metode, pozvati metodu ispisiParametre i uoiti promene u vrednostima atributa.
Reenje:
void ukljuci(){
ukljucen = true;
}
void iskljuci(){
ukljucen = false;
}
boolean daLiJeUkljucen(){
return ukljucen;
}
void pojacajTon(){
jacina_tona = jacina_tona + 1;
}
void smanjiTon(){
jacina_tona = jacina_tona - 1;
}
void iskljuciTon(){
jacina_tona = 0;
}
int vratiJacinuTona(){
return jacina_tona;
}
void promeniProgramNavise(){
trenutni_program = trenutni_program + 1;
}
void promeniProgramNanize(){
trenutni_program = trenutni_program - 1;
}
int vratiTrenutniProgram(){
return trenutni_program;
}
void ispisiParametre(){
System.out.println("Jacina tona je "+jacina_tona);
System.out.println("Trenutni program je "+trenutni_program);
System.out.println("Televizor je ukljucen "+ukljucen);
}
t.ispisiParametre();
t.ukljuci();
t.ispisiParametre();
t.pojacajTon();
t.ispisiParametre();
t.promeniProgramNavise();
t.ispisiParametre();
trenutno_ukljucen = t.daLiJeUkljucen();
System.out.println("Televizor je trenutno ukljucen: "+trenutno_ukljucen);
trenutni_program = t.vratiTrenutniProgram();
System.out.println("Na televizoru trenutno ide program "+trenutni_program);
t.ispisiParametre();
}
Zadatak 2
Metodu podigniIznos koja prima kao ulazni parametar iznos novca koji korisnik eli da podigne
(realan broj npr. 550.5) i smanjuje vrednost atributa stanje za taj iznos.
Metodu uloziIznos koja prima kao ulazni parametar iznos novca koji korisnik eli da uloi (realan
broj) i poveava vrednost atributa stanje za taj iznos.
Metodu vratiStanje koja vraa trenutni iznos novca u automatu (vrednost atributa stanje).
Metodu ispisiStanje koja na ekranu ispisuje koja je trenutna koliina novca u automatu (vrednost
atributa stanje).
Napraviti klasu ProveraAutomataNovca koja kreira dva objekta klase AutomatNovca. U prvi automat
novca je potrebno uloiti 1002.03 dinara i ispisati stanje pre i posle ulaganja. Potrebno je i podii 234.55
dinara iz drugog automata i ispisati stanje automata pre i posle ulaganja.
Reenje
double stanje=5200.0;
a1.ispisiStanje();
a1.uloziIznos(1002.03);
a1.ispisiStanje();
a2.ispisiStanje();
a2.podigniIznos(234.55);
a2.ispisiStanje();
Zadatak 3
Metodu podesiFMFrekvenciju koja prima kao ulazni parametar novu FM frekvenciju i podeava
vrednost atributa fm_frekvencija na nju.
Metodu podesiAMFrekvenciju koja prima kao ulazni parametar novu AM frekvenciju i podeava
vrednost atributa am_frekvencija na nju.
Metodu vratiFMFrekvenciju koja vraa trenutnu vrednost atributa fm_frekvencija.
Metodu vratiAMFrekvenciju koja vraa trenutnu vrednost atributa am_frekvencija.
Metodu promeniBandNaAM koja menja vrednost atributa band na 'A'.
Metodu promeniBandNaFM koja menja vrednost atributa band na 'F'.
Metodu vratiBand koja vraa trenutnu vrednost atributa band.
Metodu ispisiParametre koja ispisuje trenutne vrednosti svih atributa uz odgovarajue poruke.
Napraviti klasu TestRadio koja kreira tri objekta klase Radio. Podesiti prvi radio da radi na AM frekvenciji
570. Podesiti drugi i trei radio da rade na FM frekvencijama 87.9 i 107.9 respektivno. Ispisati parametre
sva ti radija.
Reenje
r1.promeniBandNaAM();
r1.podesiAMFrekvenciju(570);
r2.promeniBandNaFM();
r2.podesiFMFrekvenciju(87.9);
r3.promeniBandNaFM();
r3.podesiFMFrekvenciju(107.9);
r1.ispisiParametre();
r2.ispisiParametre();
r3.ispisiParametre();
}
}
Zadatak 4
Napraviti klasu ProveraKlimaUredjaja koja koristi dva objekta klase KlimaUredjaj. Potrebno je prvu
klimu podesiti da greje na 27 C a drugu da hladi na 20 C. Ispisati parametre obe klime na ekranu.
Reenje
public class KlimaUredjaj {
void ispisiParametre(){
System.out.println ("Klima je podesena na "+trenutna_temperatura+" C");
System.out.println ("Rezim rada: "+rezim_rada);
}
k1.ukljuciRezimGrejanje();
k1.podesiTemperaturu(27);
k2.ukljuciRezimHladjenje();
k2.podesiTemperaturu(20);
k1.ispisiParametre();
k2.ispisiParametre();
}