C# Girilen Sayıyı Roma Rakamına Çevirmek

C# Girilen Sayıyı Roma Rakamına Çevirmek

5 Ocak 2019 0 Yazar: Mustafa BÜKÜLMEZ
Toplam Görüntülenme : 137
Yaklaşık okuma süresi : 6 DK
C# Kombinasyon Hesaplama
C# Linq To XML ile XML Dosyalarla Çalışmak
C# Girilen Sayıyı Roma Rakamına Çevirmek
5 (100%) 1 Oy

C# Girilen Sayıyı Roma Rakamına Çevirmek, dersim ile C# eğitim setime devam ediyorum. Bu ders ne işimize yaracak? Belki hiçbir işimize yaramayacak. Ama bir sitede gördüm bu dersi çok hoşuma gitti. Bir şeyler içerisinde kullanmak isteyebiliriz belki düşüncesi ile bu dersi yazmak istedim. Çok gerekli bir işlem olmasa da hoş bir ders olduğu aşikar. 😀

C# Girilen Sayıyı Roma Rakamına Çevirmek

Bu ders hakkında verebileceğim bir senaryo yok ama aklımda bir kaç fikir yok değil.

Örneğin, bir lisanslama işleminde bu roma rakamlarını kullanabiliriz. Mesela bugünün tarihinin rakamlarının roma rakamlarına bir bakalım. 5 = V, 1 = I, 2019 = MMXIX bunları yan yana koysak V-I-MMXIX bu harfleri yapacağımız lisanslama içerisinde koyabiliriz. Tekrar okumada sorun yaşamamak için de 0 yerine O harfi kullanırız, OVOIMMXIX  gibi görünür. Kolay kolay da bu roma rakamlarına çevilmiş bir tarih bilgisi olduğunu anlamayacaktır.

Yani bu gibi farklı fikirlerle kullanmak istenebilir. O yüzden bu dersi eğitim setime ekleme gereği duydum. Şimdi kodları sizlerle paylaşayım.

        private void btn_cevir_Click(object sender, EventArgs e)
        {
            txt_cevir.Clear();

            int sayi = Int32.Parse(txt_sayi_gir.Text);
            int birler = 0, onlar = 0, yuzler = 0, binler = 0;
            if (sayi < 10)
                birler = sayi;

            if (sayi > 9 && sayi < 100)
            {
                onlar = sayi / 10;
                birler = sayi - (onlar * 10);
            }

            if (sayi > 99 && sayi < 1000)
            {
                yuzler = sayi / 100;
                onlar = (sayi - (yuzler * 100)) / 10;
                birler = sayi - ((yuzler * 100) + (onlar * 10));
            }

            if (sayi > 999 && sayi < 10000)
            {
                binler = sayi / 1000;
                yuzler = (sayi - (binler * 1000)) / 100;
                onlar = (sayi - ((binler * 1000) + (yuzler * 100))) / 10;
                birler = sayi % 10;
            }

            string[] dbirler = { "", "I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX" };
            string[] donlar = { "", "X", "XX", "XXX", "XL", "L", "LX", "LXX", "LXXX", "XC" };
            string[] dyuzler = { "", "C", "CC", "CCC", "CD", "D", "DC", "DCC", "DCCC", "CM" };
            string[] dbinler = { "", "M", "MM", "MMM" };

            txt_cevir.Text += dbinler[binler] + " ";
            txt_cevir.Text += dyuzler[yuzler] + " ";
            txt_cevir.Text += donlar[onlar];
            txt_cevir.Text += " " + dbirler[birler];
            txt_cevir.Text = txt_cevir.Text.Replace(" ", "");
        }

Roma rakamlarına çevirme kodlarımız da bu kadar arkadaşlar. En fazla 10000 ‘e kadar yazmışlar. Dediğim gibi bu kodları ben yazmadım. Test ettim çalışıyor o yüzden eğitim setime eklemek istedim.

İlgili İçerik  C# DataTable "Bu satır başka bir tabloya ait" Hatası Çözümü

C# Girilen Sayıyı Roma Rakamına Çevirmek, dersimizde bu kadar arkadaşlar. Diğer derslerimizde görüşmek üzere.

Bu dersimde o projenin içerisinde bir klasör olarak yerini almıştır. Buraya tıklayarak Github projeme ulaşabilirsiniz.

C# eğitim seti sayfasına gitmek için tıklayabilirsiniz.

Sağlıcakla ve takipte kalın. 😉

C# Kombinasyon Hesaplama
C# Linq To XML ile XML Dosyalarla Çalışmak