On-line učionica

14. februar 2012.

Aritmetičke operacije

Filed under: C posle Pascal-a,Programiranje — jelena100janovic @ 2:19 pm

Kao i standardne aritmetičke operatore (+, -, *, /) koje možemo naći u većini jezika, C obezbeđuje još neke operatore. Postoje neke značajne razlike u odnosu na Pascal.

Operator dodele je =. Na primer:

daje:

Operatori inkrementacije ++, dekrementacije –, koji su efikasniji od njihovih produženih ekvivalenata, na primer:

x++

je brže od

x=x+1.

Operatori ++ i — mogu biti postfiksni ili prefiksni. Kod prefiksnih vrednost se računa pre drugih u izrazu, dok kod postfiksnih vrednost se računa posle svih drugih u izrazu.

U primeru ispod, ++z je prefiksni, a y– je postfiksni:

Ovo bi bilo ekvivalentno sa:

Oba koda daju isti izlaz:

Operator % (moduo, u Pascal-u mod) funkcioniše samo sa celim brojevima.

Deljenje / funkcioniše i sa celim i sa decimalnim brojevima. Zato budite pažljivi.

Vrednost

x=3/2

je 1 iako je x npr. deklarisana kao float!

Ako su oba argumenta za / celobrojna, onda se vrši celobrojno deljenje.

Zato se osigurajte da radite sledeće. Tačan (za deljenje) način pisanja gornjeg primera je

x=3.0/2

ili

x=3/2.0

ili (bolje)

x=3.0/2.0.

Postoji takođe zgodan skraćen način pisanja izračunavanja u C-u.

Često se dešava da imate izraze kao:

i=i+3

ili

x=x*(y+2).

Ovo se može napisati u C-u (u opštem slučaju) u skraćenom obliku ovako:

izraz1 operator= izraz2

što je ekvivalentno (ali efikasnije od):

izraz1 = izraz1 operator izraz2.

Dakle možemo napisati

i=i+3

kao

i+=3

i

x=x*(y+2)

kao

x*=y+2.

Primetite da

x*=y+2

znači

x=x*(y+2),

a ne

x=x*y+2.

Operatori poređenja

Da biste proverili jednakost koristite ==.

Pazite da ne napišete = umesto ==, kao da na primer slučajno napišete if (i=j) …

Ovo je savršeno ispravna naredba u C-u (sintaksno govoreći) koja dodeljuje vrednost promenljive j promenljivoj i, i vraća tu vrednost, što se onda tumači kao tačno, ako j nije nula. Ovo se zove dodela po vrednosti – jedna od ključnih komponenti C-a.

Različito se piše: !=

Ostali operatori < (manje od), > (veće od), <= (manje ili jednako), >= (veće ili jednako) su uobičajeni.

Logički operatori

Logički operatori se obično koriste u uslovnim naredbama koje ćemo upoznati kasnije.

Dva osnovna logička operatora su: && za logičko I i || za logičko ILI.

Pazite, & i | imaju drugo značenje kod operacija sa bitovima.

Redosled izvođenja operacija

Potrebno je da budete pažljivi kod značenja izraza kao što je

a+b*c.

Možemo želeti efekat

(a+b)*c

ili

a+(b*c).

Svi operatori imaju prioritet, a oni sa visokim prioritetom se računaju pre onih sa niskim prioritetom. Operatori istog prioriteta se računaju s leva na desno, tako da se

a-b-c

računa kao

(a-b)-c,

kao što biste i očekivali.

Polazeći od najvišeg prioriteta, redosled svih operatora u C-u (nismo ih sve još upoznali) je:

  1. ( ) [ ] -> .
  2. ! ~ – * & sizeof cast ++ —    (sdesna na levo)
  3. * / %
  4. + –
  5. < <= >= >
  6. == !=
  7. &
  8. ^ |
  9. &&
  10. ||
  11.  ?:    (sdesna na levo)
  12. = += -= (sdesna na levo)
  13. ,

Tako,

a<10&&2*b<c

se interpretira kao

(a<10)&&((2*b)<c)

i

a=b=srafovi/srafova_po_tocku+rezervni;

kao

a=(b=(srafovi/srafova_po_tocku)+rezervni);

Za vežbu možete uraditi zadatke odavde.

Ostavite komentar »

Nema komentara.

RSS feed for comments on this post. TrackBack URI

Ostavite odgovor

Popunite detalje ispod ili pritisnite na ikonicu da biste se prijavili:

WordPress.com logo

Komentarišet koristeći svoj WordPress.com nalog. Odjavite se / Promeni )

Slika na Tviteru

Komentarišet koristeći svoj Twitter nalog. Odjavite se / Promeni )

Fejsbukova fotografija

Komentarišet koristeći svoj Facebook nalog. Odjavite se / Promeni )

Google+ photo

Komentarišet koristeći svoj Google+ nalog. Odjavite se / Promeni )

Povezivanje sa %s

Blog na WordPress.com.

%d bloggers like this: