Hesap Makinesi – Tür Dönüşümü

Hatırlarsanız tipler konusunda yazdığım bir diğer yazıda bazı değişken tiplerden ve değer aralıklarından bahsetmiştim. C#’da bizim tanımlayabileceğimiz tipler olduğu gibi, bizim için önceden tanımlanmış tipler de bulunuyor. Bunlar yazılımcının sıklıkla kullanacağı işini kolaylaştırmak için hazırlanmış tiplerdir ve built-in types (dahili tipler) olarak geçmekte.

Kısaca yine özetlersem:

Bizim hesap makinesinde kullandığımız bölme işleminin sonucunu gösteren değişkenimizin tipi int’tir. Ya da bizim kullandığımız haliyle iki int değişkenin işlem sonucu yine int olacaktır. Tablodan da gördüğünüz gibi int değişkenin değer aralığı -2,147,483,648 ile 2,147,483,647 değeri arasında. Yani tam sayı, virgülden sonrası yok. Bölme işleminde eğer küsürlü bir sayı istiyorsak farklı bir tip kullanmalıyız. Tablodan da görebileceğiniz gibi float tipi bunun için uygun.

Peki ama ilkSayi ve ikinciSayi değişkenlerimiz int değil miydi? Bu ikisinin bölümünün sonucunu nasıl bir float tipteki değişkene atayabiliriz?

Bu yapılabilir ve bu yapış şekline de bilinçli tür dönüşümü deniyor. Bilinçli tür dönüşümü olduğuna göre demek ki bir de bilinçsiz tür dönüşümü bulunuyor. Peki hangi türler hangi türlere bilinçsiz dönüştürülebiliyor?

Öncelikle bilinçsiz tür dönüşümlerinde sadece küçük türler büyüklere dönüştürülebiliyor. Hangisi küçük hangisi büyük derseniz aşağıdaki tablodan anlayabilirsiniz. Kod yazarken tür dönüşümü nedeniyle hata veriyorsa bilinçli bir dönüşüm yapmanız gerekecektir.

Bilinçsiz tür değişimlerinde sizin kodunuza ekstradan bir şey yazmanız gerekmez. İşlem otomatik olarak C# tarafından yapılır.

Bizim uygulamamızda int türünü tablodan da gördüğünüz gibi bilinçsizce float’a çeviremiyoruz. Bu nedenle de cast ederek bilinçli bir tür dönüşümü yapmalıyız.
Şimdi gelin bölme işlemimizi tam bir bölme sonucu verecek şekilde alalım:

Console.WriteLine(“Lütfen ilk sayıyı giriniz:”);
int ilkSayi = int.Parse(Console.ReadLine());

Console.WriteLine(“Lütfen ikinci sayıyı giriniz:”);
int ikinciSayi = int.Parse(Console.ReadLine());

while (ikinciSayi==0)
{
Console.WriteLine(“Lütfen ikinci sayıyı 0 dan farklı giriniz:”);
ikinciSayi = int.Parse(Console.ReadLine());
}

float sonuc =(float) ilkSayi / ikinciSayi;
Console.WriteLine(“İki sayının bölümü:{0}”, sonuc);
İşte çıkan sonuç:

Başka hangi tür bilinçli tür dönüşümü vardı hatırlayın: Parse metodu!

Başka yöntemleri de yeri geldikçe paylaşacağım.

No comments yet... Be the first to leave a reply!

Yorum Yaz

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Connecting to %s

%d blogcu bunu beğendi: