ايران ويج

نسخه‌ی کامل: تبدیل عدد به حروف
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
سلام دوستان
من می خوام باید یه برنامه بنویسم که هر عددی رو که از ورودی دریافت می کنه به حروف فارسی بنویسه. مثلا 23 رو بنویسه بیست وسه
نمی دونم چه کار باید کرد.ممنون میشم از دوستان منو راهنمایی وکمک کنن
شما به 2 تابع نیاز داری 1 تابع که عدد رو 3 رقم 3 رقم جدا میکنه و حساب میکنه چند تا 3 رقم جدا شد و دومی یه تابع که 3 رقم رو میگیره و به حروف مینویسه
شما اول باید 3 رقم 3 رقم جدا کنی تا ببینی عددت تو چه بازه ای هست مثلا هزاره؟ میلیونه؟ میلیارده؟
بعد از ابتدا شروع میکنی
اول تابع 2
شما نیاز به 3 ارایه 9 تایی دارین این ارایه ها از 1 تا 9 طول دارن که اعداد رو به حروف داخلش نوشته شده باشه
مثلا
یکان= یک، دو،سه،.....،نه
بین=ده،یازده،دوازده،سیزده،....،نوزده
دهگان=ده،بیست،سی،....،نود
صدگان=یکصد،دویست،سیصد،.....،نهصد
خروجی تابع 2 string هست وقتی شما 3 رقم رو جدا میکنین و بهش پاس میدین این تابع اول 3 رقم رو جدا میکنه و از داخل ارایه یکان -دهگان-صدگان رو میخونه با یک و بعد هر کدوم میزاره و به خروجی میفرسته مثلا
204 رو بهش میدی
یکان=4
دهگان=0
صدگان=2
هر کدام رو تو یه select case چک میکنیم که چه عددی هست
البته اینجا واسه دهگان یه نکته انحرافی هست باید چک کنی بین 10 و 19 هست یا نه
پس میشه دویست و دهگان که 0 هست ونداریم و یکان=4 پس میشه دویست و چهار و به تابع اول ارسال میکنه
تابع اول هم به یک ارایه مربوطه به این صورت و طولش از 2 تا 4هست
رقم=هزار،میلیون،میلیارد
حالا تو یه for حساب میکنیم
12030456
12
030
456
خب اولی 12 هست میره تو تابع 2 و دوازده میاد بیرون 3ومین المانش میلیون هست پس میشه 12 میلیون حالا 3رقم بعدی میره تو تابع 2 وخروجی اون 30 هست و دومین المان ارایه رقم هم هزار هست که میشه سی هزار و به 12 میلیون اضافه میشه و در نهایت 3 رقم اخر که در مجموع میشه 12 میلیون و سی هزار و چهارصد و پنجاه و شش
من هم چند وقت پیش یک برنامه کامل در این مورد نوشتم که در وبلاگم در اینجا منتشر کردم.
یک DLL در این مورد نوشتم که میتونید ازش استفاده کنید.

تقربیا" از روشی که دوستمون در بالا گفتند استفاده کردم

[تصویر:  connum2txt-011.jpg]
تبدیل اعداد به رشته
کد:
public class NumberToString
  {  
    private static string[] yakan = new string[10] { "صفر", "یک", "دو", "سه", "چهار", "پنج", "شش", "هفت", "هشت", "نه" };  
    private static string[] dahgan = new string[10] { "", "", "بیست", "سی", "چهل", "پنجاه", "شصت", "هفتاد", "هشتاد", "نود" };  
    private static string[] dahyek = new string[10] { "ده", "یازده", "دوازده", "سیزده", "چهارده", "پانزده", "شانزده", "هفده", "هجده", "نوزده" };    
    private static string[] sadgan = new string[10] { "", "یکصد", "دوصد", "سیصد", "چهارصد", "پانصد", "ششصد", "هفتصد", "هشتصد", "نهصد" };  
    private static string[] basex = new string[5] { "", "هزار", "میلیون", "میلیارد", "تریلیون" };  
  
  
    private static string getnum3(int num3)  
    {  
      string s = "";  
      int d3, d12;  
      d12 = num3 % 100;  
      d3 = num3 / 100;  
      if (d3 != 0)  
        s = sadgan[d3] + " و ";  
      if ((d12 >= 10) && (d12 <= 19))  
      {  
        s = s + dahyek[d12 - 10];  
      }  
      else  
      {  
        int d2 = d12 / 10;  
        if (d2 != 0)  
          s = s + dahgan[d2] + " و ";  
        int d1 = d12 % 10;  
        if (d1 != 0)  
          s = s + yakan[d1] + " و ";  
        s = s.Substring(0, s.Length - 3);  
      };  
      return s;  
    }  
  
    public string num2str(string snum)  
    {  
      string stotal = "";  
      if (snum == "0")  
      {  
        return yakan[0];  
      }  
      else  
      {  
        snum = snum.PadLeft(((snum.Length - 1) / 3 + 1) * 3, '0');  
        int L = snum.Length / 3 - 1;  
        for (int i = 0; i <= L; i++)  
        {  
          int b = int.Parse(snum.Substring(i * 3, 3));  
          if (b != 0)  
            stotal = stotal + getnum3(b) + " " + basex[L - i] + " و ";  
        }  
        stotal = stotal.Substring(0, stotal.Length - 3);  
      }  
      return stotal;  
    }

}
این سورس کامل تبدیل عدد به حروف توی دلفی هست که کار محاسبه سود وام بانکی رو هم انجام میده.
امیدوارم مفید واقع بشه.

توقعی ندارم ولی اگه خواستید یه صلوات به نیت تعجیل در ظهور امام زمان بفرستید.

موفق باشید.
(۲۴-دى-۱۳۹۳, ۰۹:۴۸:۵۷)komeyl نوشته است: [ -> ]این سورس کامل تبدیل عدد به حروف توی دلفی هست که کار محاسبه سود وام بانکی رو هم انجام میده.
امیدوارم مفید واقع بشه.

توقعی ندارم ولی اگه خواستید یه صلوات به نیت تعجیل در ظهور امام زمان بفرستید.

موفق باشید.

سلام به ایرانویچ خوش امدید
لطفا به تاریخ پست توجه کنید!!