You are on page 1of 69

PROGRAMIRANJE

PRVO PREDAVANJE

OD PROBLEMA DO PROGRAMA U
PROGRAMSKOM JEZIKU C++
Tko sudjeluje u izvoenju nastave ?

Predavanja (nositelj kolegija)


Doc. dr. sc. Tihomir Orehovaki
Laboratorijske vjebe (suradnici)
Mr. sc. Igor kori
Boris Pein, mag. educ. math. et inf.

2
Obveze studenata

da ostvari pravo pristupanja ispitu (potpis), student/ica mora:


pohaati nastavu (prisustvovati na najmanje 80% nastavnih sati iz
predavanja, seminara i laboratorijskih vjebi)
obraniti seminarski rad
putem aktivnosti kontinuiranog praenja ostvariti najmanje 35%
bodova
da poloi kolegij, student/ica mora:
pohaati nastavu
obraniti seminarski rad
putem aktivnosti kontinuiranog praenja ostvariti najmanje 50%
bodova
ILI
pohaati nastavu
obraniti seminarski rad
poloiti pismeni ispit
poloiti usmeni ispit
Aktivnosti kontinuiranog praenja (1)

Kontrolne zadae:
Tijekom semestra studenti mogu obraniti 4 kontrolne zadae
od kojih svaka nosi najvie 10 bodova.
Kontrolne zadae definira suradnik na kolegiju (asistent).
Studenti trebaju samostalno rijeiti kontrolnu zadau te
rjeenje pravovremeno uitati na za to predvieno mjesto u
sustavu za e-uenje.
Rjeenja zadaa provjeravaju se tijekom laboratorijskih vjebi.
Studenti koji nisu spremni prezentirati rjeenje pojedine
zadae, gube bodove iz iste.
Koritenje tueg rjeenja (plagijat) je zabranjeno te povlai
disciplinsku odgovornost.

4
Aktivnosti kontinuiranog praenja (2)

Kolokviji:
Sastoje se od rjeavanja teorijskih i praktinih zadataka
otvorenog tipa.
Da bi poloili 2 kolokvija od kojih svaki nosi najvie 20 bodova,
studenti trebaju temeljito prouiti gradivo kolegija (materijale
sa predavanja i laboratorijskih vjebi te osnovnu i dodatnu
literaturu).
Kolokvijima mogu pristupiti samo studenti koji su u tekuoj
akademskoj godini upisali kolegij.
Nema ponavljanja, ispravljanja ni nadoknade kolokvija.
Prepisivanje na kolokvijima je zabranjeno te povlai disciplinsku
odgovornost.

5
Aktivnosti kontinuiranog praenja (3)

Seminarski rad:
Svaki student treba odabrati temu iz ireg podruja kolegija te istu prijaviti kod
predmetnog nastavnika.
Nakon to predmetni nastavnik odobri temu, student moe pristupiti izradi
seminarskog rada.
Tijekom izrade seminarskog rada, studenti se trebaju pridravati pravilnika o izradi
seminarskog rada te citiranju koritene literature.
Svaki student treba obraniti odabranu temu seminarskog rada u za to unaprijed
definiranom terminu.
Studenti na obranu trebaju donijeti uvezenu tiskanu verziju seminarskog rada i
PowerPoint prezentaciju.
Ukoliko seminarski rad sadri praktinu komponentu, implementaciju je potrebno
pohraniti na CD/DVD medij te isti priloiti uz tiskanu verziju seminarskog rada.
Seminarski rad nosi najvie 20 bodova.
Digitalnu verziju seminarskog rada potrebno je uitati na za to predvieno mjesto u
sustavu za e-uenje.
Studenti koji nisu spremni obraniti seminarski rad, gube bodove iz istog.
Koritenje tueg rada (seminarskog, zavrnog, diplomskog i sl.) i predstavljanje kao
svojeg (plagijat) je zabranjeno te povlai disciplinsku odgovornost.

6
Ocjena kontinuiranog praenja

Ocjena kontinuiranog praenja se temeljem ostvarenih


bodova oblikuje prema sljedeoj skali:
89.00 100.00% = izvrstan (5)
76.00 88.99% = vrlo dobar (4)
63.00 75.99% = dobar (3)
50.00 62.99% = dovoljan (2)

Ocjena kontinuiranog praenja vrijedi do kraja


akademske godine.
Studenti koji su u sklopu kontinuiranog praenja
ostvarili manje od 50% bodova moraju polagati pismeni
i usmeni dio ispita.

7
E-uenje

Studenti su obvezni:
prijaviti se na mrene stranice kolegija na e-uenju s
@unipu.hr korisnikim identitetom
pratiti obavijesti na mrenim stranicama kolegija na e-uenju i
informacije na e-oglasnoj ploi na mrenim stranicama studija
Literatura

Obvezna:
Sinkovi, G., kori, I.: Osnove programiranja u programskom
jeziku C++. FET, Pula (2006)
ribar, J., Motik, B.: Demistificirani C++. Element, Zagreb
(2014)
Materijali sa predavanja i laboratorijskih vjebi
Izborna:
Lippman, S. B., Lajoie, J., Moo, B. E.: C++ primer. Objectwrite
Inc., Upper Saddle River (2013)
Stroustrup, B.: The C++ Programming Language. Pearson
Education Inc., Upper Saddle River (2013)
Priruna:
Stroustrup, B.: Programming: Principles and Practice Using
C++. Pearson Education Inc., Upper Saddle River (2014)
9
to raditi i ne raditi?

Nauiti programirati (DA):


Traiti objanjenje u literaturi
Traiti objanjenje na Internetu
Traiti objanjenje na konzultacijama
Traiti objanjenje od kolege

Nauiti varati (NE):


Prepisati rjeenje iz literature
Prepisati rjeenje s Interneta
Uiti programski kod napamet bez razumijevanja
Prepisati rjeenje od kolege

10
Motivacija

poznavanje izrade programskih proizvoda u barem


jednom programskom jeziku predstavlja temelj
informatike pismenosti i IKT struke
do 2020. godine u EU e nedostajati 900.000 IKT
strunjaka
u 2015. godini plae IKT strunjaka su bile 33% vee
od prosjene plae
razumijevanje gradiva iz kolegija Programiranje je
preduvjet za razumijevanje i praenje gradiva kolegija
koji se na isti nadovezuju:
Strukture podataka i algoritmi
Napredne tehnike programiranja
Programsko inenjerstvo
11
Sadraj predavanja

Programiranje kao disciplina


Problem, ideja, podaci, algoritam, program
Razvoj programskih jezika
Vrste programskih jezika
Karakteristike programskog jezika C++

12
to je programiranje?

Temeljna disciplina u podruju informacijsko-


komunikacijskih tehnologija i znanosti.

Bavi se osmiljavanjem i izradom raunalnih programa.

Svaki informatiar mora znati programirati.

13
to je programiranje?

Top od ideje

Down do programa

14
Od ideje do programa

Problem

Algoritam

Program

15
Problem

Problem je zadatak koji trebamo rijeiti pomou


raunala:
Treba biti zadan openito.
Treba biti zadan jasno.
Treba obuhvaati sve mogue sluajeve koji se mogu dogoditi
u praksi.

Kako zadati problem?


Detaljni opis ulaznih podataka
Opis rezultata i njegove veze s ulaznim podacima

16
Kako zadati problem?

Raunalni program je niz instrukcija raunalu koje slue


kako bi se iz ulaznih podataka izraunao rezultat.

Ulazni
Program Rezultat
podaci

17
Kako zadati problem?

Kako zadati ulazne podatke?


