JAVA PROGRAMSKI JEZIK-vjezbe.pdf

87
PROGRAMSKI JEZIK JAVA – UVOD Predmet: Principi programiranja Profesor: Prof. dr Zoran Avramović PANEVROPSKI UNIVERZITET APEIRON FAKULTET INFORMACIONIH TEHNOLOGIJA

Transcript of JAVA PROGRAMSKI JEZIK-vjezbe.pdf

Page 1: JAVA PROGRAMSKI JEZIK-vjezbe.pdf

PROGRAMSKI JEZIK JAVA – UVOD

Predmet: Principi programiranja

Profesor: Prof. dr Zoran Avramović

PANEVROPSKI UNIVERZITET APEIRON FAKULTET INFORMACIONIH TEHNOLOGIJA

Page 2: JAVA PROGRAMSKI JEZIK-vjezbe.pdf

UVOD – Objektno orijentisani programski jezici

Svi programski jezici obezbjeđuju apstrakciju.

Tako je mašinski jezik mala apstrakcija mašine na kojoj se

programi izvršavaju. Mnogi „proceduralni“ jezici koji su sljedili

mašinski kod (BASIC, Fortran i C), bili su apstrakcija mašinskog

jezika.

Ovi jezici su veliki napredak u odnosu na mašinski jezik, ali

njihova primarna apstrakcija ipak zahtjeva od vas da razmišljate

iz ugla strukture računara umjesto iz ugla problema koji

rješavate.

Page 3: JAVA PROGRAMSKI JEZIK-vjezbe.pdf

UVOD – Objektno orijentisani programski jezici

Objektno orijentisani pristup ide korak dalje, obezbjeđujući

alate pomoću kojih programer predstavlja elemente u prostoru

problema. Ovo je mnogo fleksibilnija i snažnija apstrakcija od

predhodne.

Objektno orjentisano programiranje dozvoljava da opišete

problem iz ugla problema, a ne iz ugla računara na kome će se to

rješenje izvršavati.

Prilikom razvoja Java jezika, ideja je bila da se stvori

programski jezik koji bi bio nezavisan od operativnog sistema,

baziran na C++-u, ali sa pojednostavljenom sintaksom,

stabilnijim runtime sistemom i pojednostavljenom kontrolom

memorije.

Page 4: JAVA PROGRAMSKI JEZIK-vjezbe.pdf

UVOD – Objektno orijentisani programski jezici

Tako je započet razvoj Java – programskog jezika, koji je danas

jedan od najmlađih objektno orjentisanih programskih jezika

razvijan je u Sun Microsystems-u početkom 1990-tih.

Sun Microsystems izbacuje prvu verziju ovog programskog

jezika, Java 1.0 u 1995. godini, pod motom “Jednom napiši,

izvršavaj bilo gdje”.

Krajem 2009. godine Java postaje vlasništvo ORACLE-a, po

čijim tvrdnjama se Java programski kod danas koristi na preko 3

milijarde raznih uređaja. Danas u 2012. godini Java doživljava

svoju sedmu verziju.

Page 5: JAVA PROGRAMSKI JEZIK-vjezbe.pdf

UVOD – Objektno orijentisani programski jezici

Javin izvorni kod nije kompajliran u mašinski kod nego je

pretvoren u takozvani bytecode koji zahtjeva posebno okruženje

da bi se mogao izvršavati.

To okruženje se u ovom slučaju zove Javina Virtuelna Mašina

(eng. Java Virtual Machine ili JVM). Trenutno JVM podržava

praktično sve operativne sisteme. Ideja je da ako se kod napiše i

kompajlira na jednoj platformi (npr. Mac OS X), taj isti bytecode

se može izvršavati na svim ostalim platformama koje imaju JVM

(npr. Microsoft Windows, Linux, Android) bez potrebe za

ponovnim kompajliranjem na toj platformi.

Page 6: JAVA PROGRAMSKI JEZIK-vjezbe.pdf

UVOD – Objektno orijentisani programski jezici

Slika prikazuje put od izvornog koda do virtualne mašine

Ova karakteristika Java jezika, da se izvorni kod prevodi u

“bytecode” pa se tek onda interpretira na virtuelnoj mašini za

određenu platformu, je najznačajnija za današnju veliku

rasprostranjenost i brz prodor ovog programskog jezika.

Page 7: JAVA PROGRAMSKI JEZIK-vjezbe.pdf

UVOD – Objektno orijentisani programski jezici

Java je danas prisutna na velikom broju uređaja, od mobilnih

telefona, preko tableta, televizora, automobila pa sve do servera i

super-računara.

Page 8: JAVA PROGRAMSKI JEZIK-vjezbe.pdf

Vrste java programa

– Aplikacija • uobičajeni program koji rješava neki problem potpuno

samostalno

– Aplet • izvršava se u Web pretraživaču u okviru neke Web strane

• automatska distribucija i instalacija

• kako se appleti učitavaju sa Interneta, uvedena su neka ograničenja radi sprečavanja zloupotrebe:

– appleti ne mogu da čitaju ili pišu u fajl sistemu korisnika

– ne mogu da komuniciraju sa serverima, osim sa onim sa kog su učitani

– ne mogu da pokreću druge programe

– Servlet, JSP (Java Server Pages) • izvršava se na Web serveru (dinamičke strane)

Page 9: JAVA PROGRAMSKI JEZIK-vjezbe.pdf

UVOD – Objektno orijentisani programski jezici

Šta je objekat kod objektno orijentisanih jezika?

1. Sve je objekat (možemo ga posmatrati kao poboljšanu

promjenjivu, on čuva podatke, ali možemo mu postaviti

zahtjeve koje on ispunjava vršeći operacije nad podacima),

2. Program je skup objekata, koji jedni drugima porukama

saopštavaju šta da rade,

3. Svaki objekat ima svoj memorijski prostor koji se sastoji

od drugih objekata,

4. Svaki objekat ima tip (klasu),

5. Svi objekti određenog tipa mogu da primaju iste poruke.

Page 10: JAVA PROGRAMSKI JEZIK-vjezbe.pdf

UVOD – Objektno orijentisani programski jezici

Objekat ima interfejs!

Objekti međusobno razmjenjuju poruke preko interfejsa.

Zahtjevi koji se postavljaju objektu definisani su preko

njegovog interfejsa, koji je određen tipom.

Interfejs određuje koje zahtjeve možemo postaviti određenom

objektu.

Page 11: JAVA PROGRAMSKI JEZIK-vjezbe.pdf

UVOD – Objektno orijentisani programski jezici

Sijalica sj = new Sijalica();

Sj.ukljuci()

Sijalica

ukljuci()

iskljuci()

pojacaj()

prigusi()

Ime tipa

Interfejs

