osnove programiranja

37

Upload: cain-wilson

Post on 30-Dec-2015

174 views

Category:

Documents


4 download

DESCRIPTION

Osnove programiranja. Literatura: Boris Motik & Julian Šribar Demistificirani C++ Dobro upoznajte protivnika da biste njime ovladali Element, Zagreb 1997. *. Literatura: Nina Lipljin: Programiranje/1 TIVA/FOI 2004. *. Plan predavanja Uvod O programskim jezicima O metodama programiranja - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Osnove  programiranja
Page 2: Osnove  programiranja

Literatura:Literatura:

Boris Motik & Julian ŠribarBoris Motik & Julian Šribar

Demistificirani C++Demistificirani C++Dobro upoznajte protivnikaDobro upoznajte protivnika

da biste njime ovladalida biste njime ovladali

Element, Zagreb 1997.Element, Zagreb 1997.

Literatura:Literatura:

Boris Motik & Julian ŠribarBoris Motik & Julian Šribar

Demistificirani C++Demistificirani C++Dobro upoznajte protivnikaDobro upoznajte protivnika

da biste njime ovladalida biste njime ovladali

Element, Zagreb 1997.Element, Zagreb 1997.

*

Page 3: Osnove  programiranja

Literatura:Literatura:

Nina Lipljin:Nina Lipljin:

Programiranje/1Programiranje/1

TIVA/FOI 2004TIVA/FOI 2004

Literatura:Literatura:

Nina Lipljin:Nina Lipljin:

Programiranje/1Programiranje/1

TIVA/FOI 2004TIVA/FOI 2004

*

Page 4: Osnove  programiranja

Plan predavanjaPlan predavanja

UvodUvod

O programskim jezicimaO programskim jezicima

O metodama programiranjaO metodama programiranja

O objektnom pristupuO objektnom pristupu

Plan predavanjaPlan predavanja

UvodUvod

O programskim jezicimaO programskim jezicima

O metodama programiranjaO metodama programiranja

O objektnom pristupuO objektnom pristupu

*

Page 5: Osnove  programiranja

UvodUvodUvodUvod

*

Page 6: Osnove  programiranja

Računala ne znajuRačunala ne znaju apstraktno dijeliti apstraktno dijeliti niti množiti !!! niti množiti !!!

Računala ne znajuRačunala ne znaju apstraktno dijeliti apstraktno dijeliti niti množiti !!! niti množiti !!!

*

Page 7: Osnove  programiranja

Zadaci: cjelobrojno dijeljenjeZadaci: cjelobrojno dijeljenje((11) ) Učitati i podijeliti dva brojaUčitati i podijeliti dva broja

((22) Učitaj dva cijela broja ) Učitaj dva cijela broja AA i i BB,,

podijeli podijeli AA s s BB s cjelobrojnim rezultatom dijeljenja u s cjelobrojnim rezultatom dijeljenja u DD

i ostatkom i ostatkom u u CC

ponovi postupakponovi postupak nn putaputa

Zadaci: cjelobrojno dijeljenjeZadaci: cjelobrojno dijeljenje((11) ) Učitati i podijeliti dva brojaUčitati i podijeliti dva broja

((22) Učitaj dva cijela broja ) Učitaj dva cijela broja AA i i BB,,

podijeli podijeli AA s s BB s cjelobrojnim rezultatom dijeljenja u s cjelobrojnim rezultatom dijeljenja u DD

i ostatkom i ostatkom u u CC

ponovi postupakponovi postupak nn putaputa

*

Page 8: Osnove  programiranja

Zadatak Zadatak prviprvi: A/B=?: A/B=?Zadatak Zadatak prviprvi: A/B=?: A/B=?

C D0 023 1

C=94-(115-23)=94-92=2

D=5-1=4

da

46 269 392 4115 5da

ne

ne

*

A=94A=94B=23B=23

Učitaj: Učitaj: A, BA, B

Učitaj: Učitaj: A, BA, B

ISPIS:ISPIS:A / B=DA / B=Di ost. Ci ost. C

ISPIS:ISPIS:A / B=DA / B=Di ost. Ci ost. C

STARTSTARTSTARTSTART

C=D=0C=D=0C=D=0C=D=0

C=C+BC=C+BD=D+1D=D+1

C=C+BC=C+BD=D+1D=D+1

C<C<AA

C<C<AA

C=AC=AC=AC=A

C=A-(C-B)C=A-(C-B)D=D-1D=D-1

C=A-(C-B)C=A-(C-B)D=D-1D=D-1

ISPIS:ISPIS:

A / A / B=DB=D

ISPIS:ISPIS:

A / A / B=DB=D

STOPSTOPSTOPSTOP

Page 9: Osnove  programiranja

Zadatak Zadatak drugidrugi::

• Učitaj dva cijela broja Učitaj dva cijela broja AA i i BB..

• Podijeli Podijeli AA s s BB s cjelobrojnim s cjelobrojnim

rezultatom dijeljenja u rezultatom dijeljenja u DD i i

ostatkom u ostatkom u CC . .

• Ponovi postupak Ponovi postupak nn puta puta

*

Page 10: Osnove  programiranja

da

ne

Rješenje Rješenje drugogdrugog zadatka zadatkaRješenje Rješenje drugogdrugog zadatka zadatka

*

STARTSTARTSTARTSTART

učitaj:učitaj:A,BA,B

učitaj:učitaj:A,BA,B

CJELOBROJNOCJELOBROJNODIJELJENJEDIJELJENJE

CJELOBROJNOCJELOBROJNODIJELJENJEDIJELJENJE

d/n?d/n?d/n?d/n?

Još?Još?Još?Još?

d?d?d?d?

STOPSTOPSTOPSTOP

Page 11: Osnove  programiranja

Programski jeziciProgramski jezici

*

Page 12: Osnove  programiranja

Razvoj programskih jezika

19501950 19601960 19701970 19801980 19901990 20002000 20102010

Page 13: Osnove  programiranja

Razvoj programskih jezika

19501950 19601960 19701970 19801980 19901990 20002000 20102010

1949 Asembler (John Mauchly)

1957 Fortran (IBM) FLOW-MATIC (UNIVAC)1958 ALGOL (Miting u Zurichu)1959 COBOL (Short Term Commitee)

1949 Asembler (John Mauchly)

1957 Fortran (IBM) FLOW-MATIC (UNIVAC)1958 ALGOL (Miting u Zurichu)1959 COBOL (Short Term Commitee)

Page 14: Osnove  programiranja

Razvoj programskih jezika

19501950 19601960 19701970 19801980 19901990 20002000 20102010

Fortran ALGOL COBOL

1960 1961 196219631964 BASIC (Dortmauth Uni)19651966196719681969

Fortran ALGOL COBOL

1960 1961 196219631964 BASIC (Dortmauth Uni)19651966196719681969

Page 15: Osnove  programiranja

Razvoj programskih jezika

19501950 19601960 19701970 19801980 19901990 20002000 20102010

Fortran ALGOL BASIC COBOL1970 1971 Pascal (Niklaus Wirth)1972 C (Dennis Ritchie – Bell)19731974 197519761977 Modula 2 (Niklaus Wirth)19781979

Fortran ALGOL BASIC COBOL1970 1971 Pascal (Niklaus Wirth)1972 C (Dennis Ritchie – Bell)19731974 197519761977 Modula 2 (Niklaus Wirth)19781979

Page 16: Osnove  programiranja

Razvoj programskih jezika

19501950 19601960 19701970 19801980 19901990 20002000 20102010

Fortran Pascal Modula 2 BASIC C COBOL1980 198119821983 1984 C++ (Bjarne Stroustrup – Bell) 1985198619871988 Oberon (Niklaus Wirth)1989

Fortran Pascal Modula 2 BASIC C COBOL1980 198119821983 1984 C++ (Bjarne Stroustrup – Bell) 1985198619871988 Oberon (Niklaus Wirth)1989

Page 17: Osnove  programiranja

Razvoj programskih jezika

19501950 19601960 19701970 19801980 19901990 20002000 20102010

Fortran Pascal Modula 2 Oberon BASIC C C++ COBOL1990 Visual Basic (Microsoft)1991199219931994 Java (Sun)1995 Delphi (Anders Hejlsberg – Borland)199619971998 1999

Fortran Pascal Modula 2 Oberon BASIC C C++ COBOL1990 Visual Basic (Microsoft)1991199219931994 Java (Sun)1995 Delphi (Anders Hejlsberg – Borland)199619971998 1999

Page 18: Osnove  programiranja

Razvoj programskih jezika

19501950 19601960 19701970 19801980 19901990 20002000 20102010

Fortran Pascal Modula 2 Oberon Delphi BASIC Visual Basic C C++ Java COBOL

200020012002 C# (Anders Hejlsberg – Microsoft)20032004 2005200620072008 2009

Fortran Pascal Modula 2 Oberon Delphi BASIC Visual Basic C C++ Java COBOL

200020012002 C# (Anders Hejlsberg – Microsoft)20032004 2005200620072008 2009