Ulazni se podaci zadaju openito, tako da obuhvaaju sve
mogue sluajeve
Broj podataka
Tip podataka
Dodatna ogranienja na podacima
Kako zadati rezultat?
Rezultat se zadaje jasnim opisom u to elimo da se pretvore
odreeni ulazni podaci
Tip podataka
Odnos rezultata prema ulaznim podacima

18
Kako zadati problem prvi primjer

Problem izrauna jednostavnih aritmetikih operacija

19
Kako zadati problem prvi primjer

Problem izrauna jednostavnih aritmetikih operacija

ULAZ:
Dva decimalna broja A i B i aritmetika operacija

20
Kako zadati problem prvi primjer

Problem izrauna jednostavnih aritmetikih operacija

ULAZ:
Dva decimalna broja A i B i aritmetika operacija

IZLAZ:
AB

21
Kako zadati problem drugi primjer

Problem ispisa broja u brojevnim sustavima koji nisu


decimalni ni binarni

22
Kako zadati problem drugi primjer

Problem ispisa broja u brojevnim sustavima koji nisu


decimalni ni binarni

ULAZ:
Pozitivni cijeli broj A

23
Kako zadati problem drugi primjer

Problem ispisa broja u brojevnim sustavima koji nisu


decimalni ni binarni

ULAZ:
Pozitivni cijeli broj A

IZLAZ:
Broj A zapisan u heksadecimalnom i oktalnom sustavu

24
Kako zadati problem trei primjer

Problem izrauna aritmetike sredine niza brojeva

25
Kako zadati problem trei primjer

Problem izrauna aritmetike sredine niza brojeva

ULAZ:
Pozitivni cijeli broj N i niz od N decimalnih brojeva

26
Kako zadati problem trei primjer

Problem izrauna aritmetike sredine niza brojeva

ULAZ:
Pozitivni cijeli broj N i niz od N decimalnih brojeva

IZLAZ:
Aritmetika sredina zadanih N decimalnih brojeva

27
Kako rijeiti problem?

Da bi se zadani problem rijeio pomou raunala


potrebno je definirati
Podatke
Algoritam

Raunalni
program

Podaci Algoritam

28
Podaci

Podatke u programu dijelimo na:


Ulazne podatke,
Meurezultate,
Izlazne podatke.
Svakom podatku treba definirati tip koji predstavlja
domenu iz koje taj podatak moe poprimiti vrijednost.
Uobiajene domene podataka su:
Cijeli brojevi
Pozitivni cijeli brojevi (prirodni brojevi)
Decimalni brojevi
Slova
Rijei
Logike vrijednosti (Da/Ne, Yes/No, True/False)
29
Algoritam

Algoritam
koncizno opisan postupak koji prevodi ulazne podatke problema u
rezultat.
openito rjeenje problema koje jo nije prilagoeno raunalu
ne mora nuno biti u digitalnom obliku.
Algoritam treba
Imati 0 ili vie ulaza (Ulaz)
Imati 1 izlaz (ili vie) (Izlaz)
Svaka instrukcija algoritma treba biti nedvosmislena
(Jednoznanost)
U algoritmu nakon izvrenja svake instrukcije treba biti
nedvosmisleno jasno koja se instrukcija sljedea izvodi
(Odreenost)
Algoritam mora biti takav da raunalo ili ovjek nakon konanog
broja koraka u konanom vremenu doe do rezultata
(Djelotvornost) 30
Algoritam

Naini opisa algoritma


Prirodni jezik
Pseudokod
formatirani opis algoritma u prirodnom jeziku pomou kojeg
se navode logike strukture i podaci
openito logiko rjeenje problema koje ne prejudicira
upotrebu odreenog programskog jezika
Izvorni kod u programskom jeziku
prijevod pseudokoda u formalni jezik za opis algoritama koji
jo uvijek nije razumljiv raunalu
Izvedbeni kod
krajnji oblik rjeenja problema koji nastaje prevoenjem i
povezivanjem izvornog koda

31
Algoritam

Metoda izrade algoritama koja se najee koristi


