66
1 Primenjeno programiranje - Vežbe Java i NetBeans IDE 7.0 Kreiranje novog projekta 1. Pokrenite NetBeans IDE. 2. Odaberite opciju File > New Project (Ctrl-Shift-N), kao na slici. 3. U dijalogu New Project wizard, otvorite kategoriju Java i odaberite Java Application i pritisnite Next 4. Na stranici Name and Location uradite kao na slici: a. U polje Project Name unesite HelloWorldApp. b. Ostavite Use Dedicated Folder for Storing Libraries čekboks neselektovan. c. U polje Create Main Class unesite helloworldapp.HelloWorldApp. d. Selektujte Set as Main Project. e. Kliknite Finish

Primenjeno programiranje - Vežbe · PDF fileJava i NetBeans IDE 7.0 Kreiranje novog projekta 1. ... c. Prozor za navigaciju - Navigator, za brzu navigaciju između elemenata selektovane

  • Upload
    doannga

  • View
    223

  • Download
    5

Embed Size (px)

Citation preview

Page 1: Primenjeno programiranje - Vežbe · PDF fileJava i NetBeans IDE 7.0 Kreiranje novog projekta 1. ... c. Prozor za navigaciju - Navigator, za brzu navigaciju između elemenata selektovane

1

Primenjeno programiranje - Vežbe

Java i NetBeans IDE 7.0

Kreiranje novog projekta

1. Pokrenite NetBeans IDE. 2. Odaberite opciju File > New Project (Ctrl-Shift-N), kao na slici.

3. U dijalogu New Project wizard, otvorite kategoriju Java i odaberite Java Application i pritisnite Next

4. Na stranici Name and Location uradite kao na slici: a. U polje Project Name unesite HelloWorldApp. b. Ostavite Use Dedicated Folder for Storing Libraries čekboks neselektovan. c. U polje Create Main Class unesite helloworldapp.HelloWorldApp. d. Selektujte Set as Main Project. e. Kliknite Finish

Page 2: Primenjeno programiranje - Vežbe · PDF fileJava i NetBeans IDE 7.0 Kreiranje novog projekta 1. ... c. Prozor za navigaciju - Navigator, za brzu navigaciju između elemenata selektovane

2

5. Nakon toga projekat je kreiran i otvoren. Prozor NetBens IDE bi trebao da prikazuje sledeće komponente:

a. Listu projekata u prozoru Projects, koji sadrži stablo svih komponenti projekta, kao što su fajlovi sa kodom, biblioteke koje se koriste…

b. Editor koda - Source Editor sa otvorenim fajlom pod nazivom HelloWorldApp. c. Prozor za navigaciju - Navigator, za brzu navigaciju između elemenata selektovane klase d. Lista sa rezultatima - Tasks, koji lista greške prilikom kompajliranja i druge komentare. (ako se

prikazuje moguće je odabrati sa Window>Tasks)

Page 3: Primenjeno programiranje - Vežbe · PDF fileJava i NetBeans IDE 7.0 Kreiranje novog projekta 1. ... c. Prozor za navigaciju - Navigator, za brzu navigaciju između elemenata selektovane

3

6. Pošto smo čekirali prethodno opciju Create Main Class, IDE je kreirao main klasu umesto nas. Na mesto komenatara:

// TODO code application logic here

7. Moguće je uneti proizvoljan kod, na primer:

System.out.println("Hello World!");

8. Izmene se čuvaju sa opcijom File > Save. 9. IDE ima opciju: Compile on Save, te nije potrebno izričito kompajlirati projekat da bi se pokrenuo. 10. Za pokretanje programa treba odabrati opciju: Run > Run Main Project (F6). 11. Ako program ne sadrži greške rezultat izvođenja ovog programa se prikazuje:

Osnovni elementi Java Programa

Zadatak 1. Napisati program koji ispisuje pozdravnu poruku na sistemski izlaz

class HelloWorldApp { public static void main(String[] args) { // ispis stringa. System.out.println("Hello World!"); } }

Zadatak 2. Napisati program koji štampa istinitosnu vrednost izraza: 2 + 2 = 4

public class Demo { public static void main (String[] arg) {

boolean b; b = (2 + 2 == 4); System.out.println(b);

} }

Zadatak 3. Napisati program koji ispisuje trenutni datum i vreme

import java.util.*; public class HelloDate { public static void main(String[] args) { System.out.println(“Pozdrav, sad je: "); System.out.println(new Date()); } }

Page 4: Primenjeno programiranje - Vežbe · PDF fileJava i NetBeans IDE 7.0 Kreiranje novog projekta 1. ... c. Prozor za navigaciju - Navigator, za brzu navigaciju između elemenata selektovane

4

Naredba dodele

Zadatak 4: Napisati program koji definiše dve promenjive celobrojnog tipa pod imenom prva i druga, i tri

promenjive tipa realnih brojeva sa imenima x, y i z, i jednu promenjivu istina tipa boolean. Promenjivoj prva

dodeliti vrednost 6, promenjivoj druga dodeliti vrednost 32, promenjivoj y dodeliti vrednost 34.15.

package zadatak1;

public class Zadatak1 {

public static void main(String[] args) {

int prva=6, druga=32;

double x, y=34.15, z;

boolean istina;

}

}

Zadatak 5. Kreirati dve promenjive celobrojnog tipa (broj1 i broj2), tri promenjive tipa realnih brojeva (real1,

real2 i real3) i dve promenjive tipa boolean (kraj i uspesnoIzracunavanje). Promenjivima celobrojnog tipa i po

jednoj od promenjivih tipa realnih brojeva i tipa boolean dati proizvoljne početne vrednosti.

package zadatak2;

public class Zadatak2 {

public static void main(String[] args) {

int broj1=7, broj2=13;

double real1, real2=13.5, real3;

boolean kraj =true, uspesnoIzracunavanje = false;

}

}

Zadatak 6. Napisati program koji će kreirati dve promenjive realnog tipa podataka sa imenima osnova i visina, sa vrednostima 5.0 i 7.0, i jednu promenjivu povrsina takođe realnog tipa. Izračunati površinu trougla i rezultat smestiti u promenjivu povrsina. Na kraju štampati poruku o iznosu površine.

package zadatak2; public class Zadatak2 { public static void main(String[] args) { double osnova = 5.0, visina = 7.0, povrs ina; povrsina = (osnova*visina)/2.0; System.out.println("Povrsina trougla je: "+povrsi na+"!"); } }

Page 5: Primenjeno programiranje - Vežbe · PDF fileJava i NetBeans IDE 7.0 Kreiranje novog projekta 1. ... c. Prozor za navigaciju - Navigator, za brzu navigaciju između elemenata selektovane

5

Zadatak 7. Napisati program u kojem će biti kreirane 7 promenjivih realnog tipa: br1, br2, br3, br4, br5, prosek

i suma, sa proizvoljnim početnim vrednostima. U promenjivoj prosek smestiti rezultat izračunavanja srednje vrednosti 5 unetih brojeva a u promenjivoj suma zbir promenjivih. Rezultate ispisati na sistemski izlaz.

package zadatak2; public class Zadatak2 { public static void main(String[] args) { double br1 = 3.2, br2 = 3.5, br3 = 5.6, br4 = 1.7, br5 = 2.3;

double prosek, suma ; suma = br1 + br2 + br3 + br4 + br5; prosek = suma/5;

System.out.println("Suma brojeva je: " + suma); System.out.println("Prosek brojeva je: " + prosek);

} }

Zadatak 8. Napisati program u kojem se uz pomoć dve promenjive tipa double izvršava konverzija vrednosti dužine izražene u kilometrima u dužinu izreaženu u miljama, i obrnuto.

public class KonverzijaDaljina { public static void main(String[] args) { double duzinaMilje; // vrednost duzine u miljam a double duzinaKilometri; // vrednost duzine u ki lometrima // konverzija 5 km u milje i stampanje rezultata duzinaKilometri = 5.0; duzinaMilje = duzinaKilometri * 0.6214; System.out.println("5 km = " + duzinaMilje + " mi lja"); // Konverzija 5 milja u kilometre i stampanje rez ultata duzinaMilje = 5.0; duzinaKilometri = duzinaMilje * 1.609; System.out.println("5 milja = " + duzinaKilometri + " km"); } }

Page 6: Primenjeno programiranje - Vežbe · PDF fileJava i NetBeans IDE 7.0 Kreiranje novog projekta 1. ... c. Prozor za navigaciju - Navigator, za brzu navigaciju između elemenata selektovane

6

Upotreba sistemskog ulaza

Zadatak 9. Napisati program koji će od korisnika tražiti da unese vrednosti stranica pravougaonika i zatim

izračunati i štampati vrednost površine tog pravougaonika.

package zadatak5; import java.util.Scanner; public class Zadatak5 { public static void main(String[] args) { double stranicaA, stranicaB, povrsina; Scanner ulaz = new Scanner(System.in); System.out.print("Unwsite stranicu a pr avougaonika: "); stranicaA = ulaz.nextDouble(); System.out.print("Unesite stranicu B pr avougaonika: "); stranicaB = ulaz.nextDouble(); povrsina = stranicaA * stranicaB; System.out.println("POvrsina pravougaon ika iznosi: "+povrsina); } }

Zadatak 10. Napisati program koji izračunava zbir dva broja koje unosi korisnik

import java.util.Scanner; // programu je potrebna S canner klasa public class AddTwoInts { public static void main(String[] args) { int prviBroj; int drugiBroj; int suma; Scanner consoleIn; consoleIn = new Scanner( System.in ); System.out.print("Unesite prvi broj: "); prviBroj = consoleIn.nextInt(); System.out.print("Unesite drugi broj: "); drugiBroj = consoleIn.nextInt(); suma = prviBroj + drugiBroj; System.out.println("Zbir je: " + suma); } }

Page 7: Primenjeno programiranje - Vežbe · PDF fileJava i NetBeans IDE 7.0 Kreiranje novog projekta 1. ... c. Prozor za navigaciju - Navigator, za brzu navigaciju između elemenata selektovane

7

Zadatak 11. Napisati program koji vrši izračunavanje obima i površine kruga.

import java.util.Scanner; public class Krug { public static void main (String[] vpar) { double poluprecnik; double obim, povrsina; Scanner consoleIn; consoleIn = new Scanner( System.in ); System.out.print("Unesite poluprecnik kruga: "); poluprecnik = consoleIn.nextDouble(); povrsina = poluprecnik * poluprecnik * Mat h.PI; obim = 2 * poluprecnik * Math.PI; System.out.println ("Obim kruga iznosi: " + obim); System.out.println("Povrsina kruga iznosi: " + povrsina); } }

IF i SWITCH naredba

Zadatak 12. Napisati program koji traži od korisnika da unese iznos svoje mesečne plate. Ako je plata veća od 75000, program treba da ispiše poruku o bonusu u iznosu od 1000 dinara. Ako je plata nije veća od 75000, program treba da ispiše poruku o bonusu od 2000 dinara

import java.util.Scanner; public class Bonus { public static void main(String[] args) { double plata; Scanner consoleIn; consoleIn = new Scanner( System.in ); System.out.print("Unesite iznos Vase plate: "); plata = consoleIn.nextDouble(); if (plata > 75000){ System.out.println("Vas ovomesecni bon us iznosi 1000 dinara"); }else{ System.out.println("Vas ovomesecni bon us iznosi 2000 dinara"); } } }

Page 8: Primenjeno programiranje - Vežbe · PDF fileJava i NetBeans IDE 7.0 Kreiranje novog projekta 1. ... c. Prozor za navigaciju - Navigator, za brzu navigaciju između elemenata selektovane

8

Zadatak 13. Napisati program koji traži od korisnika da unese dva broja i kao rezultat ispisuje manji

import java.util.Scanner; public class HelloWorldApp { public static void main(String[] args) { double prvi, drugi; Scanner consoleIn = new Scanner( System.in ); System.out.println("Unesite prvi broj: "); prvi = consoleIn.nextDouble();

System.out.println("Unesite drugi broj: "); drugi = consoleIn.nextDouble(); if (prvi < drugi){ System.out.println("broj " + prvi + " je manji"); }else if (drugi < prvi){ System.out.println("broj " + drugi + " je manji"); }else{ System.out.println("Brojevi su isti"); } } }

Zadatak 14. Napisati program koji proverava da li je uneti broj paran ili neparan.

public class IfElse{ public static void main(String[] args){ int n; Scanner ulaz = new Scanner(System.in); n = ulaz.nextInt(); if (n % 2 == 0){ System.out.println("Uneti broj je paran."); }else{ System.out.println("Uneti broj je neparan."); } } }

Zadatak 15. Napisati program koji traži od korisnika da unese ime i godine starosti deteta kao i rezultat testa. Ako je ili broj godina veće od šest ili rezultat testa veći ili jednak od 85, program treba da ispiše poruku da je dete spremno za prvi razred. Inače, treba ispisati poruku da dete treba da pokusa naredne godine

import java.util.Scanner; public class HelloWorldApp { public static void main(String[] args) { double rezultat; int starost; String ime;

Scanner ulaz = new Scanner( System.in );

Page 9: Primenjeno programiranje - Vežbe · PDF fileJava i NetBeans IDE 7.0 Kreiranje novog projekta 1. ... c. Prozor za navigaciju - Navigator, za brzu navigaciju između elemenata selektovane

9

System.out.println("Unesite ime deteta: "); ime = ulaz.next(); System.out.println("Unesite starost deteta: " ); starost = ulaz.nextInt(); System.out.println("Unesite broj bodova"); rezultat = ulaz.nextDouble();

if (starost > 6 || rezultat > 85){ System.out.println(ime + " je spreman/na za prvi razred"); }else{ System.out.println(ime + " treba da sace ka narednu godinu"); } } }

Zadatak 16. Napisati program koji učitava tri broja i zatim ih ispisuje u rastućem rasporedu

import java.util.Scanner; public class Uredi { public static void main (String[] args) { int a, b, c, pom; System.out.print ("Unesite tri prirodna broja: "); Scanner consoleIn = new Scanner(System.in); a = consoleIn.nextInt(); b = consoleIn.nextInt(); c = consoleIn.nextInt(); if (a > b) { pom = a; a = b; b = pom; } if (a > c) { pom = a; a = c; c = pom; } if (b > c) { pom = b; b = c; c = pom; } System.out.println ("Uredjeno: " + a + " " + b + " " + c); } }

Ili:

if ( a < b ) { if ( c < a ) System.out.println( c + " " + a + " " + b); else if ( c > b ) System.out.println( a + " " + b + " " + c); else System.out.println( a + " " + c + " " + b); } else { if ( c < b ) System.out.println( c + " " + b + " " + a); else if ( c > a ) System.out.println( b + " " + a + " " + c); else System.out.println( b + " " + c + " " + a); }

Page 10: Primenjeno programiranje - Vežbe · PDF fileJava i NetBeans IDE 7.0 Kreiranje novog projekta 1. ... c. Prozor za navigaciju - Navigator, za brzu navigaciju između elemenata selektovane

10

Zadatak 17. Napisati program koji pronalazi najmanji od tri uneta prirodna broja

import java.util.Scanner; public class Min { public static void main (String[] args) { int a, b, c;

System.out.print ("Uneite tri prirodna broja: "); Scanner ulaz = new Scanner(System.in);

a = ulaz.nextInt(); b = ulaz.nextInt(); c = ulaz.nextInt();

int min = a; if (b < min) min = b; if (c < min) min = c; System.out.println ("Najmanji je : " + min); } }

Zadatak 18. Napisati program koji od korisnika traži unos dva realna broja a zatim obavlja operaciju u zavisnosti od izbora korisnika. Od korisnika se traži izbor jedne od narednih opcija: zbir, razlika, proizvod, količnik. Pomoć: od korisnika se traži unos slova: 1 za zbir, 2 za razliku, 3 za proizvod, 4 za količnik. Potrebno je koristiti promenjivu tipa int koja će primiti odgovarajuću vrednost

import java.util.Scanner; public class HelloWorldApp { public static void main(String[] args) { double prvi, drugi; int operacija; Scanner consoleIn; consoleIn = new Scanner( System.in ); System.out.println(„Unesite prvi broj: „); prvi = consoleIn.nextDouble(); System.out.println(„Unesite drugi broj: „) ; drugi = consoleIn.nextDouble(); System.out.println(„Unesite operaciju: „); System.out.println(„1 za zbir, 2 za kolicn ik, 3 za razliku, 4 za proizvod“); operacija = consoleIn.nextInt(); switch (operacija){ case 1: System.out.println(„Zbir iznosi: „ + (prvi + drugi)); break; case 2: System.out.println(„Kolicnik iznosi : „ + (prvi/drugi)); break; case 3: System.out.println(„Razlika iznosi: „ + (prvi-drugi)); break; case 4: System.out.println(„Proizvod iznosi : „ + (prvi*drugi));

Page 11: Primenjeno programiranje - Vežbe · PDF fileJava i NetBeans IDE 7.0 Kreiranje novog projekta 1. ... c. Prozor za navigaciju - Navigator, za brzu navigaciju između elemenata selektovane

11

break; default: System.out.println(„Neispravna oper acija!“); } } }

Zadatak 19. Napisati program koji učitava godinu studija studenta u obliku celog broja i zatim štampa da li je student brucoš, student druge godine, student treće godine ili apsolvent u zavisnosti da li je unet broj 1, 2, 3 ili 4. ponuditi rešenje uz pomoć if naredbe kao i uz switch.

import java.util.Scanner; public class HelloWorldApp { public static void main(String[] args) { int godinaStudija; Scanner consoleIn; consoleIn = new Scanner( System.in ); System.out.println(„Koja ste godina studija: „); godinaStudija = consoleIn.nextInt(); switch (godinaStudija){ case 1:System.out.println(„Vi ste Brucos“);b reak; case 2:System.out.println(„Vi ste student dr uge godine“);break; case 3:System.out.println(„Vi ste student tr ece godine“);break; case 4:System.out.println(„Vi ste apsolvent“) ;break; default:System.out.println(„Neispravna godin a studija!“); } } }

Ili sa ekvivalentnim if:

if (godinaStudija == 1){ System.out.println(„Vi ste Brucos“); }else if(godinaStudija == 2){ System.out.println(„Vi ste student drug e godine“); }else if(godinaStudija == 3){ System.out.println(„Vi ste student trec e godine“); }else if(godinaStudija == 4){ System.out.println(„Vi ste apsolvent“); }else{ System.out.println(„Neispravna godina s tudija!“); }

Page 12: Primenjeno programiranje - Vežbe · PDF fileJava i NetBeans IDE 7.0 Kreiranje novog projekta 1. ... c. Prozor za navigaciju - Navigator, za brzu navigaciju između elemenata selektovane

12

Zadatak 20. Napisati program koji u zavisnosti od rednog broja meseca u godini ispisuje njegov naziv

public class SwitchPrimer { public static void main(String[] args) { int month = 8; String monthString; switch (month) { case 1: monthString = "Januar"; break; case 2: monthString = "Februar"; break ; case 3: monthString = "Mart"; break; case 4: monthString = "April"; break; case 5: monthString = "Maj"; break; case 6: monthString = "Jun"; break; case 7: monthString = "Jul"; break; case 8: monthString = "August"; break; case 9: monthString = "Septembar"; bre ak; case 10: monthString = "Octobar"; break ; case 11: monthString = "Novembar"; brea k; case 12: monthString = "Decembar"; brea k; default: monthString = "Neodgovarajuci mesec"; break; } System.out.println(monthString); } }

Isti zadatak uz pomoć if naredbe:

int month = 8; if (month == 1) { System.out.println("Januar"); } else if (month == 2) { System.out.println("Februar"); } else if (month == 3) { System.out.println("Mart"); } else if (month == 4) { System.out.println("April"); } else if (month == 5) { System.out.println("Maj"); } else if (month == 6) { System.out.println("Jun"); } else if (month == 7) { System.out.println("Jul"); } else if (month == 8) { System.out.println("Avgust"); } else if (month == 9) { System.out.println("Septembar"); } else if (month == 10) { System.out.println("Oktobar"); } else if (month == 11) { System.out.println("Novembar"); } else if (month == 12) { System.out.println("Decembar"); } else { System.out.println(“Neodgovaraju ći mesec”); } ... // itd

Page 13: Primenjeno programiranje - Vežbe · PDF fileJava i NetBeans IDE 7.0 Kreiranje novog projekta 1. ... c. Prozor za navigaciju - Navigator, za brzu navigaciju između elemenata selektovane

13

Zadatak 21. Napisati program koji na osnovu datuma prikazuje koliko taj mesec ima dana

class SwitchPrimer2 { public static void main(String[] args) { int month = 2; int year = 2000; int numDays = 0; switch (month) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: numDays = 31; break; case 4: case 6: case 9: case 11: numDays = 30; break; case 2: if (((year % 4 == 0) && !(year % 100 == 0)) || (year % 400 == 0)) numDays = 29; else numDays = 28; break; default: System.out.println("Invalid month." ); break; } System.out.println("Number of Days = "+ num Days); } }

Page 14: Primenjeno programiranje - Vežbe · PDF fileJava i NetBeans IDE 7.0 Kreiranje novog projekta 1. ... c. Prozor za navigaciju - Navigator, za brzu navigaciju između elemenata selektovane

14

FOR, WHILE i DO naredbe

Primer 22. Primer for petlje:

class ForDemo { public static void main(String[] args){ for(int i=1; i<11; i++){ System.out.println("Vrednost promenji ve i je: "+ i); } } }

Izlaz programa:

Vrednost promenjive i je: 1 Vrednost promenjive i je: 2 Vrednost promenjive i je: 3 Vrednost promenjive i je: 4 Vrednost promenjive i je: 5 Vrednost promenjive i je: 6 Vrednost promenjive i je: 7 Vrednost promenjive i je: 8 Vrednost promenjive i je: 9 Vrednost promenjive i je: 10

Primer ugnježdene for petlje

public class ForLoop{ public static void main(String[] args){ for(int i = 1;i <= 5;i++){ for(int j = 1;j <= i;j++){ System.out.print(i); } System.out.println(); } } }

Izlaz programa:

1 22 333 4444 55555

Page 15: Primenjeno programiranje - Vežbe · PDF fileJava i NetBeans IDE 7.0 Kreiranje novog projekta 1. ... c. Prozor za navigaciju - Navigator, za brzu navigaciju između elemenata selektovane

15

Zadatak 23. Napisati program koji izračunava sumu 10 brojeva koju unese korisnik (uz pomoć for petlje)

import java.util.Scanner; public class ForPetljaSuma1 { public static void main(String[] args) { System.out.println("Program koji izra čunava sumu 10 brojeva"); Scanner ulaz = new Scanner(System.in); double suma = 0.0, temp; for (int i = 1; i <= 10; i++) { System.out.print("Unesite "+i+". temp:" ); temp = ulaz.nextDouble(); suma = suma + temp; } System.out.println("Suma brojeva iznosi: " + suma); } }

Zadatak 24. Napisati program koji izračunava sumu brojeva koje unese korisnik. Korisnik sam zadaje koliko

brojeva želi da unese.

import java.util.Scanner; public class ForPetljaSuma2 { public static void main(String[] args) { System.out.println("Program koji izra čunava sumu brojeva"); Scanner ulaz = new Scanner(System.in); double suma = 0.0, temp; int broj; System.out.print("Koliko brojeva želite da unesete: "); broj = ulaz.nextInt(); for (int i = 1; i <= broj; i++) { System.out.print("Unesite "+i+". broj:" ); temp = ulaz.nextDouble(); suma = suma + temp; } System.out.println("Suma brojeva iznosi: " + suma); } }

Zadatak 25. Napisati program koji izračunava prosek unetih brojeva. Korisnik sam zadaje koliko brojeva želi da

unese.

import java.util.Scanner; public class ForPetljaProsek { public static void main(String[] args) { System.out.println("Program koji izra čunava prosek brojeva"); Scanner ulaz = new Scanner(System.in); double suma = 0.0, temp, prosek;

Page 16: Primenjeno programiranje - Vežbe · PDF fileJava i NetBeans IDE 7.0 Kreiranje novog projekta 1. ... c. Prozor za navigaciju - Navigator, za brzu navigaciju između elemenata selektovane

16

int broj; System.out.print("Koliko brojeva želite da unesete: "); broj = ulaz.nextInt(); for (int i = 1; i <= broj; i++) { System.out.print("Unesite "+i+". broj:" ); temp = ulaz.nextDouble(); suma = suma + temp; } prosek = suma / broj; System.out.println("Prosek brojeva iznosi: " + prosek); } }

Zadatak 26. Napisati program koji izračunava proizvod prvih 10 prirodnih brojeva

package zadatak12; public class Zadatak12 { public static void main(String[] args) { System.out.println("Proizvod prvih 10 priro dnih brojeva"); int proizvod = 1; for (int i = 2; i <= 10; i++) { proizvod = proizvod * i; } System.out.println("Proizvod prvih 10 broje va iznosi: " + proizvod); } }

Zadatak 27. Napisati program koji izračunava n! za proizvoljni uneti broj n

package zadatak13; import java.util.Scanner; public class Zadatak13 { public static void main(String[] args) { System.out.println("Program koji izra čunava n!"); Scanner ulaz = new Scanner(System.in); int n, faktorijel=1; System.out.print("Unesite broj za koji izra čunavamo faktorijel: "); n = ulaz.nextInt(); for (int i = 2; i <= n; i++) { faktorijel = faktorijel * i; } System.out.println(n +"! = " + faktorijel); } }

Page 17: Primenjeno programiranje - Vežbe · PDF fileJava i NetBeans IDE 7.0 Kreiranje novog projekta 1. ... c. Prozor za navigaciju - Navigator, za brzu navigaciju između elemenata selektovane

17

Zadatak 28. Napisati program koji izračunava sumu:

1 +1

2+1

3+1

4+⋯+

1

package zadatak14; import java.util.Scanner; public class Zadatak14 { public static void main(String[] args) { System.out.println("Program koji izra čunava izraz"); Scanner ulaz = new Scanner(System.in); int n; double izraz=1.0; System.out.print("Unesite broj n: "); n = ulaz.nextInt(); for (int i = 2; i <= n; i++) { izraz = izraz + 1.0/i; } System.out.println("Vrednost izraza je: " + izraz); } }

Zadatak 29. Napisati program koji od korisnika traži da unese 10 brojeva i kao rezultat vraća najveći od njih

package max; import java.util.Scanner; public class Max { public static void main(String[] args) { System.out.println("Program koji ispisuje m aximalni uneti broj"); Scanner ulaz = new Scanner(System.in); int broj, max; System.out.print("Unesite prvi broj: "); max = ulaz.nextInt(); for (int i = 2; i <= 10; i++) { System.out.println("Unesite naredni bro j: "); broj = ulaz.nextInt(); if (max < broj) { max = broj; } } System.out.println("Najve ći uneti broj je: " + max); } }

Primer 30. Program koji uz pomoć while petlje ispisuje prvih n brojeva package primer3; import java.util.Scanner; public class Primer3 { public static void main(String[] args) { System.out.println("Ispis prvih n brojeva") ; Scanner ulaz = new Scanner(System.in); int n, i = 1;

Page 18: Primenjeno programiranje - Vežbe · PDF fileJava i NetBeans IDE 7.0 Kreiranje novog projekta 1. ... c. Prozor za navigaciju - Navigator, za brzu navigaciju između elemenata selektovane

18

System.out.print("Unesite broj do kojeg isp isujemo brojeve:"); n = ulaz.nextInt(); while (i <= n){ System.out.println(i); i++; } } }

Primer 31. Program koji uz pomoć do while petlje ispisuje prvih n brojeva

package primer4; import java.util.Scanner; public class Primer4 { public static void main(String[] args) { System.out.println("Ispis prvih n brojeva") ; Scanner ulaz = new Scanner(System.in); int n, i = 1; System.out.print("Unesite broj do kojeg isp isujemo brojeve:"); n = ulaz.nextInt(); do{ System.out.println(i); i++; }while (i <= n); } }

Zadatak 32. Napisati program koji izračunava (uz pomoć while) sumu unetih brojeva. Brojevi se učitavaju dok

korisnik ne unese nulu.

package forpetlja; import java.util.Scanner; public class ForPetlja { public static void main(String[] args) { System.out.println("Suma brojeva uz pomo ć while petlje"); Scanner ulaz = new Scanner(System.in); double suma, broj; System.out.println("Unesite brojeve, za kra j unesite nulu!"); System.out.print("Unesite prvi broj: "); broj = ulaz.nextDouble(); suma = broj; while (broj!=0){ System.out.print("Unesite naredni broj: "); broj = ulaz.nextDouble(); suma = suma + broj; } System.out.println("Suma iznosi: " + suma); } }

Page 19: Primenjeno programiranje - Vežbe · PDF fileJava i NetBeans IDE 7.0 Kreiranje novog projekta 1. ... c. Prozor za navigaciju - Navigator, za brzu navigaciju između elemenata selektovane

19

Zadatak 33. Napisati program koji izračunava (uz pomoć do while) sumu unetih brojeva. Brojevi se učitavaju

dok korisnik ne unese nulu.

package forpetlja; import java.util.Scanner; public class ForPetlja { public static void main(String[] args) { System.out.println("Suma brojeva uz pomo ć while petlje"); Scanner ulaz = new Scanner(System.in); double suma, broj; System.out.println("Unesite brojeve, za kra j unesite nulu!"); do { System.out.println("Unesite naredni bro j: "); broj = ulaz.nextDouble(); suma = suma + broj; } while (broj != 0); System.out.println("Suma iznosi: " + suma); }

}

Zadatak 34. Napisati program koji izračunava (uz pomoć while ili do while petlje) prosek unetih brojeva. Brojevi

se učitavaju dok korisnik ne unese nulu.

package zadatak16; import java.util.Scanner; public class Zadatak16 { public static void main(String[] args) { System.out.println("Prosek brojeva uz pomo ć while petlje"); Scanner ulaz = new Scanner(System.in); double suma, prosek, broj; int ukupno; // broj unetih brojeva System.out.println("Unesite brojeve, za kra j unesite nulu!"); System.out.print("Unesite prvi broj: "); broj = ulaz.nextDouble(); ukupno = 0; suma = broj; ukupno ++; System.out.print("Unesite naredni broj: "); broj = ulaz.nextDouble(); suma = suma + broj; } prosek = suma/ukupno; System.out.println("Prosek iznosi: " + pros ek); } }

Page 20: Primenjeno programiranje - Vežbe · PDF fileJava i NetBeans IDE 7.0 Kreiranje novog projekta 1. ... c. Prozor za navigaciju - Navigator, za brzu navigaciju između elemenata selektovane

20

Zadatak 35. Napisati program koji izračunava (uz pomoć while petlje) n! za proizvoljni uneti broj n.

package zadatak17; import java.util.Scanner; public class Zadatak17 { public static void main(String[] args) { System.out.println("n! uz pomo ć while petlje"); Scanner ulaz = new Scanner(System.in); int n, faktorijel = 1, i = 2; System.out.println("Unesite broj za koji iz ra čunavamo faktorijel:"); n = ulaz.nextInt(); while (i <= n){ faktorijel = faktorijel * i; i++; } System.out.println(n+"! iznosi: " + faktori jel); } }

Zadatak 36. Napisati program koji izračunava (uz pomoć do while petlje) n! za proizvoljni uneti broj n.

package zadatak18; import java.util.Scanner; public class Zadatak18 { public static void main(String[] args) { System.out.println("n! uz pomo ć while petlje"); Scanner ulaz = new Scanner(System.in); int n, faktorijel = 1, i = 1; System.out.println("Unesite broj za koji iz ra čunavamo faktorijel:"); n = ulaz.nextInt(); do{ faktorijel = faktorijel * i; i++; }while (i <= n); System.out.println(n+"! iznosi: " + faktori jel); } }

Page 21: Primenjeno programiranje - Vežbe · PDF fileJava i NetBeans IDE 7.0 Kreiranje novog projekta 1. ... c. Prozor za navigaciju - Navigator, za brzu navigaciju između elemenata selektovane

21

Zadatak 37. Napisati program koji traži od korisnika da unese 10 brojeva i pronalazi i štampa najveći od njih

import java.util.Scanner; class NajveciOd10{

public static void main(String[ ] args){ int broj = 0; int najveci = 0; int brojac= 1;

Scanner consoleIn = new Scanner(System.in); System.out.println("Unesite prvi broj?");

najveci = consoleIn.nextInt();

while (brojac < 10){

System.out.println("Unesite naredni broj: "); broj = consoleIn.nextInt(); if (broj > najveci){ najveci = broj; } brojac = brojac + 1; } System.out.println("Najveci broj je: "+ najv eci + "!");}

} }

Rešenje sa for petljom:

for (brojac = 2; brojac <= 10; brojac++){ System.out.println("Unesite naredni broj: "); broj = consoleIn.nextInt(); if (broj > najveci) najveci = broj; } System.out.println("Najveci je: "+ najveci + ".");

Zadatak 38. Napisati program u koji ispisuje sve parne brojeve od 1 do 30

public class parniDo30{ public static void main(String[] args){

System.out.println("parni brojevi od 1 do 30"); for (int i=2; i<=30; i+=2){

System.out.println(i); }

} }

Page 22: Primenjeno programiranje - Vežbe · PDF fileJava i NetBeans IDE 7.0 Kreiranje novog projekta 1. ... c. Prozor za navigaciju - Navigator, za brzu navigaciju između elemenata selektovane

22

Zadatak 39. Napisati program koji zatraži od korisnika da unese koliko brojeva želi da sabere, zatim dozvoli njihov unos i na kraju ispiše poruku o njihovoj sumi

import java.util.Scanner; public class Zbir { public static void main(String[] args) { int n, temp; long suma = 0;

Scanner consoleIn = new Scanner(System.in); System.out.println("Unesite koliko brojeva zelite da saberete: "); n = consoleIn.nextInt(); for (int i=1; i<=n; i++) { System.out.println("Unesite "+i+". bro j: "); temp = consoleIn.nextInt(); suma = suma + temp; } System.out.println("Zbir vasih brojeva iznos i: " + suma); } }

Zadatak 40. Napisati program koji pronalazi aritmetičku sredinu od proizvoljnog broja unetih brojeva. Pretpostavimo da se unos brojeva završava kad se unese nula.

import java.util.Scanner; public class AritmetickaSredina { public static void main(String[] args) { int i = 1; float prosek = 0, temp; Scanner consoleIn = new Scanner(System.in) ; System.out.println("Program za izracunavan je aritmeticke sredine"); System.out.println("Unos brojeva zavrsite nulom"); System.out.println("Unesite prvi broj: "); temp = consoleIn.nextFloat(); while (temp != 0){ prosek = prosek + temp; i++; System.out.println("Unesite "+i+". bro j: "); temp = consoleIn.nextInt(); } if (i!=1){ prosek = prosek/(i-1); System.out.println("Aritmeticka sredin a iznosi: " + prosek); }else{ System.out.println("Niste uneli ni jed an broj"); } } }

Page 23: Primenjeno programiranje - Vežbe · PDF fileJava i NetBeans IDE 7.0 Kreiranje novog projekta 1. ... c. Prozor za navigaciju - Navigator, za brzu navigaciju između elemenata selektovane

23

Zadatak 41. Napisati program koji izračunava faktorijel unetog broja

n!= n*(n-1)*(n-2)*...*3*2*1

import java.util.Scanner; public class Faktorijel { public static void main (String[] args) { int n; long faktorijel = 1; Scanner consoleIn = new Scanner(System.in); System.out.println("Unesite broj za koji izra cunavamo faktorijel: "); n = consoleIn.nextInt();

for (int i=2; i<=n; i++) { faktorijel *= i; } System.out.println("faktorijel unetog broja i znosi: " + faktorijel); } }

Zadatak 42. Napisati program koji izračunava zbir prvih n prirodnih brojeva

import java.util.Scanner; public class Suma { public static void main (String[] args) { int n; long suma = 0;

Scanner consoleIn = new Scanner(System.in); System.out.println("Unesite broj do kojeg vrsim o sumiranje: "); n = consoleIn.nextInt(); for (int i=1; i<=n; i++) { suma = suma + i; } System.out.println("Zbir prvih " + n + " broje va iznosi: " + suma); } }

Zadatak 43. Napisati program koji učitava niz realnih brojeva i zatim u nizu pronalazi najmanji broj

import java.util.Scanner; public class Min2 { public static void main (String[] vpar) { int i, dim; Scanner consoleIn = new Scanner(System.in); System.out.print ("Unesite dimenziju niza: "); dim = consoleIn.nextInt (); double[] niz = new double [dim]; for (i=0; i<dim; i++){ System.out.print ("unesite "+(i+1)+". element: "); niz[i]= consoleIn.nextDouble(); } double min = niz[0]; for (i=1; i<dim; i++) { if (niz[i] < min) min = niz[i];

Page 24: Primenjeno programiranje - Vežbe · PDF fileJava i NetBeans IDE 7.0 Kreiranje novog projekta 1. ... c. Prozor za navigaciju - Navigator, za brzu navigaciju između elemenata selektovane

24

} System.out.println ("minimalni element je: " + min); } } }

Zadatak 44. Deklarisati i potom ispisati niz koji će čuvati brojeve od jedan do deset. Koristiti petlju za inicijalizaciju

public class DeklaracijaNiza { public static void main(String[] args) { int niz[]= new int[10]; for (int i = 0; i < niz.length; i++) { niz[i]=i+1; } for (int i = 0; i < niz.length; i++) { System.out.println(i+". clan niza je: " + niz[i]); } }

Zadatak 45. Napisati program koji pronalazi prirodan broj manji od 10000 koji ima najviše delilaca

public class NajviseDelilaca { public static void main(String[] args) { int N; // trenutni broj za koj i ispitujemo int maxDivisors; // trenutni najveci bro j delilaca int numWithMax; // broj sa najvecim bro jem delilaca maxDivisors = 1; numWithMax = 1; for ( N = 2; N <= 10000; N++ ) { int D; // broj koji ispitujemo da li je delilac int divisorCount; // broj delitelja broja divisorCount = 0; for ( D = 1; D <= N; D++ ) { if ( N % D == 0 ) divisorCount++; } if (divisorCount > maxDivisors) { maxDivisors = divisorCount; numWithMax = N; } } System.out.println("Najveci broj delilaca je " + maxDivisors); System.out.println("Broj sa " + maxDiviso rs + " delilaca je " + numWithMax); } }

Page 25: Primenjeno programiranje - Vežbe · PDF fileJava i NetBeans IDE 7.0 Kreiranje novog projekta 1. ... c. Prozor za navigaciju - Navigator, za brzu navigaciju između elemenata selektovane

25

Metode

Zadatak 46. Napisati program koji učitava visinu i osnovu trougla i zatim izračunava površinu trougla uz pomoć odgovarajuće metode:

package povrsinatrougla; import java.util.Scanner; public class PovrsinaTrougla { static double povrsinaTrougla(double a, double h){ return (a*h)/2; } public static void main(String[] args) { double osnova, visina, povrsina; System.out.println("Program koji izracunava povrsinu trougla!"); Scanner consoleIn = new Scanner(System.in); System.out.print("Unesite duzinu osnove tro ugla: "); osnova = consoleIn.nextDouble(); System.out.print("Unesite visinu trougla: " ); visina = consoleIn.nextDouble(); povrsina = povrsinaTrougla(osnova, visina); System.out.println("Povrsina trougla iznosi : " + povrsina); } }

Zadatak 47. Napisati program koji učitava dužine stranica pravougaonika i zatim izračunava površinu i obim pravougaonika uz pomoć metoda:

static double izracunajPovrsinu(double a, double b)

static double izracunajObim(double a, double b)

package pravougaonik; import java.util.Scanner; public class Pravougaonik { static double izracunatiPovrsinu(double a, doub le b){ double p = a * b; return p; } static double izracunatiObim(double a, double b ){ return 2*a + 2*b; } public static void main(String[] args) { double a, b; System.out.println("Program koji izracunava povrsinu i obim pravougaonik"); Scanner ulaz = new Scanner(System.in); System.out.print("Unesite stranicu a: "); a = ulaz.nextDouble(); System.out.print("Unesite stranicu b: "); b = ulaz.nextDouble();

Page 26: Primenjeno programiranje - Vežbe · PDF fileJava i NetBeans IDE 7.0 Kreiranje novog projekta 1. ... c. Prozor za navigaciju - Navigator, za brzu navigaciju između elemenata selektovane

26

System.out.println("Povrsina iznosi: " + iz racunatiPovrsinu(a, b)); System.out.println("Obim iznosi: " + izracu natiObim(a, b)); } }

Zadatak 48. Napisati program koji koristeći metod stepen izracunava stepen unetog broja. Od korisnika tražiti i unos broja i stepena na koji se broj podiže.

import java.util.Scanner; public class Stepenovanje { public static int stepen(int a, int b){ int total = 1; for(int i = 0; i < b; i++) total = total * a; return total; } public static void main(String[] args) { int broj, eksponent; Scanner consoleIn = new Scanner(System.in); System.out.println("Unesite broj ciji stepe n trazite: "); broj = consoleIn.nextInt(); System.out.println("Unesite stepen broja: " ); eksponent = consoleIn.nextInt(); broj = stepen(broj, eksponent); System.out.println("stepen broja je: " + br oj); } }

Zadatak 49. Napisati program koji uz pomoć metode int max(int num1, int num2) prikazuje veći broj od

dva uneta

public class TestirajMaksimum { int max(int num1, int num2) { int result; if (num1 > num2){ result = num1; }else{ result = num2;

} return result; } public static void main(String[] args) { System.out.println("Program koji ispisuje ve ći od dva uneta broja"); Scanner ulaz = new Scanner(System.in); System.out.print("Unestite prvi broj: ");

int i = ulaz.nextInt(); System.out.print("Unestite drugi broj: ");

int j = ulaz.nextInt(); int k = max(i, j); System.out.println("Veci broj izmedju " + i + " i " + j + " je: " + k); } }

Page 27: Primenjeno programiranje - Vežbe · PDF fileJava i NetBeans IDE 7.0 Kreiranje novog projekta 1. ... c. Prozor za navigaciju - Navigator, za brzu navigaciju između elemenata selektovane

27

Zadatak 50. Napisati program koji ispisuje poruku o oceni na osnovu unetih bodova (za 51-60 je 6, za 61-70 je

7…) U program koristiti metodu: void stampajOcenu(double bodovi).

public class IspisOcene { public static void main(String[] args) { System.out.println("Program koji ispisuje oce nu"); System.out.println("Unestite broj bodova: "); Scanner ulaz = new Scanner(System.in);

double broj = ulaz.nextDouble(); stampajOcenu(broj);

} void stampajOcenu(double bodovi) { if (bodovi >90.0) { System.out.println( “Ocena je: 10”); } else if (bodovi > 80.0) { System.out.println(“Ocena je: 9”); } else if (bodovi >70.0) { System.out.println(“Ocena je: 8”); } else if (bodovi > 60.0) { System.out.println(“Ocena je: 7”); } else if (bodovi > 50.0) { System.out.println(“Ocena je: 6”); } else { System.out.println(“Ocena je: 5”); } }

}

Zadatak 51. Napisati metod max() koji kao argumente prima dva integera i vraća vrednost većeg. Koristeći overloading definisati metod max() koji ima za argumente dva broja tipa float i kao rezultat vraća vrednost tipa float.

public class Maksimumi { static float max(float a, float b){ if (a>b) { return a; } else{ return b; } } static int max(int a, int b){ if (a>b) { return a; } else{ return b; } } }

Page 28: Primenjeno programiranje - Vežbe · PDF fileJava i NetBeans IDE 7.0 Kreiranje novog projekta 1. ... c. Prozor za navigaciju - Navigator, za brzu navigaciju između elemenata selektovane

28

Zadatak 52. Napisati program koji ispisuje prvih n članova fibonačijevog niza, n unosi korisnik.

2,1, 2121 ==+= == fffff nnn , tj. 1,2,3,5,8,13,21, 34,55,...

import java.util.Scanner; public class Fibonacci{ public static int fib(int n) { int f1=1, f2=2, temp=0; if (n==1){ return 1; }else if (n==2){ return 2; }else { for(int i=3; i<=n; i++) { temp = f1; f1 = f2; f2 = temp + f2; } return f2; } } public static void main(String[] args) { System.out.println("Do kojeg elementa ispis ujemo fibonacijev niz:"); Scanner consoleIn = new Scanner(System.in); int n = consoleIn.nextInt(); for (int i=1; i<=n; i++) System.out.print(fib(i)+", "); } }

Zadatak 53. Napisati program koji učitava poluprečnik kruga i izračunava njegovu površinu (za izračunavanje površine koristii metodu izracunajPovrsinu(double r))

import java.util.Scanner; public class PovrsinaKruga { static final double PI = 3.141592653589793; public static double izracunajPovrsinu(double r ) { return r*r*PI; } public static void main(String[] args) { double poluprecnik, povrsina; Scanner consoleIn = new Scanner(System.in); System.out.println("Unesite poluprecnik:"); poluprecnik= consoleIn.nextDouble(); povrsina = izracunajPovrsinu(poluprecnik);

Page 29: Primenjeno programiranje - Vežbe · PDF fileJava i NetBeans IDE 7.0 Kreiranje novog projekta 1. ... c. Prozor za navigaciju - Navigator, za brzu navigaciju između elemenata selektovane

29

System.out.println("Povrsina iznosi: " + po vrsina); } }

Primer 54. Program koji ispisuje (uz pomoć metode) koji je uneti mesec po redu u godini

public class StringSwitchDemo { public static int getMonthNumber(String month) { int monthNumber = 0; if (month == null) { return monthNumber; } switch (month.toLowerCase()) { case "january": monthNumber = 1; break; case "february": monthNumber = 2; break; case "march": monthNumber = 3; break; case "april": monthNumber = 4; break; case "may": monthNumber = 5; break; case "june": monthNumber = 6; break; case "july": monthNumber = 7; break; case "august": monthNumber = 8; break; case "september": monthNumber = 9; break; case "october": monthNumber = 10; break; case "november": monthNumber = 11; break; case "december": monthNumber = 12; break; default: monthNumber = 0; break;

Page 30: Primenjeno programiranje - Vežbe · PDF fileJava i NetBeans IDE 7.0 Kreiranje novog projekta 1. ... c. Prozor za navigaciju - Navigator, za brzu navigaciju između elemenata selektovane

30

} return monthNumber; } public static void main(String[] args) { String month = "August"; int returnedMonthNumber = StringSwitchDemo.getMonthNumber(month); if (returnedMonthNumber == 0) { System.out.println("Invalid month"); } else { System.out.println(returnedMonthNumber) ; } } }

Zadatak 55. Napisati program koji ispituje da li je uneti broj prost

import java.util.Scanner; public class DaLiJeProst { public static void main(String[] args) { int broj; // recenica koju unosi korisni k Scanner consoleIn = new Scanner(System.in ); System.out.println("Unesite broj za koji proveravamo da li je prost:"); broj = consoleIn.nextInt(); if (prost(broj)){ System.out.println("Broj je prost") ; } else{ System.out.println("Broj nije prost "); } } static boolean prost(int br) { int brojac = 0; //brojac delioca for (int i = 2; i <= br/2; i++) { if (br%i==0){ brojac++; } } if (brojac ==0){ return true; }else{ return false; } } }

Page 31: Primenjeno programiranje - Vežbe · PDF fileJava i NetBeans IDE 7.0 Kreiranje novog projekta 1. ... c. Prozor za navigaciju - Navigator, za brzu navigaciju između elemenata selektovane

31

Zadatak 56. Napisati program koji traži od korisnika da učita broj i zatim ispisuje sve brojeve koji su manji od tog broja a koji su prosti

import java.util.Scanner; public class IspisatiProste { public static void main(String[] args) { int broj; // recenica koju unosi korisni k Scanner consoleIn = new Scanner(System.in ); System.out.println("Unesite broj do kojeg ispisujemo proste brojeve:"); broj = consoleIn.nextInt(); for (int i = 1; i <= broj; i++) { if (prost(i)){ System.out.print(i+", "); } } } static boolean prost(int br) { int brojac = 0; //brojac delioca for (int i = 2; i <= br/2; i++) { if (br%i==0){ brojac++; break; } } if (brojac ==0){ return true; }else{ return false; } } }

Page 32: Primenjeno programiranje - Vežbe · PDF fileJava i NetBeans IDE 7.0 Kreiranje novog projekta 1. ... c. Prozor za navigaciju - Navigator, za brzu navigaciju između elemenata selektovane

32

Stringovi

Zadatak 57. Napisati program koji učitava dva stringa i proverava da li su isti.

package zadatak34;

import java.util.Scanner; public class Main { public static void main(String[] args) { String str1, str2; Scanner unos = new Scanner(System.in); System.out.println("Unesite prvu recenicu :"); str1= unos.nextLine(); System.out.println("Unesite drugu recenic u:"); str2= unos.nextLine(); if (str1.trim().equalsIgnoreCase(str2.tri m())){ System.out.println("Stringovi su ist i"); }else{ System.out.println("Nisu isti"); } } }

Zadatak 58. Napisati program koji učitava dva stringa i ispisuje poruku o njihovoj dužini i spaja ih u jedan string i štampa taj novi string.

package javaapplication6; import java.util.Scanner; public class JavaApplication6 { public static void main(String[] args) { String str1, str2; Scanner unos = new Scanner(System.in); System.out.println("Unesite prvi String:" ); str1= unos.nextLine(); System.out.println("Unesite drugi String: "); str2= unos.nextLine(); System.out.println("Duzina prvog stringa je: " + str1.length()); System.out.println("Duzina drugog stringa je: " + str2.length()); String rezultat = str1 + str2; // moze i: //str1.concat(str2) System.out.println("Spajanjem stringova n astaje: " + rezultat); } }

Page 33: Primenjeno programiranje - Vežbe · PDF fileJava i NetBeans IDE 7.0 Kreiranje novog projekta 1. ... c. Prozor za navigaciju - Navigator, za brzu navigaciju između elemenata selektovane

33

Zadatak 59. Napisati program koji proverava da li je uneta rečenica palindrom

package zadatak34; import java.util.Scanner; public class Main { static boolean palindrom(String str){ char niz[]=str.toCharArray(); for (int i = 0; i < niz.length/2; i++) { if(niz[i]!=niz[niz.length-i-1]){ return false; } } return true; } public static void main(String[] args) { String str; Scanner unos = new Scanner(System.in); System.out.println("Unesite recenicu:"); str= unos.nextLine(); if (palindrom(str)){ System.out.println("Recenica je pali ndrom"); }else{ System.out.println("recenica nije p alindrom"); } } }

Rešenje koje uzima u obzir i prazna mesta:

package zadatak34; import java.util.Scanner; public class Main { static boolean palindrom(String str){ char niz[]=str.toCharArray(); int i = 0, j=niz.length-1; while (j-i>=1){ if(niz[i]!=niz[j]){ return false; } do{i++;}while(niz[i] == ' '); do{j--;}while(niz[j] == ' '); } return true; } public static void main(String[] args) { String str; Scanner unos = new Scanner(System.in); System.out.println("Unesite recenicu:"); str= unos.nextLine(); if (palindrom(str.trim())){

Page 34: Primenjeno programiranje - Vežbe · PDF fileJava i NetBeans IDE 7.0 Kreiranje novog projekta 1. ... c. Prozor za navigaciju - Navigator, za brzu navigaciju između elemenata selektovane

34

System.out.println("Recenica je pali ndrom"); }else{ System.out.println("recenica nije p alindrom"); } } }

Zadatak 60. Napisati program koji trazi od korisnika da unese rečenicu a zatim je ispisuje u obliku gde su sva početna slova reči velika slova a sva ostala mala.

import java.util.Scanner; public class UpperCase { public static void main(String[] args) { String line; // recenica koju unosi kori snik Scanner consoleIn = new Scanner(System.in ); System.out.println("Unesite recenicu:"); line= consoleIn.nextLine(); printCapitalized( line ); } static void printCapitalized( String str ) { char ch; // trenutni karakter u str ingu. char prevCh; // karakter koji prethodi trenutnom. int i; // pozicija u stringu, od 0 to str.length()-1. prevCh = '.'; // pocetna vrednost za pre thodni karakter // treba da je bilo sta sto nije slovo for ( i = 0; i < str.length(); i++ ) { ch = str.charAt(i); if ( Character.isLetter(ch) && ! Cha racter.isLetter(prevCh) ) System.out.print( Character.toUpper Case(ch) ); else System.out.print(Character.toLowerC ase(ch) ); prevCh = ch; // trenutni postaje p rethodni } System.out.println(); } }

Page 35: Primenjeno programiranje - Vežbe · PDF fileJava i NetBeans IDE 7.0 Kreiranje novog projekta 1. ... c. Prozor za navigaciju - Navigator, za brzu navigaciju između elemenata selektovane

35

Nizovi

Zadatak 61. Definisati I inicijalizoviti niz od 10 celih brojeva koji će sadržati redom parne brojeve . Na kraju ispisati članove niza

package niz;

public class Niz {

public static void main(String[] args) {

int parniBrojevi[] = new int[10];

for (int i = 0; i < 10; i++) { parniBrojevi[i] = 2*i+2;

}

System.out.println("Clanovi niza su: ");

for (int i = 0; i < parniBrojevi.length; i++) {

System.out.println(i + ". clan niza je: " + parniBrojevi[i]); }

} }

Zadatak 62. Napisati program koji definiše niz dužine dvadeset u kojem je vrednost nultog člana 1, vrednost prvog člana 2 a svaki sledeći element je jednak zbiru prethodna dva. Na kraju takođe uz pomoć for petlje ispisati vrednosti elemenata niza.

package fibonaci;

public class Fibonaci {

public static void main(String[] args) { System.out.println("Program koji ispisuje Fibonacijeve brojeve!");

int niz[] = new int[20];

niz[0] = 1; niz[1] = 2;

for(int i = 2; i < niz.length; i++){ niz[i] = niz[i-1] + niz[i-2];

} for (int i = 0; i < niz.length; i++) {

System.out.println(i + ". clan niza je: " + niz[i]);

} }

}

Zadatak 63. Napisati program koji od korisnika traži da unese neki datum i da ispiše koji je to po redu dan u godini. Za izračunavanje definisati i koristiti niz:

int brojDanaUMesecu[] = {31, 28, 31, 30, 31, 30, 31 , 31, 30, 31, 30, 31};

rešenje:

package zadatak31; import java.util.Scanner; public class Zadatak31 { public static void main(String[] args) { int niz[]={31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; int dan, mesec, ukupno=0;

Page 36: Primenjeno programiranje - Vežbe · PDF fileJava i NetBeans IDE 7.0 Kreiranje novog projekta 1. ... c. Prozor za navigaciju - Navigator, za brzu navigaciju između elemenata selektovane

36

Scanner unos = new Scanner(System.in); do{ System.out.println("Unesite dan: "); dan = unos.nextInt(); System.out.println("Unesite mesec: "); mesec = unos.nextInt(); }while(mesec>12 ||dan>niz[mesec-1]); for( int i=0; i<mesec-1; i++){ ukupno = ukupno+niz[i]; } Ukupno = ukupno+dan; System.out.println(ukupno); } }

Zadatak 64. Napisati program koji traži od korisnika da unese deset celih brojeva, učitava ih u niz, zatim sortira brojeve u rastućem rasporedu te ih na kraju štampa

package zadatak32; import java.util.Scanner; public class Zadatak32 { public static void main(String[] args) { int niz[]=new int[10]; int temp; Scanner unos=new Scanner(System.in); System.out.println("Unesite 10 brojeva niza : "); for(int i=0; i<niz.length; i++){ niz[i]=unos.nextInt(); } for(int i=niz.length-1; i>=1; i--){ for(int j=0; j<i; j++){ if(niz[j]>niz[j+1]){ temp=niz[j]; niz[j]=niz[j+1]; niz[j+1]=temp; } } } for(int i=0; i<niz.length; i++){ System.out.print(niz[i]+", "); } } }

Page 37: Primenjeno programiranje - Vežbe · PDF fileJava i NetBeans IDE 7.0 Kreiranje novog projekta 1. ... c. Prozor za navigaciju - Navigator, za brzu navigaciju između elemenata selektovane

37

Klase

Zadatak 65. Napisati program koji će se sastojati od dve klase:

� Klasa: Dete u kojoj će se čuvati podaci o imenu, visini i težini deteta, i koja će sadržati: o Metod za inicijalizaciju podataka o metodu za štampanje podataka: stampaj() o metode za unos nove visine i nove težine: promenaVisine(int visina) i

• promenaTezine(int tezina) � Klasa: GlavnaKlasa, u kojoj će se od korisnika tražiti da unese podatke o detetu, zatim se kreirati nova

instanca klase Dete pod imenom dete1, stampati podatke, zatim ponovo tražiti nove podatke o visini i tezini, i na kraju drugi put stampati podatke

package zadatak33; public class Dete { String ime; double visina; double tezina; public Dete(String ime, double visina, double t ezina){ this.ime = ime; this.visina = visina; this.tezina = tezina; } void unosNoveVisine(double visina){ this.visina = visina; } void unosNoveTezine(double tezina){ this.tezina = tezina; } void stampaj(){ System.out.println("Ime je: " + ime); System.out.println("Visina je: " + visina); System.out.println("Tezina je: "+ tezina); } } package zadatak33; import java.util.Scanner; public class GlavnaKlasa { public static void main(String[] args) { String ime; double tez, vis; Scanner unos = new Scanner(System.in); System.out.print("Unesite ime deteta: "); ime = unos.next();

Page 38: Primenjeno programiranje - Vežbe · PDF fileJava i NetBeans IDE 7.0 Kreiranje novog projekta 1. ... c. Prozor za navigaciju - Navigator, za brzu navigaciju između elemenata selektovane

38

System.out.print("Unesite visinu deteta: ") ; vis = unos.nextDouble(); System.out.print("Unesite tezinu deteta: ") ; tez = unos.nextDouble(); Dete dete1 = new Dete(ime, vis, tez); dete1.stampaj(); System.out.print("Unesite ponovo visinu det eta: "); vis = unos.nextDouble(); System.out.print("Unesite ponovo tezinu det eta: "); tez = unos.nextDouble(); dete1.unosNoveTezine(tez); dete1.unosNoveVisine(vis); dete1.stampaj(); } }

Dodatni primeri

Zadatak 66. Napisati metod koji će pitati korisnika da unese vrednost i ispisivati njegov kvadratni koren. Ako je uneti broj negativan, ispisati poruku o greški

public static void stampajKoren (){ System.out.println("Unesite pozitivan broj"); double x = In.getDouble(); if (x >= 0){

System.out.println("Kvadratni koren iznosi " + Math .sqrt(x)); }else{

System.out.println("Unet je negativni broj"); }

Zadatak 67. Napisati metod koji simulira rezultat bacanja kockice tako što će ispisivati nasumičan broj između 1 i 6. Neka kao rezultat ispisuje poruku:

Pala Vam je 3!

class kockice{ public static void main(String [] args){

baciJednomKockicu(); } public static void baciJednomKockicu(){

int roll = (int)(6*Math.random()) + 1; System.out.println("Pala Vam je " + roll);

}

}

Page 39: Primenjeno programiranje - Vežbe · PDF fileJava i NetBeans IDE 7.0 Kreiranje novog projekta 1. ... c. Prozor za navigaciju - Navigator, za brzu navigaciju između elemenata selektovane

39

Programiranje korisničkog interfejsa (Graphical user interface – GUI)

Kreiranje korisničkog interfejsa desktop aplikacije

Primer jednostavne aplikacije:

1. Odabrati opciju File > New Project 2. Među kategorijama odabrati Java i podkategoriju Java Application

3. Dati naziv projektu, i podesiti opcije kao na slici:

Kao početak izgradnje interfejsa potrebno je kreirati jedan kontejner koji će sadržati elemente koje

nameravamo da dodamo na interfejs, Kreiramo JFrame kontejner:

1. Odabrati opciju New > JFrame Form

Page 40: Primenjeno programiranje - Vežbe · PDF fileJava i NetBeans IDE 7.0 Kreiranje novog projekta 1. ... c. Prozor za navigaciju - Navigator, za brzu navigaciju između elemenata selektovane

40

2. Dati naziv formi i definisati paket:

3. Kreira se klasa PrvaForma, unutar paketa my.SabiranjeBrojeva, otvara se prozor za dizajn forme i odgovarajuća paleta.

4. Na formu dodati jedan JPanel i zatim na formu dodati tri labele (JLabels), tri polja za unos teksta (JTextFields), i tri dugmeta (JButtons):

5. Preimenovati komponente tako da izgledaju kao na slici:

Page 41: Primenjeno programiranje - Vežbe · PDF fileJava i NetBeans IDE 7.0 Kreiranje novog projekta 1. ... c. Prozor za navigaciju - Navigator, za brzu navigaciju između elemenata selektovane

41

Dodavanje funkcije dugmadima

1. Desnim klikom na dugme Izađi pojavi se konteksni meni i treba odabrati Events > Action >

ActionPerformed 2. U metodi koju NetBeans kreira zameniti red:

// TODO add your handling code here:

Sa:

System.exit(0);

3. istim postupkom na dugme Briši kod zameniti sa:

jTextField1.setText(""); jTextField2.setText(""); jTextField3.setText("");

4. ovaj kod briše sadržaj tri polja. 5. Za dugme Saberi na isti način uneti

double num1, num2, result; num1 = Double.parseDouble(jTextField1.getText()); num2 = Double.parseDouble(jTextField2.getText()); result = num1 + num2; jTextField3.setText(String.valueOf(result));

Pokretanje programa:

1. Odabrati Run > Run Main Project 2. Ako upozori da projekat nema glavnu klasu, odabrati je iz liste

3. Rezultat izvođenja je:

Page 42: Primenjeno programiranje - Vežbe · PDF fileJava i NetBeans IDE 7.0 Kreiranje novog projekta 1. ... c. Prozor za navigaciju - Navigator, za brzu navigaciju između elemenata selektovane

42

4. Ako želite Windows Look and Feel (tj. Izgled operativnog sistema u kojem radite) u main klasu uneti naredni kod:

try { UIManager.setLookAndFeel( UIManager.getSystemLookAndFeelClassName()) ;

} catch (Exception ex) { ex.printStackTrace(); }

5. Pa će prozor izgledati (Windows XP):

Page 43: Primenjeno programiranje - Vežbe · PDF fileJava i NetBeans IDE 7.0 Kreiranje novog projekta 1. ... c. Prozor za navigaciju - Navigator, za brzu navigaciju između elemenata selektovane

43

Zadatak 68. Programirati aplikaciju koji će imati sledeći korisnički interfejs:

− Pritiskom na dugme Obradi se obavljaju sledeće akcije u zavisnosti koje radi dugme je obeleženo: o Dužina stringa: ispisuje kao rezultat obrade poruku o dužini stringa

o Ispis stringa: ispisuje kao rezultat obrade sam uneti string o Ispis stringa unazad: Ispisuje se uneti string unazad

− Pritiskom na dugme Obriši se briše sadržaj polja za unos i rezultat prethodne obrade

− Pritiskom na dugme Izađi se zatvara aplikacija

private void jButton1ActionPerformed(java.awt.ev ent.ActionEvent evt) { String str = jTextField1.getText(); int duzina = str.length(); if (jRadioButton1.isSelected()) { jLabel2.setText("Duzina je:" + str.lengt h()); } else if (jRadioButton2.isSelected()) { jLabel2.setText(str);

} else { jLabel2.setText(""); for (int i = 0; i < duzina; i++) { jLabel2.setText(jLabel2.getText()+s tr.charAt(duzina-i-1));

Page 44: Primenjeno programiranje - Vežbe · PDF fileJava i NetBeans IDE 7.0 Kreiranje novog projekta 1. ... c. Prozor za navigaciju - Navigator, za brzu navigaciju između elemenata selektovane

44

} } }

Zadatak 69. Programirati aplikaciju koji će imati sledeći korisnički interfejs:

Aplikacija treba da u donjem delu ispisuje unetu rečenicu velikim ili malim slovima u zavisnosti da li je

jCheckBox selectovan ili ne

private void jCheckBox1ActionPerformed(java.awt .event.ActionEvent evt) { String str = jTextField1.getText();

if (jCheckBox1.isSelected()) { jLabel1.setText("Re čenica: " + str.toUpperCase()); } else { jLabel1.setText("Re čenica: " + str.toLowerCase()); } }

Page 45: Primenjeno programiranje - Vežbe · PDF fileJava i NetBeans IDE 7.0 Kreiranje novog projekta 1. ... c. Prozor za navigaciju - Navigator, za brzu navigaciju između elemenata selektovane

45

Dodatne opcije:

Postavljanje naslova u jPanel-u

1. Postaviti jPanel na formu 2. u Properties odabrati polje Border i zatim Titled Border, i uneti naslov panela u polje Title

Postavljanje radio dugmadi

1. Na formu postaviti jednu Button Group komponentu (biće vidljiva samo u Inspector-u) 2. Zatim na formu postaviti potreban broj Radio Button komponenti 3. Za svaku od Radio Button komponenti odabrati u prozoru properties opciju ButtonGroup i u njoj

selektovati Button Group kojem želimo da pripadaju

Neke dodatne opcije prozora Properties za postavljenu forme

1. Željeni naslov forme se unosi u opciji Title 2. U polju Bounds se definišu koordinate početne pozicije prozora 3. Opcijom Resizable se definiše da li je prozor promenjive ili fiksne veličine

Neke dodatne opcije prozora Properties za ostale komponente

1. U polje toolTipText se unosi tekst koji se pojavljuje kada se miš nadnese nad komponentu

Komponente menija

1. U cilju formiranja glavnog menija aplikacije se mogu koristiti sledeće komponenete: a. Menu Bar (1) b. Menu (2) c. Menu Item (3) d. Menu Item/CheckBox (4) e. Menu Item/RadioButton (5) f. Separator (6)

2. Komponentama Menu Item se najčešće dodaju događaji koji su ranije prikazani npr. za dugmad

Page 46: Primenjeno programiranje - Vežbe · PDF fileJava i NetBeans IDE 7.0 Kreiranje novog projekta 1. ... c. Prozor za navigaciju - Navigator, za brzu navigaciju između elemenata selektovane

46

Pokretanje novih prozora unutar aplikacije

1. Kliknuti desnim na naziv projekta i odabrati New>Jdialog Form… 2. Odabrati naziv novog dialoga i postaviti ga u isti paket kao i osnovnu formu:

3. Izdizajnirati dialog po potrebi 4. Dodati događaj na neki od Menu Item-a iz glavnog menija osnovne forme (desni klik na odgovarajući

Menu Item i odabir opcije: Events>Action>actionPerformed) 5. Kopirati deo sadržaja main metoda novog dialoga (crveni kod) u metodu koja obrađuje događaj tog

Menu Item-a. Metoda bi izgleda slično ovom:

private void jMenuItem1ActionPerformed(java.awt.eve nt.ActionEvent evt) { NewJDialog1 dialog = new NewJDialog1(new javax .swing.JFrame(), true); dialog.setVisible(true); }

(1)

(2)

(3)

(4)

(6)

Page 47: Primenjeno programiranje - Vežbe · PDF fileJava i NetBeans IDE 7.0 Kreiranje novog projekta 1. ... c. Prozor za navigaciju - Navigator, za brzu navigaciju između elemenata selektovane

47

Dodavanje opcija Combo Box-u (isto u jListi)

1. Postaviti Combo box na formu 2. U prozoru Properties u polju model uneti željene opcije

Pokretanje programa van NetBeans-a

1. Odabrati opciju Run > Clean and Build Main Project 2. Pokrenuti jar fajl u dist direktorijumu projekta

Zadatak 70. Programirati aplikaciju koja će sadržati formu kao na slici:

U Combo box-u definisati sledeće opcije:

Page 48: Primenjeno programiranje - Vežbe · PDF fileJava i NetBeans IDE 7.0 Kreiranje novog projekta 1. ... c. Prozor za navigaciju - Navigator, za brzu navigaciju između elemenata selektovane

48

Dodavanje funkcija komponenti jList

1. Dodavanje elemenata u listu. Dodati naredni kod koji kreira model koji će omogućavati unos elemenata u listu (postavlja se u konstruktor metodu):

DefaultListModel listModel = new DefaultListModel() ; jList1.setModel(listModel);

2. Za dugme Dodaj odabrati opciju Events>Action>actionPerformed i u metodu za obradu izuzetka dodati sledeći kod:

String str = jTextField5.getText();

listModel .addElement(str);

3. Brisanje lemenata iz liste. Za dugme izbaci dodati metodu za obradu izuzetka sa sledećim kodom:

int rdbroj = jList1.getSelectedIndex(); if (rdbroj == -1) { jLabel7.setText("Morate selektovati nek u stavku"); } else { listModel .removeElementAt(rdbroj); jLabel7.setText(""); }

4. Postavljanje sadržaja selektovanog polj liste u TextField. Na jList kliknuti desnim i odabrati opciju Events

> Mouse > MouseClicked i u metodu dodati naredni kod jTextField5.setText(listModel.getElementAt(jList1.g etSelectedIndex()).toString());

ili:

int broj = jList1.getSelectedIndex(); String str = listModel .getElementAt(broj).toString(); jTextField5.setText(str);

Page 49: Primenjeno programiranje - Vežbe · PDF fileJava i NetBeans IDE 7.0 Kreiranje novog projekta 1. ... c. Prozor za navigaciju - Navigator, za brzu navigaciju između elemenata selektovane

49

5. Izmena sadržaja elemenata iz liste se radi sa narednim kodom dodeljenom dugmetu izmeni

private void jButton2ActionPerformed(java.awt.e vent.ActionEvent evt) { String str = jTextField5.getText(); int broj = jList1.getSelectedIndex();

listModel.removeElementAt(broj); listModel.add(broj, str); }

Page 50: Primenjeno programiranje - Vežbe · PDF fileJava i NetBeans IDE 7.0 Kreiranje novog projekta 1. ... c. Prozor za navigaciju - Navigator, za brzu navigaciju između elemenata selektovane

50

Kreiranje desktop aplikacije sa konekcijom na bazu

Uputstvo za instalaciju MySql-a i kreiranje konekcije

MySQL

Prvo je potrebno instalirati MySQL server, najjednostavniji način je instalacijom XAMPP-a.

1. Pokrenuti instalaciju xampp-win32-???. Gde je ??? oznaka berzije XAMPP-a 2. pokrenuti odgovarajući MySQL servis (u zavisnosti od verzije Control panel XAMPP-a izgleda slično

ovako):

ili

Page 51: Primenjeno programiranje - Vežbe · PDF fileJava i NetBeans IDE 7.0 Kreiranje novog projekta 1. ... c. Prozor za navigaciju - Navigator, za brzu navigaciju između elemenata selektovane

51

Netbeans 7.0

Za pristup postojećoj bazi (npr. ako već postoji baza pod nazivom proba)

1. Pokrenuti NetBeans, u kartici services otvoriti opciju Databases pa zatim Drivers i na polje MySQL

(connector-J driver) kliknuti desnim i odabrati Connect Using… i ispuniti formu:

a. Host: localhost b. Port: 3306 c. Database: proba d. Username: root e. Password: uneti ranije unetu lozinku pri instalaciji mySql-a (xampp-a) (default je prazna)

6. Pojavljuje se čvor sa detaljima konekcije:

Page 52: Primenjeno programiranje - Vežbe · PDF fileJava i NetBeans IDE 7.0 Kreiranje novog projekta 1. ... c. Prozor za navigaciju - Navigator, za brzu navigaciju između elemenata selektovane

52

Kreiranje aplikacije sa novom bazom podataka

1. Ponoviti prve korake za Kreiranja korisničkog interfejsa desktop aplikacije sve do kreiranja početnog okvira

2. desni klik na MySQL Server at localhost: 3306 i odabrati opciju Create Database:

3. Uneti naziv nove baze

4. Kreirati nove tabele

Page 53: Primenjeno programiranje - Vežbe · PDF fileJava i NetBeans IDE 7.0 Kreiranje novog projekta 1. ... c. Prozor za navigaciju - Navigator, za brzu navigaciju između elemenata selektovane

53

5. definisati potrebne kolone

6. Klikom na dugme Add Column se pokreće naredna forma gde se definišu osnovne opcije kolona:

ili

7. i uneti odgovarajuće podatke

i:

Page 54: Primenjeno programiranje - Vežbe · PDF fileJava i NetBeans IDE 7.0 Kreiranje novog projekta 1. ... c. Prozor za navigaciju - Navigator, za brzu navigaciju između elemenata selektovane

54

7. Desnim klikom na naziv tabele i odabrirom opcije View Data se lista sadržaj tabele

Page 55: Primenjeno programiranje - Vežbe · PDF fileJava i NetBeans IDE 7.0 Kreiranje novog projekta 1. ... c. Prozor za navigaciju - Navigator, za brzu navigaciju između elemenata selektovane

55

Kreiranje aplikacije uz pomoć postojećih tabela

Slede koraci za kreiranje aplikacije:

1. Odabrati opciju File > New Project u NetBeans-u i zatim sledeće opcije (U novijim verzijama NetBeans-a ne postoji ova opcija):

2. U Name and Location koraku odabrati sledeće opcije:

Page 56: Primenjeno programiranje - Vežbe · PDF fileJava i NetBeans IDE 7.0 Kreiranje novog projekta 1. ... c. Prozor za navigaciju - Navigator, za brzu navigaciju između elemenata selektovane

56

3. U Master Table koraku odabrati sledeće opcije

4. U Detail Options koraku klinuti Finish. 5. Sistem tada kreira osnovni korisnički interfejs sa tabelom i konekcijom na bazu.

Page 57: Primenjeno programiranje - Vežbe · PDF fileJava i NetBeans IDE 7.0 Kreiranje novog projekta 1. ... c. Prozor za navigaciju - Navigator, za brzu navigaciju između elemenata selektovane

57

Postavljanje dodatnih kontrola na aplikaciju

1. Ispod polja za unos lokacije dodati dve oznake (jLabel) i po jedan jSlider i jCheckBox kao na slici:

2. Kliknuti desnim na Slider i odabrati Bind > value i odabrati sledeće opcije:

Page 58: Primenjeno programiranje - Vežbe · PDF fileJava i NetBeans IDE 7.0 Kreiranje novog projekta 1. ... c. Prozor za navigaciju - Navigator, za brzu navigaciju između elemenata selektovane

58

3. Isto uraditi i za jLabel2 ali sa opcijom Bind > Text

4. Kliknuti desnim na Check Box i odabrati Bind > value i odabrati sledeće opcije:

5. U opciji Properties za Slider komponentu postaviti Minimalnu i Maximalnu vrednost na 4000 i 4050, tim redom

6. Pokretanjem programa se dobija sledeća forma:

Page 59: Primenjeno programiranje - Vežbe · PDF fileJava i NetBeans IDE 7.0 Kreiranje novog projekta 1. ... c. Prozor za navigaciju - Navigator, za brzu navigaciju između elemenata selektovane

59

U main metodi potrebno je definisati i otvoriti konekciju:

try{ Class.forName("com.mysql.jdbc.Driver"); conn = DriverManager.getConnection ("jdbc:mysql://localhost:3306/Projekat","ro ot","root"); stmt = conn.createStatement(); }catch(Exception ex){ ex.printStackTrace(); }

8. Definisati potrebne promenjive i dodati odgovarajuće import-e:

public static Connection conn; public static Statement stmt; public static ResultSet rezultati; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement;

9. Ako, na primer, želimo da popunimo combo box sa imenima igraca potrebno je postaviti na formu jComboBox

10. definisati metodu puniCombo():

public void puniCombo(){ ResultSet rez; String sql="SELECT ime, prezime FROM projekat.ra dnik ORDER BY prezime"; try{ rez=stmt.executeQuery(sql); while (rez.next()) { jComboBox1.addItem(rez.getString("ime")+" " +rez.getString("prezime")); } }catch(Exception ex){ ex.printStackTrace(); } };

Page 60: Primenjeno programiranje - Vežbe · PDF fileJava i NetBeans IDE 7.0 Kreiranje novog projekta 1. ... c. Prozor za navigaciju - Navigator, za brzu navigaciju između elemenata selektovane

60

11. i postaviti poziv metode: puniCombo() u konstruktor metodi 12. Za izračunavanje proseka plata i njegovo ispisivanje u jLabel komponenti može se napisati sledeća

metoda:

public void izracunajProsek(){ ResultSet rez; String sql="SELECT avg(plata) FROM projekat.radn ik"; try{ rez=stmt.executeQuery(sql); while (rez.next()) {

Float pom = rez.getFloat("avg(plata)"); jLabel1.setText("Prosecna plata iznosi: "+St ring.valueOf(pom)+" din."); } }catch(Exception ex){ ex.printStackTrace(); } }

13. Izmena širine kolona u jTable TableColumn kolone=null; kolone = jTable1.getColumnModel().getColumn (1);

kolone.setPreferredWidth(150); kolone = jTable1.getColumnModel().getColumn (2); kolone.setPreferredWidth(150);

Page 61: Primenjeno programiranje - Vežbe · PDF fileJava i NetBeans IDE 7.0 Kreiranje novog projekta 1. ... c. Prozor za navigaciju - Navigator, za brzu navigaciju između elemenata selektovane

61

Zadatak

Kreirati aplikaciju koja će služiti za prikaz Informacionog sistema bioskopa

Baza podataka bioskop treba da sadrži sledeće tabele:

• Film sa sledećim podacima: šifra filma, naziv filma, režiser, glavna uloga, dužina filma, žanr

• Sala sa sledećim podacima: šifra sale, naziv sale, kapacitet sale, maksimalni broj dnevnih projekcija

• Zaposleni sa sledećim podacima: šifra zaposlenog, ime, prezime, radno mesto, godiste, plata, stručna

sprema

• Proizvodi (proizvodi koji se mogu kupiti u bioskopu – kokice, sokovi, itd) sa sledećim podacima: šifra

proizvoda, naziv proizvoda, tip proizvoda, cena, trenutna raspoloživa količina

• Rezervacija sa sledećim podacima: šifra rezervacije, ime posetioca, broj karata, vreme projekcije

Aplikacija treba da sadrži naredne prozore koji će prikazivati podatke iz baze podataka:

Page 62: Primenjeno programiranje - Vežbe · PDF fileJava i NetBeans IDE 7.0 Kreiranje novog projekta 1. ... c. Prozor za navigaciju - Navigator, za brzu navigaciju između elemenata selektovane

62

Kod za unos podataka o zaposlenom (aktivira se dugmetom Unesi podatke):

try{

Class.forName("com.mysql.jdbc.Driver");

conn = DriverManager.getConnection

("jdbc:mysql://localhost:3306/bioskop","root","");

stmt = conn.createStatement();

PreparedStatement pstmt;

String ime = jTextField1.getText();

String prezime = jTextField2.getText();

int sifra = Integer.parseInt(jTextField3.getText());

String mesto = jComboBox1.getSelectedItem().toString();

int god = Integer.parseInt(jTextField4.getText());

int plata = Integer.parseInt(jLabel9.getText());

String sprema = jComboBox2.getSelectedItem().toString();

String insertQuery = "INSERT INTO zaposleni (sifr, ime, prezime, rdmesto,

godiste, plata, ss)"

+"VALUES"

+"(?, ?, ?, ?, ?, ?, ?)";

pstmt = conn.prepareStatement(insertQuery);

pstmt.setInt(1, sifra);

pstmt.setString(2, ime);

pstmt.setString(3, prezime);

pstmt.setString(4, mesto);

pstmt.setInt(5, god);

pstmt.setInt(6, plata);

pstmt.setString(7, sprema);

int rowCount = pstmt.executeUpdate();

pstmt.close();

conn.close();

}catch(Exception ex){

ex.printStackTrace();

}

Page 63: Primenjeno programiranje - Vežbe · PDF fileJava i NetBeans IDE 7.0 Kreiranje novog projekta 1. ... c. Prozor za navigaciju - Navigator, za brzu navigaciju između elemenata selektovane

63

Kreiranje najjednostavnije aplikacije za projekat

1. Kreirati nekoliko tabela u MySQL-u po ranijim uputstvima 2. Kreirati nov projekat, pa zatim novi jFrame u okviru tog projekta:

3. Na prozoru postaviti glavni meni i/ili nekoliko dugmadi koji će kasnije biti postavljeni kao linkovi ka pojedinim prozorima

4. Kreirati posebne prozore koji će prikazivati svaki po jednu ranije definisanu tabelu iz baze uz pomoć opcije:

i

Page 64: Primenjeno programiranje - Vežbe · PDF fileJava i NetBeans IDE 7.0 Kreiranje novog projekta 1. ... c. Prozor za navigaciju - Navigator, za brzu navigaciju između elemenata selektovane

64

Zatim:

5. Zatim u narednim koracima odabrati opcije za prikaz podataka iz tabela:

Page 65: Primenjeno programiranje - Vežbe · PDF fileJava i NetBeans IDE 7.0 Kreiranje novog projekta 1. ... c. Prozor za navigaciju - Navigator, za brzu navigaciju između elemenata selektovane

65

6. Zatim sledeći kod iz main metoda svake Master/detail forme EventQueue.invokeLater(new Runnable() { public void run() { JFrame frame = new JFrame(); frame.setContentPane(new NewMasterD etailForm()); frame.setDefaultCloseOperation(JFra me.EXIT_ON_CLOSE); frame.pack(); frame.setVisible(true); } });

7. Kopirati u odgovarajući metod koji se pokreće pritiskom odgovarajućeg dugmeta sa osnovnog prozora

private void jButton1ActionPerformed(java.awt.event .ActionEvent evt) { EventQueue.invokeLater(new Runnable() { public void run() { JFrame frame = new JFrame(); frame.setContentPane(new NewMasterD etailForm()); frame.setDefaultCloseOperation(JFra me.EXIT_ON_CLOSE); frame.pack(); frame.setVisible(true); } }); }

8. Na taj način je kreirana jednostavna aplikacija koja na osnovnom prozoru prikazuje nekoliko dugmadi i gde svako dugme pokreće odgovarajuću master/detail formu za prikaz podataka iz po jedne tabele baze podataka.

Page 66: Primenjeno programiranje - Vežbe · PDF fileJava i NetBeans IDE 7.0 Kreiranje novog projekta 1. ... c. Prozor za navigaciju - Navigator, za brzu navigaciju između elemenata selektovane

66

Dodatni primeri:

Deo koda kojim se postiže centriranje prozora:

Dimension dim=Toolkit.getDefaultToolkit().getScreenSize();

int w = frame.getSize().width; int h = frame.getSize().height;

int x = (dim.width-w)/2;

int y = (dim.height-h)/2;

frame.setLocation(x,y);

Moguće je koristiti sledeće delove koda, kako bi se korisnik obavestio o uspešnosti ili neuspešnosti unosa, izmene i brisanja podataka:

JOptionPane.showMessageDialog(this, "Uspešan unos ili izmena!",

"Obaveštenje o unosu", JOptionPane.INFORMATION_MESSAGE);

JOptionPane.showMessageDialog(this, "Greška pri unosu ili izmeni!",

"Obaveštenje o unosu", JOptionPane.ERROR_MESSAGE);

int brisanje = JOptionPane.showConfirmDialog(this,"Da li ste sigurni?", "Brisanje",JOptionPane. WARNING_MESSAGE);

if (brisanje==0) {

JOptionPane.showMessageDialog(this,"Uspešno brisanje!",

"Obaveštenje o brisanju",JOptionPane.INFORMATION_MESSAGE);

}else{

JOptionPane.showMessageDialog(this,"Brisanje otkazano!",

"Obaveštenje o brisanju",JOptionPane.INFORMATION_MESSAGE);

} Unos pretrage u tabeli

Na svakoj Master/Detail formi, moguće je dodati polje za pretragu. Da bi omogućili pretragu, neophodno je da:

1. fajl RowSorterToStringConverter.java, prekopirati u paket aplikacije i kompajlirati ga. 2. Prevući fajl mišem na formu za koju se pravi pretraga. Tada će se taj fajl naći u odeljku

Inspector (pod Other Components). Tu je potrebno desnim klikom otvoriti Properties i za table podesiti MasterTable.

3. Nakon toga, desni klik na tekstualno polje za pretragu pa Bind→ text, kako bi se izvršila neophodna podešavanja u tabu Basic i u tabu Advanced.

4. Ponavljanjem ovog postupka za svaku Master/Detail Formu, može se omogućiti pretraga svake tabele putem odgovarajuće Master/Detail Forme.

Pokretanje aplikacije van NetBeansa

Na kraju se naredbom Build (desni klik na projekat) kreira izvršni fajl (.jar), kojim se pokreće aplikacija van Netbeans-a.Taj fajl se nalazi u folderu dist koji je podfolder osnovnog projekta. Taj RadnikProjekat.jar fajl služi Vam za pokretanje aplikacije van Netbeansa (izvući prečicu npr. na desktop i dvoklikom na nju otvara se aplikacija iako je Netbeans zatvoren.