Temel C Programlama -13- C Veri ve Değişken Tipleri – 2

Önceki başlıkta veri tipleri olarak sadece temel tamsayı değişkenleri anlatsak da yazı bayağı uzadı ve yorucu oldu. Şimdi ise daha kalan kısmını bu başlıkta anlatacağız. Basit tamsayı dışındaki değişkenleri tamsayı değişkenlerini anlamaktan daha zor olacağını hesap edebiliriz. Burada en sık kullandığımış değişken tipi kullanacağımız kayan noktalı (ondalıklı) sayı değeri olsa da öncelikle tam sayıları bitirmek adına sabit genişlikli tam sayı tiplerini sizlere aktaralım.

Sabit genişlikli tam sayıları anlamak için öncelikle temel tamsayı değişkenlerini incelememiz gereklidir. Biz bu değişkenleri anlatırken bunların değer aralığının kullanılan derleyiciye ve platforma göre değişiklik gösterdiğini söylemiştik. Yani bir platformda program yazarken int değişkeni -32768 ve 32,767 arasında değer alırken bir platformda bu değer aralığı -2 147 483 648 ve 2 147 483 647 arasında olabilir. Bu durumda birinde yazdığımız program çalışırken ötekinde sürprizlerle karşılaşabiliriz. C dilinde de C99 standartından itibaren stdint.h adında bir kütüphane dosyasında tamsayı değişkenlerinin genişliklikleri belirlenmiş ve programcının kullanımına sunulmuştur. Biz bilgisayarda pek kullanmasak da gömülü sistemlerde bu değerleri öncelikli olarak kullanırız.

Gömülü C konusunda geldiğimizde bütün ayrıntısıyla inceleyecek olsak da şimdilik bu değişken tiplerinden en çok kullanılanları sizlere aktaralım.

Bu tablodan başka kütüphane dosyası içerisinde tip tanımlamaları ve makrolar yer alsa da bunlar gömülü C derslerinde işimize yarayacağı için o bu kadarıyla yetiniyoruz. Anladığınıza emin olmak için bu değişken tiplerini örnekler üzerinde gösterelim.

Veri tipleri konusunda en son olarak ondalıklı sayı değişkeni olan float, double ve long double değişken tiplerinden bahsedeceğiz. Örneğin PI sayısını kullanarak bir hesaplama yapacağız fakat pi sayısını kaydetmemiz gereken bir değişken gerekiyor. Üstelik PI sayısını sabit olarak kullansak da (3.1415F gibi) bu sefer de PI sayısını kullanarak yaptığımız işlemin sonucu virgüllü olarak çıkmaktadır. Bu durumda bu değerleri tam sayı olan int, long, char gibi değişkenlere aktarmamız mümkün olmaz. Değerler aktarılsa dahi yuvarlatılarak bize verilir. Örneğin sonuç 3.6 çıkarsa bu 4 değeri olarak gösterilir. 3.4 çıkarsa bu 3 değeri olarak gösterilir. Bu elde edilen sonuç üzerinden bir işlem daha yapılırsa hesaplama çok yanlış elde edilir. O yüzden ondalıklı değer elde edilmesi muhtemel yerde float, double ve long double değişken tiplerini kullanmak gereklidir.

Sadece ondalıklı değer elde edeceğiniz değil elde edilme imkanı olan yerde de bunu kullanmakla önceden önlemi almak gereklidir. Şimdi bu değişkenlere bakalım.

Şimdi bir uygulama yapalım ve iki ondalıklı sayıyı birbiriyle çarpalım. Hem girişte ve hem çıkışta ondalıklı değer elde edeceğiz.

#include <stdio.h>
#include <stdlib.h>
int main() {

    double ilk_sayi, ikinci_sayi, sonuc;
    printf("Iki Ondalikli Sayi Girin: ");


    scanf("%lf %lf", &ilk_sayi, &ikinci_sayi);


    sonuc = ilk_sayi * ikinci_sayi;


    printf("Sonuc = %.2lf \n", sonuc);


 system("PAUSE");
 } // Main Sonu

Burada double tipinde üç değişken tanımlayarak programa başlıyoruz. Bu üç değişkenin de double olması çok önemlidir. Örneğin iki tam sayıyı bölüp ondalıklı sayı elde edeceksek sadece sonuç değişkenini double olarak tanımlamamız yeterli olurdu. Fakat burada “.” işareti ile değişkenlere ondalıklı değer atayacağız ve bunların çarpımını yine ondalıklı değer olarak kaydedeceğiz. Konsola ondalıklı sabit değerleri yazmak için 20.15, 3.1415 gibi nokta işaretini kullanmamız gereklidir. Matematikte virgül kullanılsa da burada nokta kullanılmaktadır. Bu nokta kullanılma durumu aslında ülkelere göre değişmektedir. Orada matematikte de virgülden sonrası değil noktadan sonrası kavramı vardır.

scanf(“%lf %lf”, &ilk_sayi, &ikinci_sayi);

Bu komutta scanf fonksiyonunun daha önceden görmediğimiz bir kullanımını görüyoruz. Tek bir scanf fonksiyonu iki farklı değer alıp iki farklı değişkene değer ataması yapıyor. Bunları yaparken sırasını gözetmek ve format işaretini “%” koymak lazımdır. Burada format yukarıda belirttiğimiz üzere %lf şeklindedir. Bu formatları doğru yazmamız değişken tanımlamak kadar önemlidir.

sonuc = ilk_sayi * ikinci_sayi;

Bu çarpma işlemi aynı tamsayılarda olduğu gibi olsa da program bizim double şeklinde tanımladığımız değerleri bildiği için ondalık sayı çarpımı şeklinde işlemi yapmaktadır.

printf(“Sonuc = %.2lf \n”, sonuc);

Burada format kısmında %.2lf ifadesini kullanıyoruz. Yani virgülden sonra iki basamağı göstermesini fonksiyona söylüyoruz. Konsol ekranında da bu şekilde görmekteyiz.

Buraya kadar veri tipleri hakkında anlatmamız gereken başka bir konu kalmadı. Daha ilerisi için inttypes.h dosyasındaki tanımları ve makroları incelemenizi tavsiye ederiz. Biz daha ileri seviye konularda bundan bahsedeceğimiz için temel seviye olarak bu anlattıklarımız bile ileri seviye kalmakta.

Last updated