naziva se top-down metoda.
Izvan raunalstva ova se metoda naziva metoda
konkretizacije.
Opiemo algoritam u 3-7 openitih instrukcija i u
svakom sljedeem koraku se usredotoujemo na svaku
od opisanih instrukcija i konkretiziramo je dok god je to
potrebno.
Za definiciju algoritma koristimo pseudokod Top
koji detaljiziramo sve dok ga ne moemo
izravno prevesti u kod u programskom
jeziku. Down

32
Algoritam prvi primjer

ULAZ:
Dva decimalna broja A i B i aritmetika operacija

IZLAZ:
AB
Algoritam prvi primjer

ULAZ:
Dva decimalna broja A i B i aritmetika operacija

IZLAZ:
AB

1. Uitati dva decimalna broja.


2. Uitati znak za aritmetiku operaciju.
3. Ispisati rezultat ovisno o unesenom operatoru.
Algoritam prvi primjer

ULAZ:
Dva decimalna broja A i B i aritmetika operacija

IZLAZ:
AB
Algoritam prvi primjer

ULAZ:
Dva decimalna broja A i B i aritmetika operacija

IZLAZ:
AB

1. Upii decimalni broj A


2. Upii decimalni broj B
3. Upii operator Theta
4. Ako je Theta
5. +: Ispii A+B
6. -: Ispii A-B
7. *: Ispii A*B
8. /: Ispii A/B
Algoritam drugi primjer

ULAZ: Pozitivni cijeli broj A


IZLAZ: Broj A zapisan u heksadecimalnom i oktalnom
sustavu

37
Algoritam drugi primjer

ULAZ: Pozitivni cijeli broj A


IZLAZ: Broj A zapisan u heksadecimalnom i oktalnom
sustavu

1. Uitati s tipkovnice pozitivni cijeli broj A


2. Ispisati broj A u oktalnom zapisu
3. Ispisati broj A u heksadecimalnom zapisu

38
Algoritam drugi primjer

ULAZ: Pozitivni cijeli broj A


IZLAZ: Broj A zapisan u heksadecimalnom i oktalnom
sustavu

39
Algoritam drugi primjer

ULAZ: Pozitivni cijeli broj A


IZLAZ: Broj A zapisan u heksadecimalnom i oktalnom
sustavu

1. Ispii A=
2. Uitaj cijeli broj A
3. Ako je A0 vrati se na 1
4. Prebaci format ispisa cijelih brojeva u oktalni sustav
5. Ispii broj A
6. Prebaci format ispisa cijelih brojeva u heksadecimalni sustav
7. Ispii broj A

40
Algoritam trei primjer

ULAZ: Pozitivni cijeli broj N i niz od N decimalnih


brojeva
IZLAZ: Aritmetika sredina zadanih N decimalnih
brojeva

41
Algoritam trei primjer

ULAZ: Pozitivni cijeli broj N i niz od N decimalnih


brojeva
IZLAZ: Aritmetika sredina zadanih N decimalnih
brojeva
1. Uitaj pozitivni cijeli broj N
2. Uitaj N decimalnih brojeva i izraunaj njihovu sumu
3. Podijeli sumu decimalnih brojeva s N
4. Ispii dobiveni kvocijent

42
Algoritam trei primjer

ULAZ: Pozitivni cijeli broj N i niz od N decimalnih


brojeva
IZLAZ: Aritmetika sredina zadanih N decimalnih
brojeva

43
Algoritam trei primjer

ULAZ: Pozitivni cijeli broj N i niz od N decimalnih


brojeva
IZLAZ: Aritmetika sredina zadanih N decimalnih
brojeva
1. Ispii N=
2. Uitaj cijeli broj N
3. Ako je N0 vrati se na 1
4. S=0
5. Uitaj N decimalnih brojeva i svaki od njih pribroji na S
6. Avg=S/N
7. Ispii Avg

44
Algoritam trei primjer

ULAZ: Pozitivni cijeli broj N i niz od N decimalnih


brojeva
IZLAZ: Aritmetika sredina zadanih N decimalnih
brojeva
1. Ispii N=
2. Uitaj cijeli broj N
3. Ako je N0 vrati se na 1
4. S=0
5. I=1
6. Sve dok je IN radi
7. Uitaj decimalni broj A
8. S=S+A
9. I=I+1
10. Avg=S/N 45
11. Ispii Avg
Programski jezik

Programski jezik je formalni jezik kojim se u raunalu


opisuju algoritmi.

Algoritam zapisan u programskom jeziku naziva se


raunalni program.

46
Razvoj programskih jezika

1950 1960 1970 1980 1990 2000 2010

47
Klasifikacija programskih jezika

Logiko Prolog Datalog Flora


programiranje

Funkcijsko SQL ML Daplex


programiranje Lisp

Proceduralno
C BASIC C++
programiranje
Pascal Fortran Oberon

Objektno-
Strukturirano
orijentirano
programiranje
programiranje
Proceduralno programiranje

Program se izvodi slijedno, od prve do posljednje naredbe


Preskakanje ili ponavljanje dijelova koda rjeava se pomou
bezuvjetnog skoka s odreditem (go to)
Proceduralni program sainjen je od niza jednostavnih
programskih odsjeaka (procedura)
Svaka procedura je konstruirana tako da obavlja jedan manji
zadatak, a cijeli se program sastoji od niza procedura koje
sudjeluju u rjeavanju zadatka.
Kako bi koristi od ovakve podjele programa bile to
izraenije, smatralo se dobrom programerskom taktikom
odvojiti proceduru od podataka koje ona obrauje:
time je bilo mogue pozvati proceduru za razliite ulazne
podatke i na taj nain iskoristiti je na vie mjesta.

49
Proceduralno-strukturirano programiranje

Strukturirano programiranje
ne koristi go to naredbu
svaka struktura moe imati samo jedan ulaz i izlaz
meutim, mnogi jezici (npr. C) dozvoljavaju viestruke putanje do izlaza
(npr. continue, break, return)
dodatak na proceduralni model: ono definira niz osnovnih jezinih
konstrukcija, kao to su petlje, grananja i pozivi procedura, koje unose red
u programe i ine samo programiranje daleko jednostavnijim, a napisani
kd itljivijim
Proceduralno-strukturirano programiranje
obiljeavaju ga potprogrami (procedure) koji mogu biti
interni (dijelovi glavnog programa)
eksterni (modularni, pohranjeni izvan glavnog programa i ukljuivani
prema potrebi)
pojedini potprogram moe svoj posao obaviti kombinirajui rad drugih
potprograma
50
Objektno-orijentirano programiranje (OOP)

Programiranje pogonjeno dogaajima


Program se dekomponira u niz zatvorenih cjelina
(objekata) koje meusobno surauju u rjeavanju
problema.
Umjesto specijaliziranih procedura koje upravljaju
proizvoljnim podacima, radimo s objektima koji
objedinjavaju podatke i operacije nad tim podacima.
Pri tome je vano to objekt radi, a ne kako on to radi.
Navedeno omoguava da se pojedini objekt moe po
potrebi izbaciti i zamijeniti drugim koji e istu zadau
obaviti bolje.

51
Obiljeja OOP 1/2

Enkapsulacija
objekt se ne sastoji iskljuivo od podataka ve sadri i metode
neophodne za operacije nad tim podacima
podaci su privatni za svaki objekt te nisu dostupni ostalim
dijelovima programa
na taj su nain podaci zatieni od neovlatene promjene izvan
objekta koja bi mogla naruiti njegovu cjelovitost
Skrivanje podataka
Svaki objekt svojoj okolini prua iskljuivo podatke i operacije
koji su neophodni da bi okolina objekt mogla koristiti.
Ti javno dostupni podaci zajedno s operacijama koje ih
prihvaaju ili vraaju ine suelje objekta.
Programer koji e koristiti taj objekt vie se ne mora zamarati
razmiljajui o nainu na koji objekt iznutra funkcionira on
jednostavno preko suelja trai od objekta odreenu uslugu
52
Obiljeja OOP 2/2