U ovom primjeru, ime tipa/klase je Sijalica, ime posebnog objekta

klase Sijalica je sj, a zahtjevi koje možemo postaviti objeku Sijalica

su : uključi se, isključi se, pojačaj svjetlo i priguši svjetlo.

Objekat tipa Sijalica pravimo kada definišemo referencu (sj) na

dati objekat i pozovemo new, čime zahtjevamo novi objekat tog tipa.

Page 12: JAVA PROGRAMSKI JEZIK-vjezbe.pdf

Osnovni elementi Java jezika

• Imena (identifikatori)

• Tipovi podataka

• Promjenjive

• Izrazi

Page 13: JAVA PROGRAMSKI JEZIK-vjezbe.pdf

Imena

Imena za razne elemente Java programa

– Ime mora da počinje slovom ili _

– Ostali znaci: slova, cifre ili _

– Razlikuju se mala i velika slova

– Dužina nije ograničena

– Ne mogu se koristiti rezervisane (službene,

ključne) riječi

Page 14: JAVA PROGRAMSKI JEZIK-vjezbe.pdf

Imena

Konvencije za imenovanje – Paketi: sva slova su mala

• mojpaket

– Klase: početna slova svake riječi su velika slova

• MojaKlasa

– Metod/promjenljiva: početno slovo je malo, a naredne riječi počinju sa velikim slovima

• mojMetod, mojaPromjenljiva

– Konstante: sva slova su velika • MOJA_KONSTANTA

Page 15: JAVA PROGRAMSKI JEZIK-vjezbe.pdf

Java ključne rječi

Page 16: JAVA PROGRAMSKI JEZIK-vjezbe.pdf

Tipovi podataka

Kada deklarišemo promjenljivu, moramo zadati njen tip. Deklaracija promjenjivih su oblika: tip ime.

Tip vrjednosti smještene u promjenjivoj je tip podataka. Tipovi

podataka mogu biti ili primitivni ili referentni.

Primitivni tip sadrži vrjednost koja odgovara tipu podataka, kao

što je npr. broj 1 ukoliko je u pitanju cjelobrojni tip. Sa druge

strane, referentni tipovi ukazuju gdje je stvarna vrjednost ili set

vrjednosti smještena.

Postoji osam različitih primitivnih tipova podataka u programskom

jeziku Java. Njihove veličine su unaprijed definisane

specifikacijom jezika, tako da ne moramo voditi računa o

razlikama platformi.

Page 17: JAVA PROGRAMSKI JEZIK-vjezbe.pdf

Tipovi podataka

• Tipovi podataka byte, short, int i long služe za rad sa cjelim

brojevima i razlikuju se po veličini memorijske lokacije koja se

koristi za binarni zapis cjelih brojeva.

• Tipovi podataka float i double služe za predstavljanje realnih

brojeva . Ova dva tipa se razlikuju po veličini memorijske lokacije

koja se koristi za binarni zapis realnih brojeva, ali i po tačnosti tog zapisa.

• Tip podataka char sadrži pojedinačne alfabetske znakove kao što su mala i velika slova,cifre, znakovi interpunkcije i neki

specijalni znakovi (za razmak, za novi red, za tabulator, . . . ).

Page 18: JAVA PROGRAMSKI JEZIK-vjezbe.pdf

Tipovi podataka

• Tip podataka boolean služi za predstavljanje samo dvije logičke

vrjednosti: tačno (true) i netačno (false). Logičke vrjednosti u

programima se najčešće dobijaju kao rezultat izračunavanja

relacijskih operacija.

• Najzad, deveti primitivni tip podataka void je na neki način

degenerativan jer ne sadrži nijednu vrjednost. On je analogan praznom skupu u matematici i služi u nekim sintaksnim

konstrukcijama za formalno označavanje tipa podataka bez

vrjednosti.

• Svi primitivni tipovi podataka imaju tačno određenu veličinu

memorijske lokacije u bajtovima za zapisivanje njihovih vrednosti.

Page 19: JAVA PROGRAMSKI JEZIK-vjezbe.pdf

Tipovi podataka

Tip

podataka

Opis Veličina

boolean logička vrjednost N/A (ili je true(tačno) ili

false (netačno))

byte cijeli broj definisan sa 8 bita 8 bita

short cijeli broj definisan sa 16 bita 16 bita

int cijeli broj definisan sa 32 bita 32 bita

long cijeli broj definisan sa 64 bita 64 bita

float pokretni zarez IEEE 754 jednostruke

preciznosti

32 bita

double pokretni zarez IEEE 754 duple

preciznosti

64 bita

char znak 16 bita

Page 20: JAVA PROGRAMSKI JEZIK-vjezbe.pdf

Tipovi podataka

– Cjelobrojni tipovi podataka

– Brojevi sa pokretnim zarezom

– Znakovi

– Logički

29

Page 21: JAVA PROGRAMSKI JEZIK-vjezbe.pdf

Promjenjive

• Promjenjiva može biti deklarisana unutar klase i tada se

naziva promjenjiva članica (klase).

• Promjenjiva deklarisana unutar neke metode je lokalna

promjenjiva.

• Lokalne promjenjive imaju oblast važenja bloka.

• Globalne promjenjive u JAVI NE POSTOJE:

• Nema razlike između definicije i deklaracije promjenjive.

• Svaka promjenjiva se mora definisati (deklarisati )

• Deklaracija promjenjive:

• tip + ime + (eventualno) početna vrjednost

Format:

tip ime = vrjednost;

Tip promjenljive je primitivni ili klasni tip.

Page 22: JAVA PROGRAMSKI JEZIK-vjezbe.pdf

Konstatnte

int

double

flag

xCo

o

=

=

0x23ff; //

2.3E-11;//

cijeli broj zadat heksadecimalno floating point

konstante su tipa double

float

char

xx

slovo =

=

11.2F; /

'c';

konstanta tipa float ima F na kraju

• Sintaksa konstanti je ista kao u C-u. Na primjer:

char znak = '\u05D0'; // znak א predstavljen Unicodovim kodom

• U Javi se promjenljiva može učiniti konstantnom pomoću ključne riječi

final (const u C-u).

• Na primjer:

final x=3; znači da promjenljivu x više ne možemo mijenjati.

Page 23: JAVA PROGRAMSKI JEZIK-vjezbe.pdf

Izrazi

• Izrazi su, pojednostavljeno rečeno, formule na osnovu kojih se

izračunava neka vrjednost.

• Primjer jednog izraza u Javi je:

2 * r * Math.PI

• Bitna karakteristika izraza je to što se tokom izvršavanja programa

svaki izraz izračunava i kao rezultat se dobija tačno jedna vrjednost

koja predstavlja vrjednost izraza.

• Ova vrjednost izraza se može dodjeliti nekoj promjenjivoj,koristiti u drugim naredbama, koristiti kao argument u pozivima metoda, ili

kombinovati sa drugim vrjednostima u građenju složenijeg izraza.

Page 24: JAVA PROGRAMSKI JEZIK-vjezbe.pdf

Izrazi

Izrazi se dijele na proste i složene.

Prost izraz može biti literal, promjenjiva ili poziv metoda.

Složeni izrazi se grade kombinovanjem prostih izraza sa

dozvoljenim operatorima (aritmetičkim, relacijonim i drugim).

Izračunavanje vrjednosti složenog izraza odvija se primjenom

operacija koje označavaju operatori na vrjednosti prostijih izraza

koji se nalaze u složenom izrazu.

Page 25: JAVA PROGRAMSKI JEZIK-vjezbe.pdf

Operatori

Operatori su posebni simboli koji se koriste za kombinovanje promjenjivih,

bukvalnih vrjednosti, poziva metoda, i drugih operatora. Operator djeluje na

operandu. Na primjer, u narednom iskazu:

2*3

Operator je znak množenja, a operandi su brojevi 2 i 3.

Ukoliko želimo da zapamtimo vrjednost, to dodaje još jedan operator, znak

jednakosti (=), za dodjeljivanje:

int proizvod = 2 * 3;

Kada u izrazu ima više operatora, to dovodi do koncepta prioriteta operatora

ili redosleda po kome se operatori primjenjuju. Koji operator prvi djeluje? U

narednom iskazu imamo tri operatora: =, + i *:

int rezultat = 2 + 3 * 5;

Page 26: JAVA PROGRAMSKI JEZIK-vjezbe.pdf

Aritmetički operatori

Ovi operatori prihvataju operande koje su cjelobrojne ili operande pokretnog

zareza i daju cjelobrojni rezultat ili rezultat u pokretnom zarezu.

Operatori automatskog povećanja i automatskog smanjivanja su uključeni kao

aritmetički operatori.

Operator Namjena

+ sabiranje

- oduzimanje

* množenje

/ dijeljenje

% dijeljenje (sa ostatkom)

Page 27: JAVA PROGRAMSKI JEZIK-vjezbe.pdf

Relacioni operatori

Relacioni operatori upoređuju dve količine da bi odredili da li su one

jednake ili je jedna veća od druge.

Operator koji testira jednakost je == operator. Ukoliko su operandi

ugrađenog tipa (numerički, char ili boolean), operator jednakosti vraća logičku

vrjednost true (tačno) ukoliko operandi imaju istu vrjednost, i false (netačno)

ukoliko nemaju. Ukoliko su operandi objektne promjenljive, operator

jednakosti vraća true ukoliko objektne promjenljive upućuju na isti objekat (ili

su oba null).

Ukoliko objektne promjenljive upućuju na različite objekte ili jedna upućuje

na objekat, a druga je null, operator jednakosti vraća false.

Page 28: JAVA PROGRAMSKI JEZIK-vjezbe.pdf

Logički operatori

Logički operatori dodjeljuju na logičkima (boolean) operandima i vraćaju

logički rezultat. Oni implementiraju standardne logičke algebarske operacije:

AND (i), OR (ili), NOT (ne) i XOR (eXclusive OR - isključivo ili)

Operator AND vraća true ukoliko su oba operanda true. Operator OR vraća

true ukoliko je bilo koji operand ili ukoliko su oba operanda true. Java ima dve

verzije od oba ova operanda:

Prva verzija (& za AND; | za OR) prisiljavaju rezultovanje oba operanda.

Druga verzija (&& za AND; | | za OR) neće rezultovati drugi operand

ukoliko on ne može odrediti rezultat nakon rezultovanja prvog. To se naziva

skraćivanjem okolišanja (eng. short circuiting).

Page 29: JAVA PROGRAMSKI JEZIK-vjezbe.pdf

String operatori

Operator nadovezivanja (+) je jedini operator koji se primjenjuje na stringove

i lijevo-asocijativan je. Operator spaja dva stringa zajedno da bi oformio treći:

String s;

s = “Zdravo" + " " + “svima"; //promjenjivoj s je

//dodjeljno “Zdravo svima!"

Ukoliko je samo jedan operand string, drugi operand se automatski

konvertuje u string: String s;

s = "5 * 6 = " + (5 * 6); //promjenjivoj s je

//dodjeljeno "5 * 6 = 30"

Ukoliko je operand koji nije string objekat, Java koristi metodu toString() da bi dobila string ekvivalent objekta. Metoda toString()

je nasljeđena i može biti pozivana u svim klasama jer je implementirana u klasu Object.

Page 30: JAVA PROGRAMSKI JEZIK-vjezbe.pdf

Naredbe

Naredba je jedna komanda koju izvršava Java interpretator tokom izvršavanja Java programa.

Podrazumijevani redoslijed izvršavanja naredbi je onaj u kojem su naredbe napisane u programu, mada u Javi postoje mnoge upravljačke naredbe kojima se ovaj sekvencijalni redoslijed izvršavanja može promjeniti.

Naredbe u Javi mogu biti proste ili složene.

Proste naredbe obuhvataju naredbu dodijele i naredbu deklaracije promjenljive.

Page 31: JAVA PROGRAMSKI JEZIK-vjezbe.pdf

Naredbe

Složene naredbe služe za komponovanje prostih i složenih naredbi radi definisanja komplikovanijih upravljačkih struktura u programu.

U složene naredbe spadaju blok naredbi, naredbe grananja (if naredba, if-else naredba i switch naredba) i naredbe ponavljanja (while naredba, do-while naredba i for naredba).

Page 32: JAVA PROGRAMSKI JEZIK-vjezbe.pdf

Naredbe dodjele

Naredba dodijele je osnovni način da se vrijednost nekog izraza dodijeli promjenjivoj u programu.

Glavni opšti oblik naredbe dodijele je:

promjenljiva = izraz;

Efekat izvršavanja naredbe dodijele može se podijeliti u dva koraka:

najprije se izračunava vrijednost izraza na desnoj strani znaka jednakosti, a zatim se ta vrijednost dodijeljuje promjenjivoj na lijevoj strani znaka jednakosti.

Page 33: JAVA PROGRAMSKI JEZIK-vjezbe.pdf

Naredbe dodjele

U stvari,bilo koji operator dodijele može se koristiti kao naredba dodijele dodavanjem tačke-zapete na kraju.

Na primjer:

brojStudenata = 30; // dodijela

a += b; // kombinovana dodijela

n++; // inkrementiranje

m--; // dekrementiranje

Page 34: JAVA PROGRAMSKI JEZIK-vjezbe.pdf

Blok naredbi

Blok naredbi (ili kraće samo blok) je niz od više naredbi napisanih između otvorene i zatvorene vitičaste zagrade.

Opšti oblik bloka naredbi je:

{

naredba1

naredba2

.

.

.

naredba n

}

Page 35: JAVA PROGRAMSKI JEZIK-vjezbe.pdf

Blok naredbi

Osnovna svrha bloka naredbi je samo da se niz bilo kakvih naredbi grupiše u jednu (složenu) naredbu.

Blok se obično nalazi unutar drugih složenih naredbi kada je potrebno da se više naredbi sintaksno objedine u jednu naredbu.

Efekat izvršavanja bloka naredbi je sekvencijalno izvršavanje niza naredbi unutar bloka.

Page 36: JAVA PROGRAMSKI JEZIK-vjezbe.pdf

Blok naredbi

U sljedećem primjeru bloka naredbi, međusobno se zamjenjuju vrjednosti cjelobrojnih promjenjivih x i y, pod pretpostavkom da su ove promjenjive u programu deklarisane i inicijalizovane ispred bloka:

{

int z; // pomoćna promjenjiva

z = x; // vrijednost z je stara vrijednost x

x = y; // nova vrijednost x je stara vrijednost y

y = z; // nova vrijednost y je stara vrijednost x

}

Ovaj blok čini niz od 4 naredbe koje se redom izvršavaju. Primjetimo da je pomoćna promjenjiva z deklarisana unutar samog bloka.

Page 37: JAVA PROGRAMSKI JEZIK-vjezbe.pdf

NAREDBA IF I IF-ELSE

Naredba if je najprostija upravljačka naredba koja omogućava uslovno izvršavanje niza od jedne ili više naredbi.

Svaka naredba if se sastoji od jednog logičkog izraza i jedne (blok) naredbe koji se u oštem obliku pišu na sljedeći način:

if (logički-izraz)

naredba

Izvršavanje naredbe if se izvodi tako što se najpre izračunava vrijednost logičkog izraza u zagradi.

Page 38: JAVA PROGRAMSKI JEZIK-vjezbe.pdf

NAREDBA IF I IF-ELSE

Zatim, zavisno od toga da li je dobijena vrijednost logičkog izraza tačno ili netačno, naredba koja se nalazi u produžetku logičkog izraza izvršava se ili preskače.

Ako je dobijena vrijednost tačno (true), ta naredba se izvršava; u suprotnom slučaju, ako je dobijena vrijednost netačno (false), ta naredba se ne izvršava.

Time se u oba slučaja izvršavanje naredbe if završava, a izvršavanje programa se dalje nastavlja od naredbe koja slijedi iza naredbe if.

Page 39: JAVA PROGRAMSKI JEZIK-vjezbe.pdf

NAREDBA IF I IF-ELSE

Kako niz naredbi unutar vitičastih zagrada predstavlja jednu (blok) naredbu, naredba unutar if naredbe može biti i blok naredbi.

if (x > y) {

int z;

z = x;

x = y;

y = z;

}

U ovom primjeru se izvršava međusobna zamjena vrijednosti promjenjivih x i y samo ukoliko je vrijednost promjenljive x početno veća od vrjednosti promjenjive y. U suprotnom slučaju se cijeli blok od četiri naredbe preskače.

Page 40: JAVA PROGRAMSKI JEZIK-vjezbe.pdf

NAREDBA IF I IF-ELSE U slučaju kada je vrijednost logičkog izraza if naredbe jednaka

netačno, programska logika često nalaže da treba uraditi nešto drugo,

a ne samo preskočiti naredbu unutar if naredbe.

Za takve slučajeve služi naredba if-else čiji je opšti oblik:

if (logički-izraz)

naredba1

else

naredba2

Izvršavanje if-else naredbe je slično izvršavanju if naredbe, osim što u slučaju kada je vrijednost logičkog izraza u zagradi jednaka netačno, izvršava se naredba2 i preskače naredba1.

Page 41: JAVA PROGRAMSKI JEZIK-vjezbe.pdf

NAREDBA IF I IF-ELSE

U drugom slučaju, kada je vrijednost logičkog izraza jednaka tačno, izvršava se naredba1 i preskače naredba2.

Time se u oba slučaja izvršavanje if-else naredbe završava, a izvršavanje programa se dalje nastavlja od naredbe koja sledi iza if-else naredbe.

Jedan primer upotrebe naredbe višestrukog grananja je sledeći programski fragment u kojem se određuje ocjena studenta na ispitu na osnovu broja osvojenih poena i „standardne” skale:

Page 42: JAVA PROGRAMSKI JEZIK-vjezbe.pdf

NAREDBA IF I IF-ELSE

// Podrazumjeva se 0 <= brojPoena <= 100

if (brojPoena >= 91)

ocjena = 10;

else if (brojPoena >= 81)

ocjena = 9;

else if (brojPoena >= 71)

ocjena = 8;

else if (brojPoena >= 61)

ocjena = 7;

else if (brojPoena >= 51)

ocjena = 6;

Page 43: JAVA PROGRAMSKI JEZIK-vjezbe.pdf

NAREDBA SWITCH

Treća naredba grananja, naredba switch, na neki način je specijalni slučaj naredbe višestrukog grananja iz prethodnog odjeljka kada izbor jednog od više alternativnih blokova naredbi za izvršavanje zavisi od vrijednosti datog cijelobrojnog ili znakovnog izraza.

Naime, u tom slučaju je neefikasno da se izračunavanje tog izraza ponavlja u višestruko ugneždenim if naredbama.

Najčešći oblik naredbe switch je:

Page 44: JAVA PROGRAMSKI JEZIK-vjezbe.pdf

NAREDBA SWITCH

switch (izraz) {

case konstanta1: // izvrši odavde ako izraz == konstanta1

niz-naredbi1

break; // kraj izvršavanja tog slučaja

case konstanta2: // izvrši odavde ako izraz == konstanta2

niz-naredbi2

break; // kraj izvršavanja tog slučaja

...

case konstantan: // izvrši odavde ako izraz == konstantan

niz-naredbi n

break; // kraj izvršavanja tog slučaja

default: // izvrši odavde u krajnjem slučaju ...

niz-naredbi n+1

} // kraj izvršavanja tog slučaja

Page 45: JAVA PROGRAMSKI JEZIK-vjezbe.pdf

NAREDBA SWITCH

Ovom switch naredbom se najprije izračunava izraz u zagradi na početku naredbe.

Zatim se zavisno od dobijene vrijednosti tog izraza izvršava niz naredbi koji je pridružen jednom od slučajeva označenih klauzulama case unutar switch naredbe.

Pri tome se redom odozgo na dole traži prva konstanta uz klauzulu case koja je jednaka vrijednosti izračunatog izraza i izvršava se odgovarajući niz naredbi pridružen pronađenom slučaju.

Poslednji slučaj u switch naredbi može opciono biti označen klauzulom default, a taj slučaj se izvršava ukoliko izračunata vrijednost izraza nije jednaka nijednoj konstanti uz klauzule case.

Page 46: JAVA PROGRAMSKI JEZIK-vjezbe.pdf

NAREDBA WHILE

Naredba while je osnovna naredba za ponavljanje izvršavanja neke naredbe (ili bloka naredbi) više puta.

Pošto ciklično izvršavanje bloka naredbi obrazuje petlju u sljedu izvršavanja naredbi programa, while naredba se često naziva i while petlja.

Blok naredbi unutar while petlje čije se izvršavanje ponavlja naziva se tijelo petlje.

Broj ponavljanja tijela petlje se kontroliše vrijednošću jednog logičkog izraza.

Page 47: JAVA PROGRAMSKI JEZIK-vjezbe.pdf

NAREDBA WHILE

Ovaj logički izraz se naziva uslov nastavka (ili uslov prekida) petlje, jer se izvršavanje tijela petlje ponavlja sve dok je vrijednost tog logičkog izraza jednaka tačno, a ovo ponavljanje se prekida u trenutku kada vrijednost tog logičkog izraza postane netačno.

Ponovljeno izvršavanje tijela petlje se može, u principu,izvoditi beskonačno, ali takva beskonačna petlja obično predstavlja grešku u programu.

Opšti oblik while naredbe je:

while (logički-izraz)

naredba

Page 48: JAVA PROGRAMSKI JEZIK-vjezbe.pdf

NAREDBA WHILE

Izvršavanje while naredbe se izvodi tako što se najpre izračunava vrijednost logičkog izraza u zagradi.

U jednom slučaju, ako je dobijena vrijednost jednaka netačno, odmah se prekida izvršavanje while naredbe.

To znači da se preskače ostatak while naredbe i izvršavanje programa se normalno nastavlja od naredbe koja sledi iza while naredbe.

U drugom slučaju, ako izračunavanje logičkog izraza da je tačno, najprije se izvršava naredba unutar while naredbe, a zatim se ponovo izračunava logički izraz u zagradi i ponavlja isti ciklus.

Page 49: JAVA PROGRAMSKI JEZIK-vjezbe.pdf

NAREDBA WHILE

U narednom jednostavnom primeru while naredbe se na ekranu prikazuje niz brojeva 0, 1, 2, . . ., 9 u jednom redu:

int broj = 0;

while (broj < 10) {

System.out.print(broj + " ");

broj = broj + 1;

}

System.out.println(); // pomeranje kursora u novi red

U ovom primjeru se na početku cijelobrojna promjenljiva broj inicijalizuje vrijednošću 0. Zatim se izvršava while naredba, kod koje se najprije određuje vrijednost logičkog izraza broj < 10.

Page 50: JAVA PROGRAMSKI JEZIK-vjezbe.pdf

NAREDBA DO - WHILE

Kod while naredbe se uslov prekida petlje provjerava na početku svake iteracije.

U nekim slučajevima, međutim, prirodnije je provjeravati taj uslov na kraju svakog izvršavanja tijela petlje.

U takvim slučajevima se može koristiti do-while naredba koja je vrlo slična while naredbi, osim što su riječ while i uslov prekida pomjereni na kraj, a na početku se nalazi službena reč do.

Opšti oblik do-while naredbe je: do naredba while (logički-izraz); ili, ako je naredba unutar do-while naredbe jedan blok naredbi, taj oblik je:

do {niz-naredbi }

while (logički-izraz);

Page 51: JAVA PROGRAMSKI JEZIK-vjezbe.pdf

NAREDBA DO - WHILE

Na primjer, do-while naredbom se prikazivanje brojeva 0, 1, 2, . . ., 9 u jednom redu na ekranu može postići na sledeći način:

int broj = 0;

do {

System.out.print(broj + " ");

broj = broj + 1;

} while (broj < 10);

System.out.println(); // pomjeranje kursora u novi red

Kod izvršavanja do-while naredbe se najpre izvršava tijelo petlje, odnosno izvršava se naredba ili niz naredbi u bloku između službenih reči do i while. Zatim se izračunava vrijednost logičkog izraza u zagradi.

Page 52: JAVA PROGRAMSKI JEZIK-vjezbe.pdf

NAREDBA FOR

Treća vrsta petlji u Javi se obično koristi kada je potrebno izvršiti tijelo petlje za sve vrijednosti određene promjenljive u nekom intervalu.

Za prikazivanje brojeva 0, 1, 2, . . ., 9 u jednom redu na ekranu, na primjer, koristili smo naredbe while i do-while. U tim naredbama se zapravo tijelo petlje sastoji od prikazivanja promjenljive broj, a ovo tijelo petlje se izvršava za sve vrijednosti promjenljive broj u intervalu od 0 do 9.

U ovom slučaju je mnogo prirodnije koristiti naredbu for, jer je odgovarajući ekvivalentni programski fragment mnogo kraći i izražajniji:

Page 53: JAVA PROGRAMSKI JEZIK-vjezbe.pdf

NAREDBA FOR

for ( int broj = 0; broj < 10; broj = broj + 1)

System.out.print(broj + " ");

System.out.println(); // pomjeranje kursora u novi red

Opšti oblik for naredbe je:

for (kontrolni-dio)

naredba

U drugom slučaju, ako se tijelo naredba for sastoji od bloka naredbi, njen opšti oblik je:

for (kontrolni-dio) {

niz-naredbi

}

Page 54: JAVA PROGRAMSKI JEZIK-vjezbe.pdf

NAREDBA FOR

Kod izvršavanja for naredbe dakle, na samom početku se izvršava dio inicijalizacija konrolnog dijela, i to samo je for petlje predstavljen logičkim izrazom izračunava prije svakog izvršavanja tijela for petlje, a izvršavanje petlje se prekida kada izračunata vrijednost logičkog izraza jeste netačno.

Dio završnica konrolnog dijela se izvršava na kraju svakog izvršavanja tijela for petlje, neposredno posle izvršavanja tijela petlje i prije ponovne provjere uslova nastavka petlje.

Dio inicijalizacija može biti bilo koji izraz, mada je to obično naredba dodjele.

Page 55: JAVA PROGRAMSKI JEZIK-vjezbe.pdf

NAREDBE BREAK I CONTINUE

Kod while petlje i do-while petlje se uslov prekida tih petlji proveravana početku odnosno na kraju svake iteracije. Slično, iteracije for petlje se završavaju kada se ispuni uslov prekida u kontrolnom delu te petlje.

Ponekad je ipak prirodnije prekinuti neku petlju u sredini izvršavanja tela petlje. Za takve slučajeve se može koristiti break naredba koja ima jednostavan oblik:

break;

Kada se izvršava break naredba unutar neke petlje, odmah se prekida izvršavanje te petlje i prelazi se na normalno izvršavanje ostatka programa od naredbe koja sledi iza petlje.

Page 56: JAVA PROGRAMSKI JEZIK-vjezbe.pdf

NAREDBE BREAK I CONTINUE

U petljama se slično može koristiti i continue naredba čiji je oblik takođe jednostavan:

continue;

Međutim, izvršavanjem continue naredbe se samo preskače ostatak aktuelne iteracije petlje.

To znači da se, umesto prekidanja izvršavanja cele petlje kao kod break naredbe, continue naredbom prekida izvršavanje samo aktuelne iteracije petlje i nastavlja sa izvršavanjem naredne iteracije petlje (uključujući i izračunavanje uslova prekida petlje radi provere da li treba uopšte nastaviti izvršavanje petlje).

Page 57: JAVA PROGRAMSKI JEZIK-vjezbe.pdf

Radno okruženje

• – Java Development Kit (JDK 7u10) - http://java.sun.com/

• – JCreator-radno okruženje - http://www.jcreator.com/

• – NetBeans 7.2.1 - http://netbeans.org/

• – Eclipse - http://www.eclipse.org/

Java SE (Standard Edition)

Java Me (Micro Edition)

Java EE (Enterprise Edition).

Page 58: JAVA PROGRAMSKI JEZIK-vjezbe.pdf

Jednostavni primjeri Java koda

public class Pozdrav

{ /* ispis poruke na ekranu */

public static void main (String[] args)

{ System.out.println("Zdravo svima!") ;

}

}

Analiziramo li ovaj jednostavan kod, vidimo da ovdje postoje dva objekta. Prvi je

System.out, a drugi sam niz znakova "Zdravo svima!".

Između ova dva objekta postoji dio koda: “println“. To je metoda kojom objekat

System.out ispisuje tekst "Zdravo svima!". Operacije koje se izvršavaju nad

objektom nazivaju se metode. Konkretno metoda “println“ znači “ispiši ono što ti

dajem na konzoli i pređi u novi red”.

Gdje su tu objekti?

Page 59: JAVA PROGRAMSKI JEZIK-vjezbe.pdf

Kako je konstruisan program iz primjera?

public class Pozdrav

Sa ovom linijom koda definišemo javnu klasu koju ćemo nazvati “pozdrav”.

Klase mogu biti: javne, privatne i zaštićene (public, private, protected)

/* ispis poruke na ekranu */

Ovo je komentar koji opisuje šta bi program trebao raditi. To je jednostavno

poruka za onoga ko čita izvorni kod programa.

Svaki tekst između /* i */ biće tretiran kao komentar i Java prevodioc će ga u

potpunosti ignorisati.

public static void main (String[] args)

Ovo predstavlja zaglavlje (eng. heading) metode. Svaka metoda ima svoj

naziv. U ovom slučaju naziv metoda je riječ koja se nalazi neposredno ispred

zagrade. Riječ public označava da je metoda javno dostupna. Argument

metode main() je niz objekata klase String. Argumente args ne koristimo u

ovom programu, ali prevodilac insistira da se tu nalaze.

Page 60: JAVA PROGRAMSKI JEZIK-vjezbe.pdf

Kako je konstruisan program iz primjera?

{ System.out.println("Zdravo svima!") ;

}

Ovo je tijelo (eng. body) metoda. Uvijek se sastoji od niza naredbi

zatvorenih u vitičaste zagrade, {..}. Pozivom ovog metoda izvršava se svaka od

naredbi (u ovom slučaju samo jedna).

U ovom primjeru klasa se sastoji od samo jednog člana, metode nazvane

main. Uopšteno, program se sastoji od jedne ili više definicija klasa od kojih

svaka sadržava jednu ili više metoda. Java programeri koriste konvenciju po

kojoj naziv klase započinje velikim slovom, a naziv metode malim slovom.

IME FAJLA MORA BITI ISTO KAO I IME

OSNOVNE KLASE

Page 61: JAVA PROGRAMSKI JEZIK-vjezbe.pdf

Kako je konstruisan program iz primjera?

Na sledećoj slici prikazan je program koji se sastoji od jedne naredbe

razdvojen okvirima koji nam pokazuju šta je klasa, šta je metoda, a šta su

naredbe.

Page 62: JAVA PROGRAMSKI JEZIK-vjezbe.pdf

Upravljnje iskazima u Javi - if iskazi

Najjednostavniji uslovni iskaz je if blok, koji obezbjeđuje izvršavanje iskaza ukoliko

neki uslovni izraz rezultuje u true (tačno). Na primjer, da bismo provjerili argumente

koji su proslijeđeni iz komandnog reda, provjeriće da li je dužina niza proslijeđenog metodi main() jednaka nuli

public static void main (String argumenti[]){

if (argumenti.lenght == 0)

System.out.println("Nema argumenata");

}

Za sve uslovne iskaze if, umetnut izraz mora rezultirati u logičku vrjednost true ili

false. Ukoliko izraz rezultuje u true, izvršavaju se iskazi koji se nalaze neposredno

iza if odredbe.

Page 63: JAVA PROGRAMSKI JEZIK-vjezbe.pdf

Upravljnje iskazima u Javi - if iskazi

Ukoliko želimo da izvršimo više iskaza, moramo ih postaviti u vitičaste zagrade, kao što

je prikazano na sledećem primjeru:

public static void main (String argumenti[]){

if (argumenti.lenght == Ø){

System.out.println("Nema argumenata");

System.out.println("Trebalo bi da nesto unesete");

}

}

Page 64: JAVA PROGRAMSKI JEZIK-vjezbe.pdf

Upravljnje iskazima u Javi - switch iskazi

Iskaz switch radi dobro kada imamo dugačak blok if-else iskaza koji svi testiraju zadatu

cjelobrojnu vrjednost (ili nešto što može biti predstavljeno int promjenljivom, kao što je

char, byte ili short, ali ne long, float, double ili boolean). Razmotrimo ovaj poduži if-else

blok:

int dana = ...;

if (dana == 28){

uradiMjesec28();

} else if (dana == 30){

uradiMjesec30();

} else if (dana == 31){

uradiMjesec31();

} else {

uradiPrestupnuGodinu();

}

Neki ljudi switch iskaz smatraju jasnijim načinom da se urade stvari. Uslov koji

upoređujemo je samo zajednička promjenljiva iz svake od if provjera:

switch (promjenljiva)

Page 65: JAVA PROGRAMSKI JEZIK-vjezbe.pdf

Upravljnje iskazima u Javi - switch iskazi

Dok je svaka vrjednost koju provjeravamo zadata vrjednost (case vrjednost:) ili

konačna odredba koja je uvijek ispunjena (deufalt). Potom, za koju god provjeru da

se vrjednosti promjenjivih podudaraju, switch iskaz počinje izvršavanje koda od tog

mjesta. Evo prethodnog if bloka kao nekomplementiranog switch bloka:

switch (dana){

case 28:

uradiMjesec28();

case 30:

uradiMjesec30();

case 31:

uradiMjesec31();

deufalt:

uradiPrestupnuGodinu();

}

Page 66: JAVA PROGRAMSKI JEZIK-vjezbe.pdf

Upravljnje iskazima u Javi - switch iskazi

Sledeći primjer demostrira mogućnosti za izvršavanje koda za više slučajeva. Možemo

napraviti blok switch koji prijavljuje broj dana u zavisnosti od mjeseca (i godine, da bi se

obradile prestupne godine). Ovdje će mjesec biti 1 do 12, a mi ćemo postaviti promjenljivu

dana na osnovu toga koji mjesec je proslijeđen. Obratićemo pažnju da slučajevi za April,

Juni, Septembar i Novembar (30 dana) dijele isti blok koda koji treba izvršiti.

int getDana(int mjesec, int godine){

int dana;

switch (mjesec){

case 4: // April

case 6: // Juni

case 9: // Septembar

case 11: // Novembar

dana = 30;

break;

case 2: // Februar

if (((godina % 4 == 0) &&

(godina % 100 != 0)) ¦¦ (godina %400 == 0)){

dana = 29;

} else {

Page 67: JAVA PROGRAMSKI JEZIK-vjezbe.pdf

Upravljnje iskazima u Javi - switch iskazi

dana = 28;

}

break;

deufalt: // ostali

dana = 31;

break;

}

return dana;

}

Page 68: JAVA PROGRAMSKI JEZIK-vjezbe.pdf

Upravljnje iskazima u Javi - switch iskazi

Iskaz for se koristi kada je potrebno da izvršimo iskaz (ili blok iskaza ukoliko koristimo

vitičaste zagrade) više puta, sa jednostvnim korakom inicijalizacije, uslovom za prekid, a

potom korakom ka ažuriranju.

Kada se for petlja izvršava, ona izvodi korak inicijalizacije, a potom provjerava uslov.

Ukoliko je uslov true (ispunjen), izvršava se tijelo petlje. Kada je završeno izvršavanje

tijela petlji, izvršava se korak ažuriranja. Nakon toga se ponovo provjerava uslov. Ovo

izvršavanje se nastavlja dok uslov ne bude bio false. Donja slika vizualizuje ovaj proces.

Page 69: JAVA PROGRAMSKI JEZIK-vjezbe.pdf

Upravljnje iskazima u Javi - while iskazi

Da bismo demostrirali petlju for, kreirajmo petlju za pregled svih argumenata

komandnog reda. Ovdje ćemo napraviti promjenljivu i i inicijalizovaćemo je na nula u našem koraku inicijalizacije. Ova promjenljiva će biti lokalna za petlju for i neće biti

dostupna van petlje. Uslov naše petlje će provjeravati da i nije previše poraslo i izašlo van

kraja niza. Korak ažuriranja povećava promjenljivu, a tijelo prikazuje vrjednost sa zadatom

vrijednošću indeksa:

for (int i=0; i < argumenti.lenght; i++){

System.out.println(argumenti[i]);

}

Kako se dužina niza argumenti neće promjeniti za vrijeme izvršavanja petlje, možemo je

jednom očitati u bloku inicijalizacije i snimiti u lokalnoj promjenjivoj.

Page 70: JAVA PROGRAMSKI JEZIK-vjezbe.pdf

Upravljanje iskazima u Javi - while izrazi

Petlja while je jednostavnija od for petlje jer ona samo ima uslov i tijelo.

Kod nje se prvo provjerava uslov, i ukoliko je on true (ispunjen) izvršava se

tijelo petlje prije ponovnog provjere uslova:

while (uslov)

tijelo;

Obično, tijelo petlje na kraju mijenja stanje koje se provjerava u uslovu, jer

ukoliko uslov uvijek rezultuju u true, petlja će se izvršavati vječno. Kao i kod petlje for, tijelo petlje while se nikad ne izvršava ukoliko je uslov na

početku false. Slika na sledećem slajdu prikazuje opšti tok petlje while.

Page 71: JAVA PROGRAMSKI JEZIK-vjezbe.pdf

Upravljanje iskazima u Javi - while izrazi

Page 72: JAVA PROGRAMSKI JEZIK-vjezbe.pdf

Upravljanje iskazima u Javi - do-while izrazi

Posljednja konstrukcija petlje koja se koristi je do-while petlja – najmanje

korišćena, jer uvijek izvršava iskaze iz svog tijela petlje makar jednom, prije

nego što uopšte provjeri uslov. Međutim, češći je slučaj da je potrebno prvo provjeriti uslov. Evo osnovne strukture do-while petlje:

do

tijelo

while (uslov);

Page 73: JAVA PROGRAMSKI JEZIK-vjezbe.pdf

Upravljanje iskazima u Javi - break izrazi

Iskaz break koristimo da bi smo zaustavili izvršavanje bloka koda ili

iskaza switch. Kada sistem naiđe na iskaz break, trenutno zaustavlja

izvršavanje bloka koda i prenosi kontrolu programa na iskaz koji neposredno

slijedi iza bloka. Na primjer, pretpostavimo da 10 puta želimo proći petlju, ali

želimo da prekinemo sa petljom ukoliko se desi neki poseban uslov. Možemo dodati iskaz break koji će nas prebaciti na iskaz nakon petlje (što je u ovom

slučaju System.out.println("Tri");).

for (int i=0; i<5; i++){

System.out.println("Jedan");

if (i == 3){

break;

}

System.out.println("Dva");

}

System.out.println("Tri");

Page 74: JAVA PROGRAMSKI JEZIK-vjezbe.pdf

Upravljanje iskazima u Javi - return izrazi

return iskaz koristimo da bi smo prebacili kontrolu nazad pozivaču

metode. Ukoliko deklarišemo svoju metodu da vraća void, koristimo samo

return, bez pratećeg izraza:

return;

Međutim, ukoliko smo deklarisali svoju metodu da vraća vrjednost, moramo se

osigurati da vraćamo odgovarajući tip vrjednosti iz svoje metode. To smo uradili u metodi getDana() u switch primjeru, gdje smo deklarisali da

vraća int. Evo koda ponovo, sa pojačanim iskazom return:

Page 75: JAVA PROGRAMSKI JEZIK-vjezbe.pdf

Upravljanje iskazima u Javi - return izrazi

int getDana(int mjesec, int godine){

int dana;

switch (mjesec){

case 4: // April

case 6: // Juni

case 9: // Septembar

case 11: // Novembar

dana = 30;

break;

case 2: // Februar

if (((godina % 4 == 0) &&

(godina % 100 != 0)) || (godina %400 == 0)){

dana = 29;

} else {

dana = 28;

}

break;

deufalt: // ostali

dana = 31;

Page 76: JAVA PROGRAMSKI JEZIK-vjezbe.pdf

Upravljanje iskazima u Javi - return izrazi

break;

}

return dana;

}

Prema tome, pokazivač će pozvati metodu, a potom na odgovarajući način

koristi povratnu vrjednost:

int vrjednost = getDana(2, 2000);

Page 77: JAVA PROGRAMSKI JEZIK-vjezbe.pdf

Primjeri Java programa

Zadatak 1

Načiniti program za pronalaženje i štampanje svih prostih brojeva manjih od datog prirodnog broja N.

Rješenje: import java.util.Scanner;

public class zadatak1

{

public static void main(String[] args)

{

Scanner tastatura=new Scanner(System.in);

System.out.println("Program pronalazi i ispisuje proste brojeve manje

od unesenog broja.");

System.out.print("Unesi broj do kojeg želis da program ispise proste

brojeve: ");

int a=tastatura.nextInt();

System.out.println("Prosti brojevi su:");

for(int b=1; b<a; b++) \\ petlja dodjeljuje vrij od 1 do a

{

Page 78: JAVA PROGRAMSKI JEZIK-vjezbe.pdf

Primjeri Java programa

boolean prost=true; \\ utvrđuje istinu da li je prost

for(int c=2; c<b; c++) \\ petlja dijeli b sa svim manjim od b

{

if (b%c==0) \\ ako je djeljiv nije prost

{

prost=false;

break; \\ izađi iz petlje

}

}

if(prost)

System.out.print(b+", ");

}

}

}

Page 79: JAVA PROGRAMSKI JEZIK-vjezbe.pdf

Primjeri Java programa

Zadatak 2

Načinite program za određivanje svih prostih činilaca datog prirodnog broja N. (npr. 10 je djeljiv sa 5 i 2)

Rješenje:

import java.util.Scanner;

public class zadatak2

{

public static void main(String[]args)

{

System.out.println("Program pronalazi i ispisuje proste činioce

unesenog broja.");

System.out.print("Unesite broj koji želis rastaviti na proste činioce:

");

Scanner tastatura=new Scanner(System.in);

int a=tastatura.nextInt();

System.out.print("Prosti činioci broja "+a+" su: ");

int b=1;

while(b<=a)

{

Page 80: JAVA PROGRAMSKI JEZIK-vjezbe.pdf

Primjeri Java programa

b++;

while(a%b==0) \\ ako je ostatak od djeljenja jednak nuli

{

System.out.print(b+", ");

a/=b; \\ a je jednako a\b

}

}

}

}

Page 81: JAVA PROGRAMSKI JEZIK-vjezbe.pdf

Primjeri Java programa

Zadatak 3

Najveći zajednički dijeliliac (NZD) dva prirodna broja je najveći broj kojim možemo podijeliti i broj m i broj n a

da pri tome nemamo ostatka.

Rješenje:

import java.util.Scanner;

public class zadatak3

{

public static void main(String[] args)

{

System.out.println("Program pronalazi i ispisuje NZD za dva prirodna

broja.");

System.out.print("Unesi prvi broj: ");

Scanner tastatura=new Scanner(System.in);

int a=tastatura.nextInt();

System.out.print("Unesi drugi broj: ");

int b= tastatura.nextInt();

System.out.println("NZD za brojeve "+a+" i "+b+" je "+nzd(a,b)+".");

}

static int nzd(int a,int b) \\definisanje podklase nzd

{

Page 82: JAVA PROGRAMSKI JEZIK-vjezbe.pdf

Primjeri Java programa

int c=1;

if (a==b) \\ ako je a jednako b

{

c=a; \\ varijabli c upisati vrjednost a

}

else if(a>b)

{

c=nzd(a-b,b);

}

else

{

c=nzd(a,b-a);

}

return c;

}

}

Page 83: JAVA PROGRAMSKI JEZIK-vjezbe.pdf

Primjeri Java programa

Zadatak 4

Može li se zadati prirodan broj M predstaviti kao zbir dva kvadrata? Načiniti program koji riješava ovaj zadatak.

Rješenje:

import java.util.Scanner;

public class zadatak4

{

public static void main(String args[])

{

System.out.println("Program pronalazi i ispisuje kako zadati broj

predstaviti kao zbir kvadrata dva prirodna broja.");

Scanner tastatura=new Scanner(System.in);

System.out.print("Unesi neki prirodni broj M koji želiš da predstaviš

kao zbir kvadrata: ");

int M=tastatura.nextInt(); \\ unesi cijeli broj M

for(int a=1; a<=(int)Math.sqrt(M); a++) \\ od a do kvadratnog korijena

broja M

{

Page 84: JAVA PROGRAMSKI JEZIK-vjezbe.pdf

Primjeri Java programa

for(int b=1; b<=(int)Math.sqrt(M); b++)

{

int c=a*a;

int d=b*b;

if (c+d==M)

{

System.out.println("Prirodni broj "+M+" jednak je zbiru

kvadrata "+a+" i "+b);

System.out.println(M+"="+c+"+"+d);

}

}

}

}

}

Page 85: JAVA PROGRAMSKI JEZIK-vjezbe.pdf

Primjeri Java programa

Zadatak 5

Podijeliti dva prirodna broja na zadat broj decimala, N (N<50) koristeći pravilo za ručno dijeljenje.

Rješenje:

import java.util.Scanner;

public class zadatak5

{

public static void main(String args[])

{

System.out.println("Program dijeli dva prirodna broja na zadati broj

decimala.");

Scanner tastatura=new Scanner(System.in);

System.out.print("Unesi dijeljenik:");

int a= tastatura.nextInt();

System.out.print("Unesi dijelilac:");

int b=tastatura.nextInt();

System.out.print("Unesi na koliko decimala želis da bude rezultat: ");

int N=tastatura.nextInt(); \\ za N upiši unos sa tastature

Page 86: JAVA PROGRAMSKI JEZIK-vjezbe.pdf

Primjeri Java programa

int c=a/b; \\ dijelimo cijeli broj

System.out.print(c+","); \\cijeli broj, f

for (int d=0;d<N;d++) \\ brojač decimala

{

int e=a%b;\\ varijabla e jednaka ostatku dijeljenja

a=e*10; \\ dodajemo nulu na ostatak

int f=a/b; \\ određujemo vrjednost decimale

System.out.print(f); \\ ispisujemo decimalu

}

}

}

Page 87: JAVA PROGRAMSKI JEZIK-vjezbe.pdf

HVALA NA PAŽNJI!