Professional Documents
Culture Documents
C Prog
C Prog
(2015)
Elektronsko izdanje
(2015)
Elektronsko izdanje
(2015)
Filip Mari Predrag Janii
PROGRAMIRANJE 1
Osnove programiranja kroz programski jezik C
Beograd
2015.
Elektronsko izdanje
(2015)
Autori:
dr Filip Mari, docent na Matematikom fakultetu u Beogradu
dr Predrag Janii, redovni profesor na Matematikom fakultetu u Beogradu
PROGRAMIRANJE 1
Elektronsko izdanje
(2015)
Sadraj
Sadraj 5
Elektronsko izdanje
(2015)
4.4 Pragmatika programskih jezika . . . . . . . . . . . . . . . . . . 83
II Jezik C 90
5 Osnovno o programskom jeziku C 91
5.1 Standardizacija jezika . . . . . . . . . . . . . . . . . . . . . . . 91
5.2 Prvi programi . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
6 Predstavljanje podataka i operacije nad njima 101
6.1 Promenljive i deklaracije . . . . . . . . . . . . . . . . . . . . . . 101
6.2 Osnovni tipovi podataka . . . . . . . . . . . . . . . . . . . . . . 104
6.3 Konstante i konstantni izrazi . . . . . . . . . . . . . . . . . . . 109
6.4 Operatori i izrazi . . . . . . . . . . . . . . . . . . . . . . . . . . 112
6.5 Konverzije tipova . . . . . . . . . . . . . . . . . . . . . . . . . . 126
6.6 Nizovi i niske . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
6.7 Korisniki defnisani tipovi . . . . . . . . . . . . . . . . . . . . . 140
7 Naredbe i kontrola toka 151
7.1 Naredba izraza . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
7.2 Sloene naredbe (blokovi) . . . . . . . . . . . . . . . . . . . . . 152
7.3 Naredbe grananja . . . . . . . . . . . . . . . . . . . . . . . . . . 152
7.4 Petlje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
8 Funkcije 168
8.1 Primeri defnisanja i pozivanja funkcije . . . . . . . . . . . . . . 168
8.2 Deklaracija i defnicija funkcije . . . . . . . . . . . . . . . . . . 170
8.3 Parametri funkcije . . . . . . . . . . . . . . . . . . . . . . . . . 171
8.4 Prenos argumenata . . . . . . . . . . . . . . . . . . . . . . . . . 172
8.5 Konverzije tipova argumenata funkcije . . . . . . . . . . . . . . 174
8.6 Povratna vrednost funkcije . . . . . . . . . . . . . . . . . . . . 175
8.7 Nizovi i funkcije . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
8.8 Korisniki defnisani tipovi i funkcije . . . . . . . . . . . . . . . 178
8.9 Rekurzija . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
8.10 Funkcije sa promenljivim brojem argumenata . . . . . . . . . . 179
9 Organizacija izvornog i izvrnog programa 186
9.1 Od izvornog do izvrnog programa . . . . . . . . . . . . . . . . 187
9.2 Organizacija izvornog programa . . . . . . . . . . . . . . . . . . 193
9.3 Organizacija izvrnog programa . . . . . . . . . . . . . . . . . . 219
10 Pokazivai i dinamika alokacija memorije 234
10.1
10.2
10.3
10.4
Elektronsko izdanje
(2015)
10.5 Pokazivai i niske . . . . . . . . . . . . . . . . . . . . . . . . . . 247
10.6 Nizovi pokazivaa i viedimenzioni nizovi . . . . . . . . . . . . . 251
10.7 Pokazivai i strukture . . . . . . . . . . . . . . . . . . . . . . . 254
10.8 Pokazivai na funkcije . . . . . . . . . . . . . . . . . . . . . . . 255
10.9 Dinamika alokacija memorije . . . . . . . . . . . . . . . . . . . 258
11 Pregled standardne biblioteke 269
11.1 Zaglavlje string.h . . . . . . . . . . . . . . . . . . . . . . . . . 269
11.2 Zaglavlje stdlib.h . . . . . . . . . . . . . . . . . . . . . . . . . 272
11.3 Zaglavlje ctype.h . . . . . . . . . . . . . . . . . . . . . . . . . 274
11.4 Zaglavlje math.h . . . . . . . . . . . . . . . . . . . . . . . . . . 275
11.5 Zaglavlje assert.h . . . . . . . . . . . . . . . . . . . . . . . . . 276
12 Ulaz i izlaz programa 277
12.1 Standardni tokovi . . . . . . . . . . . . . . . . . . . . . . . . . . 277
12.2 Ulaz iz niske i izlaz u nisku . . . . . . . . . . . . . . . . . . . . 285
12.3 Ulaz iz datoteka i izlaz u datoteke . . . . . . . . . . . . . . . . 286
12.4 Argumenti komandne linije programa . . . . . . . . . . . . . . 294
A Tabela prioriteta operatora 300
B Reenja zadataka 301
Indeks 373
7
Elektronsko izdanje
(2015)
Predgovor
Ova knjiga pisana je kao udbenik za predmet Programiranje 1 na smeru
Informatika Matematikog fakulteta u Beogradu. U ovom predmetu i u ovoj
knjizi, centralno mesto ima programski jezik C, ali predmet i knjiga nisu samo
Elektronsko izdanje
(2015)
izvora o jeziku C, pomenimo ovde znamenitu knjigu Programski jezik C (The
C Programming Language, K&R) Brajana Kernigana i Denisa Riija koja je
dugo sluila kao nezvanini standard jezik, knjigu Knjiga o C-u (The C Book)
Majka Banahana, Deklana Brejdija i Marka Dorana, kao i ISO standarde jezika
C. Za pripremu glave Algoritmi i izraunljivost koristili smo knjigu Teorija algoritama, jezika i
automata - zbirka zadataka, Irene Spasi i Predraga Janiia.
Na veoma paljivom itanju i brojnim korisnim savetima zahvaljujemo recenzentima Gordani
Pavlovi-Laeti, Miodragu ivkoviu i Draganu Uroeviu. Na brojnim sugestijama i
ispravkama zahvalni smo i nastavnicima Matematikog fakulteta Mileni Vujoevi-Janii,
Nenadu Mitiu i Mladenu Nikoliu,
kao i studentima Nikoli Premevskom, Mladenu Canoviu, Nemanji Mioviu,
Elektronsko izdanje
(2015)
Deo I
Elektronsko izdanje
(2015)
Glava
i jedinica tj. binarnih cifara, tj. bitova (engl. bit, od binary digit). Koristei