Uputstvo za upotrebu
i jednostavni primeri
Verzija: 11. 03. 2014.
Praktikum iz programiranja 2
Sadraj
Objedinjeno razvojno okruenje
Osobine C/C++ razvojnih okruenja
Detalji rada u MSVC
Primeri
Jednostavan C program
Sloeniji C primer
Kreiranje biblioteke
Zavrne napomene
Verzija: 11.03.2014.
2/90
3/90
Istorijat [1/2]
Rani programi su pripremani korienjem
buenih kartica ili magnetnih doboa
(1890 1975).
Tastatura je postala sredstvo za unos komandi
sa pojavom UNIX operativnih sistema,
korienim na prvim raunarima,
koji su imali silicijumske ipove (1970 - ).
Verzija: 11.03.2014.
4/90
Istorijat [2/2]
Sa rastom zahteva koje softver treba da ispuni
porasli su i zahtevi za uslovima koje razvojno
okruenje treba da obezbedi programerima.
To je dovelo do nastanka
objedinjenih razvojnih okruenja
(engl. Integrated Development Enviroment)
IDE jedinstven alat u kojem se
obavlja itav razvoj softvera.
Verzija: 11.03.2014.
5/90
Sabiranje.c
Test_program.c
Konstante.h
projekat
Verzija: 11.03.2014.
6/90
Verzija: 11.03.2014.
7/90
Verzija: 11.03.2014.
8/90
Verzija: 11.03.2014.
9/90
Verzija: 11.03.2014.
10/90
Verzija: 11.03.2014.
11/90
Verzija: 11.03.2014.
12/90
Verzija: 11.03.2014.
13/90
Compiler (prevodilac)
U najirem smislu,
Compiler je alat koji prevodi tekst
napisan u nekom od programskih jezika
u drugi programski jezik.
Praktina upotreba je prevoenje
iz programskog jezika vieg
u jezik nieg nivoa,
najee u simboliki mainski jezik
(esto se pogreno naziva i assembler)
ili mainski jezik.
Verzija: 11.03.2014.
14/90
Linker [1/2]
Linker je alat
koji od jedne
ili vie datoteka
koje sadre
objektni kod
kreira jedinstveni
izvrni file ili biblioteku.
Ekstenzija u sistemu
izvrnog fajla je .exe,
od engl. executable.
Verzija: 11.03.2014.
15/90
Linker [2/2]
Rezultat rada linkera
ne mora biti executable,
ve i biblioteka.
Biblioteke (eng. library)
su skupovi potprograma.
Statike biblioteke ((lib))
se koriste u prevoenju
i njihov kod se
neposredno ugrauje
u izvrni program.
Dinamike biblioteke (dll)
se ne ugrauju
u izvrni program,
ali moraju biti dostupne
kada se program izvrava.
Verzija: 11.03.2014.
16/90
Debugger
Debugging metodiki proces
otkrivanja i eliminisanja greaka u programu.
Debugger pomae da se nae
mesto u kodu u kojem je uzrok greke
tako to pokazuje
kontekst izvravanja u svakom trenutku
i vrednosti relevantnih promenljivih.
Postoji vie naina
da se sprovede debugging postupak.
Verzija: 11.03.2014.
17/90
Menader datoteka
Savremena razvojna okruenja
vizuelno prikazuju strukturu projekta,
ukljuene direktorijume i datoteke.
Direktno iz menadera se datoteke
ukljuuju ili iskljuuju iz projekta.
Datoteke mogu biti
sistemske ili ih pie sam programer.
Iz menadera datoteka programer
odabira datoteku kojoj eli da menja sadraj,
ona se otvara u editoru
izvornog programskog koda.
Verzija: 11.03.2014.
18/90
Verzija: 11.03.2014.
19/90
Visual IDE
Stalno se poveava interesovanje inenjera za
vizuelnim programiranjem (visual programming) to je
dovelo do razvoja mnogih vizuelnih IDE
Vizuelno IDE omoguava korisnicima pravljenje
aplikacija razmetanjem grafikih elemenata na
ekranu i radom sa tim elementima, to je najee
bre od uobiajenog programiranja
Verzija: 11.03.2014.
20/90
Verzija: 11.03.2014.
21/90
Rad sa projektima
Projekat sadri jednu ili vie datoteka
koje mogu biti sledeih tipova:
(.c, .cpp, .cxx, .cc, .C) source
sadri izvorni kod
(.h, .hpp, .hxx) header
sadri definicije funkcija
i tipove podataka koji se
nalaze u drugim datotekama
(.obj) object
Napomena:
kompajlirane datoteke
koje sadre objektni kod
.obj fajl
ne sadri objekte
Verzija: 11.03.2014.
22/90
Standardne biblioteke
Zbirke funkcija, konstanti, klasa i objekata
koje proiruju osnovnu funkcionalnost
C/C++ jezika i omoguavaju mu
komunikaciju sa operativnim sistemom
i korienje nekih standardnih algoritama
Biblioteke se koriste pomou zaglavlja,
koja se po potrebi zasebno ukljuuju
iz svakog fajla unutar projekta
Verzija: 11.03.2014.
23/90
Zaglavlja (C)
stdio.h
komunikacija sa I/O ureajima
stdlib.h
rad sa memorijom, konverzije podataka
time.h
rad sa datumima i vremenskim jedinicama
string.h
manipulacija stringovima (tekst)
math.h
matematike operacije
Verzija: 11.03.2014.
24/90
25/90
26/90
27/90
Verzija: 11.03.2014.
28/90
Verzija: 11.03.2014.
29/90
Verzija: 11.03.2014.
30/90
Verzija: 11.03.2014.
workspace
Solution1
Solution2
Project 11
Project 21
Project 12
Project 22
Project13
31/90
32/90
Solution Explorer
Solution Explorer
omoguava pregled svih
projekata i fajlova
ukljuenih u jedan
solution.
Preko kontekstnog
menija je mogue obaviti
mnoge potrebne
operacije vezane za
projekte sadrane u
reenju.
Verzija: 11.03.2014.
33/90
34/90
35/90
Verzija: 11.03.2014.
36/90
37/90
Verzija: 11.03.2014.
38/90
39/90
40/90
Pokretanje aplikacije
41/90
42/90
Verzija: 11.03.2014.
43/90
Verzija: 11.03.2014.
44/90
45/90
Verzija: 11.03.2014.
46/90
Verzija: 11.03.2014.
47/90
Breakpoint [1/2]
Kursor se pozicionira
u liniji u kojoj elimo
da se program zaustavi.
Pritisne se
Toggle Breakpoint" dugme
iz Debug" menija (ili F9)
Ili pritiskom na levi taster
mia uz levu marginu koda
Uz levu marginu koda MSVC
dodaje marker
kako bi naznaio
da je tu taka prekida.
Verzija: 11.03.2014.
48/90
Breakpoint [2/2]
Program se pokree
pritiskom
Start Debigging
dugmeta
iz Debug" menija
(ili F5).
Program se izvrava
do nailaska
na taku prekida,
gde se zaustavlja.
Verzija: 11.03.2014.
49/90
50/90
51/90
Verzija: 11.03.2014.
52/90
53/90
Verzija: 11.03.2014.
54/90
Verzija: 11.03.2014.
55/90
Intellisense
Intellisense je nain na koji
je u VS ostvarena
autocomplete
funkcionalnost.
To je nain da se
lake pristupi
imenima identifikatora,
opisima funkcija i njihovim
listama argumenata.
Koristi se tako to se
zapone sa unosom naziva
identifikatora, a aktivira se
kombinacijom CTRL+space.
Verzija: 11.03.2014.
56/90
Verzija: 11.03.2014.
57/90
Jednostavan C program
C primer, koji e biti pokazan, sastoji se samo od
jedne izvorne datoteke.
Program zahteva od korisnika da unese 3 elementa
niza a zatim taj niz ispisuje.
Verzija: 11.03.2014.
58/90
Verzija: 11.03.2014.
59/90
Pokretanje projekta
Da bi se odreeni projekat iz solutiona pokrenuo
putem debug toolbar-a, potrebno je oznaiti ga kao
startUp project solutiona kome pripada.
Desni klik na projekat,
odabir stavke Set as StartUpProject.
StartUp projekat
se raspoznaje po
blodovanom
nazivu unutar
solution
exloprer-a
Verzija: 11.03.2014.
60/90
Pretprocesor [1/2]
Pretprocesor jezika C je deo prevodioca koji vri
pripremnu obradu izvornog teksta programa tj.
vri razne transformacije teksta kojima se stvara
konani oblik teksta koji treba da bude preveden.
Na ovaj nain programeru je omogueno da
uslovno prevodi neki kod,
definie tzv. simbolike konstante i makroe,
da specificira poruke za greke u vreme prevoenja i
jo mnogo toga.
Verzija: 11.03.2014.
61/90
Pretprocesor [2/2]
Radom pretprocesora upravlja se specijalnim
naredbama koje se nazivaju direktive pretprocesora.
Direktive pretprocesora piu se u zasebnim linijama i
poinju zankom #.
Verzija: 11.03.2014.
62/90
main() {
double P, O, r=2;
P = r*r*3.14;
compiler
O = 2*r*3.14;
Prevodi izmenjeni kod,
}
ne znajui nita o identifikatoru PI
(uklonjen je)
63/90
Verzija: 11.03.2014.
64/90
65/90
Verzija: 11.03.2014.
66/90
Uslovno prevoenje
Verzija: 11.03.2014.
67/90
68/90
Verzija: 11.03.2014.
69/90
Verzija: 11.03.2014.
70/90
Verzija: 11.03.2014.
71/90
Verzija: 11.03.2014.
72/90
Verzija: 11.03.2014.
73/90
Verzija: 11.03.2014.
74/90
Verzija: 11.03.2014.
75/90
76/90
77/90
Verzija: 11.03.2014.
78/90
79/90
80/90
Verzija: 11.03.2014.
81/90
Verzija: 11.03.2014.
82/90
83/90
84/90
85/90
Verzija: 11.03.2014.
86/90
Verzija: 11.03.2014.
87/90
Dalje uenje
Sve domae izdavake kue
(Mikro knjiga, Kompjuter biblioteka...)
imaju u svojoj ponudi
knjige za osnovne i naprednije kurseve
uenja C/C++ jezika.
Na Internetu se nalazi
veliki broj tutorijala i
besplatnih knjiga u elektronskom formatu.
Neki od linkova:
link 1
link 2
Verzija: 11.03.2014.
88/90
Internet zajednice
Saveti i reenja za svoje probleme
se mogu pronai i u Internet zajednicama.
Zajednice su organizovane
ili kao forumi ili kao mailing liste.
U prvom sluaju poruke
ostaju zapisane na Internet stranama,
dok u drugom stiu na mail uesnicima.
Neki forumi:
EliteSecurity, domai forum o informatici
Go4expert
Dev Articles
Verzija: 11.03.2014.
89/90
Citat
Proces stvaranja programa za kompjutere
je izuzetno atraktivan,
ne samo zbog svoje
ekonomske i naune isplativosti,
ve i zato to moe biti umetniko iskustvo nalik
komponovanju poezije ili muzike.
- Donald Knuth
Verzija: 11.03.2014.
90/90