برنامه انجام عملیات اصلی اعداد اعشاری

amirepsilon

Active Member
سلام
یه برنامه میخوام که بدون استفاده از نوع داده اعشاری و با int بتونه
جمع و تفریق و ضرت و تقسیم اعشاری رو انجام بده
کسی از دوستان میتونه کمکم کنه ؟
ممنون
یا علی
__________________
 

mo.esmp

Member
برای چاپش بصورت اعشاری میتونی اینکار رو بکنی
HTML:
[LEFT]int x = 80;
int y = 60;
cout <<(float) x/y;[/LEFT]
اما برای نگهداریش میتونی عدد رو تجزیه کنی ودر یک آرایه ذخیره کنی, برای تجزیه عدد رو بر 10 تقسیم میکنی و خارج قسمت رو در یک آرایه ذخیره میکنی, این کا رو تا جایی ادامه میدی که دیگه بر 10 قابل تقسیم نباشه. مثلا اگه عددت 195 بود
HTML:
[LEFT]Array[0] = 1;
Array[1] = 9;
Array[2] = 5;[/LEFT]
به اینصورت در آریه ذخیره کنی و حالا اعداد درون آرایه رو از ایندکس 0 بر عدد مورد نظر تقسیم کن,
مثلا میخوای 195 بر 2 تقسیم کنی
چون تقسیم از چپ به راست صورت میگیره باید ابتدا از 1 شروع کنی چون 1 از 2 کوچکتره باید 1 رو در 10 ضرب کنی و با دومین
عدد آرایه یعنی 9 جمع کنی و حالا بر 2 تقسیم کنی, حالا خارج قسمت میشه 9 که در یک آرایه دیگه ذخیره کنی و خاج قسمت رو که 1 میشه در 10 ضرب کرده و با 5 یعنی سومین عنصر آرایه جمع کنی
حالا باید 15 رو بر 2 تقسیم کنی که خارج قسمت میشه 7 که در آرایه دیگه در مکان دوم ذخیره میکنی و 1 به عنوان باقیمانده باقی میمونه
حالا فقط عدد 1 باقی مونده که از 2 کوچکتره, 1 رو در 10 ضرب کن و یک 0 در مکان سوم آرایه خارج قسمتها که 9 و 7 رو توش ذخیره کردی, قرار بده این صفر مرز اعشاری رو مشخص میکنه یعنی وارد قسمت اعشاری تقسیم شدی
بر گردیم سر ادمه تقسیم :)
خوب حالا 10 رو بر 2 تقسیم میکنی که خارج قسمت 5 میشه و باقیمانده 0, 5 رو در مکان چهارم آرایه خاج قسمتها ذخیره کن و شکر خدا کار تموم میشه. ولی اگه فرضا بعد از 5 باز باقیمانده داشتیم, اگه باقیمانده گوچکتر از علیه تقیسم بود اون در 10 ضرب کن و بر مقسوم علیه تقیسم کن و دیگه نمیخواد در آرایه خارج قسمتها 0 وارد کنی چون وارد قسمت اعشاری تقسیم شدیم و خودت دلیل ریاضیش رو میدونی.

ولی اگه اولین عدد آرایه از مقسوم علیه بزرگتر بود اون رو مستقیم بر مقسوم علیه تقیسم کن و بقیه مراحل رو مطابق بالا انجام بده

برای + - * میتونی همین کا رو بکنی
:D راستش این راه به نظر من رسیدء شایدم الگوریتمش خیلی راحتر از چیزی باشه که من نوشتم
 
آخرین ویرایش:

جدیدترین ارسال ها

بالا