Page 19: Osnove  programiranja

Razvoj programskih jezika

19501950 19601960 19701970 19801980 19901990 20002000 20102010

1943. Godine Konrad Zuse je u svojoj doktorskoj disertaciji objavio svoj programski jezik koji se

zvao Plankalkül. Jezik se pokretao na računalima koje je on sam napravio. Jezik je imao petlje,

polja, matematičke izraze. Nažalost njegov rad bio je izgubljen sve do 70-tih godina.

1943. Godine Konrad Zuse je u svojoj doktorskoj disertaciji objavio svoj programski jezik koji se

zvao Plankalkül. Jezik se pokretao na računalima koje je on sam napravio. Jezik je imao petlje,

polja, matematičke izraze. Nažalost njegov rad bio je izgubljen sve do 70-tih godina.

Page 20: Osnove  programiranja

Jezik C(Dennis Ritchie, 1972)

• direktan prethodnik jezika C++

• opća namjena

• jednostavan za učenje

• modularan

• brz

• omogućava optimalizaciju koda

Jezik C(Dennis Ritchie, 1972)

• direktan prethodnik jezika C++

• opća namjena

• jednostavan za učenje

• modularan

• brz

• omogućava optimalizaciju koda

*

Page 21: Osnove  programiranja

C++ jezikC++ jezik (Bjarne Stroustrup, 1984)

• potreba : da se jednom napisani kôd višekratno koristi

• objektno orijentirani jezik• omogućava objektni pristup rješavanju problema

C++ jezikC++ jezik (Bjarne Stroustrup, 1984)

• potreba : da se jednom napisani kôd višekratno koristi

• objektno orijentirani jezik• omogućava objektni pristup rješavanju problema

*

Page 22: Osnove  programiranja

*Strukturno

programiranjeStrukturno

programiranje

ObjektnoOrijentiranoprogamiranje

ObjektnoOrijentiranoprogamiranje

Proceduralnoprogamiranje

Proceduralnoprogamiranje

FunkcionalnoprogramiranjeFunkcionalnoprogramiranje

Logičkoprogramiranje

Logičkoprogramiranje

CC

PascalPascal FortranFortran

BASICBASICC++C++

OberonOberon

SQLSQL

PrologProlog DatalogDatalog

DaplexDaplex

FloraFlora

MLML

Page 23: Osnove  programiranja

Algoritmi+Strukture podataka=ProgramiranjeAlgoritmi+Strukture podataka=Programiranje

N. WirthN. Wirth- algoritam : općenito rješenje problema- algoritam : općenito rješenje problema

- Struktura podataka : način na koji program čuva podatke. - Struktura podataka : način na koji program čuva podatke.

Osnovni alatiOsnovni alati- - Blok dijagramBlok dijagram

- - pseudokod : rješenje u formi programa na ‘hrvatskom’pseudokod : rješenje u formi programa na ‘hrvatskom’

Algoritmi+Strukture podataka=ProgramiranjeAlgoritmi+Strukture podataka=Programiranje

N. WirthN. Wirth- algoritam : općenito rješenje problema- algoritam : općenito rješenje problema

- Struktura podataka : način na koji program čuva podatke. - Struktura podataka : način na koji program čuva podatke.

Osnovni alatiOsnovni alati- - Blok dijagramBlok dijagram

- - pseudokod : rješenje u formi programa na ‘hrvatskom’pseudokod : rješenje u formi programa na ‘hrvatskom’

*

Page 24: Osnove  programiranja

Metode Metode programiranjaprogramiranja

*

Page 25: Osnove  programiranja

Zadatak (1)Zadatak (1)

• Preko tastature se učitavaju Preko tastature se učitavaju dva cijela pozitivna broja A i dva cijela pozitivna broja A i B.B.

• Ponuda operacija:Ponuda operacija:1 = zbrajanje1 = zbrajanje2 = oduzimanje2 = oduzimanje3 = množenje3 = množenje4 = dijeljenje4 = dijeljenje

• Korisnik bira jednu od Korisnik bira jednu od operacija.operacija.

• Izabrana operacija se Izabrana operacija se izvršava, a rezultat ispisuje na izvršava, a rezultat ispisuje na ekran (zaslon).ekran (zaslon).

• Izvođenje se ponavlja Izvođenje se ponavlja nn puta puta

Zadatak (1)Zadatak (1)

• Preko tastature se učitavaju Preko tastature se učitavaju dva cijela pozitivna broja A i dva cijela pozitivna broja A i B.B.

• Ponuda operacija:Ponuda operacija:1 = zbrajanje1 = zbrajanje2 = oduzimanje2 = oduzimanje3 = množenje3 = množenje4 = dijeljenje4 = dijeljenje

• Korisnik bira jednu od Korisnik bira jednu od operacija.operacija.

• Izabrana operacija se Izabrana operacija se izvršava, a rezultat ispisuje na izvršava, a rezultat ispisuje na ekran (zaslon).ekran (zaslon).

• Izvođenje se ponavlja Izvođenje se ponavlja nn puta puta

Zadatak (2)Zadatak (2)

• Identičan predhodnome. Identičan predhodnome.

• Dodaje se:Dodaje se:

5=izračunavanje postotka5=izračunavanje postotka

6=ispis slijedećih 20 6=ispis slijedećih 20 pr prijijestupnih godinaestupnih godina

Zadatak (2)Zadatak (2)

• Identičan predhodnome. Identičan predhodnome.

• Dodaje se:Dodaje se:

5=izračunavanje postotka5=izračunavanje postotka

6=ispis slijedećih 20 6=ispis slijedećih 20 pr prijijestupnih godinaestupnih godina

*

Page 26: Osnove  programiranja

Zadatak 1Zadatak 1Zadatak 1Zadatak 1

IzbornikIzbornikIzbornikIzbornik

OduzimanjeOduzimanjeOduzimanjeOduzimanjeZbrajanjeZbrajanjeZbrajanjeZbrajanje DijeljenjeDijeljenjeDijeljenjeDijeljenjeMnoženjeMnoženjeMnoženjeMnoženje

UčitavanjeUčitavanjeselektorskeselektorskevrijednostivrijednosti

UčitavanjeUčitavanjeselektorskeselektorskevrijednostivrijednosti

**

Page 27: Osnove  programiranja

ZbrajanjeZbrajanjeZbrajanjeZbrajanje OduzimanjeOduzimanjeOduzimanjeOduzimanje MnoženjeMnoženjeMnoženjeMnoženje DijeljenjeDijeljenjeDijeljenjeDijeljenje PostotakPostotakPostotakPostotak PrPrijijestupnaestupnaPrPrijijestupnaestupna

Zadatak 2Zadatak 2Zadatak 2Zadatak 2

IzbornikIzbornikIzbornikIzbornik

UčitavanjeUčitavanjeselektorskeselektorskevrijednostivrijednosti

UčitavanjeUčitavanjeselektorskeselektorskevrijednostivrijednosti

**

Page 28: Osnove  programiranja

Algoritam (1)Algoritam (1)Algoritam (1)Algoritam (1)1. Ispis Izbornika:1. Ispis Izbornika:

1 = zbrajanje1 = zbrajanje 2 = oduzimanje2 = oduzimanje 3 = množenje3 = množenje 4 = dijeljenje4 = dijeljenje

2. Izbor akcije:2. Izbor akcije: učitavanje selektorske vrijednosti učitavanje selektorske vrijednosti

3. Grananje, 3. Grananje, ovisno o selektorskoj vrijednosti:ovisno o selektorskoj vrijednosti:

3.13.1 zbrajanjezbrajanje oduzimanjeoduzimanje množenjemnoženje dijeljenjedijeljenjeučitavanje učitavanje učitavanjeučitavanje učitavanje učitavanje učitavanjeučitavanjeračunanjeračunanje računanjeračunanje računanjeračunanje računanjeračunanjeispis ispis ispis ispis ispis ispis ispisispis

4. Izbor akcije:4. Izbor akcije: učitavanje indikatora kraja učitavanje indikatora kraja

‘‘d’d’= ponavljanje od 1.= ponavljanje od 1. ‘n’‘n’ = prekid izvođenja = prekid izvođenja

1. Ispis Izbornika:1. Ispis Izbornika:

1 = zbrajanje1 = zbrajanje 2 = oduzimanje2 = oduzimanje 3 = množenje3 = množenje 4 = dijeljenje4 = dijeljenje

2. Izbor akcije:2. Izbor akcije: učitavanje selektorske vrijednosti učitavanje selektorske vrijednosti

3. Grananje, 3. Grananje, ovisno o selektorskoj vrijednosti:ovisno o selektorskoj vrijednosti:

3.13.1 zbrajanjezbrajanje oduzimanjeoduzimanje množenjemnoženje dijeljenjedijeljenjeučitavanje učitavanje učitavanjeučitavanje učitavanje učitavanje učitavanjeučitavanjeračunanjeračunanje računanjeračunanje računanjeračunanje računanjeračunanjeispis ispis ispis ispis ispis ispis ispisispis

4. Izbor akcije:4. Izbor akcije: učitavanje indikatora kraja učitavanje indikatora kraja

‘‘d’d’= ponavljanje od 1.= ponavljanje od 1. ‘n’‘n’ = prekid izvođenja = prekid izvođenja

**

Page 29: Osnove  programiranja

Algoritam (2)Algoritam (2)1. Ispis Izbornika:1. Ispis Izbornika:

1 = zbrajanje 2 = oduzimanje 3 = množenje 4 = dijeljenje

2. Izbor akcije:2. Izbor akcije: učitavanje selektorske vrijednosti

3. Grananje,3. Grananje, ovisno o selektorskoj vrijednosti: ovisno o selektorskoj vrijednosti: 3.13.1 zbrajanjezbrajanje oduzimanjeoduzimanje množenjemnoženje dijeljenjedijeljenje

učitavanje učitavanje učitavanje učitavanjeračunanje računanje računanje računanjeispis ispis ispis ispis

4. Izbor akcije:4. Izbor akcije: učitavanje indikatora kraja‘d’= ponavljanje od 1. ‘n’ = prekid izvođenja

1. Ispis Izbornika:1. Ispis Izbornika:1 = zbrajanje 2 = oduzimanje 3 = množenje 4 = dijeljenje

2. Izbor akcije:2. Izbor akcije: učitavanje selektorske vrijednosti

3. Grananje,3. Grananje, ovisno o selektorskoj vrijednosti: ovisno o selektorskoj vrijednosti: 3.13.1 zbrajanjezbrajanje oduzimanjeoduzimanje množenjemnoženje dijeljenjedijeljenje

učitavanje učitavanje učitavanje učitavanjeračunanje računanje računanje računanjeispis ispis ispis ispis

4. Izbor akcije:4. Izbor akcije: učitavanje indikatora kraja‘d’= ponavljanje od 1. ‘n’ = prekid izvođenja

5 = postotak5 = postotak 6 = prestupna g.6 = prestupna g.

postotakpostotak prestupnaprestupna

učitavanje učitavanjeračunanje računanjeispis ispis

postotakpostotak prestupnaprestupna

učitavanje učitavanjeračunanje računanjeispis ispis

*

Page 30: Osnove  programiranja

PseudokôdPseudokôd (1)(1)ponavljajponavljaj

ispišiispiši 1 = zbrajanje1 = zbrajanje

2 = 2 = oduzimanjeoduzimanje 3 = množenje3 = množenje 4 = dijeljenje4 = dijeljenje

učitaj (i)učitaj (i)

izvedi ovisno o (i)izvedi ovisno o (i) ZBRAJANJEZBRAJANJE

ODUZIMANJEODUZIMANJEMNOŽENJEMNOŽENJEDIJELJENJEDIJELJENJE

ispiši: ‘Još ? d/n’ispiši: ‘Još ? d/n’učitaj (Z);učitaj (Z);

sve do Z=‘n’sve do Z=‘n’

PseudokôdPseudokôd (1)(1)ponavljajponavljaj

ispišiispiši 1 = zbrajanje1 = zbrajanje

2 = 2 = oduzimanjeoduzimanje 3 = množenje3 = množenje 4 = dijeljenje4 = dijeljenje

učitaj (i)učitaj (i)

izvedi ovisno o (i)izvedi ovisno o (i) ZBRAJANJEZBRAJANJE

ODUZIMANJEODUZIMANJEMNOŽENJEMNOŽENJEDIJELJENJEDIJELJENJE

ispiši: ‘Još ? d/n’ispiši: ‘Još ? d/n’učitaj (Z);učitaj (Z);

sve do Z=‘n’sve do Z=‘n’

ZBRAJANJEZBRAJANJE

učitaj (A,B) i ispiši (A+B)učitaj (A,B) i ispiši (A+B)ODUZIMANJEODUZIMANJE

učitaj (A,B) i ispiši (A-B)učitaj (A,B) i ispiši (A-B)

MNOŽENJEMNOŽENJEučitaj (A,B) i ispiši (A*B)učitaj (A,B) i ispiši (A*B)

DIJELJENJEDIJELJENJEučitaj (A,B) i ispiši (A/B)učitaj (A,B) i ispiši (A/B)

ZBRAJANJEZBRAJANJE

učitaj (A,B) i ispiši (A+B)učitaj (A,B) i ispiši (A+B)ODUZIMANJEODUZIMANJE

učitaj (A,B) i ispiši (A-B)učitaj (A,B) i ispiši (A-B)

MNOŽENJEMNOŽENJEučitaj (A,B) i ispiši (A*B)učitaj (A,B) i ispiši (A*B)

DIJELJENJEDIJELJENJEučitaj (A,B) i ispiši (A/B)učitaj (A,B) i ispiši (A/B)

**

POSTOPOSTO

učitaj (A,M) i ispiši učitaj (A,M) i ispiši (N=A*M/100)(N=A*M/100)

PRPRIJIJESTUPNAESTUPNA

Učitaj GUčitaj G

ponavljaj sve dok (i<> 20)ponavljaj sve dok (i<> 20)

OST = G / 4 (modulno) OST = G / 4 (modulno)

ako (OST = 0)ako (OST = 0)

i = i +1i = i +1

ispiši G ispiši G

G = G +1G = G +1

kraj_ ponavljanja kraj_ ponavljanja

POSTOPOSTO

učitaj (A,M) i ispiši učitaj (A,M) i ispiši (N=A*M/100)(N=A*M/100)

PRPRIJIJESTUPNAESTUPNA

Učitaj GUčitaj G

ponavljaj sve dok (i<> 20)ponavljaj sve dok (i<> 20)

OST = G / 4 (modulno) OST = G / 4 (modulno)

ako (OST = 0)ako (OST = 0)

i = i +1i = i +1

ispiši G ispiši G

G = G +1G = G +1

kraj_ ponavljanja kraj_ ponavljanja

5 = postotak5 = postotak6 = prestupna6 = prestupna

5 = postotak5 = postotak6 = prestupna6 = prestupna

POSTOPOSTOPRPRIJIJESTUPNAESTUPNA

POSTOPOSTOPRPRIJIJESTUPNAESTUPNA

Page 31: Osnove  programiranja

Objektno programiranjeili

Objektni pristup programiranjuili

Objektu orijentirano programiranje

(engl. Object oriented programming)

Objektno programiranjeili

Objektni pristup programiranjuili

Objektu orijentirano programiranje

(engl. Object oriented programming)

*

Page 32: Osnove  programiranja

ModernoModerno programiranj programiranjeeModernoModerno programiranj programiranjee• grafičko sučeljegrafičko sučelje

• programiranje: programiranje: progonjeno događajimaprogonjeno događajima

• program se ne odvija po unaprijed određenom program se ne odvija po unaprijed određenom slijeduslijedu

• programom se upravlja pomoću programom se upravlja pomoću niza događajaniza događaja

– miš, tipka, izbornik (MENU) miš, tipka, izbornik (MENU)

• operacije moraju biti dostupne operacije moraju biti dostupne istodobnoistodobno

• objektni pristupobjektni pristup

– razbijanje rješenja na niz razbijanje rješenja na niz zatvorenih cjelinazatvorenih cjelina

– radi se s radi se s objektimaobjektima (operacije + podaci) (operacije + podaci)

• grafičko sučeljegrafičko sučelje

• programiranje: programiranje: progonjeno događajimaprogonjeno događajima

• program se ne odvija po unaprijed određenom program se ne odvija po unaprijed određenom slijeduslijedu

• programom se upravlja pomoću programom se upravlja pomoću niza događajaniza događaja

– miš, tipka, izbornik (MENU) miš, tipka, izbornik (MENU)

• operacije moraju biti dostupne operacije moraju biti dostupne istodobnoistodobno

• objektni pristupobjektni pristup

– razbijanje rješenja na niz razbijanje rješenja na niz zatvorenih cjelinazatvorenih cjelina

– radi se s radi se s objektimaobjektima (operacije + podaci) (operacije + podaci)

**

Page 33: Osnove  programiranja

Glavna svojstva objektno Glavna svojstva objektno orijentiranog jezikaorijentiranog jezika

Glavna svojstva objektno Glavna svojstva objektno orijentiranog jezikaorijentiranog jezika

• enkapsulacija ili učahurivanje:enkapsulacija ili učahurivanje: spajanje spajanje podataka i operacijapodataka i operacija

• skrivanje podataka:skrivanje podataka: privatnost privatnost

• ponovna iskoristivost:ponovna iskoristivost: svojstvo svojstvo nasljeđivanjanasljeđivanja

• polimorfizam:polimorfizam: važno je važno je štošto, a ne , a ne kakokako je je nešto izvedenonešto izvedeno

• enkapsulacija ili učahurivanje:enkapsulacija ili učahurivanje: spajanje spajanje podataka i operacijapodataka i operacija

• skrivanje podataka:skrivanje podataka: privatnost privatnost

• ponovna iskoristivost:ponovna iskoristivost: svojstvo svojstvo nasljeđivanjanasljeđivanja

• polimorfizam:polimorfizam: važno je važno je štošto, a ne , a ne kakokako je je nešto izvedenonešto izvedeno

*

Page 34: Osnove  programiranja

Objektni pristup (1)Objektni pristup (1)----------------------------------------------------------------------------------------------------

OBJEKTOBJEKT PODACIPODACI

cijeli broj (A)cijeli broj (A)cijeli broj (B)cijeli broj (B)

FUNKCIJEFUNKCIJE MENUMENU

1 = zbrajanje1 = zbrajanje 2 = oduzimanje2 = oduzimanje 3 = množenje3 = množenje 4 = dijeljenje4 = dijeljenje UČITAJUČITAJ Učitaj (A, B)Učitaj (A, B)ZBROJIZBROJI UČITAJUČITAJ

Ispiši (A+B)Ispiši (A+B)ODUZMIODUZMI UČITAJUČITAJ

Ispiši ( A-B)Ispiši ( A-B)POMNOŽIPOMNOŽI UČITAJUČITAJ

Ispiši (A * B)Ispiši (A * B)

Objektni pristup (1)Objektni pristup (1)----------------------------------------------------------------------------------------------------

OBJEKTOBJEKT PODACIPODACI

cijeli broj (A)cijeli broj (A)cijeli broj (B)cijeli broj (B)

FUNKCIJEFUNKCIJE MENUMENU

1 = zbrajanje1 = zbrajanje 2 = oduzimanje2 = oduzimanje 3 = množenje3 = množenje 4 = dijeljenje4 = dijeljenje UČITAJUČITAJ Učitaj (A, B)Učitaj (A, B)ZBROJIZBROJI UČITAJUČITAJ

Ispiši (A+B)Ispiši (A+B)ODUZMIODUZMI UČITAJUČITAJ

Ispiši ( A-B)Ispiši ( A-B)POMNOŽIPOMNOŽI UČITAJUČITAJ

Ispiši (A * B)Ispiši (A * B)

PODIJELIPODIJELI UČITAJUČITAJ

Ispiši (A / B)Ispiši (A / B)IZVOĐENJEIZVOĐENJE

ponavljanjeponavljanje MENUMENU 5 = kraj5 = kraj Učitaj (i)Učitaj (i) izvedi ovisno o (i) izvedi ovisno o (i) ZBROJIZBROJI ODUZMIODUZMI POMNOŽIPOMNOŽI PODIJELIPODIJELI sve do Z=‘n’sve do Z=‘n’ KRAJKRAJ

KRAJKRAJIspis: ‘Još ? d/n’Ispis: ‘Još ? d/n’Učitaj (Z);Učitaj (Z);

----------------------------------------------------------------------------------------------------GLAVNI PROGRAMGLAVNI PROGRAM

OBJEKTOBJEKT----------------------------------------------------------------------------------------------------

PODIJELIPODIJELI UČITAJUČITAJ

Ispiši (A / B)Ispiši (A / B)IZVOĐENJEIZVOĐENJE

ponavljanjeponavljanje MENUMENU 5 = kraj5 = kraj Učitaj (i)Učitaj (i) izvedi ovisno o (i) izvedi ovisno o (i) ZBROJIZBROJI ODUZMIODUZMI POMNOŽIPOMNOŽI PODIJELIPODIJELI sve do Z=‘n’sve do Z=‘n’ KRAJKRAJ

KRAJKRAJIspis: ‘Još ? d/n’Ispis: ‘Još ? d/n’Učitaj (Z);Učitaj (Z);

----------------------------------------------------------------------------------------------------GLAVNI PROGRAMGLAVNI PROGRAM

OBJEKTOBJEKT----------------------------------------------------------------------------------------------------**

Page 35: Osnove  programiranja

Objektni pristupObjektni pristup (2):(2): ----------------------------------------------------------------------------------------------------------

NOVI OBJEKTNOVI OBJEKT OBJEKTOBJEKT PODACIPODACI

cijeli broj (G)cijeli broj (G)realni broj (A)realni broj (A)realni broj (M)realni broj (M)

FUNKCIJEFUNKCIJENOVI MENUNOVI MENU MENUMENU 5 = izračunavanje 5 = izračunavanje

postotkapostotka 6 = prestupna godina6 = prestupna godinaPOSTOPOSTO Učitaj (A,M)Učitaj (A,M) Ispiši (N=A*M/100)Ispiši (N=A*M/100)

PRESTUPNAPRESTUPNA

Učitaj GUčitaj G cb OST, cb i = 0;cb OST, cb i = 0;

Objektni pristupObjektni pristup (2):(2): ----------------------------------------------------------------------------------------------------------

NOVI OBJEKTNOVI OBJEKT OBJEKTOBJEKT PODACIPODACI

cijeli broj (G)cijeli broj (G)realni broj (A)realni broj (A)realni broj (M)realni broj (M)

FUNKCIJEFUNKCIJENOVI MENUNOVI MENU MENUMENU 5 = izračunavanje 5 = izračunavanje

postotkapostotka 6 = prestupna godina6 = prestupna godinaPOSTOPOSTO Učitaj (A,M)Učitaj (A,M) Ispiši (N=A*M/100)Ispiši (N=A*M/100)

PRESTUPNAPRESTUPNA

Učitaj GUčitaj G cb OST, cb i = 0;cb OST, cb i = 0;

ponavljaj sve dok (i<> 20)ponavljaj sve dok (i<> 20) ost = G / 4 (modulno) ost = G / 4 (modulno) ako (OST = 0)ako (OST = 0)

i = i +1i = i +1 ispiši G ispiši G

G = G +1G = G +1kraj ponavljanja kraj ponavljanja

NOVO IZVOĐENJENOVO IZVOĐENJE ponavljanjeponavljanje

NOVI MENUNOVI MENU 7 = kraj7 = kraj Učitaj (i)Učitaj (i)

izvedi ovisno o (i) izvedi ovisno o (i) ZBROJIZBROJI ODUZMIODUZMI POMNOŽIPOMNOŽI PODIJELI PODIJELI

POSTOPOSTO PRESTUPNAPRESTUPNA

sve do Z=‘n’sve do Z=‘n’ KRAJKRAJ

------------------------------------------------------------------------------------------GLAVNI PROGRAMGLAVNI PROGRAM

NOVI OBJEKTNOVI OBJEKT------------------------------------------------------------------------------------------

ponavljaj sve dok (i<> 20)ponavljaj sve dok (i<> 20) ost = G / 4 (modulno) ost = G / 4 (modulno) ako (OST = 0)ako (OST = 0)

i = i +1i = i +1 ispiši G ispiši G

G = G +1G = G +1kraj ponavljanja kraj ponavljanja

NOVO IZVOĐENJENOVO IZVOĐENJE ponavljanjeponavljanje

NOVI MENUNOVI MENU 7 = kraj7 = kraj Učitaj (i)Učitaj (i)

izvedi ovisno o (i) izvedi ovisno o (i) ZBROJIZBROJI ODUZMIODUZMI POMNOŽIPOMNOŽI PODIJELI PODIJELI

POSTOPOSTO PRESTUPNAPRESTUPNA

sve do Z=‘n’sve do Z=‘n’ KRAJKRAJ

------------------------------------------------------------------------------------------GLAVNI PROGRAMGLAVNI PROGRAM

NOVI OBJEKTNOVI OBJEKT------------------------------------------------------------------------------------------

**

Page 36: Osnove  programiranja

REZULTATREZULTATREZULTATREZULTAT

• Dobiven jeDobiven je novi kôdnovi kôd

• Izvedena jeIzvedena je enkapsulacijaenkapsulacija (učahurivanje: 100%)(učahurivanje: 100%)

• Podaci su Podaci su privatniprivatni (skriveni) (skriveni)

• Predhodno rješenjePredhodno rješenje ponovno je iskorištenoponovno je iskorišteno

(naslijeđeno)(naslijeđeno)

• Objekti suObjekti su polimorfnipolimorfni (važno je(važno je štošto a, nea, ne kakokako

rade)rade)

• Dobiven jeDobiven je novi kôdnovi kôd

• Izvedena jeIzvedena je enkapsulacijaenkapsulacija (učahurivanje: 100%)(učahurivanje: 100%)

• Podaci su Podaci su privatniprivatni (skriveni) (skriveni)

• Predhodno rješenjePredhodno rješenje ponovno je iskorištenoponovno je iskorišteno

(naslijeđeno)(naslijeđeno)

• Objekti suObjekti su polimorfnipolimorfni (važno je(važno je štošto a, nea, ne kakokako

rade)rade)

**

Page 37: Osnove  programiranja

Vidimo se za Vidimo se za tjedan dana!tjedan dana!

Vidimo se za Vidimo se za tjedan dana!tjedan dana!

*

I to je to!I to je to!I to je to!I to je to!