- 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.
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 ?
Atama Operatörü
Aritmetik Operatörler ( 4 İşlem + % (Mod Alma) )
Tip Dönüşümü
Arttırma (++) ve Azaltma (– –) Operatörleri
Aritmetik Atama Operatörleri
Karşılaştırma Operatörleri
Mantıksal Operatörler
Ö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 :
Çıktısı:
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 = 10b = 20a + 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 + bcout << "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 = 46b = 10a - 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 - bcout << "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 = 10b = 20a * 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 * bcout << "Ç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 = 50b = 10a / 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 / bcout << "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 = 50b = 10a % b = 0 ( Kalan )
a = 50b = 15a % 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 % bcout << "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;
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:
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:
#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:
#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:
#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:
#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:
#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:
- Toplama ve Atama (+=):
- Mevcut değere bir değer ekler ve sonucu aynı değişkene atar.
-
Kod:
int a = 5; a += 3; // a = a + 3; a şimdi 8
- Çıkarma ve Atama (-=):
- Mevcut değerden bir değeri çıkarır ve sonucu aynı değişkene atar.
-
Kod:
int b = 10; b -= 4; // b = b - 4; b şimdi 6
- Çarpma ve Atama (*=):
- Mevcut değeri bir değerle çarpar ve sonucu aynı değişkene atar.
-
Kod:
int c = 2; c *= 5; // c = c * 5; c şimdi 10
- Bölme ve Atama (/=):
- Mevcut değeri bir değere böler ve sonucu aynı değişkene atar.
-
Kod:
int d = 20; d /= 4; // d = d / 4; d şimdi 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:
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.
- Küçüktür Operatörü ( < )
- Büyüktür Operatörü ( > )
- Küçük Eşittir Operatörü ( <= )
- Büyük Eşittir Operatörü ( >= )
- Eşit mi Operatörü ( == ) Bunu atama operatörü ile karıştırmayın. Bunda 2 tane = kullanıyoruz
- 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:
#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:
- Mantıksal AND (&&) - Ve
- Mantıksal OR (||) - Veya
- 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:
#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:
#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:
#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:
koşul ? doğru_ise : yanlış_ise
Şimdi kod içerisinde kullanalım :
Örnek:
Kod:
#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ş |
( ) | Parantez | Soldan Sağa |
a++, a – – | Sonra Arttır, Sonra Eksilt | Soldan Sağa |
++a, – –a, | Önce Arttır Önce Eksilt | Sağdan Sola |
*, /, % | Çarpma Bölme Mod | Soldan Sağa |
+, - | Toplama Çıkarma | Soldan Sağa |
<, >, <=, >= | Karşılaştırma Operatörleri | Soldan Sağa |
==, != | Eşitlik Operatörleri | Soldan Sağa |
&& , || | Ve Veya | Soldan 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.
Mmotutkunlarına özel içeriktir.
Lütfen alacaksanız bile kaynak gösteriniz.
Sevgilerle.
Dosya Eklentileri
Son düzenleme: