Sie sind auf Seite 1von 8

UVOD O C JEZIKU C jezik je progr a m s ki jezik, op{t e na mj e n e sa mod e r n o m kontrolo m, toka progr a m a , podr ` a v a siste m s k o progr a mir a nj e sa mog

u } n o { } u definisa nj a razli ~itih struktur a pod a t a k a sa bog a ti m skupo m oper a t o r a i tipova pod a t a k a . C jezik je razvio Dennis Rit her u !ell"ovim labor a t o rijim a #$% &. kao jezik visokog nivoa pogo d a n je za siste m s k o progr a mir a nj e k a o i projektov a nj e oper a tivnih siste m a . 'retho d ni i C jezika su( !C') i !. *ori{te ni su za projektov a nj e jezi ~ kih pro e s o r a i oper a tivnih siste m a . !C') i ! su bili progr a m s k e verzije bez tipova pod a t a k a . +lavno pobolj{ a nj e C jezika je bilo uvo, e nj e tipov a pod a t a k a . +odine #$% %. razvijen a je verzija C prevo dio a nez a visn a od ra ~ u n a r a , pozn a t a ako preno sivi C prevo dila , sa iljem pojedn o s t a vlje nj a preno s a C prevo dio a na nove ra ~ u n a r e . -vakav razvoj rezultira o je u pojavi C prevo dio a za veliki broj ra ~ u n a r a .od mikro do sup e r ra ~ u n a r a /. C jezik nije u su{ tini vrlo visokog nivoa niti je spe ijalizov a n za odre , e n u oblast primje n e . 0jegov a univerz alno s t i slobod n e form e progr a mir a nj a ~in e ga pogo d nijim i efikas nijim za {irok spekt a r aplika ija od drugih jezika op{ t e na mj e n e . -n je potp u n o istisnuo ase m bl e r s ki jezik u 1023 progr a mi m a . 1023 je kao i svi njegovi aplika ioni progr a mi napis a ni u C"u, ma d a na 1023 siste m u postoje prevo dio i sa( 4-R5R60, '67C6), 6)+-) 89, 70-!-), 6':) i ve}in a drugih. ;e}ina progr a m e r a sa ovim oper a ioni m siste m o m najra dije koristi C. 'o{to je C jezik <relativno niskog nivoa= dovoljno je efikas a n da mo` e zamj e niti ase m bl e r s ki jezik u odgov a r aj u }i m aplika ija m a , dovoljno je sadr ` a j a n i izra` aj a n da je pogo d niji re imo od ')>i i drugih jezika visokog nivoa. 1 C jeziku se vrlo lako i det aljno mo ` e projektov a ti oper a tivni siste m sa njegovi m pomo } ni m progr a mi m a , nau ~ n i h aplika ija i siste m a za upravljanj e u realno m vre m e n u s drug e stra n e on je najpo g o d niji jezik

za poslovn e aplika ije zbog odsu s t v a ulazno>izlaznih oper a j a na nivou zapis a, datot e k a sa labela m a i de im aln e arit m e tik e . C podr ` a v a razli ~it e tipov e pod a t a k a k a o {to su znakovi, jelobrojn e i realn e vrijedno s ti u vi{e veli ~in a i tako, e r izved e n e tipov e kreira n e pokaziva ~ i m a , poljima, struktira m a . 5ako,e r pro` a velik broj oper a t o r a uklju ~ uj u }i oper a t o r e na nivou bita. 2zrazi se mog u pisati u skra } e n o m obliku, mogu oduzim a ti produ `iv a nj a i pozive funk ija. C omog u } a v a direkt a n pristu p me m o riji i ma nip ulira nj e bitovim a . PRENOS VRIJEDNOSTI IZME\U FUNKCIJA C pozn aj e dvije me to d e za preno s pod a t a k a .lokalnih varijabli/ izme , u funk ija( preno s po vrijedno s ti preno s po adre si 2zbor meto d e ovisi o `eljeno m pren e s e n e varijable. - Pre n o s po vrije d n o s i i!i "opiji *ada se argu m e n t pre no si po vrijedno s ti, kopija vrijedno s ti varijable se pridru ` uj e par a m e t r u prije mn e funk ije. 6ko se vi{e od jedn e varijable pren o si po vrijedno s ti, kopija svak e vrijedno s ti varijable se pridru ` uj e par a m e t ri m a prije mn e funk ije. 7lijede }i m primjero m funk ije za izra ~ u n a v a n j e faktorijela ilustriran je preno s po vrijedno s ti. 'ozivo m funk ije fact s argu m e n t o m n ne pre no si se u prije m n u funk iju aktu aln a varijabla n, ve} njezina vrijedno s t. 1 primjeru ne postoji sa m o jedn a varijabla s imeno m n ve} dvije. 2ako imaju ista imen a , radi se o razli ~iti m varijabla m a ( prva je lokalna u funk iji main, a drug a u

na ~ i n u

pro mj e n e

funk iji fact, pa izme , u njih ne postoji konflikt. ;arijabla n u funk iji fact ne mor a imati isto ime kao i u funk iji main jer ime prijem n e varijable u pozva n oj funk iji nije va`n o. 5oj varijabli se preno si sa mo kopija vrijedno s ti aktu aln e varijable koja je nav e d e n a kao argu m e n t pri pozivu funk ije. 6ko funk ija fact pro mj e ni vrijedno s t varijable n, pro mj e ni } e se sa m o kopija vrijedno s ti od n, a ne i vrijedno s t varijable n funk ije main. 2ako je faktorijel broja ijeli broj, za njegovo pred s t a vlj anj e koristi se realni broj dvostr uk e pre izno s ti . double/ jer su ve} faktorijeli ma njih ijelih brojev a vrlo veliki brojevi.

/* Datoteka: fact.c /* Program sadrzi funkciju za izracunavanje */ /* faktorijela. */ #include <stdio.h> double fact int n! { int i" double f#$" for i#$" i<#n" i%%! f*#i" return f! } main { ! int i& n" double fct"

*/

'rintf (n# (!" scanf )d*& +n!" fct#fact n!" 'rintf ()d, # )$f? n*& n& fct!" return -" } 'ri preno s u po vrijedno s ti pozivna funk ija pro mj e niti varijablu pozivaju } e funk ije. ne mo ` e

- Pre n o s po #dr e s i i!i po re$ e r e n % i *ad se pren o si argu m e n t .lokaln a varijabla/ po adr e si, adr e s a varijable se pridru ` uj e para m e t r u pozva n e funk ije. 7ve varijable u me m o riji spre m a j u se na odre , ene me m o rijsk e adre s e . *ada se definira varijabla u C"u, za nju se rezervira praz a n prostor u me m o riji i dodijeli joj se me m o rijsk a adre s a . *ad progr a m koristi varijablu, C zna njezinu adr e s u i koristi sadr ` aj spre mlj e n na toj adr e si. 2me varijabl e i @emorij 6dres a a

#&A

&#& B8%

2me [ C ] 2me [ # ] 2me [ & ]

5 i h

&#D &&8 &#D &&% &#D &&9

2me [ C ] E 7 [C ] 2me [ # ] E 7 [# ] 2me [ & ] E 7 [& ]

5 2 F

&#D &&8 &#D &&% &#D &&9

7l. # 'reno s po adre si 'rije nego se varijabla ini ijalizira ne mo ` e se zanti {ta je u njoj .mogu } a je bilo koja vrijedno s t da se zad e sila na toj adr e si/, osim ako se ne deklarira kao stati ~ k a .ini ijalizira se sa C/. 'ri preno s u varijable po adr e si, umje s t o njen e vrijedno s ti, preno si se njen a adre s a .slika #. 1mjesto da se pren o si #&A preno si se &#& B8% za varijablu i/. 7vaki put kad se preno si varijabla po adr e si ako je pozva n a funk ija mijenja varijablu, ona se tako, e mijenja i u pozivaju } oj funk iji. Gbog toga je, za razliku od pre no s a po vrijedno s ti, omog u } e n a pro mj e n a varijable u pozva n oj funk iji i zadr ` a v a nj e te pro mj e n e u pozivaju } oj funk iji u C"u sva se polja uvijek preno s e po adr e si. -bi ~ n e varijable se za razliku od polja ne } e auto m a t s ki prenijeti po adr e si. 7ad a }e m o rije{iti kvadr a t n u jedn a ~ i n u ma t e m a t i ~ k i da bi mogli rije{iti proble m pomo } u progr a m s k o g jezika C i napis a ti progr a m za izra ~ u n a v a n j e istih jedn a ~ i n a . aH & I bH I E C

4ormula za rje{ a v a nj e ove kvadr a t n e jedn a ~ i n e je(

3#>& E "b D &a gdje je, D E b & " Aa 9H & " &H " B E C a E 9, b E "&, E "BJ

& 3#>& "b b " Aa &a E & 3#>& & ."&/ " AH9H." B/ &H9 E

3#>& & A I $8 #8 E 3#>& & #CC #8 E 3#>& & #C #8 E B 3# E & I #C #& A E E #8 #8 9 # 3& E & " #C & E E #8 #8

'o{to smo rije{ili ma t e m a t i ~ k i i objas nili izradu kvadr a t nih jedn a ~ i n a sad a }e m o napis a ti progr a m za rje{ a v a nj e istih( *ao {to zna m o da kvadr a t n a jedn a ~ i n a ima dva rje{ e nj a , kao argu m e n ti funk ije preno s e se adre s e lokalnih varijabli u kojima }e se smje s titi rje{ e nj a jedn a ~ i n e . 4unk ija vra} a jelobrojnu vrijedno s t diskrimin a n t e kvadr a t n e jedn a ~ i n e . d # b*b./*a*c" *0$ # '$ # .b/ 1*a!" *01 # '1 # s2rt d<-3 .d:d!/ 1*a!" if { *4$ # '$ % '1" *41 # '$ . '1" } 6ko je diskrimin a n t a ve} a od C, rje{ e nju jedn a ~ i n e su realn a i dobivaju se sabira nj e m i oduzim a nj e m dijelova rje{ e nj a. if d##-! *41#*4$" d>-!

6ko je diskrimin a n t a jedn a k a C, rje{ e nj a su jedn a k a . *4$#'$#.b/ 1*a!" *41#'1#s2rt d<-3 .d : d!/ 1*a!"

6ko je diskrimin a n t a ma nj a od C, rje{ e nj a su konjugov a n o komplek s ni brojevi. 1 varijabli 4$ vra } a se realni dio, a u 41 imagin a r ni dio komple k s n o g broja.

Das könnte Ihnen auch gefallen