C++ / Birlikte Yazılım Öğrenelim Serisi - Operatörler

YunusEmreOfficial

Online - Çevrimiçi
Premium Üye
Yardımsever Üye
Usta Üye
Mesaj
1.188
Çözümler
33
Beğeni
874
Puan
1.139
Ticaret Puanı
0
Merhaba arkadaşlar,
Sıradaki konumuz operatörler:

Operatörler tüm programlama dillerinde bulunan, büyüklük küçüklük karşılaştırmalarının, mantıksal karşılaştırmalarının ve aritmetik işlemlerin yapılmasını sağlayan karakterler topluluğudur. Bir nevi yardımcı karakterler.

Peki nedir bunlar ?​

  1. Atama Operatörü​

  2. Aritmetik Operatörler ( 4 İşlem + % (Mod Alma) )​

  3. Tip Dönüşümü​

  4. Arttırma (++) ve Azaltma (– –) Operatörleri​

  5. Aritmetik Atama Operatörleri​

  6. Karşılaştırma Operatörleri​

  7. Mantıksal Operatörler​

  8. Özel Amaçlı Ternary Operatörü ( ?: )​


1. Atama Operatörü​

Açıklama:
Aslında daha önceki konularda görmüştük. Atama operatörü adında anlaşılacağı üzere değer atama, peki nereye değer atiycaz. Önceden belirlenmiş ya da tanımlanmış değişkenlere değer atarken kullanılan operatör tipidir. Değişkenlerin önceden tanımlanması gerekmiyor daha sonrada tanımlanmış değişkenlere de değer atarken atama operatörünü kullanıyoruz.​
Atama operatörü = ( Eşittir. ) şeklinde gösterilir. Normal hayatta = karakteri 2 değeri eşitlemek için kullanılır. Ancak programlamada atama yapmak için kullanılır. 2 değeri eşitlemek içinse == kullanılır.​
Not: Atamalar herzaman sağdan sola yapılır.
Gelelim örneğine ;
int sayi = 10;​
std::string deneme = "Bu bir stringtir." ;​
bool konu = true;​
char harf='a';​
Şeklinde kullanılır.​
Girdi :
1727965448796.webp
Çıktısı:
1727965465608.webp
Gördüğünüz gibi 4 adet değişken tanımladım. sayi,deneme,konu,harf olarak ve onlara sırasıyla değerler atadım, ve onları yazdırdım.​

2. Aritmatik Operatörler ( 4 işlem + % ( Mod Alma ) )​

Aritmatik operatörler olarak söylediğimiz aslında matematik işlemlerinde kullanılan 4 işlem adımları, tek farkı burda extradan mod alma da var onunla birlikte 5 işlem yapılıyor.​
Peki nedir bunlar ?
a - Toplama Operatörü ( + )
Toplama operatörü bildiğiniz 2 değeri veya değişkeni toplamak için kullanılır. İşareti + olarak gösterilir.​
Örneğin:
a = 10​
b = 20​
a + b = 30​
Matematikte bu işlemi bilirsiniz. 2 değeri toplar sonucu buluruz. Peki bunu kodsal olarak nasıl yazabiliriz, gelin ona bakalım.​
int a = 10 ;​
int b = 20 ;​
int toplam ;​
toplam = a + b​
cout << "Toplamları : " << toplam << endl;​
Çıktısı :​
Toplamları : 30​
b - Çıkarma Operatörü ( - )
Çıkarma operatörü bildiğiniz 2 değeri veya değişkeni çıkarmak için kullanılır. İşareti - olarak gösterilir.​
Örneğin:
a = 46​
b = 10​
a - b = 36​
Matematikte bu işlemi bilirsiniz. 2 değeri çıkartır sonucu buluruz. Peki bunu kodsal olarak nasıl yazabiliriz, gelin ona bakalım.​
int a = 46;​
int b = 10 ;​
int fark;​
fark = a - b​
cout << "Farkları: " << fark << endl;​
Çıktısı :​
Farkları : 36​
c - Çarpma Operatörü ( * )
Çarpma operatörü bildiğiniz 2 değeri veya değişkeni çarpmak için kullanılır. İşareti * olarak gösterilir.​
Örneğin:
a = 10​
b = 20​
a * b = 200​
Matematikte bu işlemi bilirsiniz. 2 değeri çarpar ve sonucu buluruz. Peki bunu kodsal olarak nasıl yazabiliriz, gelin ona bakalım.​
int a = 10 ;​
int b = 20 ;​
int carp;​
carp = a * b​
cout << "Çarpımları: " << carp << endl;​
Çıktısı :​
Çarpımları: 200​
d - Bölme Operatörü ( / )
Bölme operatörü bildiğiniz 2 değeri veya değişkeni bölmek için kullanılır. İşareti / olarak gösterilir.​
Örneğin:
a = 50​
b = 10​
a / b = 5​
Matematikte bu işlemi bilirsiniz. 2 değeri böler ve sonucu buluruz. Peki bunu kodsal olarak nasıl yazabiliriz, gelin ona bakalım.​
int a = 50 ;​
int b = 10 ;​
int bolum;​
bolum = a / b​
cout << "Bölümleri: " << bolum << endl;​
Çıktısı :​
Bölümleri: 5​
e - Mod alma Operatörü ( % )
Mod alma operatörü diğer işlemlere göre biraz farklıdır. Aslında bölüm gibi ama burda bize bölümü değil kalanı verir. İşareti % şeklindedir.​
Örneğin:
a = 50​
b = 10​
a % b = 0 ( Kalan )​
a = 50​
b = 15​
a % b = 5 ( Kalan )​
Bu işlem biraz kafa karıştıcı olabilir ama yukardaki işlemi açıklayayım. a değerine 50 atadık b'ye ise 15 değeri atadık. 15, 50 içerisinde 3 defa var yani 45 oluyor. Kalan 5 oluyor. İşte modumuz 5 oluyor.​
int a = 50 ;​
int b = 15 ;​
int mod;​
mod = a % b​
cout << "Mod: " << mod<< endl;​
Çıktısı :​
Mod: 5​
Yukardaki örnekleri incelediğinizde 3.bir değere atamalar yaptık hep onuda görmeniz adına ancak atama yapamdanda sonucu yazdırabiliriz. Bunun birçok yolu var.​
İşte 1 tanesi;​
1727967409078.webp
Gördüğünüz gibi çıktıyı verirken de işlemleri yaptırabilirsiniz.​

3. Tip Dönüşümü​

Sıradaki operatörümüz tip dönüşümleri, peki nedir bu tip dediğimiz şey, daha öncesinde değişken tanımlamaları ve değişken tipleriyle ilgili bir konu açmıştım. İşte oradaki değişken tipleri, örneğin; integer, float, string gibi birbiri arasındaki değişimler gibi.​

Neden Tip Dönüşümüne İhtiyaç Var?​


Farklı veri tipleri arasında dönüşüm yapmak, veri kaybını veya hataları önlemek için önemlidir. Özellikle matematiksel işlemler ve fonksiyon çağrılarında uygun tipte veriler kullanmak gereklidir.​
Bu dönüşüm süreçlerini anlamak, programınızın doğru ve beklenildiği gibi çalışmasını sağlar. Dönüşüm işlemleri sırasında dikkatli olunmazsa, beklenmeyen sonuçlar ve hata mesajlarıyla karşılaşabilirsiniz.​
Örnek:
Kod:
Genişlet Daralt Kopyala
Implicit Conversion (Otomatik Dönüşüm):
C++ compiler'ı, bir veri tipinin başka bir tipe otomatik olarak dönüştürülmesine izin verir. Örneğin, bir int değeri float bir değişkene atandığında otomatik olarak float'a dönüşür.

int a = 5;
float b = a; // b = 5.0

Explicit Conversion (Açık Dönüşüm):
Programcı, belirli bir dönüşüm yapmak istediğinde kullanılır. Bu, genellikle tip dönüşüm operatörleriyle gerçekleştirilir:

static_cast<>(): Güvenli bir dönüşüm sağlar.

double c = 9.7;
int d = static_cast<int>(c); // d = 9

reinterpret_cast<>():
Veriyi tamamen farklı bir tipe dönüştürür, genellikle bellek adresi için kullanılır.

const_cast<>():
Bir değişkenin const niteliğini kaldırır.

dynamic_cast<>():
Özellikle polymorphism durumunda kullanılır, dinamik tip kontrolü sağlar.

C Stili Dönüşüm:
En eski yöntemlerden biridir ve veri tipinin istenen türünü parantez içinde yazarak dönüşüm sağlar.

int e = (int)3.5; // e = 3

4. Arttırma ( ++ ) ve Azaltma ( - - ) Operatörleri​

Artırma (++) ve azaltma (--) operatörleri, bir değişkenin değerini artırmak veya azaltmak için kullanılan özel operatörlerdir. Bu operatörler iki şekilde kullanılabilir: ön ek ve son ek.​

Ön Ek ve Son Ek Kullanımı​

  • Ön Ek (++x veya --x): Değişkenin değeri önce artırılır veya azaltılır, sonra bu yeni değer kullanılır.
  • Son Ek (x++ veya x--): Değişkenin mevcut değeri kullanılır, ardından değer artırılır veya azaltılır.

a.Artırma Operatörü​


Örnek 1: Ön Ek Kullanımı​


Kod:
Genişlet Daralt Kopyala
#include <iostream>
using namespace std;

int main() {

    int x = 5;

    int y = ++x; // Öncelikle x 6 olur, sonra y 6 olur.

    cout << "x: " << x << endl; // x: 6
    cout << "y: " << y << endl; // y: 6

    return 0;

}

Örnek 2: Son Ek Kullanımı​


Kod:
Genişlet Daralt Kopyala
#include <iostream>
using namespace std;

int main() {

    int x = 5;
    int y = x++; // Önce y 5 olur, sonra x 6 olur.

    cout << "x: " << x << endl; // x: 6
    cout << "y: " << y << endl; // y: 5

    return 0;

}

b.Azaltma Operatörü​


Örnek 3: Ön Ek Kullanımı​


Kod:
Genişlet Daralt Kopyala
#include <iostream>
using namespace std;

int main() {

    int x = 5;
    int y = --x; // Öncelikle x 4 olur, sonra y 4 olur.

    cout << "x: " << x << endl; // x: 4
    cout << "y: " << y << endl; // y: 4

    return 0;

}

Örnek 4: Son Ek Kullanımı​


Kod:
Genişlet Daralt Kopyala
#include <iostream>
using namespace std;

int main() {

    int x = 5;
    int y = x--; // Önce y 5 olur, sonra x 4 olur.

    cout << "x: " << x << endl; // x: 4
    cout << "y: " << y << endl; // y: 5

    return 0;

}
1 tanede uygulama örneği yapalım.​
Kod:
Genişlet Daralt Kopyala
#include <iostream>
using namespace std;

int main() {

    for (int i = 0; i < 5; ++i) {
        cout << "i: " << i << endl; // i: 0, 1, 2, 3, 4
    }

    for (int j = 5; j > 0; --j) {
        cout << "j: " << j << endl; // j: 5, 4, 3, 2, 1
    }

    return 0;

}

5. Aritmetik Atama Operatörleri​

Aritmetik atama operatörleri, bir değişkenin mevcut değerini kullanarak aritmetik işlemler yapmak ve sonuçları aynı değişkene atamak için kullanılır. Bu operatörler, kodu daha kısa ve okunabilir hale getirir.​

Temel Aritmetik Atama Operatörleri​

Aşağıda C++'ta bulunan temel aritmetik atama operatörleri ve kullanımları açıklanmıştır:​
  1. Toplama ve Atama (+=):
    • Mevcut değere bir değer ekler ve sonucu aynı değişkene atar.
    • Kod:
      Genişlet Daralt Kopyala
      int a = 5;
      a += 3; // a = a + 3; a şimdi 8
  2. Çıkarma ve Atama (-=):
    • Mevcut değerden bir değeri çıkarır ve sonucu aynı değişkene atar.
    • Kod:
      Genişlet Daralt Kopyala
      int b = 10;
      b -= 4; // b = b - 4; b şimdi 6
  3. Çarpma ve Atama (*=):
    • Mevcut değeri bir değerle çarpar ve sonucu aynı değişkene atar.
    • Kod:
      Genişlet Daralt Kopyala
      int c = 2;
      c *= 5; // c = c * 5; c şimdi 10
  4. Bölme ve Atama (/=):
    • Mevcut değeri bir değere böler ve sonucu aynı değişkene atar.
    • Kod:
      Genişlet Daralt Kopyala
      int d = 20;
      d /= 4; // d = d / 4; d şimdi 5
  5. Modül ve Atama (%=):
    • Mevcut değerin bir değere bölümünden kalanı alır ve sonucu aynı değişkene atar.
    • Kod:
      Genişlet Daralt Kopyala
      int e = 10;
      e %= 3; // e = e % 3; e şimdi 1

6. Karşılaştırma Operatörleri​

C++ dilinde 6 tane karşılaştırma operatörü vardır. Bu operatörler ile iki karakteri veya sayıyı kendi aralarında karşılaştırabiliriz. Bu operatörler genellikle if gibi koşul yapılarında kullanıldığı için şimdilik sadece ne anlama geldiklerine değineceğiz. Yapılara gelince bunları fazlasıyla kullanacağız.​
  1. Küçüktür Operatörü ( < )
  2. Büyüktür Operatörü ( > )
  3. Küçük Eşittir Operatörü ( <= )
  4. Büyük Eşittir Operatörü ( >= )
  5. Eşit mi Operatörü ( == ) Bunu atama operatörü ile karıştırmayın. Bunda 2 tane = kullanıyoruz
  6. Farklı mı(eşit değil) Operatörü ( != )
Örneğimizi bool değişkeni kullanarak verelim.​
Not: Bool değişkeni sadece true ve false alabilir. Bu yüzden çıktı olarak 1 = true, 0 ise false demektir.​
Kod:
Genişlet Daralt Kopyala
#include <iostream>
using namespace std;

int main()

{

  bool a = (6 < 3);
  bool b = (5 > 8);
  bool c = (10 <= 10);
  bool d = (12 >= 15);
  bool e = (1 == 1);
  bool f = (0 != 0);

  cout << "a degeri:  " << a << endl;
  cout << "b degeri:  " << b << endl;
  cout << "c degeri:  " << c << endl;
  cout << "d degeri:  " << d << endl;
  cout << "e degeri:  " << e << endl;
  cout << "f degeri:  " << f << endl;

  return 0;

}

Çıktı :

e degeri:  10
f degeri:  13

7. Mantıksal Operatörler​

Mantıksal operatörler, boolean (doğru/yanlış) değerler üzerinde mantıksal işlemler yapmak için kullanılır. C++’ta üç ana mantıksal operatör bulunmaktadır:​
  1. Mantıksal AND (&&) - Ve
  2. Mantıksal OR (||) - Veya
  3. Mantıksal NOT (!) - Değildir

1. Mantıksal AND(&&) - Ve

Bu operatör, iki koşulun da doğru olması durumunda true döner. Eğer herhangi bir koşul false ise sonuç false olur.​

Örnek:​

Kod:
Genişlet Daralt Kopyala
#include <iostream>
using namespace std;

int main() {

    bool a = true;
    bool b = false;

    if (a && b) {
        cout << "Her iki koşul da doğru." << endl;
    }

   else {
        cout << "Bir veya her iki koşul yanlış." << endl; // Çıktı: Bir veya her iki koşul yanlış.
    }

    return 0;

}
burda a true, b ise false olduğu için if çalışmadı else döndürüldü.​

2. Mantıksal OR(||) - Veya

Bu operatör, en az bir koşulun doğru olması durumunda true döner. Her iki koşul da yanlışsa sonuç false olur.​

Örnek:​

Kod:
Genişlet Daralt Kopyala
#include <iostream>
using namespace std;

int main() {

    bool a = true;
    bool b = false;

    if (a || b) {
        cout << "En az bir koşul doğru." << endl; // Çıktı: En az bir koşul doğru.

    } else {
        cout << "Her iki koşul da yanlış." << endl;

    }

    return 0;

}
Burda ise herhangi bir tanesi doğru olması yeterli olacağından if bloğu çalıştı.​

3. Mantıksal NOT(!) - Değildir

Bu operatör, bir boolean değerin tersini alır. Eğer değer true ise false, false ise true döner.​

Örnek:​

Kod:
Genişlet Daralt Kopyala
#include <iostream>
using namespace std;

int main() {

    bool a = true;

    if (!a) {
        cout << "a yanlıştır." << endl;

    }

   else {
        cout << "a doğrudur." << endl; // Çıktı: a doğrudur.

    }

    return 0;

}
ifadeleri tersine çevirdiğinden dolayı sonuç true olmasına rağmen else döndürüldü.​

8. Özel Amaçlı Ternary Operatörü ( ?: )​

Bu konudan sonralarında göreceğimiz ‘if’ yapısının yaptığı görevi yapmaktadır. Kullanımı ise şu şekildedir:​
Kod:
Genişlet Daralt Kopyala
koşul ? doğru_ise : yanlış_ise
Şimdi kod içerisinde kullanalım :​
Örnek:
Kod:
Genişlet Daralt Kopyala
#include <iostream>
using namespace std;

int main()
{
  int a = 10, b = 5, c = 25, d = 15, e, f;

  e = a > b ? a : c;
  f = c < d ? 9 : 13;

  cout << "e degeri:  " << e << endl;
  cout << "f degeri:  " << f << endl;

  return 0;

}