Nasljeivanje
prilikom rjeavanja nekog problema moemo iz poetka pisati
kod ili uzeti neku gotovu komponentu koja je blizu rjeenja i
samo dodati nove mogunosti
navedeno se zove ponovna iskoristivost postojee komponente
dok se za novu komponentu kae da je naslijedila svojstva
komponente iz koje je izgraena
Polimorfizam
svojstvo da razliiti objekti istu operaciju obavljaju na razliite
naine

53
Funkcijsko programiranje

Bavi se vrednovanjem matematikih funkcija i izraza


gdje se naglasak stavlja na njihovu izraunljivost
U funkcijskim programima nema eksplicitne memorijske
alokacije ni pridruivanja
Nakon poziva funkcije, operacije se izvravaju
automatski, a alokacije se odnosi samo na parametre i
povratne vrijednosti
esto se koriste ugnijeene funkcije te rekurzije
Predstavnici ove obitelji su jezici LISP, Scheme, ML,
Haskell, Erlang, itd.

54
Logiko programiranje

Model programiranja u kojem se specificiraju atributi, a ne


koraci koji dovode do rjeenja.
Polazi se od logikog modela koji opisuje okolinu u kojoj
egzistira problem.
Saznanja o okolini transformiraju se u hipotezu koja se
vrednuje pomou programa
Rjeenje problema
pozitivno (ispitivanje tvrdnje iz modela daje rezultat TRUE, hipoteza je
potvrena)
Negativno (ispitivanje tvrdnje iz modela daje rezultat FALSE, hipoteza je
odbaena)
Logiki programski jezici
ne propisuju kako neto ve to treba uraditi
pripadaju kategoriji neprocedularnih jezika
namijenjeni su rjeavanju problema iz domene sustava temeljenih na
znanju
55
najpopularniji predstavnik Prolog
Vrste programskih jezika

Simboliki (skupni ili asemblerski)


pojavili su se polovicom 20. stoljea
karakterizira ih sintaksa mnemonikih simbola u obliku
engleskih kratica (npr. ADD za zbrajanje, SUB za oduzimanje,
MOV za prenoenje, itd.)
Svaki tip raunala je imao svoj vlastiti programski jezik
Vii programski jezici
javljaju se 60-ih godina prolog stoljea
kompatibilni sa razliitim tipovima raunala
prvotno usko orijentirani na rjeavanje odreenih skupina
problema
danas predstavljaju okosnicu objektnog pristupa programiranju

56
ADA

Ada Lovelace, roena Byron (1815-1852) smatra se


prvom programerkom na svijetu jer je napisala
programerske primjere i algoritme za analitiki ureaj
(mehaniko raunalo)
Po njoj je nazvan programski jezik kojeg je 1975.
godine objavio Pentagon

with Ada.Text_IO; use Ada.Text_IO;


procedure Pozdrav is
begin
Put_Line ("Pozdrav svijetu!");
end Pozdrav;

57
PLANKALKL

Konrad Zuse je 1943. godine u svojoj doktorskoj


disertaciji objavio ovaj programski jezik.
Isti se pokretao na raunalima koje je Zuse sam
napravio.
Jezik je imao petlje, polja i matematike izraze.
Naalost njegov rad bio je izgubljen sve do 70-tih
godina prolog stoljea.
R1.1(V0[:sig]) => R0
R1.2(V0[:m x sig]) => R0
0 => i | m + 1 => j
[W [ i < j -> [ R1.1(V0[i: m x sig]) => R0 | i + 1 => i ] ] ]
END
R1.3() => R0
'P';'o';'z';'d';'r';'a';'v';' ';'s';'v';'i';'j';'e';'t';'u';'!' =>
Z0[: m x sig]
R1.2(Z0) => R0 58
END
FORTRAN

