Bu çalışma materyali, kullanıcı tarafından kopyalanıp yapıştırılan metinler ve ders ses kaydı dökümü gibi çeşitli kaynaklardan derlenmiştir.
📚 BÖLÜM 5: VERİ TÜRLERİ VE ARİTMETİK İŞLEÇLER
💡 Giriş: Veri Türleri ve Programlamadaki Önemi
Bir bilgisayar programının verimli çalışabilmesi için verileri doğru bir şekilde saklaması ve işlemesi esastır. Veri türleri, bir türün alabileceği değer aralıklarını ve üzerinde tanımlanmış işlemleri belirler. Programlama dillerinde değişken tanımlanırken veri türünün belirtilmesi, derleyicinin hafızada ne kadar alan ayırması gerektiğini hesaplamasına olanak tanır. C++ ve Java gibi dillerde bu zorunluyken, Python ve Ruby gibi dillerde daha esnek bir yapı mevcuttur. Bu esneklik, programcının veri türleriyle daha az uğraşmasını sağlayarak bellek yönetimini optimize eder. Temel veri türleri, başka türler cinsinden tanımlanmayan yapı taşlarıdır. C++ programlama dilinde sayısal, Boolean ve karakter olmak üzere üç ana temel veri türü bulunmaktadır.
1️⃣ Veri Türleri: Detaylar ve Kullanım Alanları
Veri türleri, programlama dillerinde bilginin nasıl saklanacağını ve işleneceğini tanımlayan temel yapı taşlarıdır.
1.1. Temel Veri Türleri
C++ programlama dilinde tanımlı üç adet temel veri tipi vardır: Sayısal, Boolean ve Karakter.
1.1.1. Sayısal Veri Türleri
Bilimsel hesaplamalar ve nicel verilerin işlenmesi için kullanılır. İki ana kategoriye ayrılır:
-
Tam Sayı Veri Türleri: Kesirli parçaları olmayan değerleri temsil eder.
- Kullanım Alanları: Bir sınıftaki öğrenci sayısı, otoparktaki araç sayısı gibi tam değerler.
- Anahtar Kelimeler:
int(genel),short(daha az alan),long(daha çok alan). - İşaret Durumu:
unsignedanahtar kelimesiyle sadece pozitif değer aralığında tam sayılar elde edilebilir (örn:unsigned int). - Örnek:
int fiyat = 50000; short mesafe = 40; long dunya_nufusu = 8000000000; // Çıktı: Fiyat=50000, Mesafe=40, Dünya nüfusu=8000000000
-
Kesirli Sayı Veri Türleri: Ondalık değerlere sahip verileri temsil etmek için tanımlanmıştır.
- Kullanım Alanları: Bir kişinin ağırlık veya boy bilgisi gibi ondalıklı değerler.
- Anahtar Kelimeler:
floatveyadouble. - Bellek ve Hassasiyet:
doubledaha geniş bir değer aralığına sahip olup daha fazla bellek gerektirir ve daha hassastır. - ⚠️ Dikkat: Bu türden değerler bilgisayar hafızasında tam olarak saklanamayabilir. Özellikle finans uygulamalarında gerçek değer ile saklanan veri türleri tercih edilmelidir.
- Örnek:
float boy = 158.35; // Çıktı: Boy=158.35
1.1.2. Boolean Veri Türü
Sadece true (doğru) veya false (yanlış) olmak üzere iki farklı değer alır.
- Kullanım Alanları: Karar alma veya ilişkisel işleçlerde kodun okunabilirliğini artırmak için tercih edilir.
- Bellek: Hafızada 1 baytlık alanda saklanır.
- Anahtar Kelime:
bool. - Çıktı:
trueiçin1,falseiçin0değeri yazdırılır. - Örnek:
bool aktif = true; // Çıktı: 1 aktif = false; // Çıktı: 0
1.1.3. Karakter Veri Türü
Standart ASCII karakter setindeki 256 karakter veya sembollerden birini temsil eder.
- Bellek: Hafızada 1 baytlık alanda saklanır.
- Atama: Bir değişkene atama yapılırken tek tırnak (
' ') içerisine alınması gerekir. - Kaçış Karakterleri: Özel anlamı olan karakterlerdir (örn:
\nyeni satır,\ttab). - Örnek:
char harf = 'a'; // Çıktı: a harf = 'A'; // Çıktı: A harf = '5'; // Çıktı: 5 harf = '\n'; // Yeni satır karakteri - İlgili Fonksiyonlar:
<cctype>kütüphanesinde karakterler üzerinde işlem yapmaya yarayan fonksiyonlar bulunur (örn:isdigit(),isalpha(),islower(),toupper()).
1.1.4. Numaralandırma (enum) Veri Türü
Bir sabit listesi oluşturmak için kullanılır.
- Değer Ataması: Liste içerisindeki değerlere programcı tarafından bir değer atanmazsa, ilk değere
0, sonraki değerlere birer artırılarak değer atanır. - Özel Atama: Programcı isterse her bir değere özel bir atama yapabilir.
- Örnek:
enum araba {Honda, Toyota, Mazda, Subaru}; // Honda=0, Toyota=1, ... enum araba {Honda=10, Toyota=20, Mazda=30, Subaru=40}; // Özel atama
1.2. sizeof() Fonksiyonu
Bir değişkenin hafızada ne kadar alana gereksinim duyduğunu öğrenmek için sizeof() fonksiyonu kullanılır.
- Örnek:
cout << sizeof(short) << endl; // short veri tipinin bayt cinsinden boyutunu yazdırır.
2️⃣ Değişkenler: Tanımlama ve İsimlendirme
Değişken, bilgisayar belleğinde verinin saklandığı ve üzerinde işlemler yapıldığı bir depolama konumudur.
2.1. Değişken Bildirimi ve Ataması
Bir değişken, saklayacağı veri türü ve değişken adıyla birlikte tanımlanır.
- Bildirim:
int yas; - Atama:
yas = 40; - Tek Satırda Bildirim ve Atama: C++'ta bildirim ve atama aynı satırda yapılabilir:
int yas = 40; - Çoklu Bildirim: Aynı türe ait birden fazla değişken aynı satırda bildirilebilir:
int yas, maas; - Çoklu Bildirim ve Atama:
int yas = 40, maas = 1900; - Farklı Türler: Farklı türden değişkenler ayrı satırlarda bildirilmelidir:
int yas, maas; float kilo, boy;
2.2. Değişken İsimlendirme Kuralları
Bir değişkene uygun ve anlamlı bir isim vermek, kodun okunabilirliği ve sürdürülebilirliği açısından kritik öneme sahiptir.
✅ Doğru İsimlendirme Kuralları:
- Değişken isimleri rakam ile başlayamaz. (örn:
9abc❌) - Değişken isimleri için özel karakterler (
!,?,.,[,]) kullanılamaz. - C++ programlama dili büyük ve küçük harf duyarlıdır. (
var,VAR,Varüç farklı değişkendir.) - Değişken isimleri İngiliz alfabesinde bulunan büyük (A-Z) veya küçük (a-z) karakterler ya da rakamlar (0-9) kullanılarak oluşturulmalıdır.
- Değişken isminin uzunluğu en fazla 255 karakter olabilir, ancak ilk 32 karakter anlamlıdır.
- Değişken ismi birden fazla kelimeden oluşuyorsa kelimeler arasında boşluk bırakılamaz.
- Boşluk yerine kelimeler birleştirilebilir (
enbuyukdeger). - Alt çizgi kullanılabilir (
en_buyuk_deger). - Genellikle "deve gösterimi" (camelCase) tercih edilir (
enBuyukDeger). Bu gösterimde ilk kelimenin ilk harfi küçük, sonraki kelimelerin ilk harfleri büyük yazılır.
- Boşluk yerine kelimeler birleştirilebilir (
- C++ programlama dilinde anahtar kelime olarak tanımlanan kelimeler değişken ismi olarak kullanılamaz (örn:
for,while,case,int,boolgibi).
3️⃣ İşleçler: Hesaplamalar ve Mantıksal İşlemler
İşleçler, bir programın sonuç üretebilmesi için gerekli matematiksel veya mantıksal hesaplamaların yapılmasını sağlar.
3.1. İşleç Sınıflandırması
- Birli (Unary) İşleçler: Tek bir işlenen gerektirir (örn:
++,--). - İkili (Binary) İşleçler: İki işlenen gerektirir (örn:
+,-,*,/). - Üçlü (Ternary) İşleçler: Üç işlenen gerektirir (örn:
? :koşul işleci).
Bu bölümde atama ve aritmetik işleçler üzerinde durulacaktır.
3.2. Atama İşleçleri
Bir değişkene bir değer atamak için kullanılır.
- Sembol:
= - İşleyiş: İşlecin sağındaki değer, solundaki değişkene atanır. Sağdaki değer sabit bir sayı, aritmetik, mantıksal veya ilişkisel bir ifade olabilir.
- Örnek:
int yas; yas = 50; // yas değişkenine 50 değeri atanır.
3.3. Aritmetik İşleçler
Matematiksel ifadelerin hesaplanmasını sağlar.
-
Temel Aritmetik İşleçler:
+(Toplama):sonuc = sayi1 + sayi2;-(Çıkarma):sonuc = sayi1 - sayi2;*(Çarpma):sonuc = sayi1 * sayi2;/(Bölme):sonuc = sayi1 / sayi2;- ⚠️ Dikkat: Tam sayıların tam sayılara bölümü yine tam sayı sonucunu verir (ondalık kısım atılır). Kesirli sonuç isteniyorsa tür dönüşümü yapılmalıdır.
- Örnek:
int a = 10, b = 3; int c = a / b;(c = 3 olur) - Örnek (Tür Dönüşümü):
float d = (float)a / b;(d = 3.333... olur)
%(Kalan/Modülüs): Bir bölme işlemi sonucunda ortaya çıkan kalan değerini elde etmek için kullanılır.- Örnek:
sonuc = 12 % 5;(sonuc = 2 olur)
- Örnek:
-
Artırma (++) ve Azaltma (--) İşleçleri (Detaylı Anlatım) Bu işleçler, bir değişkenin değerini 1 artırmak veya 1 azaltmak için kullanılır. Özellikle döngülerde sayaç değişkenlerini kontrol etmek için sıkça tercih edilirler. Ancak kullanımlarına göre farklı sonuçlar üretebilirler.
-
Ön Artırma/Azaltma (Prefix):
++degiskenveya--degisken- İşleyiş: İşleç, değişkenin değerini önce değiştirir, sonra bu yeni değeri ifade içinde kullanır.
- Örnek (
++a):
Bu örnekte,int a = 5; cout << a << endl; // Çıktı: 5 (a'nın ilk değeri) cout << ++a << endl; // Çıktı: 6 (a önce 6 olur, sonra yazdırılır) cout << a << endl; // Çıktı: 6 (a'nın güncel değeri)++aifadesia'yı 6 yapar ve sonra 6'yı yazdırır.
-
Son Artırma/Azaltma (Postfix):
degisken++veyadegisken--- İşleyiş: İşleç, değişkenin mevcut değerini ifade içinde kullanır, sonra değişkenin değerini değiştirir.
- Örnek (
a--):
Bu örnekte,int a = 5; cout << a << endl; // Çıktı: 5 (a'nın ilk değeri) cout << a-- << endl; // Çıktı: 5 (a'nın mevcut değeri yazdırılır, sonra a 4 olur) cout << a << endl; // Çıktı: 4 (a'nın güncel değeri)a--ifadesi öncea'nın mevcut değeri olan 5'i yazdırır, sonraa'yı 4 yapar.
-
⚠️ Önemli Not: Bu iki kullanım arasındaki fark, işlecin bir ifade içinde kullanıldığı zaman ortaya çıkar. Eğer işleç tek başına bir satırda kullanılıyorsa (
a++;veya++a;), her iki durumda da sonuç aynıdır: değişkenin değeri 1 artar veya azalır. Ancak bir atama veya çıktı ifadesi içinde kullanıldığında fark belirginleşir. -
Örnek (Karmaşık İfade):
int x = 10, y = 5; int sonuc = (++x) * (y--); cout << "x: " << x << endl; // Çıktı: x: 11 cout << "y: " << y << endl; // Çıktı: y: 4 cout << "sonuc: " << sonuc << endl; // Çıktı: sonuc: 55Açıklama:
++x:xönce 11 olur.y--:y'nin mevcut değeri olan 5 kullanılır, sonray4 olur.sonuc = 11 * 5;yanisonuc = 55;
-
❓ Soru/Problem: Aşağıdaki C++ kod bloğunun çıktısı ne olur? Açıklayınız.
int m = 7; int n = 3; int k = (m++) + (--n); cout << "m: " << m << endl; cout << "n: " << n << endl; cout << "k: " << k << endl;Cevap:
m: 8n: 2k: 9Açıklama:
m++:m'nin mevcut değeri olan 7, toplama işleminde kullanılır. Ardındanm'nin değeri 8 olur.--n:n'nin değeri önce 2 olur, ardından bu 2 değeri toplama işleminde kullanılır.k = 7 + 2;yanik = 9;
-
-
Bileşik Atama İşleçleri: Aynı değişkenin değerini sabit veya başka değişkenler kullanarak güncelleme ifadelerini kısaltmak için kullanılır.
+=(Topla ve Ata):var += 3;eşdeğerivar = var + 3;-=(Çıkar ve Ata):var -= 3;eşdeğerivar = var - 3;*=(Çarp ve Ata):var *= 3;eşdeğerivar = var * 3;/=(Böl ve Ata):var /= 3;eşdeğerivar = var / 3;%=(Kalanı Ata):var %= 3;eşdeğerivar = var % 3;
3.4. Aritmetik İşleçlerin Öncelik Sıralaması
Karmaşık ifadelerin doğru şekilde hesaplanabilmesi için işleçlerin öncelik sırası bilinmelidir.
- Parantezler
(): En yüksek önceliğe sahiptir. Eğer iç içe parantezler varsa, en içteki parantezden başlanarak hesaplamalar yapılır. - Çarpma
*, Bölme/, Kalan%: Parantezlerden sonra gelir. Eğer bir ifadede birden fazla bu işleçlerden varsa, hesaplama soldan sağa doğru devam eder. Bu işleçler aynı seviye önceliğe sahiptir. - Toplama
+, Çıkarma-: En düşük önceliğe sahiptir. Eğer ifade içerisinde birden fazla toplama veya çıkarma işleci varsa, ifadenin hesaplanmasına soldan başlanır. Bu işleçler de aynı seviye önceliğe sahiptir.
-
Örnek:
y = 1 * 2 + (3 + 4) - 5ifadesinin hesaplanması:- Parantez içi:
(3 + 4)hesaplanır, sonuç 7 olur. İfade:y = 1 * 2 + 7 - 5 - Çarpma:
1 * 2hesaplanır, sonuç 2 olur. İfade:y = 2 + 7 - 5 - Toplama (soldan sağa):
2 + 7hesaplanır, sonuç 9 olur. İfade:y = 9 - 5 - Çıkarma:
9 - 5hesaplanır, sonuç 4 olur.
- Nihai Sonuç:
y = 4
- Parantez içi:
-
⚠️ Dikkat: Doğru sonuçlar elde edebilmek ve kod okunabilirliğini artırmak için aritmetik ifadelerde uygun yerlerde parantezler kullanılmalıdır.
✅ Bölüm Özeti
Bu bölümde, programlamanın temel yapı taşlarından olan veri türleri, değişkenler, atama ve aritmetik işleçler detaylı bir şekilde incelenmiştir. Bir bilgisayar programının verimli çalışması için doğru veri türlerinin seçilmesi, hafıza yönetimini optimize eder ve programın güvenilirliğini artırır. Değişkenlerin anlamlı bir şekilde isimlendirilmesi ve tanımlanması, kodun okunabilirliğini ve işbirliğini kolaylaştırır. Atama ve aritmetik işleçler, programların mantıksal ve matematiksel hesaplamaları gerçekleştirmesi için vazgeçilmezdir. Özellikle karmaşık ifadelerde işleç önceliği kurallarının doğru anlaşılması ve uygulanması, hatalı sonuçların önüne geçerek programın doğruluğunu sağlar. Bu temel kavramlara hakim olmak, daha sağlam, anlaşılır ve hatasız yazılımlar geliştirmek için kritik bir öneme sahiptir.