Çıktı :

e degeri:  10

f degeri:  13
Bu işlemde " e = a > b ? a : c; " e değişkenine 1 değer atamamız gerekiyor. Eğer verdiği koşul doğruysa yani true ise a'nın değeri eğer yanlışsa c'nin değeri e değişkenine atanıcak.​
Bakıyoruz a değeri 10, b değeri ise 5 dolayısıyla a > b ifadesi doğru olduğu için a değişkenin değeri olan 10 ifadesi e değişkenine atanır.​
Bu işlemde ise " f = c < d ? 9 : 13; " f değişkenine bir değer atamamız gerekiyor. Koşulumuz c < d ancak c'nin değeri 25, d ise 15 dolayısıyla bu ifade yanlış o yüzden 13 değeri f değişkenine atanır. Ve çıktımız e = 10, f = 13 olur.​
Not : Son olarak söylenebilecek tüm operatörleri söyledim. Eksik kalan varsa yada şunuda söylesen iyi olurdu dediğiniz varsa yorum olarak atabilirsiniz.
Son 1 bilgi daha operatörleri kullanırken işlem öncelikleri bulunmakta onuda aşağıdaki tablodan inceleyebilirsiniz.

Operatörler ve Öncelikleri​


Operatör
Açıklama
Okunuş​
( )ParantezSoldan Sağa
a++, a Sonra Arttır, Sonra EksiltSoldan Sağa
++a, –a,Önce Arttır Önce EksiltSağdan Sola
*, /, %Çarpma Bölme ModSoldan Sağa
+, -Toplama ÇıkarmaSoldan Sağa
<, >, <=, >=Karşılaştırma OperatörleriSoldan Sağa
==, !=Eşitlik OperatörleriSoldan Sağa
&& , || Ve VeyaSoldan Sağa
=Atama OperatörüSağdan Sola

Not : Olası hata bildirimleri, iletişim veya gelişmelerden erken haber almak için discord kanalıma gelebilirsiniz.​
Linkleri görebilmek için giriş yap veya kayıt ol.
Önemli not: Bu konu ve açacağım diğer konular tamamen kendime ait konular herhangi bir yerden alıntı değildir.
Mmotutkunlarına özel içeriktir.
Lütfen alacaksanız bile kaynak gösteriniz.

Sevgilerle.
 

Dosya Eklentileri

  • 1727978303969.webp
    1727978303969.webp
    2,9 KB · Gösterim: 13
  • 1727991358464.webp
    1727991358464.webp
    2,2 KB · Gösterim: 18
Son düzenleme:


Bu 2 konuyuda inceleyebilirsiniz. @MEKA ya paylaşımları için teşekkürler. :)
 
Arkadaşlar düzenle'ye basınca yazının çoğu yerini kafaya göre bozuyor. Yazmak için çok uğraştım. Tekrar uğraşmak istemiyorum. Yoruldum :(. Bunu düzeltmenin bi yolu varmı.

@Whistle @hasanmacit @MEKA @Kaiser @Kaptan Yosun @Aksu
Merhaba bozulan kısımlar için dcden ulaşırsanız yardımcı olabiliriz. Bu tarz konular için etiket atmak yerine mesajı rapor edebilirsiniz.
 
Merhaba bozulan kısımlar için dcden ulaşırsanız yardımcı olabiliriz. Bu tarz konular için etiket atmak yerine mesajı rapor edebilirsiniz.
Teşekkür ederim. Konuyu yeni paylaştığım için hızlı reaksiyon almak istemiştim. Kendim düzelttim tek tek.
 
Teşekkür ederim. Konuyu yeni paylaştığım için hızlı reaksiyon almak istemiştim. Kendim düzelttim tek tek.
Eğer bb codelarda hata yapıldıysa düzeltme sırasında bozulabilir. Konuyu göndermeden önce önizleme modunu kullanabilirsiniz. BB codelarını kullanırken html mantığı ile aynı olduğunu unutmayın
 
Eğer bb codelarda hata yapıldıysa düzeltme sırasında bozulabilir. Konuyu göndermeden önce önizleme modunu kullanabilirsiniz. BB codelarını kullanırken html mantığı ile aynı olduğunu unutmayın
Çok teşekkür ederim. Bilgilendirme için, önizle dedikçe bozuldu o yüzden fazla kullanmadım. Ama şuan düzelttim diğer konularımda dikkat edicem.
 
Geri
Üst