You are on page 1of 20

VELEUILITE U RIJECI ODJEL TELEMATIKA

KLJUNE RIJEI C-a


SEMINARSKI RAD

Kolegij: Nastavnik: Student: Matini broj:

Programiranje I Mr.sc. Kalua Marin Davor vast 2427004040/10

Rijeka, Sijeanj,2011.

KLJUNE RIJEI C-a

Davor vast Programiranje I I. Godina studija Telematike dsvast@veleri.hr

Apstract seminarskog rada U ovom seminarskom radu obradit emo to su to kljune rijei u C-u. Navesti i objasniti ukratko 32 kljune rijei programskog jezika C. Uz svaku kljunu rije napisat emo sintaksu koritenja i dati kratki primjer koritenja.

SADRAJ:
SADRAJ:.......................................................................................................................................4 1. UVOD..........................................................................................................................................5 2. KLJUNE RIJEI C...................................................................................................................6 2.1. Identifikatori memorijske klase auto, static, register, extern............................................6 2.1.1. Identifikator memorijske klase auto ..............................................................................6 2.1.2. Identifikator memorijske klase static............................................................................6 2.1.3. Identifikator memorijske klase register.........................................................................6 2.1.3. Identifikator memorijske klase extern...........................................................................7 2.2. Tipovi podataka char, int, long, short, float, double, signed, unsigned...............................8 2.2.1. Tip podataka int.................................................................................................................8 2.2.2. Tip podataka short.............................................................................................................8 2.2.3. Tip podataka long..............................................................................................................8 2.2.4. Tip podataka float..............................................................................................................8 2.2.5. Tip podataka double..........................................................................................................8 2.2.6. Tip podataka char..............................................................................................................9 2.2.6. Tip podataka signed...........................................................................................................9 2.2.7. Tip podataka unsigned.......................................................................................................9 2.3. Naredbe uvjetnog grananja if, if-else, case, switch, break, default................................10 2.3.1. Naredbe uvjetnog grananja - if........................................................................................10 2.3.2. Naredbe uvjetnog grananja if-else...............................................................................10 2.3.3. Naredbe uvjetnog grananja switch, case i default........................................................12 2.4. Naredbe petlji while, do-while, for.................................................................................14 2.4.1. Naredbe petlje while.....................................................................................................14 2.4.2. Naredbe petlje for..........................................................................................................14 2.4.3. Naredbe petlje do - while.............................................................................................14 2.5. Naredba break.....................................................................................................................15 2.6. Naredba continue................................................................................................................15 2.6. Modifikator const...............................................................................................................15 2.7. Enumeracije enum..............................................................................................................15 2.7. Naredba goto.......................................................................................................................16 2.7. Naredba return....................................................................................................................16 2.8. Operator sizeof....................................................................................................................17 2.9. Kljuna rije struct.............................................................................................................17 2.10. Kljuna rije union...........................................................................................................17 2.11. Kljuna rije typedef........................................................................................................17 2.12. Kljuna rije void.................................................................................................................18 2.13. Kljuna rije volatile............................................................................................................18 3. ZAKLJUAK............................................................................................................................19 4. LITERATURA..........................................................................................................................20

1. UVOD
Tema ovog seminarskog rada Kljune rijei u C-u obrauje 32 identifikatora koja imaju tono odreeno znaenje, i zajedno sa sisntaksom programskog jezika C, odreuju to se i kad moe uiniti. Kljune rijei C-a definirane su standardom ANSI C, koje ine jezgru programskog jezika i dovolje su za rjeavanje svih problema. Bitno je napomenuti da se kljune rijei piu malim slovima. Kljune rijei C-a su slijedee: auto, break, case, char, const, continue, default, do, double, else, enum, extern, float, for, goto, if, int, long, register, return, short, signed, sizeof, static, struct, switch, typedef, union, unsigned, void, volatile i while.

2. KLJUNE RIJEI C
U ovom dijelu seminarskog rada navest emo 32 kljune rijei, objasnit njihovu namjenu, napisati sintaksu koritenja i jedan mali dio kako se koriste u programu.

2.1. Identifikatori memorijske klase auto, static, register, extern Identifikatori memorijske klase slue preciziranju vremena trajanja varijabli. Postavljaju se kod deklaracije varijebli prije identifikatora tipa varijable. Osnovna sintaksa koritenja deklaracije varijable je slijedea: identifikator_mem_klase tip_varijable ime_varijable; 2.1.1. Identifikator memorijske klase auto Identifikator memorijske klase auto deklarira automatsku varijablu. Veoma se rijetko moe nai u programima. Razlog rijetke upotrebe identifikatora auto je identifikator static. Identifikator static definira statike varijable izvan bloka. Odnosno, sve varijable definirane unutar nekog bloka, a bez kljune rijei static su automatske varijable. Primjer: auto int *pi auto char ime; 2.1.2. Identifikator memorijske klase static Identifikator memorijske klase static definira statiku varijablu. Statike varijable inicijaliziraju se i alociraju na poetku izvravanja programa, a budu unitene tek kad rpogram zavri. Vrijeme trajanja statike varijable je cijelo vrijeme izvravanja programa. Mjesto za statike varijable alocira se u dijelu memorije razliitom od dijela memroije u kojem se alociraju automatske varijable. Ako statika varijabla nije inicijalizirana eksplicitno, tada e ju prevodioc inicijalizirati sa vrijednosti nula. Statike se inicijaliziraju samo konstantom. Primjer: static long f1=1, f2=1; static char polje[10]; 2.1.3. Identifikator memorijske klase register Identifikator memorijske klase register kazuje prevodiocu da e varijabla esto biti koritena, te da bi trebala biti alocirana, tako da se smanju vrijeme pristupa. Najee to znai da e varijabla biti smjetena u registar CPU-a. Previodioc nije duan potivati identifikator register, tako da je to samo sugestija prevodiocu. Na varijablu tipa register moe se primijeniti adresni operator. Takoer trba napomenuti da identifikator register se moe primijeniti samo na automatske varijable i formalne argumente funkcije.

Primjer: register int zbroj; f(register int m, register long n) { register int i; . } 2.1.3. Identifikator memorijske klase extern Identifikator memorijske klase extern oznaava deklaraciju imena funkcija. S obzirom da su sva imena funkcija automatski poznata prevoditelju, extern moemo ne koristiti. Primjer: extern void f(int); jednako kao void f(int);

2.2. Tipovi podataka char, int, long, short, float, double, signed, unsigned Pod tipove podataka nam slue za definiranje kojeg tipa e biti odreena varijabla.. 2.2.1. Tip podataka int Tip podatka int definira varijablu kao cijeli broj. To znai da varijabla tog tipa nemoe sadravati decimalne brojeve. Vrijednosti varijable tipa int kreu se od -32768 do +32767. Tipino zauzima 2 okteta ili 2 byte-a memorijskog prostpra. Primjer: int broj=5; 2.2.2. Tip podataka short Tip podatka short definira varijablu kao cijeli broj. To znai da varijabla tog tipa nemoe sadravati decimalne brojeve. Vrijednosti varijable tipa short kreu se od 2147483647 do -2147483648. Tipino zauzima 3 okteta ili 3 byte-a memorijskog prostpra. Primjer: long broj=5; 2.2.3. Tip podataka long Tip podatka long definira varijablu kao cijeli broj. To znai da varijabla tog tipa nemoe sadravati decimalne brojeve. Vrijednosti varijable tipa long kreu se od 9223372036854775807 do -9223372036854775808. Tipino zauzima 8 okteta ili 8 byte-a memorijskog prostpra. Primjer: long broj=5; 2.2.4. Tip podataka float Tip podatka float definira varijablu kao realni broj. To znai da varijabla tog tipa moe sadravati decimalne brojeve. Inae se podatci tog tipa nazivaju jo i brojevi sa pokretnim zarezom. Vrijednosti varijable tipa float kreu se od 1.175494351E-38 do 3.402823466E+38. Tipino zauzima 4 okteta ili 4 byte-a memorijskog prostpra. Primjer: float broj=5.5; 2.2.5. Tip podataka double Tip podatka double definira varijablu kao realni broj. To znai da varijabla tog tipa moe sadravati decimalne brojeve. Inae se podatci tog tipa nazivaju jo i brojevi sa pokretnim zarezom. Vrijednosti varijable tipa float kreu se od 1.7976931348623157E+308 do 32.2250738585072014E-308. Tipino zauzima 8 okteta ili 8 byte-a memorijskog prostpra. Primjer: double broj=5.5; 8

2.2.6. Tip podataka char Tip podatka char namijenjen je pamenju individualnih znakova. Poto se znakoviu raunalu kodiraju i sve radnje sa znakovima obavljaju se putem njihovih numerikih kodova, u biti tip char je int tip podatka vrlo malog raspona.. Tipino zauzima 1 okteta ili 1 byte-a memorijskog prostpra, to je dovoljno za sve osam bitne kodove. Primjer: char ime=Dobar dan; 2.2.6. Tip podataka signed Tip podatka signed primjenjuje se uvijek sa nekim od tipova podataka obraenih prije (char, int, long, short, float, double). Kada se ispred nekog od navedenih tipova podataka nae kljuna rije signed tada taj tip podataka moe odnosno varijabla moe pohraniti i pozitivne i negativne vrijednosti. Primjer: signet int broj=-5; 2.2.7. Tip podataka unsigned Tip podatka unsigned primjenjuje se uvijek sa nekim od tipova podataka obraenih prije (char, int, long, short, float, double). Kada se ispred nekog od navedenih tipova podataka nae kljuna rije unsigned tada taj tip podataka moe odnosno varijabla moe pohraniti samo pozitivne vrijednosti. Tada je minimalna vrijednost varijable jednaka nuli, dok su maksimalne vrijednosti slijedee: int=65535, short=4294967295, long=1844674407370955161. Primjer: unsignet int broj=5; unsignet long broj=5;

2.3. Naredbe uvjetnog grananja if, if-else, case, switch, break, default Naredbe uvjetnog grananja omoguavaju nam izvravanje pojedinih grupa naredbi u ovisnosti o tome da li je ispunjen neki uvijet ili nije. 2.3.1. Naredbe uvjetnog grananja - if Naredba if ima oblik pisanja: if (uvjet) naredba; Gdje je uvjet ili aritmetiki ili pokazivaki. Naredba najprije izrauna uvjet i ako je vrijednost uvjeta razliita od nule (uzima istinitu vrijednost, odnosno uvjet ispunjen) naredba se izraunava. Ako izraz uvjeta daje nulu (nije istinita vrijednost, odnosno uvjet nije ispunjen), onda se naredba ne izvrava i program se nastavlja naredbana iza if naredbe ili bloka. Primjer: int broj; if(broj>0) printf(\n broj je vei on nule); printf(\n Dobar dan); ili int broj; if(broj>0) { printf(\n broj je vei on nule); printf(\n broj je %d,broj); } printf(\n Dobar dan); 2.3.2. Naredbe uvjetnog grananja if-else Naredba if-else ima oblik pisanja: if (uvjet) naredba1; else naredba2; Gdje je uvjet ili aritmetiki ili pokazivaki. Naredba najprije izrauna uvjet i ako je vrijednost uvjeta razliita od nule (uzima istinitu vrijednost, odnosno uvjet ispunjen) izvrava se programski kod pod nazivom naredba1. Ako izraz uvjeta daje nulu (nije istinita vrijednost, odnosno uvjet nije ispunjen), izvrava se programski kod pod nazivom naredba2. Oba programska koda pod nazivima naredba1 i naredba2 mogu se izvravati u blokovima. onda se naredba ne izvrava i program se nastavlja naredbana iza if naredbe ili bloka. Primjer: int broj; if(broj>0) printf(\n broj je vei on nule); 10

