تبلیغات :
آکوستیک ، فوم شانه تخم مرغی، صداگیر ماینر ، یونولیت
دستگاه جوجه کشی حرفه ای
فروش آنلاین لباس کودک
خرید فالوور ایرانی
خرید فالوور اینستاگرام
خرید ممبر تلگرام

[ + افزودن آگهی متنی جدید ]




صفحه 1 از 2 12 آخرآخر
نمايش نتايج 1 به 10 از 14

نام تاپيک: کمک درباره ی الگوریتم تبدیل عدد با رقم به حروف

  1. #1
    داره خودمونی میشه mbsh's Avatar
    تاريخ عضويت
    Nov 2006
    پست ها
    123

    پيش فرض کمک درباره ی الگوریتم تبدیل عدد با رقم به حروف

    سلام دوستان
    من تو قسمتی از یه برنامه می خوام عددی رو که از کاربر گرفته شده به صورت حروفی چاپ کنم. خودم هر چی فکر می کنم نمی دونم چه جوری باید این کارو بکنم. می شه اگه چیزی به ذهنتون می رسه یه ذره راهنماییم کنید.( در ضمن تو ++c )

  2. #2
    آخر فروم باز hamidreza_buddy's Avatar
    تاريخ عضويت
    Sep 2004
    محل سكونت
    شریف
    پست ها
    1,167

    پيش فرض

    3561 رو در نظ بگیرید
    حالا از راست جلو برید. تو اولین گام دو تا رقم بردارید: 61 و بنویسید shasto yek
    حالا به ترتیب جلو برید (توجه کنید باید شمارۀ رقم رو داشته باشید. مثلاً 5 توی مکان سومه پس صدگانه)
    بنویسید: Punsad o
    بعد برین دو رقم بعدی: 03 در هزارگان. میشه Se Hezaro

    توجه کنید که باید سه رقم یه بار دو تایی بخونیم. چون مثلاً اگه 17 بود و ما یکی یکی می خوندیم اشتباه می شد.
    13514
    chardah
    punsad o
    sizdah hezar o
    باید برای هر index رقم یک تابع جداگانه بنویسید (احتمال زیاد توی صورت مسئله قید شده که طول عدد محدوده)

  3. #3
    داره خودمونی میشه DAN271's Avatar
    تاريخ عضويت
    Jun 2007
    محل سكونت
    اعماق ذهن تو
    پست ها
    92

    پيش فرض

    سلام...
    بزار حرفهای حمید رضا رو کامل تر کنم...
    ابتدا عددت رو به رشته تبدیل کن (تا بتونی بفهمی هر عدد تو چه مرتبه ای هست)
    بعد یه حداکثری واسه عددت تعیین کن... (مثلا بگو تا صدگان..)
    بعد باید عدد حروفی رو برای هر مرتبه تعیین کنی ... مثلا

    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    همین جوری با استفاده از enum دهگان و یکان رو تعریف کن...
    بعد از سمت راست با استفاده از عدد مربوطه و مرتبه آن ، از مرتبه مورد نظر که با استفاده از enum تعریف شد عدد حروفی مربوطه رو بنویس...
    تو یه حلقه این کار رو بکن و آخر حلقه یه 'O' یعنی حرف 'و' بزار اگر به یکان نرسیدی... اگه یکان بود به اون نیازی نیست...

    بازم اگه تو کدش مشکل داشتی بگو..
    موفق باشی

  4. #4
    داره خودمونی میشه mbsh's Avatar
    تاريخ عضويت
    Nov 2006
    پست ها
    123

    پيش فرض

    خیلی ممنونم از راهنماییاتون،
    ببیید من باید بزرگ ترین عددم 8 رقم باشه و عدد رو از کاربر بگیرم و بعد حروفیش کنم. با توجه به توضیحاتتون باید اول یه آرایه داشته باشم که اعداد 1 تا 9 رو حروفی توش ذخیره کنم و بعد یه آرایه که اعداد 11 تا 19 رو و بعد یه آرایه که اعداد 10 تا 90 رو و یه آرایه که اعداد 100 تا 900 رو و به همین ترتیب.
    بعد مثلا اگه کاربر وارد کرد 9876 چون عدد 4 رقمیه اول باید تقسیمش کنم به 1000 که خارج قسمت بشه 9 و بنویسم 9 به همرا یه دونه هزار و یه دونه O و بعد باقیمانده رو به 100 تقسیم کنم که بشه 8 و به همراه یه دونه صد و یه دونه O بنویسمش و به همین ترتیب.
    ولی اولا عدد که همیشه چهار رقمی نیست که من اول به 1000 و بعد به 100 و ... تقسیمش کنم. ثانیا هم وقتی حاصل تقسیم اول شد 9 من چه حوری باید بفهمم که الان باید عضو نهم از آرایه ای که اعداد تک رقمی توش ذخیره شدن رو باید استفاده کنم؟ و یا ترتیب گذاشتن این هزار و صد و اینا به صورت حروفی رو باید از کجا بفهمم؟
    بازم ممنونم که کمکم می کنید.

  5. #5
    داره خودمونی میشه DAN271's Avatar
    تاريخ عضويت
    Jun 2007
    محل سكونت
    اعماق ذهن تو
    پست ها
    92

    پيش فرض

    خیلی ممنونم از راهنماییاتون،
    ببیید من باید بزرگ ترین عددم 8 رقم باشه و عدد رو از کاربر بگیرم و بعد حروفیش کنم. با توجه به توضیحاتتون باید اول یه آرایه داشته باشم که اعداد 1 تا 9 رو حروفی توش ذخیره کنم و بعد یه آرایه که اعداد 11 تا 19 رو و بعد یه آرایه که اعداد 10 تا 90 رو و یه آرایه که اعداد 100 تا 900 رو و به همین ترتیب.
    بعد مثلا اگه کاربر وارد کرد 9876 چون عدد 4 رقمیه اول باید تقسیمش کنم به 1000 که خارج قسمت بشه 9 و بنویسم 9 به همرا یه دونه هزار و یه دونه O و بعد باقیمانده رو به 100 تقسیم کنم که بشه 8 و به همراه یه دونه صد و یه دونه O بنویسمش و به همین ترتیب.
    ولی اولا عدد که همیشه چهار رقمی نیست که من اول به 1000 و بعد به 100 و ... تقسیمش کنم. ثانیا هم وقتی حاصل تقسیم اول شد 9 من چه حوری باید بفهمم که الان باید عضو نهم از آرایه ای که اعداد تک رقمی توش ذخیره شدن رو باید استفاده کنم؟ و یا ترتیب گذاشتن این هزار و صد و اینا به صورت حروفی رو باید از کجا بفهمم؟
    بازم ممنونم که کمکم می کنید.
    سلام...
    خواهش میکنم...
    گفتی بزرگترین عددت 8 رقمیه پس در نتیجه کوچکتر از اون هم می تونه باشه، برای اینکه بفهمی عددت چند رقمیه باید
    از این فرمول استفاده کنی >> 1+[ Log l n l ]
    بعد که فهمیدی عددت چند رقمیه اون رو تقسیم بر ( 1- تعداد ارقام ) ^ 10 =L میکنی رقم اول از سمت راست رو بدست میاری و با توجه به اینکه الان رو کدوم مرتبه داری کار میکنی ( از طریق L جاری ) و رقم بدست اومده (از طریق تقسیم عددت بر L ) به آرایه ای از رشته ها که اعداد اون مرتبه رو ذخیره کردی (یا با استفاده از enum ) حروف عدد مربوطه رو مینویسی ... بعد یه "O" میزاری به شرط اینکه L=!1 باشه... بعد L=L/10 ... کلا این کارو تو یه حلقه میکنی...
    Last edited by DAN271; 15-07-2007 at 19:55.

  6. #6
    داره خودمونی میشه DAN271's Avatar
    تاريخ عضويت
    Jun 2007
    محل سكونت
    اعماق ذهن تو
    پست ها
    92

    پيش فرض

    در ضمن همون طور که گفتم شما باید عدد حروفی هر مرتبه رو ذخیره کنی یا با استفاده از enum یا با استفاده از آرایه ای از رشته ها...
    به این صورت که... برای یکان (از یک تا نه) برای دهگان ( ده ، بیست ، سی ،... ،نود) تا مرتبه 8

  7. #7
    داره خودمونی میشه mbsh's Avatar
    تاريخ عضويت
    Nov 2006
    پست ها
    123

    9

    سلام و تشکر دوباره
    شرمنده من یه مقدار آی کیوم پایینه.
    ببینید من این جوری نوشتم:
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    (البته بعضی رخط ها ربطی به حروفی کردن نداره.)
    ولی خوب متوجه نشدم. مثلا عدد من هست 56789 و من به دست آوردم که 5 رقمه و حالا اونو تقسیم کردم بر 10 به توان 4 که شده 5 ولی این که الان چه جوری باید بفهمم باید بنویسم پنجاه و بعد O (از طریق l جاری که شما گفتید رو نفهمیدم.میشه این قسمتو یه مقدار بیشتر توضیح بدید.

  8. #8
    داره خودمونی میشه DAN271's Avatar
    تاريخ عضويت
    Jun 2007
    محل سكونت
    اعماق ذهن تو
    پست ها
    92

    پيش فرض

    سلام و خسته نباشید...
    ببخشید که حرفام رو توضیحی مینویسم ، واسه همینه شما سخت متوجه شدید... آخه دوست داشتم کدش رو شما بنویسد ، حالا اونجایی که شما متوجه نشدید یا اصلاحیه ی کدی که نوشتید رو کد میکنم...

    اولا آرایه ای از اشاره گرها یاید نوشته بشه بدین صورت :

    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    به همین صورت تا هر مرتبه ای که حداکثر شماست...

    حالا پارت اصلی برنامه ...
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    بازم شما trace ش کن ، اگه سوال یا مشکلی بود بپرس...
    موفق باشی
    (خیلی سعی کردم ماژولار باشه... ولی تو پست بهم میریزه... ببخشید)
    Last edited by DAN271; 16-07-2007 at 16:49.

  9. #9
    پروفشنال bad_boy_2007's Avatar
    تاريخ عضويت
    Aug 2006
    محل سكونت
    ایران
    پست ها
    803

    پيش فرض

    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

  10. #10
    داره خودمونی میشه DAN271's Avatar
    تاريخ عضويت
    Jun 2007
    محل سكونت
    اعماق ذهن تو
    پست ها
    92

    پيش فرض

    البته این برنامه واسه 11 تا 19 مشکل داره که قبل Swich میتونی یه if بزاری ، خیلی راحت حل میشه... اگه نتونستی بگو بنویسم واست

صفحه 1 از 2 12 آخرآخر

Thread Information

Users Browsing this Thread

هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)

User Tag List

قوانين ايجاد تاپيک در انجمن

  • شما نمی توانید تاپیک ایحاد کنید
  • شما نمی توانید پاسخی ارسال کنید
  • شما نمی توانید فایل پیوست کنید
  • شما نمی توانید پاسخ خود را ویرایش کنید
  •