Professional Documents
Culture Documents
integer int
real float
char char
boolean - (false 0, true <>0)
type, var enum
array []
packed array[n] of char char[n], char*
^integer *int
OSNOVE PROGRAMIRANJA C/C++
Kontrola toka
PASCAL C/C++
if uvjet then naredbe if (uvjet) naredbe
else naredbe else naredbe
string pozdrav=”Pozdrav”;
pozdrav:=‘Pozdrav’;
void main(){
Vozilo auto();
auto.setSnaga(200);
auto.setTezina(500);
cout<<ja.HPperTon();
}
OSNOVE
PROGRAMIRANJA C/C++
Abstrakcija
• „Abstrakcija u programiranju je
proces kojim se podaci i
program definirani sa
prezentacijom svoje forme
sličnom svom značenju”
• Abstrakcija podataka i
programa su različiti koncepti
koji se objedinjuju u modernim
OOP programskim jezicima
• C# object
• Java superclass
• Ključna riječ virtual
• Važan koncept abstrakcije
programskih slojeva Mreža Zvuk Video
Simulacijska
SimulacijskaLogika
Logika
Aplikacijski
AplikacijskiSloj
Sloj
float Vozilo::HPperTon(){
return snaga/(tezina/1000);
}
OSNOVE PROGRAMIRANJA C/C++
Polimorfizam
• Omogućava da se vrijednosti različitih podatkovnih
tipova obračuju koristeći jedinstveno sučelje
• 3 vrste polimorfizma:
• Ad-hoc
• Parametric
• Subtype
• Jako često korišten koncept prilikom izrada raznih
biblioteka, tj. klasa za rad s različitim podatkovnim
strukturama i objektima
• Primjer Liste, Stogovi, Hrpe, Stabla, ...
OSNOVE PROGRAMIRANJA C/C++
Dynamic dispatch
• To je proces odabira koja implementacija
polimorfnog operatora će se pozvati prilikom
izvođenja
• Problem kod polimorfizma je što često
nemožemo do izvođenja programa znati s kojim
točno podatkovnim tipom radimo ili se
podatkovni tip mijenja tijekom izvođenja
class Vozilo{
OSNOVE
PROGRAMIRANJA C/C++ int težina;
Nasljeđivanje float snaga;
•
•
Odnos među objektima
Nasljeđivanje se ovdje odnosi na
}
to da klasa može nasljediti
atribute i ponašanje od neke
prijašnje klase (bazna klasa, class Automobil:Vozilo{
superklasa ili roditeljska klasa)
• Ovim načinom se stvara int colindri;
hijerarhija klasa (u kojoj imamo
rezultatne klase: derivirane string rezultatNurberring;
klase, podklase i dječije klase
(child classes)) }
• Nasljeđivanjem imamo veliku
modularnost programiranja gdje
možemo novim klasama
proširivat, mijenjat i class Avion:Vozilo{
prepravaljat nasljeđenu klasu
• Pozitivno: overriding, code
float rasponKrila;
•
reuse
Negativno: previše nasljeđivanja
float maxVisinaLeta;
može usporiti izvođenje }
OSNOVE
PROGRAMIRANJA C/C++
Instance
• Instanca je specifična realizacija
objekta
• Svaki objekt se može varirati na
više načina, a svaka realizirana
varijanta objekta je instanca.
• Svaki program koji se izvršava
je instanca programa.
• Objekt je instanca klase
OSNOVE PROGRAMIRANJA C/C++
Rekurzija
• Misli se na objektnu rekurziju gdje klasa može zvati
samu sebe
• ključna riječ „this” (self ili me)
• svi OOP jezici imaju konstantni pokazivač ili referencu
sami na sebe kako bi trenutni objekt mogao pozivati
svoje metode i koristiti svoje varijable
• Jako moćan saveznik, ali još gori neprijatelj
• Kod nekihi programskih jezika može se promjeniti vrijednost,
ali time se ne mijenja vrijednost objekta, nego identitet objekta
na koji se ostatak metoda referiraj
• Mogu se u nekim slučajevima direkno castati u drugio
podatkovni tip s eksplicitnim this pointerom
OSNOVE PROGRAMIRANJA C/C++
Biblioteke (library)
Biblioteka je kolekcija implementacija
ponašanja napisana u obliku jezika s točno
definiranim sučeljima s kojima se ponašanje
potiče
Organizirano je tako da se može koristiti s više
programa koji nemaju nikakvu vezu jedan s
drugim
Primjeri iostream, math, API-i poput DirectX i
OpenGL,....
OSNOVE PROGRAMIRANJA C/C++
Biblioteke (library)
Više vrsta biblioteka:
Statične
Dijeljene
Objektne i klasne
Udaljene
...
Dva načina povezivanja:
Statički (lib)
Dinamički (dll)
OSNOVE PROGRAMIRANJA C/C++
Biblioteke (library)
STATIČKE DINAMIČKE
PITANJA?
nema glupih pitanja
danijel@dmt-softver.hr
zadaće nikom neriješavam, ako ih
bude ;)