Programlama Temelleri

2 - Değişkenler, Veri Tipleri ve Operatörler

Emre Can Yılmaz

Ondokuz Mayıs Üniversitesi

2024

Değişkenler: Verileri Saklama Kutuları

  • Verileri depolamak için kullanılan isimlendirilmiş bellek bölgeleri.
  • Bir değişken, tıpkı bir kutu gibi, içinde belirli bir türde veri saklayabilir.
  • Değişkenleri kullanmadan önce, değişkenin adını ve veri tipini belirterek tanımlamamız gerekir.

Değişken Tanımlama ve İlklendirme

  • Tanımlama: Değişkene bir isim ve veri tipi vermektir. Bu, bellekte o değişken için yer ayırır.
  • İlklendirme: Tanımlanan değişkene ilk değeri vermektir.

Sözdizimi (Tanımlama):

veri_tipi değişken_adı;

Sözdizimi (İlklendirme):

veri_tipi değişken_adı = değer;

Örnekler

int yas;             // Tanımlama
yas = 25;           // İlklendirme

float boy = 1.75;   // Tanımlama ve ilklendirme birlikte

char cinsiyet = 'E';// Tanımlama ve ilklendirme birlikte

Bellek Diyagramı

+-------+-------+-------+-------+
| Adres | 0x100 | 0x104 | 0x108 |  ...
+-------+-------+-------+-------+
| Değer |   10  |  20.5 |   'A'  |  ...
+-------+-------+-------+-------+
     ^       ^       ^
     |       |       |
     int x  float y char ch
  • Bu diyagramda, sadece temel veri tipleri (int, float, char) ve bunların bellekte nasıl saklandığı gösteriliyor.

  • Her değişken, bellekte bir adres aralığına sahip ve bu adres aralığında değişkenin değeri saklanıyor.

Dikkat

Tanımlanmadan ilklendirilen değişkenler hata verir. Her değişken öncelikle tanımlanmalıdır.

İpucu

İlklendirilmeden kullanılan değişkenlerin değeri, bellekten gelen rastgele bir değerdir. Bu, beklenmedik sonuçlara yol açabilir. Bu yüzden, değişkenleri kullanmadan önce ilklendirmek iyi bir programlama uygulamasıdır.

Temel Veri Tipleri

  • C dilinde, farklı türde verileri saklamak için farklı veri tipleri kullanılır.

  • int (Tam Sayı): Tam sayıları saklar (10, -5, 0 gibi).

  • float (Ondalıklı Sayı): Ondalıklı sayıları saklar (3.14, -2.5 gibi).

  • char (Karakter): Tek bir karakteri saklar (‘A’, ‘b’, ‘5’ gibi).

Değişken İsimlendirme Kuralları

  • Değişken isimleri harf, rakam ve alt çizgi (_) karakterlerinden oluşabilir.
  • Değişken isimleri bir rakamla başlayamaz.
  • Değişken isimleri büyük/küçük harf duyarlıdır (isim ile Isim farklı değişkenlerdir).
  • C dilinde rezerve edilmiş kelimeler (int, float, char vb.) olamaz.

Operatörler: Verileri İşleme Araçları

  • Veriler üzerinde işlemler yapmak için kullanılan sembollerdir.

  • Aritmetik Operatörler: +, -, *, /, %

  • Atama Operatörü: =

  • Karşılaştırma Operatörleri: ==, !=, >, <, >=, <=

  • Mantıksal Operatörler: && (VE), || (VEYA), ! (DEĞİL)

Aritmetik Operatörler

Matematiksel işlemler yapmak için kullanılır.

  • + (Toplama)
  • - (Çıkarma)
  • * (Çarpma)
  • / (Bölme)
  • % (Mod alma - Kalanı bulma)

Atama Operatörü

Bir değişkene değer atamak için kullanılır.

  • = (Atama)

Karşılaştırma Operatörleri

İki değeri karşılaştırmak için kullanılır.

  • == (Eşittir)
  • != (Eşit Değildir)
  • > (Büyüktür)
  • < (Küçüktür)
  • >= (Büyük Eşittir)
  • <= (Küçük Eşittir)

Karşılaştırma operatörü sonucu 1 ya da 0 şeklinde yanıt verir. 1 doğru(true) 0 yanlış(false).

Mantıksal Operatörler

Mantıksal işlemler yapmak için kullanılır.

  • && (VE)
  • || (VEYA)
  • ! (DEĞİL)

Operatör Önceliği

  • C dilinde, operatörlerin bir öncelik sırası vardır.
  • Örneğin, çarpma ve bölme işlemleri, toplama ve çıkarma işlemlerinden önce yapılır.
  • Parantez kullanarak işlem sırasını değiştirebiliriz.

Örnek:

int a = 10;
int b = 5;
int c = a + b * 2;   // c = 20 (Önce çarpma yapılır)
int d = (a + b) * 2;  // d = 30 (Önce parantez içi yapılır)

Örnekler

int x = 5;
int y = 10;

// Aritmetik Operatörler
int toplam = x + y;  // toplam = 15
int fark = x - y;    // fark = -5
int carpim = x * y;  // carpim = 50
int bolum = y / x;   // bolum = 2
int kalan = y % x;   // kalan = 0

Örnekler

int x = 5;
int y = 10;

// Atama Operatörleri
x += 5;  // x = x + 5  (x artık 10)
y -= 2;  // y = y - 2  (y artık 8)

// Karşılaştırma Operatörleri
int esitMi = x == y;  // esitMi = 0
int farkliMi = x != y; // farkliMi = 1

// Mantıksal Operatörler
int kosul1 = (x > 5) && (y < 10);  // kosul1 = 0
int kosul2 = (x > 5) || (y <= 10);  // kosul2 = 1

printf Fonksiyonu ve Format Belirteçleri

  • printf fonksiyonu, verileri biçimlendirilmiş bir şekilde ekrana yazdırmak için kullanılır.
  • Format belirteçleri, % sembolü ile başlar ve bir harf ile biter.

Örnek:

int sayi = 10;
printf("Sayının değeri: %d\n", sayi);

Format Belirteçleri

Belirteç Veri Tipi Açıklama
%d int Tam sayı değerlerini yazdırır.
%f float Ondalıklı sayı değerlerini yazdırır.
%c char Tek bir karakteri yazdırır.
%s char[] (string) Bir karakter dizisini (string) yazdırır.
%% % sembolünü yazdırır.
\n Yeni satır karakteri.
\t Tab karakteri (yatay sekme).

Örnekler

int sayi = 10;
float ondalikSayi = 3.14159;
char karakter = 'A';
char metin[] = "Merhaba Dünya!";

printf("Sayı: %d\n", sayi);
printf("Ondalık Sayı (2 basamaklı): %.2f\n", ondalikSayi);
printf("Karakter: %c\n", karakter);
printf("Metin: %s\n", metin);
printf("Yüzde işareti: %%\n");
printf("Yeni\nsatır\n");
printf("İsim:\tAhmet\n");

Çıktı

Sayı: 10
Ondalık Sayı (2 basamaklı): 3.14
Karakter: A
Metin: Merhaba Dünya!
Yüzde işareti: %
Yeni
satır
İsim:   Ahmet

scanf Fonksiyonu: Verileri Kullanıcıdan Almak

  • scanf fonksiyonu, kullanıcıdan veri almak için kullanılır.
  • printf fonksiyonu gibi, scanf da format belirteçleri kullanır.
  • scanf fonksiyonunda, değişkenlerin değerlerini okumak için değişkenlerin bellek adreslerini belirtmemiz gerekir. Bunun için, değişken adının önüne & (adres) operatörünü koyarız.

scanf Fonksiyonunun Sözdizimi

scanf("format_string", &değişken1, &değişken2, ...);

Örnek:

int sayi;

printf("Bir tam sayı girin: ");
scanf("%d", &sayi); // &sayi: sayi değişkeninin bellek adresi

printf("Girdiğiniz sayı: %d\n", sayi);

scanf Fonksiyonu: Örnekler

Tam Sayı Okuma

int sayi;
printf("Bir tam sayı girin: ");
scanf("%d", &sayi);
printf("Girdiğiniz sayı: %d\n", sayi);

Ondalıklı Sayı Okuma

float ondalikSayi;
printf("Bir ondalık sayı girin: ");
scanf("%f", &ondalikSayi);
printf("Girdiğiniz ondalık sayı: %f\n", ondalikSayi);

Karakter Okuma

char karakter;
printf("Bir karakter girin: ");
scanf(" %c", &karakter);
printf("Girdiğiniz karakter: %c\n", karakter);

scanf Özet

  • %d, %f ve %c format belirteçleri, sırasıyla tam sayı, ondalık sayı ve karakter değerlerini okumak için kullanılır.
  • & operatörü, değişkenin bellek adresini verir. scanf fonksiyonu, bu adrese okuduğu değeri yazar.

