milica Ćiri ć -...

Post on 05-Feb-2018

220 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Univerzitet u NišuGrađevinsko -arhitektonski fakultet

Informatika 2Informatika 2

1.Osnove programskog jezikaJava

Milica Ćiri ć

Elementi jezika• Beli znaci – blanko, tabulatori, novi red...

• Komentari - // i /**/

• Identifikatori – simbolička imena promenljivih, konstanti, metoda...

Literali – konkretne vrednosti i to numeričke, logičke, • Literali – konkretne vrednosti i to numeričke, logičke, znakovne i null

• Ključne reči – reči sa unapred definisanim značenjem

• Operatori – aritmetički, logički, relacioni

• Separatori – () {} [] ;

2

Primitivni tipovi podataka• Numerički – celebrojni (int, long, short, byte) i

realni (float i double)

• Logički – boolean

• Znakovni – char

• Za svaki od primitivnih tipova postoji odgovarajuća wrapper klasa koja se može koristiti za očitavanje minimalnih i maksimalnih vrednosti, konvertovanje iz i u znakovni niz...

3

Promenljive• Promenljiva se deklariše navođenjem tipa i imena

promenljivetip_promenljive ime_promenljive;

• Promenljva se inicijalizuje dodeljivanjem početne (inicijalne) vrednosti prilokom deklaracije(inicijalne) vrednosti prilokom deklaracije

tip_promenljive ime_promenljive = vrednost;

• Promenljive koje ne inicijalizujemo prilikom deklaracije se inicijalizuju podrazumevanom vrednošću koja zavisi od tipa podataka promenljive (0, false, ‘\0’)

4

PrimeriNakon izvršenja slecećeg reda (deklaracija bezinicijalizacije):• int a; //a ima vrednost 0

• double b; //b ima vrednost 0.0

• char c; //c ima vrednost ‘\0’

• boolean d; /*d ima vrednost false*/

5

PrimeriNakon izvršenja sledećeg reda (deklaracija sa inicijalizacijom):• int a=3; //a ima vrednost 3

• double b=3.2 ;//b ima vrednost 3.2

• char c=‘h’; //c ima vrednost ‘h’

• boolean d=true; /* d ima vrednosttrue */

6

PrimeriMoguće su i kombinacije:• int a, e=-5; /* a ima vrednost 0, a e

-5 */

• double b=2.4, f; /* b ima vrednost2.4, a f 0.0 */

7

KonstanteKonstante su izrazi fiksne vrednosti i moraju se inicijalizovati pri deklarisanju. Za deklarisanjekonstanti koristi se ključna reč final

final tip_promenljive naziv_promenljive = vrednost;

Primeri• final double PI=3.14;

• final int BROJ_SATI_U_DANU=24;

8

Operatori• Dodele =• Aritmetički +,-,*,/,%,++,--• Logički !,&&,||,^• Relacioni >,<,>=,<=,==.!=• Za pristup članovima [],.

Poziva funkcije .• Poziva funkcije .• Za konverziju tipova (cast operator)• Za kreiranje novog objekta new• Za ispitivanje tipa objekta instanceof• Zarez operator ,• Ternarni uslovni operator : ?

9

Primeri• a = 3; //dodela vrednosti• a = b + 3; • a = b++; //isto što i a=b; b=b+1;• a = ++b; //isto što i b=b+1; a=b;• d = (a - b)/(a%c – b);• p = !((q&&r)||(!r&&!q));

float f = ( float) 5; /* pretvaranje celobrojne• float f = ( float) 5; /* pretvaranje celobrojnevrednosti u realnu */

• prviElement = niz[0]; /*dodeljivanje vrednosti prvogelementa niza promenljivoj*/

• if (a>=b) max=a; else max=b; /*odre ñivanje maksimalne od dve vrednosti*/

• max = (a>=b) ? a : b; //isto kao i prethodno• s = Math. sin(e); /*pozivanje funkcije paketa Math za

odre ñivanje sinusa*/

10

Algoritam• Konačan niz koraka kojim se rešava neki problem

• Svaki problem može imati veći broj rešenja

• Primer 1. izračunati sumu prvih N prirodnih brojeva

• Rešenje 1.1• Rešenje 1.11. Učitati (definisati) N2. Početna vrednost sume je 03. Za svako i od 1 do N

1. Dodati sumi vrednost i4. Prikazati vrednost sume

11

AlgoritamPrimer 2. Izračunati sumu svih neparnih brojeva od 1

do N

Rešenje 2.11. Učitati (definisati) N

2. Početna vrednost sume je 02. Početna vrednost sume je 0

3. Za svako i od 1 do N1. Ako je i neparno

1. Dodati sumi vrednost i4. Prikazati vrednost sume

12

AlgoritamRešenje 2.2

1. Učitati (definisati) N

2. Početna vrednost sume je 0

3. Početna vrednost za i je 1

4. Ako je i manje ili jednako N4. Ako je i manje ili jednako N1. Dodati sumi vrednost i

2. Povećati i za 2