else printf(\n broj je manji od nule); ili int broj; if(broj>0) { printf(\n printf(\n } else { printf(\n printf(\n }

broj je vei on nule); broj je %d,broj);

broj je manji od nule); broj je %d,broj);

Naredba if-else moe se koristiti i kod viestrukog uvjeta. Tako pomou dvije if-else naredbe dobivamo sloenu vie uvjetnu naredbu: if(uvjet1) naredba1; else if(uvjet2) nareba2; else naredba3; naredba4; U ovoj vie izbornikoj naredbi prvo se ispituje uvjet1, ako je istinit izvrava se naredba1, a zatim se prelazi na naredbu 4. Ako uvjet1 nije istinit pregledava se uvjet2, te ovisnosti o istinitosti uvjeta2 izvrava se naredba3 ili naredba4. Primjer: { float a,b; char operacija; printf("Upisati prvi broj: "); scanf(" %f",&a); printf("Upisati drugi broj: "); scanf(" %f",&b); printf("Upisati operaciju: zbrajanje(z), oduzimanje(o),\n"); printf(" mnozenje(m),dijeljenje(d) :"); scanf(" %c",&operacija); if(operacija=='z') printf("%f\n",a+b); else if(operacija=='o') 11

printf("%f\n",a-b); else if(operacia=='m') printf("%f\n",a*b); else if(operacija=='d') printf("%f\n",a/b); else printf("Nedopustena operacija!\n"); } 2.3.3. Naredbe uvjetnog grananja switch, case i default Naredba switch slina je nizu ugnjedenih if-else naredbi. Ona nam omoguava da izaberemo naredbu (programski kod) koji e se izvriti na osnovu nekog uvjeta. U sklopu naredbe switch koristi se i naredba case. Naredba switch case ima slijedeu sintaksu: switch(izraz) { case konstanta_1: naredba_1; ....... break; case konstanta_2: naredba_2; ....... break; . . . case konstanta_n: naredba_n; ..... break; default: naredba; ..... } U naredbi switch izraz mora imati cjelobrojnu vrijednost. Nakon kljune rijei case moraju biti cjeloborojne konstante ili konstantni izrazi. Prilikom izvravanja naredbe switch prvo se pregledava vrijednost izraza izraz. Zatim se provjerava da li se dobivena vrijednost podudara sa jednom od konstanti: konstanta1, konstantaw2, konstanta n. Ukolikoje izraz=konstanta_n i program se nastavlja naredbom naredba_n i svim naredbama koje dolaze nakon nje. Sve dok se ne doe do slijedee naredbe (kljune rijei) break. Nakon toga program se nastavlja prvom naredbom iza naredbe switch. 12

Ako izraz nije jednak niti jednoj konstanti, onda se izvrava samo naredba koja dolazi nakon kljune rijei default i sve naredbe poslije nje. U naredbi switch nije nuno potrbno da bide prisutna i naredba default. Ako nije i ako nema podudaranja izraza i konstanti, program se nastavlja prvom naredbom iza switch naredbe. Primjer: { float a,b; char operacija; printf("Upisati prvi broj: "); scanf(" %f",&a); printf("Upisati drugi broj: "); scanf(" %f",&b); printf("Upisati operaciju: zbrajanje(z), oduzimanje(o),\n"); printf(" mnozenje(m),dijeljenje(d) :"); scanf(" %c",&operacija); switch(operacija) { case 'z': printf("%f\n",a+b); break; case 'o': printf("%f\n",a-b); break; case 'm': printf("%f\n",a*b); break; case 'd': printf("%f\n",a/b); break; default: printf("Nedopustena operacija!\n"); } }

13

