PDA

View Full Version : تبدیل عدد به حروف Dll+Source



mousa1992
دوشنبه 09 بهمن 1391, 21:58 عصر
سلام خوبان
امروز تو سایت همچین موضوعی رو دیدم ی دفعه هوس کردم بنویسمش
قطعا خالی از عیب نیست ولی خب میذارم دوستان هم استفاده کنن

تا 999999999999999 جواب میده کافیه یا بیشترش کنم :لبخند:
بابا رقم از این گنده تر که نداریم :بامزه:

موفق و شاد
عیدتون مبارک :قلب:

erfan_urchin
سه شنبه 10 بهمن 1391, 00:18 صبح
فک کنم این کد هم خوب باشه
http://barnamenevis.org/attachment.php?attachmentid=37458&d=1253831859

mousa1992
سه شنبه 10 بهمن 1391, 00:25 صبح
فک کنم این کد هم خوب باشه
http://barnamenevis.org/attachment.p...8&d=1253831859 (http://barnamenevis.org/attachment.php?attachmentid=37458&d=1253831859)

ممنون از لطفتون
اعدادی مانند 20000 هزار که وارد کنین اشتباه جواب میده 20000 > بیست و هزار

سعید کشاورز
سه شنبه 10 بهمن 1391, 10:03 صبح
سلام خوبان
امروز تو سایت همچین موضوعی رو دیدم ی دفعه هوس کردم بنویسمش
قطعا خالی از عیب نیست ولی خب میذارم دوستان هم استفاده کنن

99171

تا 999999999999999 جواب میده کافیه یا بیشترش کنم :لبخند:
بابا رقم از این گنده تر که نداریم :بامزه:

موفق و شاد
عیدتون مبارک :قلب:

سلام داداش گلم...:قلب:
موسی جان میشه فارسی ( بدون کد) الگوریتم رو توضیح بدی؟ یه توضیح کلی بدی درباره این روش

mousa1992
سه شنبه 10 بهمن 1391, 10:54 صبح
سلام داداشم :قلب:
چشم
متد LessThanTwenty رو تعریف کردم برا اعداد کمتر از بیست که قائده ی خاصی برای اونا وجود نداره و باید برا همشون معادل نوشت
Twenty_nintyNine این متد برای اعداد بین 20 تا 99 هست و روش کار توی این متد به این صورت هست که اگر اعداد بر 10 بخش پذیر باشند مقادر معادل رو با یک دستور switch بدست میاره اگر نه دهگان اونو جدا میکنه و در عدد 10 ضرب میشه و دوباره به همین متد فرستاده میشه و رقم یکان اونو به متد LessThanTwenty میفرسته برای مثال عدد 25 رو در نظر بگیر 25 بر 10 بخش پذیر نیست پس > 25/10 میشه 2 و اونو در 10 ضرب میکنه میشه 20 خب 20 رو دباره میفرستیم به همین متد و 20 بر 10 بخش پذیر هست پس با دستور switch مقدارش بدست میاد بیست و "و" رو بهش اضافه میکنیم خب عددمون 25 بود تا اینجا دهگان اونو بدست اوردیم حالا عدد 25 باقیماندش بر 10 رو محاسبه میکنیم تا یکان اونو بدست بیاریم که 25%10 میشه 5 خب 5 رو میفرستیم به متد LessThanTwenty و مقدارشو به بیست و اضافه میکنیم که در نهایت میشه بیست و پنج
خب برا اعداد 3 رقمی متدی به نام treeDigit نوشتم که اول بررسی میشه اگه عدد بر 100 بخش پذیر بود مقادیرشون خاص هست و باید با دستور switch انتخاب بشن در غیر این صورت با این خط کد
returnValue = treeDigit((num / 100) * 100) + " و " + Twenty_nintyNine(num % 100);
خب این خط کد میاد صدگان عدد رو جدا میشکنه در عدد 100 ضرب میکنه و به خود متد میفرسته و دو رقم باقیمانده رو میفرسته به متد Twenty_nintyNine که دیگه خودش محاسبه میکنه دو رقمیشو

خب تا اینجا بیس کار طراحی شده میرسیم به متد numToAlphabet که یک عدد رو میگیره و 3 رقم 3 رقم از سمت راست اونا رو جدا میکنه و بعد هرکدوم از این اعداد سه رقمی رو میفرسته به متد های مربوطه ( ینی اگه عدد گرفته شده دو رقمی بود میفرسته به متد مربوط به دو رقمی ها و اگه سه رقمی به سه رقمی ....)
خب ما ی ارایه ای داریم که توش اعدادی صحیح داریم
برای مثال عدد 1234567 رو در نظر بگیرید
567,234,1 خب خانه های ارایمون به این صورت در میاد
خب حلقه ای رو ایجاد میکنیم از خانه اخر ارایه شروع میکنیم
خانه اخر مقدار 1 رو داره پس پاسش میدیم به متد LessThanTwenty مقدار بازگشتی هرچی شد باید "میلیون " بشه اضافه بشه چون اندیس خانه ارایه 2 هست پس به این معنی است که 6 تا رقم جلوی اون وجود داره و به همین ترتیب ادامه میدیم
اگه جاییش سوال هست در خدمتم

موفق باشی عزیز

ma.rad
سه شنبه 10 بهمن 1391, 11:03 صبح
کارت خوبه ولی حدود 60 تا کامپوننت تو سایت در این زمینه هست.

mousa1992
سه شنبه 10 بهمن 1391, 11:08 صبح
ممنون عزیز
ترجیح میدم از کدهای خودم استفاده کنم تا کامپوننت های اماده :چشمک:
موفق باشی