You are on page 1of 48

Programiranje 1

Primer prvi program


Prvi program
import java.util.Scanner;

public class FarCel {

public static void main (String [] args){


int f;//broj stepeni Farenhajta
int c;//broj stepeni Celzijusa
//Ulaz programa se dobija sa tastature
Scanner tastatura = new Scanner (System.in);

//Ucitavanje stepena Farenhajta od korisnika


System.out.println ("Koliko stepeni Farenhajta? ");
f = tastatura.nextInt();

//Izracunavanje stepena Celzijusa po formuli


c = 5 * (f - 32) / 9;

//Prikazivanje rezultata na ekranu


System.out.print (f + " stepeni Farenhajta = ");
System.out.println (c + " stepeni Celzijusa");

}
}
Prvi program
Primer izvravanja programa:

Koliko stepeni Farenhajta elite da pretvorite? 69


69 stepeni Farenhajta = 20 stepeni Celzijusa
Osnovne klase
Java sadri veliki broj klasa sa unapred
definisanim metodama (funkcijama) koje
obavljaju specifine zadatke
System (java.lang)
Math (java.lang)
String (java.lang)
Scanner (java.util)
Klasa System
Klasa java.lang.System sadri nekoliko
znaajnih funkcija
Najbitniji je standardni izlaz sistema
(System.out)
Tu se nalazi i standardni ulaz sistema
(System.in), kao i standardni izlaz za
greke (Standard.err)
Klasa System
Jedno od statikih polja klase System je
out
System.out ukazuje na objekat koji u Javi
predstavlja standardni izlaz
System.out sadri metode za prikazivanje
vrednosti na ekranu
print(), println() i printf()
Klasa System
Primeri
System.out.print("Hello ");
System.out.print("World ");
Izlaz:
Hello World

System.out.println("Hello ");
System.out.println("World ");
Izlaz:
Hello
World
Klasa System
Funkcionalna razlika izmeu print() i
println()?
print.ln() pomera kursor na poetak
sledeeg reda
Problem ispisivanje brojeva je ponekad
u formatu koji nije pregledan
Metoda za formatiranje podataka printf()
Klasa System
Broj opcija metoda printf() je veoma veliki
Moe imati jedan ili vie argumenata
odvojenih zarezima
Prvi argument odreuje format
Ostali argumenti predstavljaju vrednosti
koje se prikazuju
Klasa System
double kamatnaStopa = 20.0 / 12; // kamatnaStopa =
1.666...
System.out.println("Mesecna kamata: " + kamatnaStopa);

Rezultat
Mesecna kamata: 1.6666666666666667

System.out.printf("Mesecna kamata: %5.2f\n",


kamatnaStopa);

Rezultat
Mesecna kamata: 1.67
Klasa System
Ukljuivanje brojeva u print funkcije:
public class PrintBrojeva {

public static void main (String[] args){


int a = 3;
int b = 4;
System.out.println( a + b );
System.out.println( "3" + "4" );
System.out.println( "" + a + b );
System.out.println( 3 + 4 + a + " " + b + a );
System.out.println( "Rezultat: " + a + b );
System.out.println( "Rezultat: " + ( a + b ) );
}

}
Klasa System
Izlaz:
7
34
34
10 43
Rezultat: 34
Rezultat: 7
Klasa Math
Za mnoge matematike funkcije u Javi
postoje metode koje izraunavaju i vraaju
odgovarajuu vrednost
Te metode su grupisane u klasi Math, kao
statiki lanovi
Klasa Math
Math.sqrt(x)
Math.abs(x)
Math.sin(x), Math.cos(x)
Math.exp(x)
Math.pow(x,y)
Math.random()
Klasa Math
Na primer, za izraunavanje kvadratnog
korena nekog broja slui metoda sqrt()
Rezultat metode Math.sqrt(x) je vrednost
tipa double
Moe se koristiti na svakom mestu u
programu gde je dozvoljeno koristiti
vrednost tipa double
Klasa Math
public class Koren {

public static void main(String[] args) {


int i = 2;
double r = Math.sqrt(i);

System.out.print("Kvadratni koren od ");


System.out.print(i);
System.out.print(" je ");
System.out.print(r);
System.out.println(".");

i = 5;
r = Math.sqrt(i);
System.out.println("Kvadratni koren od " + i + " je " + r +
".");
}

}
Klasa Math
Izlaz programa

