C Dersleri 2: Veri Çeşitleri

Birinci derste ilk programımızı yazmıştık. Ders sonunda ise ekrana isminizi yazdıran bir program yazmanızı istemiştim. Bunu gerçekleştiren kodlar şöyle olacaktı:

  1. #include <stdio.h>
  2. main()
  3. {
  4.     printf("Ufuk Eskici\n");
  5. }

Siz, “Ufuk Eskici” yerine kendi isminizi yazacaksınız. ;)

Gelelim bundan sonra her zaman kullanacağımız veri çeşitlerine. Ekrana yazdıracağımız değerleri yukarıdaki programda yaptğımız gibi doğrudan printf komutuna yazmak yerine bu değerleri bir değişkene atayabiliriz. Bunun için bu değişkenleri, yazdırma işleminden önce tanıtmalı ve bu değişkenlerde saklanacak verilerin çeşitlerini doğru bir şekilde belirtmeliyiz. Aksi taktirde program uyarı verir ve çalışmaz. Bu yüzden veri çeşitlerini iyi öğrenmemiz gerekir.

Temel olarak 3 çeşit değişken vardır:

  1. int: Tam sayı değerler için kullanılır. Printf komutunda %d ile ifade edilir.
  2. float: Ondalıklı sayılar için kullanılır. Printf komutunda %f ile ifade edilir.
  3. char: Tek bir karakter için kullanılır. Printf komutunda %c ile ifade edilir. Dizgi (string) ler için de char kullanılır fakat bunlar %s ile ifade edilir. Dizgiler, karakter dizileridir.

Şimdi bunları örnek bir programda uygulayalım:

  1. #include <stdio.h>
  2. main()
  3. {
  4.     int a=5;
  5.     float b=2.5;
  6.     char c='z';
  7.     char d[8]="merhaba";
  8.  
  9.     printf("%d\n",a);
  10.     printf("%.2f\n",b);
  11.     printf("%c\n",c);
  12.     printf("%s\n",d);
  13.     printf("%c\n",d[2]);
  14. }

Programın çıktısı şu şekilde olacaktır:

Bu programda, önce değişkenlerimizi belirledik, daha sonra da bunları ekrana yazdırdık. Şimdi yazdığımız kodları inceleyelim:

  1. int a=5;

Bu kod, a değişkeninin bir tam sayı olduğunu ve değerinin 5 olduğunu gösterir.

  1. float b=2.5;

Bu kod, b değişkeninin bir ondalık sayı olduğunu ve değerinin 2.5 olduğunu gösterir.

  1. char c='z';

Bu kod, c değişkeninin bir karakter olduğunu ve değerinin z olduğunu gösterir.

  1. char d[8]="merhaba";

Bu kod, d değişkeninin bir dizgi olduğunu ve değerinin merhaba olduğunu gösterir. d[8] yazmamızın nedeni C programlama dilinin dizgileri doğrudan desteklememesidir. C, dizgileri bellekte karakter dizisi şeklinde saklar. Şöyle ki:

            d: m e r h a b a \0
alt simge: 0 1 2 3 4 5 6 7

Alt simgeler dizinin her bir elemanının sırasını ifade eder. Dizi 0‘dan başlar, dizgi uzunluğuna kadar devam eder. Örneğin d dizisinin 3. elemanı d[2]’dir ve bu da r’ye eşittir. Yani,

d[0]=m
d[1]=e
d[2]=r
d[3]=h
d[4]=a
d[5]=b
d[6]=a
d[7]=\0

Gördüğünüz gibi merhaba dizgisinin sonuna \0 koyduk. Bu kısmı, program dizgiyi bellekte tutarken kendiliğinden koyar fakat program çıktısında göstermez. \0′ın amacı, dizgi daha sonra bellekten okunurken dizinin sonunun geldiğini göstermektir. Bu yüzden dizinin uzunluğu belirlenirken dikkatli olunmalıdır. Dizinin uzunluğu, yazacağınız dizgideki karakter sayısının en az bir fazlası olmalıdır. Yukarıdaki programda dizi uzunluğu (8) nu azaltarak farkı gözlemleyin. Göreceksiniz ki programın çıktısı hatalı olacaktır.

Gelelim değerleri ekrana yazdırdığımız bölüme. Burada dikkat edilmesi gereken nokta, ” “ işaretleri arasına önce ekrana yazdırmak istediğimiz değerin konunun başında anlattığım değişken çeşitlerine göre ifade biçimi yazılır. Daha sonra virgül konularak değişkenin ismi yazılır. \n‘nin imleci bir alt satıra geçirdiğini bir önceki derste göstermiştim.

  1. printf("%d\n",a);

a değişkenimiz bir tam sayı olduğu için %d ile ifade ettik. Daha sonra da değişkenimizin ismini virgülden sonra yazdık.

  1. printf("%.2f\n",b);

Aynı kuralı burada da uyguladık. Fakat burada %f’yi %.2f biçiminde yazdık. Ondalıklı sayılarda sayının tam ve ondalık kısmının ne kadarını ekrana yazdırabileceğimizi belirleyebiliyoruz. Noktadan önce yazdığımız kısım, sayının karakter uzunluğunu, noktadan sonraki kısım ise sayının noktadan sonra kaç basamağı alınacağını belirtir. Bu programda sayının karakter uzunluğu bizim için önemli olmadığı için noktadan önce herhangi bir değer yazmadık. b sayısı 2.5 iken ondalık kısımdan 2 sayı alınmasını istedik. 5′ten sonra bir rakam olmadığı için program buraya sıfır koydu. Bu da matematiksel açıdan bir sorun yaratmaz.

  1. printf("%c\n",c);

Burada ekrana yazdırmak istediğimiz c değişkeni tek bir karakter olduğu için %c ifadesini kullandık.

  1. printf("%s\n",d);

Burada ise yazdırmak istediğimiz d değişkeni bir dizgi olduğu için %s ifadesini kullandık.

  1. printf("%c\n",d[2]);

Burada da d dizgisinin 3. harfini ekrana yazdırdık. Dizinin 1′den değil 0′dan başladığını unutmayın. Fakat d değişkeni bir dizgi olduğu halde dizgi içindeki bir harf, bir karakter olduğu için %c ifadesini kullandık.

Siz de ilk satıra isminizi, ikinci satıra soyisminizi, üçüncü satıra yaşınızı, dördüncü satıra da isminizin sessiz harflerini yazdıran bir program yazınız.

Konuyla ilgili her türlü soru, sorun ve eleştirileriniz için benimle iletişime geçebilirsiniz.

İyi çalışmalar…

Benzer Yazılar




Yorumlar

“C Dersleri 2: Veri Çeşitleri” için 2 Yorum yapılmış.

  1. Umut DOĞAN 06 Kasım 2007 22:38

    Güzel gidiyor Ufuk. Eline sağlık. Ama “string”in Türkçesi “metin” çok profesyonel durmuyor gibi… Burası “dizgi” doğrudur diyor. ;)

  2. Ufuk Eskici 07 Kasım 2007 01:28

    Uyarı için sağol Umut. Gerekli düzeltmeleri yapacağım.

Yorum Yapın




Kapat
E-posta ile paylaş