Osnove programiranja

Post on 30-Dec-2015

158 views 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 of 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.

*

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

*

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

*

UvodUvodUvodUvod

*

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 !!!

*

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

*

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

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

*

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

Programski jeziciProgramski jezici

*

Razvoj programskih jezika

19501950 19601960 19701970 19801980 19901990 20002000 20102010

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)

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

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

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

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

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

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.

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

*

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

*

*Strukturno

programiranjeStrukturno

programiranje

ObjektnoOrijentiranoprogamiranje

ObjektnoOrijentiranoprogamiranje

Proceduralnoprogamiranje

Proceduralnoprogamiranje

FunkcionalnoprogramiranjeFunkcionalnoprogramiranje

Logičkoprogramiranje

Logičkoprogramiranje

CC

PascalPascal FortranFortran

BASICBASICC++C++

OberonOberon

SQLSQL

PrologProlog DatalogDatalog

DaplexDaplex

FloraFlora

MLML

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’

*

Metode Metode programiranjaprogramiranja

*

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

*

Zadatak 1Zadatak 1Zadatak 1Zadatak 1

IzbornikIzbornikIzbornikIzbornik

OduzimanjeOduzimanjeOduzimanjeOduzimanjeZbrajanjeZbrajanjeZbrajanjeZbrajanje DijeljenjeDijeljenjeDijeljenjeDijeljenjeMnoženjeMnoženjeMnoženjeMnoženje

UčitavanjeUčitavanjeselektorskeselektorskevrijednostivrijednosti

UčitavanjeUčitavanjeselektorskeselektorskevrijednostivrijednosti

**

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

Zadatak 2Zadatak 2Zadatak 2Zadatak 2

IzbornikIzbornikIzbornikIzbornik

UčitavanjeUčitavanjeselektorskeselektorskevrijednostivrijednosti

UčitavanjeUčitavanjeselektorskeselektorskevrijednostivrijednosti

**

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

**

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

*

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

Objektno programiranjeili

Objektni pristup programiranjuili

Objektu orijentirano programiranje

(engl. Object oriented programming)

Objektno programiranjeili

Objektni pristup programiranjuili

Objektu orijentirano programiranje

(engl. Object oriented programming)

*

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)

**

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

*

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----------------------------------------------------------------------------------------------------**

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------------------------------------------------------------------------------------------

**

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)

**

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!