[]

C# basit bir soru

0-999 arası sayıları yazıya dönüştürme programı hazırladım lakin 12345 yazınca yai5 haneli sayı girince son 3 hanes,yi yazıyor nasıl giderebilirim bu durumu ...


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");

}
}
}

 
int sayi, i = 1;
//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
i = 0;
} while (i == 1);

olması lazım bu kısmın.

not: az önce bir şey yazmıştım, yanlış yapmışım, sildim.
  • lemmiwinks  (26.03.12 14:05:04) 
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
{
basla:
Console.Write("Sayıyı giriniz> ");
sayi = Convert.ToInt32(Console.ReadLine());
if (sayi > 999 || sayi < 0)
}
Console.WriteLine("Girdiğiniz sayı 0 ile 999 arasında olmalıdır.\n");
goto basla;
}

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.

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");

}
}
}
  • ugiii  (26.03.12 14:48:36) 
sayıyı 3er 3er basamaklara böl. sonra her üçlü grup için yukardakini çağır. araya da bin, milyon, milyar ları serpiştir.


  • kta  (26.03.12 14:52:42) 
1
buraya yazılanların hakları Sir Anthony Hopkins'e aittir.
yazan eden compumaster, ilgilenen eden fader
modere edenler angelus, Artibir, aychovsky, baba jo, basond, compumaster, deckard, duyulmasi gerektigi kadar, fader, fraise, groove salad, kahvegibi, kaymaktutmayansicaksut, kibritsuyu, monstro, pandispanya, robin, ron dennis
bu sitede yazılanların hiçbiri doğru değildir. site içeriği küçükler için sakıncalı olabilir. yazılardan yazarları sorumludur. kaynak göstermeden alıntılanamaz. devlet tarafından atanmış bir kurumun internet üzerinde kimin hangi bilgiye ulaşıp ulaşamayacağına karar vermesi insan haklarına aykırıdır. web siteleri kullanıcıların istekleri doğrultusunda bağlandıkları yerlerdir. kullanıcılar isterlerse bir web sitesine bağlanmayabilirler. bu güçleri ve imkanları mevcuttur. bir kullanıcı bir siteye bağlanmak istiyorsa bu onun tercihi ve hakkıdır. bağlanmak istemiyorsa bu yine onun tercihi ve hakkıdır. halkın kendisine hizmet etmesi için görevlendirdiği kurumlar hadlerini aşıp halka neye ulaşıp ulaşmayacağını bilmeyen cahil cühela muamelesi edemezler. ebeveynlerin çocuklarını sakıncalı içeriklerden koruması için çok sayıda bedava ve ücretli yazılım mevcuttur. bu yazılımlar bir web tarayıcısını kullanmaktan daha karmaşık teknik bilgi gerektirmemektedir. devletin milletini küçük düşürmesi ve ebleh yerine koyması yasaktır. Skimlinks ile linkler üzerinden yönlendirme payı alınmaktadır.