Kvadratni koren od 2 je
1.4142135623730951.
Kvadratni koren od 5 je
2.23606797749979.
Klasa Math
U svim metodima, parametar u zagradi
moe biti bilo kog numerikog tipa
Osim za Math.abs(x) i Math.round(x),
vraena vrednost je tipa double
Math.abs (x) je istog tipa kao parametar x
Math.round(x) je celobrojni tip long
Math.random() kao rezultat daje sluajni
realni broj iz intervala [0,1)
Klasa Math
Primer: Pitagorina teorema
import java.util.Scanner;

public class Pitagora {

public static void main (String[] args){


int a;
int b;
Scanner tastatura = new Scanner(System.in);
System.out.println ("Unesite stranice trougla a i b: ");
a = tastatura.nextInt();
b = tastatura.nextInt();

double c;
//c = sqrt (a^2 + n^2)
c = Math.sqrt(Math.pow(a, 2) + Math.pow(b,2));
System.out.println ("Stranica c = " + c);
}
}
Klasa Math
Pitagorina teorema izlaz
Unesite stranice trougla a i b:
3 4
Stranica c = 5.0
Klasa String
Vrednosti klase String su objekti koji se
nazivaju stringovi
Objekat klase String sadri niz znakova
koji ine string
Takoe sadri metode kojima se moe
manipulisati stringovima
Klasa String
Primer:
String s = "Pera Peri";
s.length() onzaava poziv metoda length() primenjenog
na string na koji ukazuje promenljiva s
Rezultat poziva je ceo broj 10 (duina stringa s)
Optije reeno, za svaku promenljivu s tipa String,
rezultat poziva s.length() je ceo broj tipa in jednak broju
znakova u stringu s
Klasa String
s.toUpperCase() kao rezultat daje novi string
koji je jednak originalnom stringu, samo to su
sva mala slova pretvorena u velika
s.toLowerCase() analogno, pretvara velika slova
u mala
s.charAt(n), gde je n ceo broj, kao rezultat vraa
znak tipa char koji se nalazi na n-toj poziciji
stringa. Pozicije niza znakova su numerisane od
0.
Klasa String
Primer
public class PrimerString {
public static void main (String[] args){
String poruka = "Dobar dan svima!";
int duzina = poruka.length();
System.out.println("Duzina poruke je: " + duzina);

// konkatenacija
poruka += " Danas je lep dan! ";
System.out.println (poruka);
// podstring
String poruka2 = poruka.substring(0, 5);
System.out.println (poruka2);
}
}
Klasa String
Izlaz programa

Duzina poruke je: 16


Dobar dan svima! Danas je lep dan!
Dobar
Klasa Scanner
Klasa Scanner se nalazi u paketu java.util
Olakava uitavanje ulaznih podataka
Za razliku od System.out, gde su metode
statike, metode definisane u klasi
Scanner su objektne
To znai da je za njihovu primenu
potrebno konstruisati jedan objekat tipa
Scanner
Klasa Scanner
Za konstruisanje objekta bilo kog klasnog
tipa NekaKlasa slui operator new
Opti oblik new NekaKlasa(...)
Zapis NekaKlasa(...) iza rei new
oznaava poziv specijalne metode koja se
naziva konstruktor
Konstruktor inicijalizuje konstruisani
objekat
Klasa Scanner
Konstruisanje objekta klase Scanner

Scanner tastatura = new Scanner(System.in);

Ovom naredbom dodele konstruie se


objekat klase Scanner i referenca na njega
se dodeljuje promenljivoj tastatura.
Klasa Scanner
tastatura.next() uitava niz znakova do
prve beline i vraa String
tastatura.nextInt() uitava sledeu
vrednost tipa int. Za sve primitivne tipove
podataka postoje odgovarajue metode
tastatura.nextLine() uitava niz znakova
do kraja reda (znak novog reda)
Klasa Scanner
tastatura.hasNextInt () vraa true ukoliko
je vrednost int raspoloiva preko tastature
tastatura.hasNextLine () vraa logiku
vrednost true ako je ulazni niz znakova
raspoloiv preko tastature do kraja reda

Scanner klasa je mnogo optija, moe


posluiti za uitavanje podataka i iz drugih
izvora, poput datoteka itd.
Klase omotai
Primitivni tipovi u Javi nisu klase
Njihove vrednosti nisu objekti
Ponekad je potrebno primitivne vrednosti tretirati
kao da su to objekti
Ne moe direktno, ve se mora vrednost
primitivnog tipa umotati u objekat odgovarajue
omotake klase
Za svaki primitivni tip postoji odgovarajui
omota: Byte, Short, Integer, Long, Float,
Double, Character i Boolean
Klase omotai
Double d = new Double (5.15);
d nosi iste informacije kao promenljiva
primitivnog tipa, ali u formi objekta
Ako se treba koristiti vrednost tipa double
koju sadri objekat d:
double x = d.doubleValue() *3.14;
Klase omotai
Sadre korisne konstante i statike
metode za rad
Klasa Integer, na primer, sadri konstante
MIN_VALUE i MAX_VALUE, jednake
minimalnoj i maksimalnoj vrednosti tipa int
Klasa Integer, na primer, sadri statiku
metodu parseInt () koja pretvara string u
vrednost tipa int.
Integer.parseInt(23) kao rezultat daje ceo
broj 23 tipa int
Naredbe
Elementi programa koji se izvravaju
Skoro sve naredbe u Javi se piu sa ; na
kraju
Vrste naredbi
Naredba definisanja promenljivih
Naredba dodele vrednosti promenljivim
Blok naredbi
Naredbe grananja
Naredbe ponavljanja (petlje)
Naredba definisanja promenljivih
Svaka promenljiva se mora definisati pre
korienja
Definicija promenljive u Javi se ne mora
pisati na poetku programa
Format:
tip promenljiva = vrednost;
Naredba dodele
Format:
tip promenljiva = izraz;
Primeri:

c = 5*(f - 32)/9;
int i = 17;
double x = 0.0;
Naredba dodele
Izvravanje naredbe dodele
1. Izraunava se izraz na desnoj strani
znaka =
2. Izraunata vrednost izraza se
dodeljuje promenljivoj na levoj strani
znaka =
Naredba dodele
Drugi format:
promenljiva += izraz;
Ekvivalentno sa:
promenljiva = promenljiva + izraz;
Analogno za *=, /=, %= ...
Primeri:
x += 2; x = x + 2;
a /= b + c; a = a / (b + c);
m %= n; m = m % n;
Blok naredbi
Niz naredbi izmeu para zagrada { i }
Format:
{
naredba1;
naredba2;

naredbaN;
}
Blok naredbi
Izvravanje bloka naredbi
Pojedinane naredbe unutar bloka se
sekvencijalno izvravaju
Blok naredbi
Smatra se jednom sloenom naredbom
Blok naredbi se moe pisati na svakom
mestu u programu gde se moe koristiti
obina naredba
Kada se naie na { , sve naredbe u nizu
koje slede iza toga se izvravaju jedna za
drugom, dok se ne naie na }
Blok naredbi
Do sada je blok naredbi korien u main()
metodi svakog programa
Niz naredbi od kojih se sastoji telo main()
metode se nalazi unutar { i }
Analogno, i za sve druge metode vai isto
Blok naredbi
Primer:
{
int x, y;
{
int i = 5;
x = (i++) - 3;
y = i + 4;
}
}
Blok naredbi
Oblast vaenja (domet) neke promenljive
definisane u bloku je od take definicije te
promenljive do kraja bloka
Lokalne promenljive se ne mogu koristiti u
okolnim blokovima
Naredbe u bloku mogu koristiti promenljive
iz okolnih blokova
Oblast vaenja promenljivih
{
int x, y;
{
int i = 5;
x = (i++) - 3;
y = i + 4;
}
i = 0; // greka
}
Oblast vaenja promenljivih
Oblast vaenja promenljivih
Promenljiva koja je definisana unutar
bloka je nedostupna van tog bloka
Unitava se nakon izvrenja bloka
Na taj nain se malo tedi u memoriji
Spreavaju se ozbiljniji problemi
nenamerne upotrebe iste promenljive za
druge svrhe
Naziva se lokalna promenljiva za taj blok,
odnosno taj blok je njena oblast vaenja

You might also like