Professional Documents
Culture Documents
L1 Java
L1 Java
programiranje
Lekcija 01
O S N OV E P R O G RA M I RA N JA
Metropolitan
PRIRUNIK ZA STUDENTE
Copyright 2010 UNIVERZITET METROPOLITAN, Beograd. Sva prava
zadrana. Bez prethodne pismene dozvole od strane Univerziteta
METROPOLITAN zabranjena je reprodukcija, transfer, distribucija ili
memorisanje nekog dela ili itavih sadraja ovog dokumenta.,
kopiranjem, snimanjem, elektronskim putem, skeniranjem ili na bilo koji
drugi nain.
Lekcija 01
OSNOVE PROGRAMIRANJA
Osnove programiranja
Poglavlje 1: Uvod u raunare
Poglavlje 2: Programski jezici
Poglavlje 3: Uvod u programiranje u Javi
Poglavlje 4: Razvojno okruenje NetBeans
Poglavlje 5: Pokazna veba
Poglavlje 6: Zadaci za individualni rad
Poglavlje 7: Domai zadatak br.1
Zakljucak
Lekcija 01: Osnove programiranja
Osnove programiranja
UVOD
4
Poglavlje 1: Uvod u raunare
TA JE RAUNAR?
Raunar ini hardver i softver. Hardver ini fiziki deo raunara, znai ono
to se vidi, a softver je nevidljiv, jer ga ine programske instrukcije koje
kontroliu rad hardvera i koje omoguavaju da hardver izvri odreeni
zadatak.
5
Lekcija 01: Osnove programiranja
6
Poglavlje 1: Uvod u raunare
BINARNI SIGNALI
Bit je signal, odnosno najmanji element programa koji moe imati samo
dve vrednosti: "ukljueno/iskljueno"' ili 1 ili 0.
7
Lekcija 01: Osnove programiranja
8
Poglavlje 1: Uvod u raunare
BIT I BAJT
Poto jedan bit moe da uva samo jedno od dva stanja, to je nedovoljno
za opisivanje informacija iz realnog sveta. Da bi se prevaziao ovaj
problem, informacije je opisuju grupama od vie bitova. Tako je
memorija raunara organizovana u grupe od po 8 bitova koji
se nazivaju bajtovi(engl. bytes). Jedan bajt je otprilike dovoljan za
smetanje jednog karaktera u ASCII kodu.
9
Lekcija 01: Osnove programiranja
10
Poglavlje 1: Uvod u raunare
Kada ljudi kau da raunar ima "256 megabajta RAM-a", oni govore o
njegovoj glavnoj memoriji. U glavnoj memoriji se nita ne uva za stalno.
Ponekad se podaci tu nalaze samo nekoliko sekundi, odnosno samo
onoliko vremena koliko su bili potrebni.
magnetni diskovi,
optiki diskovi (CD, DVD)
USB fle (flash).DD
SSD (Solid State Drive)
11
Lekcija 01: Osnove programiranja
12
Poglavlje 1: Uvod u raunare
KOMUNIKACIONI UREAJI
TA JE SOFTVER?
Podaci mogu biti bilo koje informacije koje program koristi. To mogu
biti brojani podaci, tekst, zvuni ili neki drugi podaci. Razlika izmeu
programa i podataka nije ba tako jasna kako bismo moda zakljuili.
13
Lekcija 01: Osnove programiranja
14
Poglavlje 1: Uvod u raunare
15
Lekcija 01: Osnove programiranja
16
Poglavlje 2: Programski jezici
MAINSKI JEZIK
1101101010011010
17
Lekcija 01: Osnove programiranja
18
Poglavlje 2: Programski jezici
MOV R5 R6
19
Lekcija 01: Osnove programiranja
20
Poglavlje 2: Programski jezici
ASEMBLERSKI JEZIK
add, 2, 3, result
21
Lekcija 01: Osnove programiranja
22
Poglavlje 2: Programski jezici
23
Lekcija 01: Osnove programiranja
Funkcionalna paradigma
Objektno-orijentisana paradigma
Imperativna (ili proceduralna) paradigma, i
Deklarativna paradigma.
24
Poglavlje 2: Programski jezici
25
Lekcija 01: Osnove programiranja
26
Poglavlje 2: Programski jezici
OBJEKTNO-ORIJENTISANA PARADIGMA
PROGRAMIRANJA
27
Lekcija 01: Osnove programiranja
28
Poglavlje 2: Programski jezici
PROGRAMSKA INSTRUKCIJA
double pi = 3.14156;
29
Lekcija 01: Osnove programiranja
Primer:
Svaki programski jezik ima svoju sintaksu i semantiku. Jezici koje ljudi
koriste u svakodnevnom ivotu, takoe imaju sintaksu i semantiku. Kod
programskih jezika postoji i pragmatika, koja je jedinstvena za njih.
30
Poglavlje 2: Programski jezici
31
Lekcija 01: Osnove programiranja
32
Poglavlje 2: Programski jezici
33
Lekcija 01: Osnove programiranja
TA JE JAVA?
34
Poglavlje 2: Programski jezici
35
Lekcija 01: Osnove programiranja
36
Poglavlje 2: Programski jezici
Iskaz:
LOGINE PROMENLJIVE
37
Lekcija 01: Osnove programiranja
Tipovi podataka koje smo do sada naveli (integer, float, char, Boolean)
se definiu u svim programskim jezicima, nazivaju se primitivnim
tipovima podataka. Pored njih, mogu se javiti tipovi podataka koji se
jo ne koriste ire, kao to su: slike(image), zvuni zapis (audio), video
zapis (video) i hipertekst (hypertext). U objektno-orijentisanim jezicima
programer moe da sam definie svoje tipove podataka.
STRUKTURA PODATAKA
Vrlo esta struktura podataka je array (niz). Array je blok elemenata istog
tipa, kao to je jednodimenziona lista, ili dvodimenziona tabela, sa svojim
redovima i kolonama, ili neka viedimenziona tabela. Programski jezici
omoguavaju programeru da na poetku programa deklarie ime niza
(array), kao i duinu (broj elemenata) svake dimenzije viedimenzionog
niza. Na slici 2 je predstavljena struktura podataka u vidu jednog
dvodimenzionog niza podataka koja se deklarie sledeim iskazom:
int Scores[2][4];
Kada je neka struktura podataka deklarisana na poetku programa, onda
se ona moe pozivati svojim imenom, a svaki njen element (odreenog
primitivnog tipa) se moe preuzimati ili aurirati, pri emu do odreenog
elementa dolazimo ako znamo njegov indeks (redni broj) du svake
od dve dimenzije. Menjajui ove indekse, moe se pristupiti bilo kom
elementu, ako je potrebno, preko odgovarajue vrednosti indeksa svake
od dimenzije strukture.
38
Poglavlje 2: Programski jezici
Pored nizova iji su svi elementi istog primitivnog tipa, postoje nizovi
koji sadre razliite tipove primitivnih podataka, te se ovi tipovi podataka
nazivaju agregatni tipovi , ili, se koriste i druga imena: structure, ili
slog (record) ili heterogeni niz, tj. heterogenious array. U ovom sluaju,
elementi bloka mogu biti razliitog tipa. Na primer, u jeziku C struktura
podataka pod nazivom Employee se moe iskazati na sledei nain:
HETEROGENE STRUKTURE
Pored nizova iji su svi elementi istog primitivnog tipa, postoje nizovi
koji sadre razliite tipove primitivnni podataka, te se ovi tipovi podataka
nazivaju agregatni tipovi , ili se koriste i druga imena: structure, ili
slog (record) ili heterogeni niz, tj. heterogenious array. U ovom sluaju,
elementi bloka mogu biti razliitog tipa. Na primer, u jeziku C struktura
podataka pod nazivom Employee se moe iskazati na sledei nain:
39
Lekcija 01: Osnove programiranja
KONSTANTE
ISKAZI UPRAVLJANJA
40
Poglavlje 2: Programski jezici
If-then-else:
if (uslov)
then (iskazA)
else (iskazB)
while:
while (uslov) do
(telo petlje)
U programskim jezicima C, C++, C# i Java , ovi iskazi bi bili napisani na
sledei nain:
if (uslov) iskazA
else iskazB;
while (uslov)
{telo petlje};
while (uslov)
{telo petlje};
switch:
switch (promenljiva) {
case 'A': iskazA; break;
case 'B': iskazB; break;
case 'C': iskazC; break;
default: iskazD}
41
Lekcija 01: Osnove programiranja
KOMENTARI
42
Poglavlje 2: Programski jezici
KOMPAJLER
43
Lekcija 01: Osnove programiranja
44
Poglavlje 2: Programski jezici
Ako je program pod nazivom Java Virtual Machine, ili krae JVM instaliran
na nekom raunaru, on moe da izvri program u meukodu Jave, tj. u
bytecode-u. Ovo omoguava portabilnost programa pisanih u Javi, jer
mogu da se izvravaju na svim raunarima na kojima je instalirana Java,
tj. JVM.
INTERPRETER
45
Lekcija 01: Osnove programiranja
VIRTUALNA MAINA
46
Poglavlje 2: Programski jezici
47
Lekcija 01: Osnove programiranja
48
Poglavlje 3: Uvod u programiranje u Javi
UVOD
49
Lekcija 01: Osnove programiranja
http://en.wikipedia.org/wiki/Java_Development_Kit
50
Poglavlje 3: Uvod u programiranje u Javi
http://www.oracle.com/technetwork/java/javase/downloads/index.html
51
Lekcija 01: Osnove programiranja
;C:\Program Files\java\jdk\bin;
export JAVA_HOME="/putanja/do/jave"
export PATH="$JAVA_HOME/bin:$PATH"
PRVI PROGRAM
Sledei kod predstavlja prvi program koji se obino daje kada se poinje
sa nekim programskim jezikom. To je program koji na ekranu treba da
ispie Zdravo, svete!.
52
Poglavlje 3: Uvod u programiranje u Javi
System.out.println("Zdravo, svete!");
IZVRENJE PROGRAMA
53
Lekcija 01: Osnove programiranja
javac mojPrviJavaProgram.java
java mojPrviJavaProgram.class
"Zdravo, svete!"
54
Poglavlje 3: Uvod u programiranje u Javi
SINTAKSNE GREKE
D:\MojiProgrami>javac MojPrviJavaProgram.java
compiling: MojPrviJavaProgram.java
MojPrviJavaProgram.java:1: Class or interface declaration
expected.
Class MojPrviJavaProgram
^
1 error
55
Lekcija 01: Osnove programiranja
LOGIKE GREKE
56
Poglavlje 3: Uvod u programiranje u Javi
Rezultat na monitoru:
Welcome to Java!
Prikazani brojevi nisu deo programa. Navedeni su samo radi reference, tj.
pri objanjenju programskih linija.
Linija 2 definie metod koji se naziva main. Metod je mali program. Svaki
program u Javi mora da ima metod main i izvrenje programa poinje i
kontrolie se iz metoda main. Klasa moe da ima vie metoda, ali metod
main mora da ima, jer on inicira poetak izvrenja programa.
KOMENTARI U PROGRAMU
Program pisan u Javi sadri kljune rei, tj. rezervisane rei koje imaju
specifino znaenje koje kompajler (prevodilac izvornog programa)
razume. Te kljune rei se ne mogu u programu koristiti za neke druge
57
Lekcija 01: Osnove programiranja
Kada kompajler vidi //, on ignorie celu liniju, tj. tekst iza // do kraja
linije. Meutim, kada kompajler vidi /* on preskae jednu ili vie linija u
programu, sve dok ne doe do */ , to je za njega oznaka za prestanak
ignorisanja tog dela programa. Primer jednog komentara u bloku se daje
dole
PROGRAMSKI BLOKOVI
58
Poglavlje 3: Uvod u programiranje u Javi
Svaka klasa ima blok klase koji grupie podatke i metode klase.Takoe,
svaki metod sadri blok metoda koji grupie programske instrukcije (ili
iskaze) metoda.
59
Lekcija 01: Osnove programiranja
Rezultat na monitoru:
Programming is fun!
Fundamentals First
Problem Driven
Rezultat na monitoru:
0.39759036144578314
60
Poglavlje 3: Uvod u programiranje u Javi
Moete koristiti bilo koji editor teksta ili Java IDE za kreiranje ili menjanje
izvornog koda programa. Prevoenje i izvrenje programa moete izvriti
i sa komandne linije prikazane na komandnom prozoru raunara.
61
Lekcija 01: Osnove programiranja
IZVRENJE PROGRAMA
java
Slika 3.3.5 Komandni prozor u
kome se na komandnoj liniji
poziva Java kompajler i
prevodi izvorni kod u bajtkod
62
Poglavlje 3: Uvod u programiranje u Javi
KORIENJE KOMENTARA
63
Lekcija 01: Osnove programiranja
STILOVI ZA BLOKOVE
64
Poglavlje 4: Razvojno okruenje NetBeans
65
Lekcija 01: Osnove programiranja
PREUZIMANJE
https://netbeans.org/downloads/
66
Poglavlje 4: Razvojno okruenje NetBeans
67
Lekcija 01: Osnove programiranja
68
Poglavlje 4: Razvojno okruenje NetBeans
NETBEANS PROJEKAT
69
Lekcija 01: Osnove programiranja
70
Poglavlje 4: Razvojno okruenje NetBeans
71
Lekcija 01: Osnove programiranja
Poto ste u postupku pravljenja projekta izabrali polje Create Main Class,
u okruenju NetBeans se formira kostur glavne klase
MojPrviJavaProgram.
POKRETANJE PROJEKTA
Da biste preveli Java program, izaberite opcijuRun > Run File u glavnom
prozoru NetBeans-a. Preica za ovu opciju je Shift + F6. Ulazno-izlazni
podaci tokom izvravanja programa se takoe prikazuju u izlaznom
panelu tog prozora. Jedan primer izvravanja programa
MojPrviJavaProgram je prikazan na slici:
72
Poglavlje 4: Razvojno okruenje NetBeans
STRUKTURA PROJEKTA
http://docs.oracle.com/cd/E40938_01/doc.74/e40142/toc.htm
73
Lekcija 01: Osnove programiranja
74
Poglavlje 4: Razvojno okruenje NetBeans
75
Lekcija 01: Osnove programiranja
ZADATAK 1
Zadatak 1:
Kreirati java projekat koji ete zvati CS101V01. Main klasa treba da
se zove Zadatak1. Ovaj zadatak treba da prikae 3 poruke na ekranu:
Dobrodoli u Javu, Dobrodoli u kompjuterske nauke i Programiranje je
zabavno.
Objanjenje:
Svaka klasa moe sadrati nekoliko metoda, ali najvaniji je metod main
koji predstavlja prvu taku u izvravanju programa. Svaki
program poinje da se izvrava metodom main.
76
Poglavlje 5: Pokazna veba
ZADATAK 2
Zatadatk 2:
Objanjenje:
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
new Zadatak2();
}
public Zadatak2() {
System.out.println("Dobrodoli u Javu");
System.out.println("Dobrodoli u Javu");
System.out.println("Dobrodoli u Javu");
System.out.println("Dobrodoli u Javu");
System.out.println("Dobrodoli u Javu");
}
77
Lekcija 01: Osnove programiranja
ZADATAK 3
Zadatak 3:
Objanjenje:
public Zadatak3() {
/*
\r\n su karakteri koji nam omoguavaju da napravimo novi
red
u stringu
*/
System.out.println(" J A V V A \r\n"
+ " J A A V V A A \r\n"
+ " J J AAAAA V V AAAAA\r\n"
+ " J J A A V A A\r\n");
78
Poglavlje 5: Pokazna veba
}
}
ZADATAK 4
Zadatak 4:
79
Lekcija 01: Osnove programiranja
Objanjenje:
80
Poglavlje 5: Pokazna veba
}
}
Napredno reenje:
ZADATAK 5
Zadatak 5:
Objanjenje:
81
Lekcija 01: Osnove programiranja
Svaka promenljiva u programu mora imati svoj tip koji se navodi ispred
imena.
Reenje:
ZADATAK 6
Zadatak 6:
(1+2+3+4+5+6+7+8+9)
Objanjenje:
82
Poglavlje 5: Pokazna veba
Napredno reenje
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
/**
* Suma svih brojeva od 1 do 9. Suma se svaki put poveava
* za i koji predstavlja iterator kroz petlju. U svakom
* krugu petlje i je vei za jedan (i++).
*/
int sum = 0;
for (int i = 1; i <= 9; i++) {
sum += i;
}
System.out.println("Zbir je = " + sum);
}
}
ZADATAK 7
Zadatak 7:
4 * [1.0 (1/3)+(1/5)-(1/7)+(1/9)-(1/11)]
Reenje:
83
Lekcija 01: Osnove programiranja
*/
public static void main(String[] args) {
new Zadatak7();
}
public Zadatak7() {
double result = 4 * (1.0 (1/3)+(1/5)-(1/7)+(1/
9)-(1/11));
System.out.println("Rezultat = " result);
}
}
ZADATAK 8
Zadatak 8:
Obim = 2*r*Pi.
Objanjenje:
84
Poglavlje 5: Pokazna veba
Napredno reenje:
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
new Zadatak8();
}
public Zadatak8() {
System.out.println("Obim kruga je " +
izracunajObimKruga(5.5));
System.out.println("Povrsina kruga je " +
izracunajPovrsinuKruga(5.5));
}
/**
* Ovo je metoda. Metoda omoguava da neku operaciju koju
esto ponavljate
* svedete na minimalnu koliinu koda Naprimer ukoliko treba
na 10 mesta da
* raunate povrinu kruga moete napsati jednu metodu i
pozvati je umesto
* da svaki put piete kod za proraun. Ova metoda prima
radius koji je tipa
* double i takoe vraa double rezultat
*
* @param radius
* @return ova metoda vraa 2 pomnoeno sa radiusom i sa
Pi.
*/
public double izracunajObimKruga(double radius) {
return 2 * radius * Math.PI;
}
/**
* Metoda koja proraunava povrinu kruga. Prima radius koji
je tipa double
* i vraa double kao rezultet.
*
* @param radius
* @return
*/
public double izracunajPovrsinuKruga(double radius) {
return radius * radius * Math.PI;
}
85
Lekcija 01: Osnove programiranja
ZADATAK 9
Zadatak 9:
Napredno reenje:
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
new Zadatak8();
}
public Zadatak8() {
System.out.println("Obim kruga je " +
izracunajObimKruga(5.5));
System.out.println("Povrsina kruga je " +
izracunajPovrsinuKruga(5.5));
}
/**
* Ovo je metoda. Metoda omoguava da neku operaciju koju
esto ponavljate
86
Poglavlje 5: Pokazna veba
public Zadatak9() {
System.out.println("Povrsina pravougaonika je: " +
izracunajPovrsinuPravougaonika(4.5, 7.9));
}
/**
* Metoda koja prima sirinu i visinu i vraca ove dve
vrednosti pomnoene.
* @param sirina
* @param visina
* @return
*/
public double izracunajPovrsinuPravougaonika(double sirina,
double visina) {
return sirina * visina;
}
}
87
Lekcija 01: Osnove programiranja
1. Zadatak:
2. Zadatak:
3. Zadatak:
Definisanje 4. i 5. zadatka
4. Zadatak:
88
Poglavlje 6: Zadaci za individualni rad
Pi=4(11/3+1/51/7+1/91/11)
4(11/3+1/51/7+1/91/11)
4(11/3+1/51/7+1/91/11+1/13)
5. Zadatak :
6. Zadatak:
7. Zadatak
8. Zadatak:
89
Lekcija 01: Osnove programiranja
90
Poglavlje 7: Domai zadatak br.1
Pokrenuti program
91
Lekcija 01: Osnove programiranja
Zakljucak
ZAKLJUAK
Nauili smo:
92