2.4. Naredbe petlji while, do-while, for Naredbe petlji omoguavaju nam ponavljano izvoenje naredbe ili grupe naredbi. 2.4.1. Naredbe petlje while while petlja ima oblik while (izraz1) naredba1; naredba1 e se izvravati sve dok izraz ima vrijednost istine, tj. sve dok je razliit od nule. Naredba moe biti blok naredbi unutar vitiastih zagrada koji obino modificira izraz1 kako bi kontrolirao petlju. Primjer: i=0; while (i<10) { printf("%d\n",i); i++; } 2.4.2. Naredbe petlje for for petlja ima oblik for(izraz_1; izraz_2; izraz_3) naredba; i odgovara u potpunosti izraz_1; while (izraz_2){ naredba; izraz_3; } Izraz1 inicijalizira parametre koji kontroliraju petlju. Izraz2 predstavlja uvjete koji moraju biti zadovoljeni da bi se petlja nastavila izvravati, a izraz3 mijenja parametre koje je izraz1 inicijalizirao. Primjer: for (int i=1; i<=100; zbroj+=++i); 2.4.3. Naredbe petlje do - while do while petlja ima oblik do naredba1 while (izraz1) naredba1 e se izvravati sve dok izraz ima vrijednost istine, tj. sve dok je razliit od nule. Naredba moe biti blok naredbi unutar vitiastih zagrada koji obino modificira izraz1 kako bi kontrolirao petlju. Za razliku od 14

