C Programlama Dilinde operatörler ve ifadeler
Bu konumuzda c programlama temelini ve algoritma kavramını anlamamız için gerekli operatörleri ve ifadeleri göreceğiz. Çok basit gibi gözüken fakat öğrenirken hep unutulan ve sorun çıkaran kısım olduğunu söyleyebilirim.
Şimdi adım adım neleri göreceğimizden bahsedelim. (Operatörlerin devamı detaylı olarak diğer konularda bahsedilecektir)
- Aritmetik operatörler
- Atama operatörleri
- İlişkisel operatörler
- Mantıksal operatörler
- Bitsel operatörler
Aritmetik operatörler
Aritmetik operatörler adınında çağrıştırdığı gibi Toplama, Çıkarma, Çarpma, Bölme gibi basit matematiksel işlemleri yapabilmek için kullanılan operatörlerdir.
Aritmetik İşlemler | Örnek |
+ (Toplama) | X+Y |
– (Çıkarma) | X-Y |
* (Çarpma) | X*Y |
/ (Bölme) | X/Y |
% (mod) | X%Y |
Gördüğünüz gibi bakkal bölmesinde kullandığımız işlemlerin bire bir aynısı. Şimdi gelin bunu C Programlama dilinde örnek bir kodunu yazalım.
Örnek:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
#include<stdio.h>
int main() {
int a = 100, b = 20, ekle, cikar, carp, bol, mod;
ekle = a + b;
cikar = a - b;
carp = a*b;
bol = a / b;
mod = a % b;
printf("A ve B toplami : %d\n", ekle);
printf("A ve B farki : %d\n", cikar);
printf("A ve B carpimi : %d\n", carp);
printf("A ve B bolumu : %d\n", bol);
printf("A ve B modu : %d\n", mod);
return 0;
}
|
Çıktı:
A ve B toplamı : 120 |
A ve B farkı : 80 |
A ve B çarpımı : 2000 |
A ve B bölümü : 5 |
A ve B modu : 0 |
Atama Operatörleri
C Programlama dilinde tanımladığımız değişkenlere bir değer atamak için ”atama” operatörlerine ihtiyacımız olmaktadır. Bunun için kullanılan temel atama operatörlerimiz vardır.
Atama operatörlerinde ki en önemli nüans atama işlemi sağdan sola doğru yapılmaktadır. Yani ; ( 5=a yanlış , a=5 doğrudur)
Atama operatörlerini ”Temel atama operatörleri ve Bileşik atama operatörleri” adı altında 2 alt başlıkta inceleyebiliriz.
Operatörler | Örnek / Açıklama |
= | Toplam = 5; Toplam değeri = 5 |
+= | Ekleyerek arttırma (Toplam+=5 ; anlamı Toplam=Toplam+5;) |
-= | Eksilterek arttırma (Toplam-=5; anlamı Toplam=Toplam-5;) |
*= | Çarparak atama (Toplam*=5; anlamı Toplam=Toplam*5;) |
/= | Bölerek atama (Toplam/=5; anlamı Toplam=Toplam/5;) |
%= | Mod atama (Toplam%=5; anlamı Toplam=Toplam%5;) |
^= | Üs atama (Toplam^=5; anlamı Toplam=Toplam^5;) |
Örnek:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
#include <stdio.h>
int main() {
int toplam = 0, i;
for (i = 0; i < 10; i++) {
toplam += i;
}
printf("toplam = %d", toplam);
return 0;
}
|
Çıktı:
1 |
toplam = 45
|
Yukarıdaki kodda görebileceğimiz gibi toplama operatörünü kullanarak işlemi yaptım. Size tavsiyem yukarıdaki veriilen bütün atama yöntemlerine kendinizde yorum katarak denemelisiniz.
İlişkisel operatörler:
Sıradaki operatörümüz iki tane tanımlanan değişkenin arasındaki ilişkiyi ifade etmek için kullanılmaktadır.
Operatörler | Örnek / Açıklama |
> | x>y x y’den büyüktür |
< | x<y x y’den küçüktür |
>= | x>=y x y’den büyük ve ya eşit |
<= | x<=y x y’den küçük ya da eşit |
== | x==y x y ye eşittir |
!= | x!=y x eşit değildir y |
Örnek:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
#include <stdio.h>
int main()
{
int m=40,n=20;
if (m == n)
{
printf("m n'ye eşittir.'?");
}
else
{
printf("m n'ye eşit değildir.'");
}
}
|
Çıktı:
1 |
m n'ye eşit değildir.
|
Yukarıda anlattığım ilişkisel operatörlerin tüm çeşitlerini denemenizi şiddetle tavsiye ediyorum.
Mantıksal Operatörler
Diğer operatörlerimizden biri olan mantıksal operatörleri 3 adımda inceleyebiliriz.
Operatörler | Örnek / Açıklama |
&& (and) ve kapısı | Her iki değerde 1 döndürüyorsa sonuç 1’dir. Eğer döndürmüyorsa sonuç 0’dır. |
|| (or) ve ya kapısı | İki değerden herhangi biri ya da ikisi 1 ise sonuçta birdir. Yoksa sonuç 0’dır. |
! (not) kapısı | İki değer birbirinden farklıysa sonuç 1 döndürür. |
Şimdi daha anlaşılır ve kayda değer örnekler yazalım.
x>3 && y<10 | x 3 ten büyük ve y 10 dan küçük ise sonuç 1 (true) |
x>3 || y<10 | x 3 ten büyük ve ya y 10 dan küçük ise sonuç 1 (true) |
x>2 !(x>2) | x 2 den büyük değilse 1 (true) |
Kod:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
#include <stdio.h>
int main()
{
int m=40,n=20;
int o=20,p=30;
if (m>n && m !=0)
{
printf("&& Operatoru : 2 onermede dogru oldugu icin 1(true) dondurur \n");
}
if (o>p || p!=20)
{
printf("|| Operatoru : Sadece tek onerme dogru oldugu icin 1(true) dondurur \n");
}
if (!(m>n && m !=0))
{
printf("! Operatoru : 2 operatorde dogru oldugu icin 1(true) döner\n");
}
else
{
printf("! Operatoru : 2 onermede dogru oldugu icin 1(true) dondurur " \
"Fakat yanlis durumu dogru duruma cevirir\n");
}
}
|
Çıktı:
1
2
3
|
&& Operatoru : 2 onermede dogru oldugu icin 1(true) dondurur
|| Operatoru : Sadece tek onerme dogru oldugu icin 1(true) dondurur
! Operatoru : 2 onermede dogru oldugu icin 1(true) dondurur Fakat yanlis durumu dogru duruma cevirir
|
Bit operatörleri
Bit operatörleri bir yazılımcı için çok önemli bir konudur. Bitle ilgili ayrıntılı ve detaylı incelemesini başka bir başlık altında ckaynak’ta bulabilirsiniz.Bu başlık altında sizlere sadece bit opertörlerini basit düzeyde tanıtacağım.
Şimdi bazı bit operatörlerinin kullanımını inceleyelim
1
2
3
4
5
6
7
|
a & b (ve)
a | b (veya)
a ^ b XOR (dışarmalı veya)
~a (değil)
n << p (sola kayma)
n >> p (sağa kayma)
n >>> p (sağa p hane kayma)
|
Bu konumuzda bit ile ilgili açıklamanın yeterli olduğunu düşünüyoruz. Bit ile ilgili çok daha geniş kapsamlı anlatımı ilerideki konularda bulabilirsiniz.