C# form ile 1-9999 arasında girilen bir sayının okunuşunu yazdırma

Herkese merhaba;

Bu yazımızda,C# ile oluşturduğumuz form yardımıyla 1 ile 9999 (1-9999 dahil) arasında girilen bir sayının okunuşunu ekrana yazdıran programı paylaşacağım. Öncelikle programın örnek çıktıları aşağıdaki gibidir.

Programın Ekran çıktıları

Yukarıda görüldüğü gibi bir textboxtan girilen değeri buton yardımıyla okuyup label1 e yazdırıyoruz.

Button1 e tıklanınca yapılacak kodlar aşağıdaki gibidir.

 private void button1_Click(object sender, EventArgs e)
        {
            string sonuc = "";
            String gelen=textBox1.Text;
            char[] ayir = gelen.ToCharArray();
           int kachaneli= ayir.Length;
            if(kachaneli<1||kachaneli>4)//  1 haneliden küçük veya 4 haneden büyük sayıyı kabul etmiyoruz
            {
                MessageBox.Show("Lütfen belirtilen aralıkta sayı giriniz!");
                
            }
            else { 
                if (kachaneli == 1) // girilen sayı tek haneli ise
            {
                string ek="";
                if (ayir[0] == '1') { ek = "bir"; }
                /** her bölümde bir için özel kontrol yapıyoruz
                çünkü genel metodunda yüzler ve binler 
                okunurken 1 yazmadık eğer yazsaydık biryüz birbin gibi okuma gerçekleşirdi. **/
                sonuc += genel(ayir[0].ToString(), ek);
            }

            else if (kachaneli == 2)
            {
                string ek = "";
                if (ayir[1] == '1') { ek = "bir"; }
                sonuc += onlar(ayir[0].ToString());
                sonuc += genel(ayir[1].ToString(), ek);
            }
            else if (kachaneli == 3)
            {
                string ek = "";
                if (ayir[2] == '1') { ek = "bir"; }
                sonuc += genel(ayir[0].ToString(), "yüz");
                sonuc += onlar(ayir[1].ToString());
                sonuc += genel(ayir[2].ToString(), ek);
            }
            else if (kachaneli == 4)
            {
                string ek = "";
                if (ayir[3] == '1') { ek = "bir"; }
                sonuc += genel(ayir[0].ToString(), "bin");
                sonuc += genel(ayir[1].ToString(), "yüz");
                sonuc += onlar(ayir[2].ToString());
                sonuc += genel(ayir[3].ToString(), ek);
            }
            }
            label1.Text = sonuc;
        }

Yukarıdaki kod bloğunda 2 adet metod kullandık bunlardan bir tanesi birler, yüzler, binler basamaklarını aynı yerde hesaplayan metod. Diğeri ise onlar kısmını hesaplatmak için oluşturuldu. Neden derseniz birler basamağı sadece yazıldığı gibi ,yüzler ve binler ise sonuna yüz veya bin eki getirilerek(sadece 1 hariç,yani biryüz,birbin yoktur) okunur;

Örneğin;
5=beş 7= yedi 200=iki +yüz 5000 =5+bin

Fakat onlar basamağı biraz farklıdır ek getirilerek yapılamaz.
Yani, on, yirmi,otuz .. şeklinde ifade etmek gerekir.

Bu yüzden iki farklı method bulunuyor.

        public string genel(String a,String ek)
        {
            string deger="";
            int hangisi = int.Parse(a);
            switch (hangisi)
            {
                case 1:
                  deger= ek;
                  break;
                case 2:
                    deger = "iki"+ek;
                    break;
                case 3:
                    deger = "üç"+ek;
                    break;
                case 4:
                    deger = "dört"+ek;
                    break;
                case 5:
                    deger = "beş"+ek;
                    break;
                case 6:
                    deger = "altı"+ek;
                    break;
                case 7:
                    deger = "yedi"+ek;
                    break;
                case 8:
                    deger = "sekiz"+ek;
                    break;
                case 9:
                    deger = "dokuz"+ek;
                    break;
            }
            return deger;
        }
        public string onlar(String a)
        {
            string deger = "";
            int hangisi = int.Parse(a);
            switch (hangisi)
            {
                case 1:
                    deger = "on";
                    break;
                case 2:
                    deger = "yirmi" ;
                    break;
                case 3:
                    deger = "otuz" ;
                    break;
                case 4:
                    deger = "kırk";
                    break;
                case 5:
                    deger = "elli";
                    break;
                case 6:
                    deger = "altmış";
                    break;
                case 7:
                    deger = "yetmiş";
                    break;
                case 8:
                    deger = "seksen";
                    break;
                case 9:
                    deger = "doksan";
                    break;
            }
            return deger;
        }

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir