osnove programiranja
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 PresentationTRANSCRIPT
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!