Kratica od FORmula TRANslation.


Napisao ga je John Backus 1957. godine.
Namijenjen je kompleksnim znanstvenim,
matematikim i statistikim proraunima.
Najstariji programski jezik koji se jo uvijek
upotrebljava:
u automobilskoj, zrakoplovnoj i svemirskoj industriji,
vladinim i istraivakim institucijama (npr. hidrometeoroloki
zavod)

Program Pozdrav
Print *, "Pozdrav svijetu!"
End Program Pozdrav
59
COBOL

Kratica od COmmon Business Oriented Language.


Nastao je 1959. godine, a napisao ga je razvojni tim
pod vodstvom Dr. Grace Murray Hopper.
Uniformni programski jezik koji je jednostavan za
upotrebu, a slui implementaciji poslovnih
transakcijskih sustava:
za kartino poslovanje i bankomata
koji upravljaju telefonskim i mobilnim pozivima,
u bolnicama, vladinim institucijama i automobilskoj industriji,
u prometu (npr. ureaji za signalizaciju, semafori).
IDENTIFICATION DIVISION.
PROGRAM-ID. pozdrav.
PROCEDURE DIVISION.
DISPLAY "Pozdrav svijetu!".
STOP RUN. 60
BASIC

Kratica za Beginners All-purpose Symbolic Instruction


Code
Nastao je 1964. godine
Napisali su ga studenti Dartmouth College-a sa ciljem
da razviju pojednostavljeni programski jezik kojeg e
moi upotrebljavati i oni koji nemaju snano tehniko i
matematiko uporite.
Njegova modificirana verzija koju su napisali Bill Gates i
Paul Allen je bio prvi Microsoftov proizvod.
Davne 1977. godine pokretao je raunalo Apple II.

10 PRINT "Pozdrav svijetu!"


20 GOTO 10 61
C

U razdoblju izmeu 1969. i 1973. napisao ga je Dennis


Ritchie iz Bell Telephone Laboratories radi primjene u
Unix operacijskom sustavu.
Kasnije je gotovo cijela jezgra operacijskog sustava
Unix iznova napisana u jeziku C ime je isti postao prvi
OS ija jezgra nije bila napisana u asembleru.
Danas je OS Linux implementiran u jeziku C.

#include<stdio.h>

main(){
printf("Pozdrav svijetu!");
}
62
PASCAL

Napisao ga je Niklaus Wirth 1970. godine kao jezik za


uenje programiranja
Naziv je dobio po Blaise Pascalu koji je 1641. godine
izumio prvi ureaj za zbrajanje
Danas ima iroku komercijalnu primjenu (npr. Skype)

program Pozdrav;

begin
writeln('Pozdrav svijetu!');
end.

63
C++

Napisao ga je Bjarne Stroustrup 1983. godine dok je


radio u Bell Labs
Predstavlja proirenje programskog jezika C sa
klasama, virtualnim funkcijama i predlocima
Ima brojne komercijalne primjene (razvoj raunalnih
igara, klijentskih i serverskih aplikacija (npr. Chrome i
Firefox web preglednici), paketi za obradu
multimedijalnih zapisa (npr. Adobe), itd.)

#include <iostream>
int main(){
std::cout << "Pozdrav svijetu!\n";
return 0;
} 64
Zato C++?

Objektno-orijentirani programski jezik


Prema posljednjim istraivanjima blizu 70%
programskog koda u SAD napisano je u jednom od
jezika iz obitelji C (C, C++, Java)
Ostali relevantni lanovi C obitelji

66
Razvoj programskih jezika dodatna literatura

Lovreni, A., Konecki, M., Orehovaki, T. 1957-2007:


50 Years of Higher Order Programming Languages.
Journal of Information and Organizational Sciences, vol.
33, no. 1, pp. 79-150 (2009)

67

You might also like