İşlem | int a,b |
Toplama | a+b |
Çıkarma | a-b |
Çarpma | a*b |
Kesirli Bölme | a/b ( b != 0 olmalidir.) PASCAL'da a div b |
Tamsayı Bölme | a % b ( a nin b ye bölümünden kalan; PASCAL'da a mod b ) |
Operator | C | PASCAL |
---|---|---|
Esitlik | == | = |
Esisizlik | != | <> |
Buyuktur | > | > |
Kucuk ya da esit | <= | <= |
Kucuktur | < | < |
Buyuk ya da esit | >= | >= |
Aritmetik,mantiksal,baglantili,bitwise ve adama operatorleri yaninda C dilinin kullandigi ozel operatorler de vardir. Bunlar asagida siralanmistir:
Artirma | ++ |
Eksiltme | -- |
Kosullu | ?: |
Yapi pointeri | -> |
Yapi uyeligi | . |
bir'in tumleyeni | ~ |
operand'in buyuklugu | sizeof()(byte cinsinden) |
Fonksiyon | C | Pascal |
Salt deger | abs(x) | abs(x) |
Kare | pow(x,2.0) | sqr(x) |
Karekok | sqrt(x) | sqrt(x) |
En buyuk tamsayi alt sinir | floor(x) | trunc(x) |
En kucuk tamsayi ust sinir | ceil(x) | trunc(x) |
Pascal'daki trunc(x) fonksiyonunu C de yaratmak icin asagidaki fonksiyon kurulabilir :
#includeint trunc(k) double k; { if ( k >= 0 ) return (int) floor(k); else return (int) ceil(k); }
Fonksiyon | C | Pascal |
Salt deger | abs(x) | abs(x) |
Kare | pow(x,2.0) | sqr(x) |
sinus | sin(x) | sin(x) |
cosinus | cos(x) | cos(x) |
tangent | tan(x) | tan(x) |
arccos | acos(x) | |
arcsin | asin(x) | |
arctan | atan(x) | arctan(x) |
" | atan2(x) | |
Doğal log | log(x) | ln(x) |
Üstel | exp(x) | exp(x) |
Karekok | sqrt(x) | sqrt(x) |
polinom | poly |
Bağıntı | C | Pascal |
ve | && | and |
ya da | || | or |
if( a >0 && a <50 ) printf(" Bu ve içeren bir mantıksal deyimdir.\n"); if( x >= 14 && (x <= 45 || y == 0)) printf(" Bu ve ile ya da iceren bir mantiksal deyimdir\n");
Bircok programlama dilinde dongu yaparke bir x degiskeninin degerlerinin artirilmasi icin
x = x+1; (1)
adamasi yapilir. C dilinde bu adama yapilabildigi gibi, buna denk olarak
x++; (2)
deyimi kullanilir. Buna otomatik artirma diyoruz.
Bazi durumlarda kosullu bir deyimin yurutulmesinden once artirma islemini yapmak istiyebiliriz. Bu durumda, yukaridaki otomatik artirmayi
++x; (3)
biciminde yazariz. Bunlara gore
while( x++ <30) { ... } (4)
deyiminde { ... } icindeki deyimler yurudukten sonra x degiskeninin degeri 1 artar. Oysa
while( ++x < 30 ) { ... } (5)
kosullu deyiminde ise { ... } blokundaki deyimler yurumeden once x degiskeninin degeri 1 artar.
Bunlarin nasil calistigini ve aralarindaki farki gormek icin asagidaki program parcalarini incelemek yeterlidir.
Bircok programlama dilinde dongu yaparke bir x degiskeninin degerlerinin eksiltilmesi icin
x = x-1; (1)
adamasi yapilir. C dilinde bu adama yapilabildigi gibi, buna denk olarak
x--; (2)
deyimi kullanilir. Buna otomatik eksiltme diyoruz.
Bazi durumlarda kosullu bir deyimin yurutulmesinden once eksiltme islemini yapmak istiyebiliriz. Bu durumda, yukaridaki otomatik artirmayi
--x; (3)
biciminde yazariz. Bunlara gore
while( x-- <30) { ... } (4)
deyiminde { ... } icindeki deyimler yurudukten sonra x degiskeninin degeri 1 eksilir. Oysa
while( --x < 30 ) { ... } (5)
kosullu deyiminde ise { ... } blokundaki deyimler yurumeden once x degiskeninin degeri 1 eksilir.
Bunlarin nasil calistigini ve aralarindaki farki gormek icin asagidaki program parcalarini incelemek yeterlidir.
if ... else denetimi yerine gecmek uzere C dilinde sozdizimi asagida verilen kosullu operator kullanilir:
deyim1 ? deyim2 : deyim3 ; (1)
Eger deyim1 dogru ise deyim2 yurutulur; degilse deyim3 yurutulur. Buna gore bu kosullu deyimi if..else ile soyle yazabilirdik :
if(deyim1) deyim2; else deyim3;
C dilinde gercekte iki tur veri vardir:
Bu ikisinden turetilen dort ana veri turu vardir:
char | Bir karakter temsil eder; tamsayilarin bir alt kumesidir |
int | Bir tamsayi temsil eder |
float | Bir gercel sayi temsil eder |
double |
Bu ana veri turlerinden yeni veri turleri üretmek icin asagidaki niteleme sifatlari kullanilabilir:
Bir degiskenin gecerlilik alanini ve varrolus suresini belirlemek icin depo sinifi belirtilebilir: auto Bir fonksiyonun isi bitince o fonksiyon icinde tanimlanan degiskenin isi biter ve ona ayrilan yer kapanir. Depo sinifi belirtilmeyen degisken auto sinifindan varsayilir. static Bu sinifa ait bir degisken, ilgili fonksiyon aktif olmadigi zamanda da varligini surdurur. register CPU registerinde saklanarak hiz kazanilmak istendiginde kullanilir. Ancak registerde yer varsa orada saklanabilir. Programci orada saklanacagini garanti edemez. extern Baska bir modulde tanimli degiskeni belirtmek icin kukllanilir.