PDA

نسخه کامل مشاهده نسخه کامل : سری e



hadi beiki
23-12-2008, 14:45
سلام سری e را می خواستم
در ضمن اگه بخوایم عدد را تا چند رقم اعشار بنویسم از نماد علمی استفاده میکنیم
با تشکر
:40:

_H2_
24-12-2008, 00:47
سلام
اگر فرمول سری ریاضی اش کمکتان میکند، سری اش این است:

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

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

hadi beiki
24-12-2008, 08:01
پدر من نخواستم برنامه را بنویسی من گفتم اگه خواستم عددی را تا مقدار معینی اعشار بدست اورم چه کار باید بکنم ای از نماد علمی باید حل بشه یا راه دیگه ای داره؟:13:

_H2_
25-12-2008, 02:29
سلام
من e شما را به نپر ترجمه کردم ولی انگار منظور شما نماد علمی بوده.



سری e را می خواستم
اگه خواستم عددی را تا مقدار معینی اعشار بدست اورم چه کار باید بکنم ای از نماد علمی باید حل بشه یا راه دیگه ای داره؟
یک کمی متوجه نمیشوم!!
یعنی شما میخواهید عدد 2 را تا بیست رقم اعشار به دست اورید؟!

معمولاً از متغییر اعشاری (مثل double) استفاده میکنیم و محاسبات را انجام میدهیم (تقسیم و رادیکال و سینوس و...) بعد این مقدار را تا تعداد معیینی رقم اعشار نمایش میدهیم (به string تبدیل میکنیم، مثلاً با پارامترهای printf)
این درحالی است که دقت (حدود 16 رقمی) double کافی باشد.



اگر به دقت بیشتری احتیاج داشته باشید، دیگر باید خودتان متغییر جدیدی بسازید و اپراتورها را overload کنید و...
یعنی باید آرایه ای برای ذخیره مقادیر تخصیص دهید و چهار عمل اصلی را تعریف کنید.



در محاسبات هم برای حذف ارقام اعشاری میتوان کارهایی کرد ولی به علت ذات ذخیره باینری double شاید کمی دردسرساز شود! مثلاً

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
که مقدار c عدد 3.3333333333333335 خواهد بود ولی مقدار d عدد 3.3300000000000001 خواهد بود که میشود گفت 3.33 است و تا دورقم اعشار برش خورده.!

hadi beiki
25-12-2008, 09:15
خب فکر کنم تو lib c یه چیزی به اسم ccباشه که دقت رو بالا می بره شما می دونید اون چیه؟