while petlje vrijednost izraza se kontrolira na kraju prolaza kroz petlju. Petlja se zbog toga izvrava barem jednog. Primjer: i=0; do{ printf("%d\n",i); i++; } while (i<10); 2.5. Naredba break Naredba break slui za zaustavljanje petlje i izlazak iz switch naredbe. Moe se koristiti sa for, while i do-while petljom. Kod dolaska na naredbu break kontrola programa se prenosi na prvu neredbu iza petlje ili switch naredbe unutar koje se break nalazi. Primjer: int i; while(1){ scanf("%d",&i); if (i<0) break; ......... } 2.6. Naredba continue Naredba continue koristi se unutar for, while i do-while petlji. Nakon dolaska na continue preostali dio tijela petlje se preskae program nastavlja sa slijedeim prolazom kroz petlju. U sluaju while i do-while petlje to znai da se program nastavlja s izraunavanjem testa petlje. Kod for petlje program se nastavlja s naredbom inkrementacije brojaa, buducida ona dolazi nakon tijela petlje. Nakon toga se prelazi na izraunavanje testa petlje. Primjer: int i; while{1){ scanf("%d",&i); if (i<0) continue; 2.6. Modifikator const Modifikator const se koristi kad elimo definirati konstantu. Deklaracija const takoer se koristi i sa argumentima polja, kako bi se naglasilo da funkcija nee mijenjati dano polje. Primjer: const double pi=3.14159; const double polje[5]={0.1,0.2,0.3,0.4,0.5}; 2.7. Enumeracije enum 15

Enumeracije predtstavljaju alternativu u uvoenju simbolikih konstanti putem pretprocesorske direktive #define. Pomou enumeracije deklariramo simbolika imena koja primaju cjelobrojnu vrijednost i ija je osnovna svrha poveanje itljivosti programa. Primjer: enum boje {plavo=-1,zuto,crveno,zeleno=0,ljubicasto,bijelo}; 2.7. Naredba goto Naredba goto prua mogunost prekida sekvencijalnog izvravanja programa i skoka na neku drugu lokaciju unutar programa oznaenom labelom koja se nalazi uz naredbu. U programskom jeziku C nije preporuljivo koristiti ovu naredbu. Iako se ova naredba najee koristi u vieslojnim struktirama za prekid odvijanja procesa koji je u tijeku. Zna se takoer koristiti za trenutni izlaz iz dvije ili vie petlji, kad bi naredba break djelovala samo na jednu petlju. Primjer: scanf("%d",&i); while{i<=100){ ....... if (i<0) goto greska; ....... scanf("%d",&i); } ....... /* detekcija errora */ greska: { printf("Greka : negativna vrijednost!\n"); } 2.7. Naredba return Naredba return vraa rezultat svog izvravanja funkcije. Vrijednost izraza se vraa dijelu programa koji poziva funkciju. Izraz se moe staviti u oble zagrade, ali to nije nuno. Vrijedi slijedee pravilo: Funkcija moe vratiti aritmetiki tip, strukturu, uniju ili pokaziva, ali ne moe vratiti drugu funkciju ili polje. Primjer: int kvadrat(int broj) { inr kvadrat; kvadrat= (broj*broj); return kvadrat; }

16

2.8. Operator sizeof Operator sizeof vraa veliinu svog operanda u bajtovima. U programskom jeziku C se jedan bajt definira kao broj bitova potreban za pamenje podatka tipa char. To je na veini raunala jedan oktet (8 bitova), Operand moe biti izraz ili podatak. Primjer: int i; float x; printf("Velicina tipa int = %d\n", sizeof(i)); printf("Velicina tipa float = %f\n", sizeof(i)); 2.9. Kljuna rije struct Kljuna rije struct uponaje nas sa deklaracijom strukture. Struktura je skup jedne ili vie varijabli, koje mogu biti razliitih tipova, grupiranih zajedno, radi lake manipulacije. Strukture pomau pri organizaciji kompleksnih podataka, posebno u velikim programima, jer one omoguuju obradu grupe meusobno povezanih varijabli kao jedne cjeline. Varijable deklarirane u strukturi nazivamo lanovima. Primjer: struct tocka { int x; int y; } 2.10. Kljuna rije union Unija kao struktura sadri lanove razliitog tipa, ali dok kod strukture svaki lan ima zasebnu memorijsku lokaciju, kod unije svi lanovi dijele istu memorijsku lokaciju. Memorijska e lokacija biti dovoljno iroka da u nju stane najiri clan unije. Sintaksa unije analogna je sintaksi strukture. union ime { tip_1 ime_1; tip_2 ime_2; .... .... tip_n ime_n; }; Varijable tipa ime moe se deklarirati pri deklaraciji unije ili odvojeno, ako i kod struktura. Primjer: union pod { int i; float x; } u, *pu; 2.11. Kljuna rije typedef 17

Kljuna rije typeudef omoguuje nam da postojeim tipovima podataka damo nava imena. Na primjer ako neki podatak tipa float ima znaenje mase onda moemo pisati: typedef double Masa; Primjer: Masa m1,m2,*pm1; Masa elementi[10];int y; 2.12. Kljuna rije void Kljuna rije void je rije koja se dodijeljuje prilikom deklaracije funcije. Kada se funkcija deklarira kao void funkcija, tada nam ro kazuje da funkcija nee vratiti nikakvu vijednost kao rezultat. Primjer: void f(int x) { x+=1; printf("\nUnutar funkcije x=%d",x); return; 2.13. Kljuna rije volatile Kljuna rije volatile ispred varijeble, prevodiocu daje do znanja, da se vrijednost te varijable moe promijeniti njemu nerazumljivim nainima.

18

3. ZAKLJUAK
Kao to smo mogli vidjeti iz zamog seminara programski jezik C ima samo 32 kljune rijei. To nam kazuje koliko je programski jezik C otvorenog tipa, odnosno programeru daje slobodne ruke prilikom programiranja. Programski jezik C se esto upotrebljava u rjeavanju raznih problema iz svih grana programiranja. Stoga ga programeri veoma vole. Kako je vieno iz seminara kljune rijei su podijeljne u nekoliko grupa. Tako imamo kljune rijei za kontrolu toka, naredbe uvjetnog grananja, funkcijske naredbe i ostlo. Ukratko programski jezik C je vrlo moan programski jezik.

19

4. LITERATURA
[1] M. Jurak Programski jezik C [2] Dr. Milan Kukrika Programski jezik C [3] - http://sstk.skole.t-com.hr/tin/Damir/2_pmg/OsnoveC/Var_konst.htm [4] - http://hr.wikipedia.org/wiki/C_%programski_jezik%29

20

You might also like