programiranje - gf.unsa.ba · programiranje amir hajdar teme Šta znači programirati? ciklusi...

15
PROGRAMIRANJE Amir Hajdar Teme Šta znači programirati? Ciklusi programiranja Problemi i rješavanje problema Java Binarna prezentacija podataka Objekti i klase Osobine objekt-orjentiranog programiranja Java programi 2

Upload: others

Post on 07-Sep-2019

7 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: PROGRAMIRANJE - gf.unsa.ba · PROGRAMIRANJE Amir Hajdar Teme Šta znači programirati? Ciklusi programiranja Problemi i rješavanje problema Java Binarna prezentacija podataka

PROGRAMIRANJEAmir Hajdar

Teme

Šta znači programirati?Ciklusi programiranjaProblemi i rješavanje problemaJavaBinarna prezentacija podatakaObjekti i klaseOsobine objekt-orjentiranog programiranjaJava programi

2

Page 2: PROGRAMIRANJE - gf.unsa.ba · PROGRAMIRANJE Amir Hajdar Teme Šta znači programirati? Ciklusi programiranja Problemi i rješavanje problema Java Binarna prezentacija podataka

Šta znači programirati?

Programiranje predstavlja proces definisanjapodataka i operacija nad podacima kako bi se zadati problem riješio.

4.3.

2.

1.

Rješenje!

3

Životni ciklus programiranja

1

Rješavanje problema

(“problem solving”)

2

Implemetacijarješenja problema

(“implementation”)

3

Održavanje programa

(“maintenance”)

4

Page 3: PROGRAMIRANJE - gf.unsa.ba · PROGRAMIRANJE Amir Hajdar Teme Šta znači programirati? Ciklusi programiranja Problemi i rješavanje problema Java Binarna prezentacija podataka

5

Rješavanje problema

Analiza problema (rezultat mora biti detaljna specifikacija)Razvijanje algoritma za rješavanje problemaProvjera i verifikacija da algoritam stvarno rješava problem

Rješavanje problema

(“problem solving”)

6

Page 4: PROGRAMIRANJE - gf.unsa.ba · PROGRAMIRANJE Amir Hajdar Teme Šta znači programirati? Ciklusi programiranja Problemi i rješavanje problema Java Binarna prezentacija podataka

Problem

Napraviti algoritam za izračunavanje sedmične plate inžinjera građevinarstva (uz određene pretpostavke date na slijedećoj stranici)Kako bi ovo izračunali uz pomoć papira i olovke?

7

Primjer jednog zaposlenog

Zaposlenik date sedmice radi 54 sataZaposlenik zarađuje 15€/satPretpostavite da radna sedmica iznosi 40 satiPretpostavite da zaposlenik prima 50% višu satnicu za svaki sat nakon 40 sati

(40 * 15€) + (14 * 15€ * 1.5) = 915 €

8

Page 5: PROGRAMIRANJE - gf.unsa.ba · PROGRAMIRANJE Amir Hajdar Teme Šta znači programirati? Ciklusi programiranja Problemi i rješavanje problema Java Binarna prezentacija podataka

Generalno rješenje problema

Ako zaposlenik ne radi više od 40 sati tadasedmična_plata = broj_radnih_sati * zarada_po_satu

Ako zaposlenik radi više od 40 sati tadasedmična_plata=

40 * zarada_po_satu +

(broj_radnih_sati – 40) * zarada_po_satu * 1.5

Algoritam?

9

Jezik za programiranje

Def: Jezik sa preciznim pravilima, simbolima i rezervisanim riječima koji se koristi kod pisanja kompjuterskih programa

C

C++Pascal

Fortran

Java

10

Page 6: PROGRAMIRANJE - gf.unsa.ba · PROGRAMIRANJE Amir Hajdar Teme Šta znači programirati? Ciklusi programiranja Problemi i rješavanje problema Java Binarna prezentacija podataka

Implementacija rješenja problema

Prevođenje algoritma u neki od jezika za programiranje (“coding”)U Javi:

Napisati programKompajler prevede program u BytecodeJava Virtual Machine (JVM) prevede Bytecode u mašinski jezik

Implemetacijarješenja problema

(“implementation”)

11

Testiranje programa

Testiranje predstavlja provjeru programa da se pravilno izvršava i proizvodi ispravne rezultate“Debugging” – ispravljanje grešaka u programu

12

Page 7: PROGRAMIRANJE - gf.unsa.ba · PROGRAMIRANJE Amir Hajdar Teme Šta znači programirati? Ciklusi programiranja Problemi i rješavanje problema Java Binarna prezentacija podataka

Održavanje programa

Faza koja dolazi nakon što je program pušten u radPravljenje izmjena programa da bi se uskladio sa novim zahtjevimaIspravljanje grešaka koje nisu “uhvaćene” tokom faze testiranja

Održavanje programa

(“maintenance”)

13

(Ne)Ispravni put

Algoritam

Program(“code”)Program(“code”)

Problem!

14

Page 8: PROGRAMIRANJE - gf.unsa.ba · PROGRAMIRANJE Amir Hajdar Teme Šta znači programirati? Ciklusi programiranja Problemi i rješavanje problema Java Binarna prezentacija podataka

Binarna prezentacija podataka

Bit (binary digit) – 0 i 11 Byte = 8 Bita1 KB = 1024 Byte1 MB = 1024 KB

= 1024 * 1024 Byte = 1,048,576 BytePrimjer:1. 1001012 = ?10

2. ?2 = 4910

15

Primjer - animacija16

Page 9: PROGRAMIRANJE - gf.unsa.ba · PROGRAMIRANJE Amir Hajdar Teme Šta znači programirati? Ciklusi programiranja Problemi i rješavanje problema Java Binarna prezentacija podataka

Primjer - animacija17

ASCII - American Standard Code for Information Interchange

18

Page 10: PROGRAMIRANJE - gf.unsa.ba · PROGRAMIRANJE Amir Hajdar Teme Šta znači programirati? Ciklusi programiranja Problemi i rješavanje problema Java Binarna prezentacija podataka

Jezici nižeg nivoa

Mašinski jezik:Jezik koji kompjuter koristi (nama potpuno neshvatljiv)“Not portable” –vezan za hardversku arhitekturuBinarne instrukcije kojima se podaci manipulišu

Asembler:Vezan za hardversku arhitekturuKoristi komande koje možemo razumijeti (LOAD, STORE, ADD, itd.)

19

Jezici visokog nivoa

Kompajler prevodi jezik u mašinski jezikKoriste jezik sličan engleskom jezikuPostoje striktni standardi kojih se moramo pridržavati kod korištenja jezikaIpak, postoji više verzija pojedinih jezika što predstavlja problem

20

Page 11: PROGRAMIRANJE - gf.unsa.ba · PROGRAMIRANJE Amir Hajdar Teme Šta znači programirati? Ciklusi programiranja Problemi i rješavanje problema Java Binarna prezentacija podataka

C/C++/Pascal

Razne biblioteke funkcija

Razne biblioteke funkcija

Objektni kodProgram

(“executable”)Program

(“executable”)Program(“code”)

Kompajler Linker

Test.c Test.objTest.exe

21

Java

Java Bytecode

Java program(“code”)

Kompajler(javac)

Test.java Test.classWindows PC

+JVM

Windows PC+

JVM

Mac+

JVM

Mac+

JVM

Unix+

JVM

Unix+

JVM

javac Test.javajavac Test.java java Test.classjava Test.class

Interpreter(JVM)(java)

22

Page 12: PROGRAMIRANJE - gf.unsa.ba · PROGRAMIRANJE Amir Hajdar Teme Šta znači programirati? Ciklusi programiranja Problemi i rješavanje problema Java Binarna prezentacija podataka

Java

Ostvaruje portabilnost kroz upotrebu kompajlera(“javac”) i interpretera (“java”)1. Kompajler (“javac”) pretvori program (npr. Test.java)

u Bytecode (npr. Test.class)2. Interpreter (“java”, tj. JVM) pretvori Bytecode u

mašinski jezik koji hardver razumije i pokreće program

23

Java Virtual Machine (JVM)

InterpreterPortabilnost

Ako postoji JVM za kompjuter na kojem radite, svaki java program će raditi

SigurnostJVM limitira šta program može uraditi na kompjuteru na kojem se program izvršava

JednostavnostJVM instrukcije su jednostavnije od mašinskog jezika

24

Page 13: PROGRAMIRANJE - gf.unsa.ba · PROGRAMIRANJE Amir Hajdar Teme Šta znači programirati? Ciklusi programiranja Problemi i rješavanje problema Java Binarna prezentacija podataka

Java – kontrolne strukture

1. Sekvencijalno izvršavanje2. Uslovno izvršavanje3. Petlje – izvršavanje sa ponavljanjem4. Podprogrami – podjela programa u jednostavnije

cjeline5. (Ne)sinhronizovana kontrola – “event handling”

25

Java - sekvencijalno izvršavanje

InstrukcijaInstrukcija InstrukcijaInstrukcija

InstrukcijaInstrukcija InstrukcijaInstrukcija

InstrukcijaInstrukcija

InstrukcijaInstrukcija

InstrukcijaInstrukcija InstrukcijaInstrukcija . . .

26

Page 14: PROGRAMIRANJE - gf.unsa.ba · PROGRAMIRANJE Amir Hajdar Teme Šta znači programirati? Ciklusi programiranja Problemi i rješavanje problema Java Binarna prezentacija podataka

Java - uslovno izvršavanje

IF uslov THEN instrukcija_1 ELSE instrukcija_2

27

TRUEinstrukcija_1instrukcija_1

Instrukcija_2Instrukcija_2

FALSE

uslovuslov

Java - petlje

WHILE uslov DO instrukcija

28

TRUE instrukcijainstrukcija

FALSE

. . .

uslovuslov

Page 15: PROGRAMIRANJE - gf.unsa.ba · PROGRAMIRANJE Amir Hajdar Teme Šta znači programirati? Ciklusi programiranja Problemi i rješavanje problema Java Binarna prezentacija podataka

Java – podprogrami (funkcije)29

funkcija Ffunkcija F

instrukcija_1instrukcija_1

instrukcija_2instrukcija_2

instrukcija_3instrukcija_3

. . .

Java – “event handling”30

eventevent Event handler(podprogram)Event handler(podprogram)