You are on page 1of 35

Programski jezik C

Vii programski jezici (C, Pascal, FORTRAN, C++,


Java, . . . ) razvijeni su kako bi se prevladali nedostaci
asemblerskog jezika.
Oni oslobaaju programera potrebe poznavanja
arhitekture raunara, omoguavaju prenosivost
programa izmeu raunara razliitih arhitektura te
bre i jednostavnije programiranje.
Uvod
Programski jezik C je vii programski jezik opte
namene.
Razvio ga je Dennis Ritchie sedamdestih godina
prolog veka u Bell Telephone Laboratories, Inc.
Opis jezika prvi put je predstavljen u knjizi Brian
W. Kernighan, Dennis M. Ritchie: The C
Programming Language, Prentice-Hall, 1978.
Tokom sedamdesetih i osamdesetih godina jezik
se brzo irio te je American National Standard
Institute (ANSI) pristupio njegovoj standardizaciji
koja je dovrena 1989. godine.
Uvod
Sledei program je najmanji mogui program u C jeziku:
main()
{
}
Ne radi nita.
Sledei program ipak neto radi:
#include <stdio.h>
main()
{
printf("TFMP\n");
}
Ispis programa
TFMP
Uvod
Za pisanje C-programa koriste se mala i
velika slova, ali sve naredbe u C-u moraju
biti napisane malim slovima.
Poetak C programa oznaava se sa:
main() deklaracija funkcije main
Zagrade koje se nalaze nakon kljune
rijei main oznaavaju da program ne
prima nikakve argumente
Uvod
Dve zagrade, { i }, oznaavaju poetak i
kraj delova programa. Svrha izraza
#include <stdio.h> (standardna
biblioteka za ulaz i izlaz podataka)
je da omogui upotrebu printf funkcije za
ispis. Tekst koji e ispisati printf() mora
biti u navodnicima. Program ima samo
jednu naredbu
printf(TFMP\n");
Uvod
printf() je zapravo funkcija u C-u koja se
koristi za formatirani ispis varijabli i teksta.
Tekst unutar navodnika " ", ispisuje se
onako kako je zadano.
Ipak postoje neki izuzetci - oznaavaju se
znakovima: \ i % . Ovi znakovi su
modifikatori. U naem primeru \ koji
prethodi znaku n predstavlja oznaku
prelaza u novi red.
Uvod
Tako program ispisuje TFMP i kursor se
postavlja na poetak nove linije. Kao to
emo kasnije videti, znak koji sledi iza
znaka \ odreuje ta se ispisuje, tj. 8
praznih mesta (tab), prazan ekran, prazna
linija itd.
Sve naredbe u C-u zavravaju se taka-
zarezom ;
Pisanje, kompajliranje i
izvravanje programa
Pisanje koda
Kod niz naredbi koje ine program
Kod se pie u EDITOR-u koji generie tzv.
ACSII file
Napisanom kodu se mora dati neko ime
sa ekstenzijom .C .
Pisanje, kompajliranje i
izvravanje programa
Kompajliranje koda
Prevoenje napisanih naredbi u tzv. objektni kod.
Kompajliranje se vri pomou posebnog
programa kompajlera (prevodioca) koji generie
objektni kod (datoteka s nastavkom .OBJ)
Povezivanje koda u izvrni program
Povezivanje znai konano formiranje izvrnog
programa.
Povezivanje se vri pomou posebnog programa
linkera (poveziva) koji generie izvrni kod
(datoteka s nastavkom .EXE).
Pisanje, kompajliranje i
izvravanje programa
Ispravljanje greaka
Napisani program u svom izvornom kodu
moe imati greaka koje prijavljuje kompajler
ili linker.
Ako kompajler ili linker jave neku greku,
treba se vratiti korak ili dva nazad, ispraviti
greke i ponoviti postupak.
Ako kompajler i linker ne jave greke,
program se moe izvriti (to ne znai da je i
dobar).
Pisanje, kompajliranje i
izvravanje programa
Izvravanje programa
Konani program koji se dobije nakon to
linker izvri svoj deo posla (ako ne javi neku
greku) izvrava se ukucavanjem njegovog
naziva.
Traenje logikih greaka
Ako program radi ali ne ispravno, treba potraiti
logike greke u programu. To se obino radi s
tzv. debuger programom koji izmeu
ostalog omoguava izvravanje jedne po
jedne naredbe i uvid u vrednost svih
varijabli.
Komentari
Dodavanje komentara programu je poeljno. Komentari
se u C programu mogu dodati unutar znakova /* */:
/* ovo je komentar. */
Primetite da /* otvara polje komentara, a da ga */
zatvara. Komentari mogu obuhvatati vie linija. Meutim,
ne mogu se gnezditi jedan unutar drugog.
/* ovo je komentar. /* ovaj komentar je
unutra */ pogreno */
U gornjem primeru, prva pojava znaka */ zatvara
komentar za itavu liniju, to znai da se re pogreno
interpretira kao C izraz ili varijabla, i u ovom primeru,
generie greku.
Komentari
Zato se komentari koriste:
dokumentovanje varijabli i njihovo
korienje
objanjavanje sloenih delova programa
opis programa, autor, datum, promene,
revizije itd.
Osnovna struktura C
programa
C programi u osnovi imaju sledeu
strukturu:
/* ZAGLAVLJE */
/* Sadri ime programa, ime autora,
broj revizije...*/
/* INCLUDE deo */
/* sadri #include izraze */
/* KONSTANTE I TIPOVI */
/* sadri tipove i #define izraze */
Osnovna struktura C programa
/* GLOBALNE VARIJABLE */
/* ako postoje globalne varijable
deklariu se ovde */
/* FUNKCIJE */
/* funkcije koje definie korisnik */
Osnovna struktura C programa
/* main() */
int main()
{
}
Pridravanje ove dobro definisane strukture
uinit e vae programe lakim za itanje i
modifikovanje .
Varijable, tipovi podataka,
konstante
VARIJABLE
Programski jezik C ima ETIRI osnovna
tipa podataka.Varijable koje defie
korisnik moraju biti deklarisane
pre nego to e se koristiti u programu.
C razlikuje mala i velika slova, tako da iako
dve varijable imaju isto ime, u C-u se
smatraju razliitim varijablama.
sum , Sum
Deklaracija varijabli vri se nakon
otvorene zagrade main(),
Primer: Prikaz ispisa vrednosti celobrojne
promenjive koristei printf("%d")
#include <stdio.h>
main()
{
/* definisanje promenljive i sa dodeljivanjem
vrednosti 2 */
int i = 2;
/* ispis vrednosti */
printf("Vrednost promenjive i je %d\n",i);
}
Varijable, tipovi podataka,
konstante
Osnovni format deklarisanja varijabli je
tip podatka var1, var2, ... ;
gdje je tip podataka jedan od etiri
osnovna tipa podataka: integer (ceo
broj), character (jedan bajt, moe uvati
jedan znak iz lokalnog skupa znakova),
float (broj sa pokretnim zarezom
jednostruke tanosti) ili double (broj sa
pokretnim zarezom dvostruke tanosti).
Varijable, tipovi podataka,
konstante
Imena varijabli moraju zapoinjati slovom
ili znakom _, a nakon toga bilo kakvom
kombinacijom slova, znaka _,
ili cifara 0 - 9.
Primeri dozvoljenih imena varijabli:
zbroj izlazna_zastavica i
Jerry7 Broj_poteza
_vaea_zastavica
Varijable, tipovi podataka,
konstante
Koristite imena sa znaenjem za vae
varijable. Razlozi za to su:
imena sa znaenjem na prvi pogled
pokazuju ta varijabla radi
laka su za razumevanje
nema povezanosti s korienjem prostora
u izvrnom kodu ( .EXE file )
ine program lakim za itanje
Varijable, tipovi podataka,
konstante
Pogledajmo sada poblie printf() funkciju.
Ima dva argumenta, odvojena zarezom.
Pogledajmo prvi argument,
"Vrednost promenjive i je %d\n"
Znak % je posebni znak u C-u. Koristi se
za ispis vrednosti varijable. Kad se
program izvrava, C ispisuje tekst
dok ne naie na znak % .
Varijable, tipovi podataka,
konstante
Kada naie, trai sledei argument (u ovom
sluaju i), ispisuje njegovu vrednost, te nastavlja.
Znak d koji prati % oznaava da se oekuje
integer tip varijable.
Tako, kada se naie na znak %d printf() funkcija
trai sledei argument (u ovom sluaju varijablu
i, koja iznosi 2), i ispisuje ga. Znak \n se nakon
toga izvrava to znai da se kursor prebacuje u
novi red.
Sledei program ispisuje dve celobrojne
vrednosti razdvojene tabulatorom:
To se postie korienjem specijalnog znaka
\t
#include <stdio.h>
main()
{
int sum, value;
sum = 10;
value = 15;
printf("%d\t%d\n", sum, value);
}
Varijable, tipovi podataka,
konstante
Ispis programa
10 15
Znakovi koji se nalaze iza \ znaka u printf() naredbi, imaju
sledee znaenje:
Modifikator Znaenje
\b pomak za jedno mjesto u nazad
(backspace)
\f nova stranica (form feed)
\n novi red (new line)
\r povratak na poetak linije (carriage return)
\t horizontalni tabulator (horizontal tab)
\v vertikalni tabulator (vertical tab)
\\ obrnuta kosa crta (backslash)
\" navodnici (double quote)
\' literal (single quote)
\<enter> sledea linija (line continuation)
\nnn nnn = oktalna vrednost znaka
\0xnn nn = heksadecimalna vrednost (samo neki
kompajleri)
Specifikatori formata za ispis
varijabli:
%d decimalni cjelobrojni (integer)
%c znak (character)
%s string ili niz znakova (character array)
%f realni brojevi s pokretnim zarezom
(float)
%e realni brojevi s pokretnim zarezom
dvostruke tanosti (double)
Tipovi podataka i konstante
Tip podatka oznaava nain kodiranja i
operacije koje je dozvoljeno primeniti na
programske varijable, ija je
vrednost smetena u memoriji raunara.
Poloaj varijable u memoriji naziva se
adresa ili memorijska referenca
varijable.
Cjelobrojni decimalni
(INTEGER)
U ovaj tip podataka spadaju pozitivni i
negativni celi brojevi. Takoe imamo i
unsigned int (samo pozitivni celi
brojevi).
Postoje i short int i long int celi brojevi.
Kljuna re za definisanje celog broja je:
int
Cjelobrojni decimalni
(INTEGER)
Primer deklaracije i dodeljivanja vrednosti
integer varijable sum je,
int sum;
sum = 20;
Realni brojevi s pokretnim
zarezom (FLOATING POINT)
Obuhvaeni su i pozitivni i negativni realni
brojevi. Kljuna re za definisanje realnog
broja je,
float ime_varijable;
Primer deklaracije i dodele vrednosti float
varijable money:
float money;
money = 0.12;
Realni brojevi s eksponentom
(DOUBLE)
To su brojevi zapisani u obliku realnog
dela x 10 na eksponent, pozitivni i
negativni. Kljuna re koja se koristi
za definisanje double varijabli je,
double
Primer:
double big;
big = 31.2E+7;
/* znai big=312000000 */
Znak (CHARACTER)
Kljuna re za deklarisanje znaka je
char
Primer:
char letter;
letter = 'A';
Primetite da se pridruivanje znaka A
varijabli letter vri stavljanjem znaka u
jednostruke navodnike.Varijabli
se moe pridruiti samo jedan znak!
Primer programa koji pokazuje
upotrebu svih tipova podataka
#include < stdio.h >
main()
{
int sum;
float money;
char letter;
double pi;
sum = 10; /* pridruivanje integer vrednosti */
money = 2.21; /* pridruivanje float vrednosti */
letter = 'A'; /* pridruivanje character vrednosti */
pi = 2.01E6; /* pridruivanje double vrednosti */
Primer programa koji pokazuje
upotrebu svih tipova podataka
printf("vrednost sum = %d\n", sum );
printf("vrednost money = %f\n", money );
printf("vrednost letter = %c\n", letter );
printf("vrednost pi = %e\n", pi );
}
Ispis programa
vrednost sum = 10
vrednost money = 2.210000
vrednost letter = A
vrednost pi = 2.010000e+06

You might also like