const Niteleyicisi: Değişmez Değerler

  • Bir değişkenin değerinin programın çalışması sırasında değiştirilemez olduğunu belirtmek için kullanılır.
  • const ile tanımlanan değişkenlere sabit denir.

Sözdizimi:

const veri_tipi değişken_adı = değer;

Örnek:

const float PI = 3.14159;

Örnek

const float PI = 3.14159;  // PI sabitinin değeri 3.14159 olarak tanımlanır
const int MAX_DEGER = 100; // MAX_DEGER sabitinin değeri 100 olarak tanımlanır

int main() {
  // PI = 3.14;  // Hata! const değişkenin değeri değiştirilemez
  // MAX_DEGER = 200; // Hata! const değişkenin değeri değiştirilemez

  printf("PI: %.5f\n", PI);
  printf("MAX_DEGER: %d\n", MAX_DEGER);

  return 0;
}

Yorum Satırları: Kodunuzu Açıklamak

  • C dilinde, yorum satırları kodun okunabilirliğini ve anlaşılırlığını artırmak için kullanılır ve derleyici tarafından yok sayılır.
  • Yorumlar, kodu açıklamak, belgelemek veya geçici olarak devre dışı bırakmak için kullanılabilir.

Yorum Türleri

  • Tek Satırlık Yorumlar: // karakterleri ile başlar ve satır sonuna kadar devam eder.

  • Çok Satırlık Yorumlar: /* karakterleri ile başlar ve */ karakterleri ile biter. Birden fazla satıra yayılabilir.

Yorum Satırı Örnekleri

// Bu tek satırlık bir yorumdur.

/*
Bu çok satırlık bir yorumdur.
Birden fazla satıra yayılabilir.
*/

int sayi = 10;  // Bu yorum, sayi değişkenini açıklar.

İyi Programlama Uygulamaları

  • Anlamlı Yorumlar
  • Gereksiz Yorumlardan Kaçının
  • Kodu Belgelemek İçin Yorum Kullanın
  • Geçici Olarak Kodu Devre Dışı Bırakmak İçin Yorum Kullanın

Alıştırmalar

Aşağıdaki C kod parçasının çıktısı ne olur?

int x = 10;
int y = 3;
int sonuc = x / y;
printf("%d\n", sonuc);
  1. 3.33
  2. 3.0
  3. 3
  4. 4
  5. Kod hata verir

Aşağıdaki değişken isimlerinden hangisi C dilinde geçersizdir?

  1. _sayi
  2. sayi1
  3. sayi_bir
  4. 1sayi
  5. sayi

float tipindeki bir değişkene hangi değeri atamak doğrudur?

  1. 'A'
  2. "Merhaba"
  3. 10
  4. 3.14
  5. true

x = 5 ve y = 10 olduğunda, aşağıdaki ifadelerden hangisinin sonucu doğrudur?

  1. (x > 5) && (y < 10)
  2. (x <= 5) || (y > 10)
  3. (x != 5) && (y == 10)
  4. (x > 5) || (y == 10)
  5. (x < 5) && (y >= 10)

Aşağıdaki kod parçasının çıktısı ne olur?

int a = 15;
int b = 4;
int c = a % b;
printf("%d\n", c);
  1. 3
  2. 3.75
  3. 4
  4. 11
  5. Kod hata verir.

Aşağıdaki kod parçasının çıktısı ne olur?

int x = 10;
int y = 5;
x *= y;
printf("%d\n", x);
  1. 2
  2. 5
  3. 15
  4. 50
  5. Kod hata verir.

Özet

Özet

  • Değişkenler, verileri depolamak için kullanılan, isimlendirilmiş bellek bölgeleridir.
  • Değişkenleri kullanmadan önce tanımlamak ve ilklendirmek gerekir.
  • int, float ve char C dilindeki temel veri tipleridir.
  • Operatörler, veriler üzerinde işlem yapmak için kullanılır.
  • printf fonksiyonu ve format belirteçleri ile ekrana çıktı yazdırabiliriz.
  • scanf fonksiyonu ve format belirteçleri ile kullanıcıdan girdi alabiliriz.
  • const niteleyicisi ile sabit değişkenler tanımlayabiliriz.
  • Yorum satırları, kodun okunabilirliğini ve anlaşılırlığını artırmak için kullanılır.

Gelecek Hafta

  • Kontrol akışı ifadeleri: if-else, switch-case
  • Döngüler: for, while, do-while
  • break ve continue ifadeleri