3. Vratiti se na korak 4.

5. Prikazati vrednost sume

13

Vizuelni prikaz algoritmaAlgoritam se vizuelno može prikazati pomoću blok

dijagrama, korišćenjem blokova sa unapreddefinisanim značenjem

Početak Kraj RačunanjePočetak Kraj

IzlazUlaz

Računanje

Odluka Odluka

Konektor

Strelica za

povezivanje

blokova14

Primer• Primer 1. izračunati

sumu prvih N prirodnih brojeva

• Rešenje 1.11. Učitati (definisati) N2. Početna vrednost

P

N

S=0

2. Početna vrednost sume je 0

3. Za svako i od 1 do N1. Dodati sumi

vrednost i4. Prikazati vrednost

sumeK

S

i=1,N

S=S+i

15

Primer• Primer 2. Izračunati

sumu svih neparnih brojeva od 1 do N

• Rešenje 2.11. Učitati (definisati) N2. Početna vrednost

sume je 0

P

N

i=1,N

S=0

2. Početna vrednost sume je 0

3. Za svako i od 1 do N1. Ako je i neparno

1. Dodati sumi vrednost i

4. Prikazati vrednost sume

K

S

i=1,N

S=S+ii%2=1 DA

NE

16

Primer• Primer 2. Izračunati sumu

svih neparnih brojeva od1 do N

• Rešenje 2.21. Učitati (definisati) N2. Početna vrednost sume

P

N

S=0

i=12. Početna vrednost sume

je 03. Početna vrednost za i je

14. Ako je i manje ili jednako

N1. Dodati sumi vrednost i2. Povećati i za 23. Vratiti se na korak 4.

5. Prikazati vrednost sume

K

S

i<=N

DA

NE

S=S+ii=i+2

17

Rešenje primera 1 u Javi//definisanje kom paketu pripada ova klasa

package vezbe;

//uvozenje biblioteka cije klase/funkcije koristimo

import java.io.*;

//svaki java program mora da bude klasa i ovde defi nisemo njeno ime

public class Cas1Zad1

{/* glavna (main) funkcija klase je ona koja se prva izvrsava kada

pokrenemo program */

public static void main(String[] args) throws Exception

{

/* deklaracija promenljivih */

int N, i, S;

/* definisanje ulaznog toka koji cemo koristiti za ucitavanje,

u ovom slucaju je to standardni ulaz, tj. tastatura */

BufferedReader ulaz = new BufferedReader( newInputStreamReader(System. in)); 18

Rešenje primera 1 u Javi (nastavak)

/* stampanje poruke korisniku da unese vrednost za N */System. out.print ("Unesite vrednost za N: " );/* ucitavanje i dodela vrednosti koju je korisnik uneo */N = Integer. parseInt(ulaz.readLine());/* definisanje pocetne vrednosti sume */S = 0;/* for petlja za koju je definisano da je brojac promenljiva i

sa pocetnom vrednoscu 1 i krajnjom vrednoscu Npri cemu se u svakom prolasku vrednost i povecava za 1 */

for (i = 1; i <= N; i++){{

/* u svakom prolasku kroz petlju vrednost sume uvecamoza i */

S = S + i;}/* stampanje izracunate vrednosti sume na standardni izlaz, tj.

monitor */System. out.println( "Vrednost sume prvih " + N + " brojeva je " +

S);}

}

19

Primer 2 – Rešenje 1package vezbe;

import java.io.*;

public class Cas1Zad2Res1

{public static void main(String[] args) throws Exception

{

int N, i, S;

BufferedReader ulaz = new BufferedReader( new InputStreamReader(System. in));

System. out.print( "Unesite vrednost za N: " );

N = Integer.parseInt ( ulaz.readLine ());N = Integer.parseInt ( ulaz.readLine ());

S = 0;

for (i = 1;i <= N; i++)

{

/* ako je zadovoljen uslov da je i po modulu 2 jednako 1

tj. ako je i neparan broj */

if (i % 2 == 1)

{

/* vrednost sume uvecamo za i */

S = S + i;

}}

System. out.println( "Vrednost sume neparnih brojeva od 1 do " + N + " je " + S);

}

}

20

Primer 2 – Resenje 2package vezbe;

import java.io.*;

public class Cas1Zad2Res2

{public static void main(String[] args) throws Exception

{

int N, i, S;

BufferedReader ulaz = new BufferedReader( new InputStreamReader(System. in));

System. out.print( "Unesite vrednost za N: " );

N = Integer.parseInt ( ulaz.readLine ());N = Integer.parseInt ( ulaz.readLine ());

S = 0;

/* definisemo pocetnu vrednost za i */

i = 1;

/* dokle god je ispunjen uslov da je i manje ili jednako N* /

while (i <= N)

{

/* vrednost sume uvecamo za i */

S = S + i;

/* uvecamo i za 2 */

i= i + 2;}

System. out.println( "Vrednost sume neparnih brojeva od 1 do " + N + " je " + S);

}

}21

top related