Srpski, Školski C 

tutrial

Autor: Nemanja Todić

Sadržaj

----------------------------------------------------------------------------------------------------------

Uvod

1. Brojevni sistemi

1.1 Decimalni brojevni sistem
1.2 Oktalni brojevni sistem
1.3 Binarni brojevni sistem
1.4 Hekasadekadni brojevni sistem
1.5 Konverzija iz decimalno u binarni zapis

2. Jezicki tipovi podataka

2.1 Promenljive i konstante
2.2 Pravila za dodeljivanja imena promeljivima
2.3 Decimalni tip – INT
2.4 Realni tip – FLOAT I DOUBLE
2.5 Kljucne reci SHORT i LONG
2.6 Znak – CHAR

3. Operatori

3.1 Izrazi i naredbe
3.2 Operatori u jeziku C
3.3 Gubitak preciznosti
3.4 Operatori inkrementiranja(++) i dekrementiranja(--)
3.5 Napomena

4. Naredbe. Struktura programa

4.1 Hello World, Osnovne stvari vezane za jezik C
4.2 Komentari
4.3 Naredba #include. Header fajlovi. Standardna biblioteka.
4.4 Osnovne stvari vezane za funkcije. Blok naredbi.

4.4.1 Petlja while
4.4.2 Operatori poredjenja
4.4.3 Petlja do while
4.4.4 For petlja

4.5 Naredbe grananja

4.5.1 Naredba grananja – if
4.5.2 Naredba grananja „switch“
4.5.3 Uslovni izraz

5. Funkcije

5.1 Funkcije
5.2 Funkcija Obim()
5.3 Opsezi vaznosti
5.4 Preopterecivanje funkcija

6. Osnove prikupljanja podataka

6.1 Napomena o razlici izmedju texta i znaka
6.2. Funkcija printf()
6.3 Funkcija scanf()
6.4 Zakljucak

7.0 Pokazivaci i Nizovi

7.1 Kako rade pokazivaci i adrese.

7.1.2 Pokazivaci i funkcije

7.2. Nizovi
7.3 Promenljive tipa char
7.4 Niz promenljivih tipa char

background image

UVOD

Programski jezik C je konzolni sto ce reci da preko njega ne mozete( bez koriscenja nekih 
„dodataka“) napraviti „prozolike“ aplikacije, no ovo ne treba da vas razocara u dogledno 
vreme se mozete i time pozabaviti.
C je i strukturni jezik dakle koristi strukture kao primaran vid izvedenih tipova podataka. Ovaj 
sistem je zastareo i jezici nove generacije su objektno orijentisani(OOP) no i takvim jezicima 
strukture nisu nepoznate. Ne ocekujem da ako ste pocetnik ovo sada shvatite, shvaticete 
polako kako budete napredovali....
Treba da znate da je svaki pocetak suvoparan i da je za ucenje bilo kog programskog jezika 
potrebno dosta vremena truda i pomalo pameti. Ne daj te se obeshrabrii!
Pa da pocnemo.

1.0 Brojevni sistemi

Postoji   nekoliko   brojevnih   sistema   a   „najpoznatiji“su:   decimalni,   oktalni,   binarni   i 
hekasadekadni. Ono sto vi treba da znate je kako se iz jednog brojevnog sistema konvertuje 
broj u drugi brojevni sistem.

1.1 Decimalni brojevni sistem

Decimalni BS je skup koji ima 10 cifara i to su sledece : 0,1,2,3,4,5,6,7,8,9.

 

Pravljenjem 

razlicitih kombinacija mozete dobiti brojeve kao sto su -789, 0 , 1, 49, 32757 idr. Evo primera 
kako se na drugaciji nacn moze predstaviti broj npr 385:
3 * 10

+ 8 * 10

+ 5 * 10

= 3 * 100 + 8 * 10 + 5*1 = 300 + 80 + 5 = 385 .

Provezbajte sa jos par brojeva.

1.2 Oktalni brojevni sistem

Oktalni BS je skup koji ima 8 cifara i to su : 0,1,2,3,4,5,6,7. Bitno je znati kako da brojeve 
ovog sistema prevedete u decimalne brojeve. Evo primera: oktalno 142 je decimalno 98 :
|142|

8 = 

 1 * 8

+ 4 * 8

+ 2 * 8

= 1*64 + 4*8 + 2*1 = 64 + 32 + 2 = |98|

10

.

Poprilicno jednostavan sistem.

1.3 Binarni brojevni sistem

Binarni BS je skup koji ima 2 cifre i to su : 0, 1 , te ce binarni broj 101100 u decimalnom 
zapisu biti:
|101100|

= 1*2

5

 + 0*2

4

 + 1*2

+ 1*2

2

 + 0*2

1

 + 0*2

0

 = |44|

10

Vrlo slicno prethodnim primerima.

1.4 Hekasadekadni brojevni sistem

Ima cak 16 simbola : 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F. Bice vam potrebno da znate koje 
vrednosti imaju navedena slova u decimalnom zapisu:
A = 10
B = 11
C = 12
D = 13
E = 14
F = 15

Primer:
|A2F|

16

 = 10 * 16

2

 + 2 * 16

+ 15 * 16

0  

= 2560 + 32 + 15 = |2607|

10

Ovo je malo komplikovanije ali bitno je uvideti da se slova zamenjuju odgovarajucim 
vrednostima.

1.5 Konverzija iz decimalno u binarni zapis

Bicete u prilici da vrsite ovakvu konverziju. Obajsnicu na sledecem primeru: Broj 44 prevesti 
u binarni zapis. Resenje:

|44|

10

 =

 44/2

22/2

11/2

5/2

2/2

1/2

    0          0          1          1           0          1

Zadati broj 44 delimo sa dva, ostatak zapisujemo ispod a rezultat deljena pisemo levo i taj 
rezultat delimo sa dva i tako dalje dok god se ne dobije nula kao kolicnik(ne kao ostatak). 
Sada obratite paznju na dobijeni od ostataka i procitaj te ga odpozadi:
101100. Dosli smo do resenja! Pokusajete kao proveru da uradite konvertovanje ovog 
binarnog broja u decimalni.

2.0 Jezicki tipovi podataka

Postoji nekoliko „ugradjenih“ tipova podataka u jeziku C medjutim ostavljena je mogucnost 
da se na vise nacina naprave novi tipovi podataka, njih konstruise programer. Izvedeni tipovi 
su krajnje korisni ali isto tako i malo kompleksniji za osmisljavanje pa ce mo se za sada 
zadrzati na nekim osnovnim tipovima podataka.

2.1 Promenljive i konstante

Recimo da zelite da napisete program koji ce da sabere dva broja koje ce korisnik uneti. 
Proces rada programa bi isao ovako: korisnik unosi prvi broj, program taj broj sacuva, zatim 
korisnik unosi drugi broj i program taj broj takodje sacuva. Postavlja se pitanje gde taj broj 
sacuvati? Odgovor je u Random Access Memory( RAM) odakle cemo broj po potrebi 
iscitavati. Ovo se realizuje tako sto cemo „napraviti“ promenljivu( takodje se nazivaju i 
variable) koja ce zauzeti odgovarajuce parce memorije, a velicina tog parceta zavisi od tipa 
promenljive. Oko tipova podataka i njihovim karakteristikama( a jedna od njih je i kolicina 
zauzete memorije) cemo se pozabaviti kasnije.
Bitno je da uvidite da se u promenljivu mogu upisivati i iscitavati podaci sve dok ta 
promenljiva postoji u memoriji. Vratimo se zadatku, dakle ucitali smo dva broja koja valja 
sabrati. Sledece, treba nam mesto u memoriji racunara u kojem ce mo snimiti rezultat 
sabiranja, dakle treba nam jos jedna promenljiva. Njoj cemo dodeliti vrednost zbira prve dve 
promenljive koje smo ucitali. To je to. Trebalo bi da vam je jasno sta su promenljive i cemu 
sluze. Sada cemo objasniti i kako se koriste.
Dve su bitne stvari kod kreiranja( pravilnije receno „instancovanja“) promenljivih: njihova 
deklaracija i inicijalizacija. Recimo da zelimo da napravimo promenljivu u koju cemo smestiti 
prvi broj iz gore navedenog zadatka, to cemo uraditi ovako:

int a;

Ovim smo deklarisali promenljivu koja ima tip „int“ (sto ce reci da moze cuvati samo cele 
brojeve, ovim cemo se kasnije pozabaviti) i naglasili da se ona zove „a“. Pogledajmo sledeci 
primer:

int a = 157;

dodali smo „ = 157 “. To je inicijalizacija iliti dodavanje vrednosti promenljivoj u isto vreme 
kada je i deklarisemo( napravimo). Ukoliko neinicializujemo promenljivu ona dobija neku 
bezveznu vrednost, no u svim drugim pogledima ponasanje inicijalizovane i neinicijalizovane 

background image

Operatore poredjenja ovde necemo objasnjavati, to cemo uraditi kasnije, priliko 
objasnjavanja  „grananja koda“.

3.1 Izrazi i naredbe

Ranije smo naveli primer u kojem smo sabirali dva broja : a + b. Rezultat smo smestali u 
promenljivu rez, ako od ovih podataka formiramo izraz u jeziku C dobija ovo:

rez = a + b;

Izvedimo konstataciju da je izraz kombinacija operanada i operatora. U navedenom primeru 
imamo 3 operanda(rez, a, b) i dva operatora( =, +). Takodje postoje i dva izraza, prvi je 
sabiranje promenljive a i b, drugi je dodeljivanje te vrednosti promenljivoj rez. Sve ovo 
zajedno cini jednu naredbu. Naredba je dakle skup izraza( ciji broj moze biti ne ograniceno 
veliki ali takodje moze biti i 0- prazna naredba) koji se obavezno okoncava znakom „tacka-
zarez“( ; ). 

3.2 Operatori u jeziku C

Vazan faktor je svakako prvenstvo operatora, sto znaci da ako napisete naredbu : 

rez = a -  b * 2

prvo ce se izvrsiti izraz b * 2 pa ce se od a oduzeti rezultat mnozenja i na kraju se ta razlika 
dodeljuje promenljivoj rez. Uvidjamo da operator mnozenja ima najvece prvenstvo, zatim 
operator oduzimanja i da najmanje prvenstvo ima operator dodele vrednosti. Sledi tabela 
prvenstva operatora.
--------------------------------------------------------------------
OPERATOR

|

OPIS

|

--------------------------------------------------------------------
()

| Poziv funkcije

|

[]

| Index niza

|

->

| Pokazivac na strukturu

|

.

| Clan strukture

|

--------------------------------------------------------------------
-

| Unarni minus

|

+

| Unarni plus

|

++

| Inkrementiranje

|

--

| Dekrementiranje

|

!

| Logicka negacija

|

~

| Komplemant nad bitovima |

*

| Posredan pristup

|

&

| Adresa-od

|

sizeof

| Velicina objekta

|

(type cast) 

| Eksplicitna konverzija

|

--------------------------------------------------------------------
*

| Mnozenje

|

/

| Deljenja

|

%

| Ostatak( moduo)

|

--------------------------------------------------------------------
+

| Sabiranje

|

-

| Oduzimanje

|

--------------------------------------------------------------------
<<

| Pomeranje bitova ulevo

|

>>

| Pomeranje bitova udesno |

--------------------------------------------------------------------
<

| Manje od

|

<=

| Manje ili jednako

|

>

| Vece od

|

Želiš da pročitaš svih 49 strana?

Prijavi se i preuzmi ceo dokument.

Ovaj materijal je namenjen za učenje i pripremu, ne za predaju.

Slični dokumenti