11 Temmuz 2011 Pazartesi

C# Sayıyı Yazıya Çevirmek (55 – ElliBeş gibi.)

  int sayi, i = 0;
            //Klavyeden girilecek sayinin 0 ile 999 sınırlarında
            //olup olmadığı kontrol ediliyor. Eğer değilse,
            //uyarı verilip, yeni bir sayı isteniyor. Bu işlem
            //doğru bir değer girilene kadar devam ediyor.
            do
            {
                Console.Write("Sayıyı giriniz> ");
                sayi = Convert.ToInt32(Console.ReadLine());
                if (sayi > 9999 || sayi < 0)
                Console.WriteLine("Girdiğiniz sayı 0 ile 9999 arasında olmalıdır.\n");
                else
                break;
            } while (i == 1);
            Console.WriteLine("{0} sayısı \n\n", sayi);
            //Verilen sayıyı, yazıyla ifade edebilmemiz için,
            //yüzler, onlar ve birler basamaklarına ayırmamız
            //gerekmektedir.
            //Sayının yüzler basamağı ayrıştırılıyor.
            //Bunun için sayıyı, 100'e bölmek yeterli.
            //YÜZLER BASAMAĞI:
            switch (sayi / 1000)
            {
                case 9: Console.Write("dokuzbin"); break;
                case 8: Console.Write("sekizbin"); break;
                case 7: Console.Write("yedibin"); break;
                case 6: Console.Write("altıbin"); break;
                case 5: Console.Write("beşbin"); break;
                case 4: Console.Write("dörtbin"); break;
                case 3: Console.Write("üçbin"); break;
                case 2: Console.Write("ikibin"); break;
                case 1: Console.Write("bin"); break;
            }
            switch (sayi%1000/100)
            {
                case 9: Console.Write("dokuzyüz"); break;
                case 8: Console.Write("sekizyüz"); break;
                case 7: Console.Write("yediyüz"); break;
                case 6: Console.Write("altıyüz"); break;
                case 5: Console.Write("beşyüz"); break;
                case 4: Console.Write("dörtyüz"); break;
                case 3: Console.Write("üçyüz"); break;
                case 2: Console.Write("ikiyüz"); break;
                case 1: Console.Write("yüz"); break;
            }
            //Onlar basamağını bulmak için, sayının
            //yüze bölümünden kalan değeri, 10'a
            //bölüyoruz. Yüzler basamağını bir önceki
            //adımda ele aldığımız için, bu adımda,
            //sayının yüze bölümünü değil, bölümünden
            //kalanı kullandık.
            //ONLAR BASAMAĞI:
            switch ((sayi % 100) / 10)
            {
                case 9: Console.Write("doksan"); break;
                case 8: Console.Write("seksen"); break;
                case 7: Console.Write("yetmiş"); break;
                case 6: Console.Write("altmış"); break;
                case 5: Console.Write("elli"); break;
                case 4: Console.Write("kırk"); break;
                case 3: Console.Write("otuz"); break;
                case 2: Console.Write("yirmi"); break;
                case 1: Console.Write("on"); break;
            }
            //Birler basamağını bulabilmek için, sayının
            //10'a bölümünden kalana bakıyoruz.
            //BİRLER BASAMAĞI:
            switch ((sayi % 10))
            {
                case 9: Console.Write("dokuz"); break;
                case 8: Console.Write("sekiz"); break;
                case 7: Console.Write("yedi"); break;
                case 6: Console.Write("altı"); break;
                case 5: Console.Write("beş"); break;
                case 4: Console.Write("dört"); break;
                case 3: Console.Write("üç"); break;
                case 2: Console.Write("iki"); break;
                case 1: Console.Write("bir"); break;
            }
            //Eğer sayı 0 ise, yukarda ki düzeneğe
            //uymayacağından, onu ayrıca ele alıyoruz.
            if (sayi == 0)
                Console.WriteLine("sıfır");
            Console.Write(" şeklinde okunur.\n\n\n\n");

0 yorum:

Yorum Gönder