0% found this document useful (0 votes)
364 views27 pages

Programiranje

Dokument opisuje osnovne pojmove vezane uz programiranje kao što su algoritam, program, programski jezik. Objašnjava razliku između C i C++ jezika, prikazuje dijagrame toka i povijesni razvoj nekih programskih jezika.

Uploaded by

MartinaKolovrat
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
364 views27 pages

Programiranje

Dokument opisuje osnovne pojmove vezane uz programiranje kao što su algoritam, program, programski jezik. Objašnjava razliku između C i C++ jezika, prikazuje dijagrame toka i povijesni razvoj nekih programskih jezika.

Uploaded by

MartinaKolovrat
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

Programiranje Uvodno predavanje 1.

dio
Osnovni pojmovi Programski jezik C++

Sadraj

Osnovni pojmovi

Algoritam, program, programski jezik

Klasifikacije programskih jezika Programski jezik C++

Uvod
Primjena raunala omoguava rjeavanje problema uporabom programa (softvera) napisanih u programskom jeziku Rjeavanje razliitih zadataka moe biti povjereno raunalu ukoliko postoji program koji te zadatke moe rijeiti

Uvod

Neke domene u kojima se koristi programiranje:


Znanstvene aplikacije Poslovne aplikacije Aplikacije iz podruja umjetne inteligencije Sistemsko programiranje Programiranje za web (wep aplikacije) Aplikacije za mobilne ureaje ...

Osnovni pojmovi

Osnovni pojmovi:

algoritam, program, programski jezik

Osnovni pojmovi
Pojam algoritam je temelj raunalnog programiranja Povijesno je vezan uz podruje matematike U 20. stoljeu pojavom raunala pojam se proiruje na podruje raunarstva Etimologija rijei algoritam:

Iranski pisac, matematiar, astronom i geograf Muhammed ibn Musa al Khwarizmi (780 - 850) Latinski naziv imena al Khwarizmi (al-Khwrizm) doveo je do naziva algoritam

Osnovni pojmovi
Primjer. Euklidov algoritam za pronalaenje najvee zajednike mjere dvaju brojeva m i n. Koraci algoritma:

Odrediti ostatak dijeljenja: urediti tako da je m>n; podijeliti m sa n i odredi ostatak dijeljenja r, 0 <= r < n; Ispitati: je li ostatak jedan nuli?

ako je, algoritam zavrava i n je traeni odgovor ako nije, napravi zamjenu: postavi da m postaje n, a n postaje r i vrati se na poetni korak

Napomena: algoritam se moze realizirati i uzastopnim oduzimanjem umjesto dijeljenjem

Osnovni pojmovi

Opisne i neformalne definicije pojma algoritam:

Algoritam je postupak kojim se opisuje toan redoslijed kojim obavljamo neki posao. Algoritam je konaan niz preciznih instrukcija (naredbi) koje vode do rjeenja. Algoritam je konaan slijed dobro definiranih naredbi za ostvarenje zadatka koji e za dano poetno stanje zavriti u definiranom konanom stanju Napomene:

ne postoji jedinstvena i opeprihvaena definicija pojma algoritam (u teoriji raunarstva pokuava se formalizirati pojam algoritam) postoje razliite karakterizacije algoritma (Turingov stroj, Churchov lambda raun, ...)

Osnovni pojmovi

Znaajke algoritma:

Konanost

uvijek zavrava nakon konanog broja koraka svaki korak je precizno definiran, nedvosmisleno za iste ulazne podatke algoritam uvijek daje isti rezultat potrebno je osigurati izvoenje algoritma u to kraem vremenskom roku, voditi rauna da se biraju to bolja rjeenja; primjer: igranje aha ispitivanjem svih moguih poteza neizvedivo na raunalu

Definiranost (determiniranost)

Uinkovitost (efikasnost)

Osnovni pojmovi
Algoritam se moe prikazati na razliite naine Prikaz algoritma:

Opisno, reenicama Grafiki: dijagram toka (engl. flow chart) Pseudokod


zapis blizak prirodnom jeziku neovisan o raunalu i programskom jeziku

Strogo formalizirani programski jezik, npr. C++

Osnovni pojmovi

Grafiki elementi koje koristi dijagram toka:

Primjer: Euklidov algoritam

Primjer dijagrama toka za uitavanje niza od n brojeva i traenje najveeg

Osnovni pojmovi

Program (raunalni program)

algoritam izraen u jeziku koji raunalo razumije skup instrukcija koje raunalo treba obaviti niz naredbi koje se izvode tono odreenim redoslijedom i s tono odreenim ciljem (naredbe mijenjaju vrijednosti objekata pohranjenih u memoriji raunala) Program = algoritam + strukture podataka (N. Wirth)
omoguava zapis algoritama kao niz naredbi rezultat: program koji rjeava zadani problem

Programski jezik

Prije C++ - a

Pregled nekih bitnih jezika koju su prethodili jeziku C++


FORTRAN,1954., IBM, (znanstvene aplikacije, numerike operacije) ALGOL, kasne 1950-te, (ALGOrithmic Language) COBOL, 1960., (poslovne aplikacije, izvjetaji) BASIC, 1964. , (razvijan za uenje) Pascal, (razvijan za uenje) C, 1974., (razvoj operacijskog sustava UNIX) Ada. Smalltalk-80, 1980. ... prva implementacija C++, 1985

Jezik C++

Jezik visoke razine Imperativni program realiziran kroz niz naredbi koje mijenjaju stanje programa. Objektno orijentiran Podrava i proceduralno programiranje (Jezik C) U nekim klasifikacijama navodi se da je to hibridni jezik jer objedinjuje vie programskih paradigmi Jezik ope namjene

Jezik C++

Kako je nastao C++?

Izveden je iz jezika C

C je izveden iz jezika B B je izveden iz jezika BCPL ++ je operator u jeziku C++ koji uveava operand za 1 i zgodan je dodatak u nazivu moe ukazivati na to da je jezik C++ nastao uveanjem jezika C

Zato ++?

Jezik C++

C je razvio Dennis Ritchie u AT&T Bell laboratoriju 1970-tih godina.

Razvijan je za UNIX operacijski sustav

Specifinost C-a u odnosu na druge do tada razvijane programske jezike:

razvijan je za potrebe programiranja u praksi, a ne u okviru akademskih istraivanja (kao npr. BASIC, Pascal) brzo ga prihvaa veliki broj programera (najraireniji strukturni jezik 80-tih godina) veliki broj komercijalnih aplikacija napisan je u C-u

Jezik C++
U vrijeme kada je osmiljen C je imao sve potrebne karakteristike Razlog zbog ega je on prerastao u C++ jezik jest: sloenost programa

u poetku je strukturno programiranje omoguilo je uinkovito pisanje velikih programa meutim, veliki programi opet postaju preveliki uvodi se objektno orijentirani pristup

Jezik C++
C++ je razvio Bjarne Stroustrup u AT&T Bell laboratoriju 1980-tih godina. Bjarne Strostrup homepage:

http://www2.research.att.com/~bs/homepage.html

Jezik C++
C ostaje podskup C++-a Prevladano je nekoliko nedostataka C-a Ukljueno je objektno orijentirano programiranje Uvoenjem objektno orijentiranog pristupa pojednostavljeno je pisanje koda za sloene programe Razvijan je za programiranje sloenih aplikacija u praksi Nakon prve verzije C++-a, jezik prolazi kroz tri vee revizije Utjecao je na razvoj jezika Java i C#

Jezik C++

Napomene:

u okviru kolegija Programiranje ne radi se objektno orijentirani pristup Neovisno o odabiru programskog jezika, na kolegiju Programiranje bitno je usvojiti logiku programiranja

TIOBE
Kompanija za standardizaciju softvera i mjerenje kvalitete softvera (www.tiobe.com) Tiobe index (http://www.tiobe.com/index.php/content/paperinf o/tpci/index.html)

Daje indikator popularnosti jezika Pretraivanja na stranicama: Google, MSN, Yahoo!, Wikipedia i YouTube koriste se za raunanje popularnosti TIOBE index ne mjeri koji je jezik najbolji niti u kojem jeziku je napisano najvie linija kda
23

TIOBE index
TIOBE index daje pregled (rang listu) popularnosti jezika za svaki mjesec Prati se rast i pad popularnosti svih znaajnih programskih jezika Proglaavaju najtraenijji programski jezici...

24

TIOBE index popularnost jezika

Prvih 20 programskih jezika u prosincu2012

25

TIOBE index popularnost jezika

26

Pitanja
Moe li se algoritam izvravati bez primjene raunala? Kakvi su odnosi izmeu jezika C, C++ i C# Ako je jezik C bio dovoljno dobar, uinkovit i popularan zbog ega je postojala potreba za novim programskim jezikom? Moe li se rei da je C++ iskljuivo objektno orijentiran programski jezik?

You might also like