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

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




نمايش نتايج 1 به 6 از 6

نام تاپيک: مشکلی در باره برنامه e^x

  1. #1
    حـــــرفـه ای m.beh's Avatar
    تاريخ عضويت
    Mar 2007
    پست ها
    1,089

    پيش فرض مشکلی در باره برنامه e^x

    سلام
    من یک برنامه توی c++ (البته باید توی cمی نوشتم ولی برنامش گیرم نیومد اگه برنامهی c دارید برام بگذارید)
    این برنامه باید محاسبه ی e^x یا exp(x میبود که ط را دریافت کند و تا 50 رقم اعشار e^x از روی سری تیلورش یعنی این سری:

    ...+!e^x=1+x+(x^2)/2!+(x^3)/3!+(x^4)/4
    بدست بیاورد
    راستش این برنامهای که من نوشتم امتحانی بود برای 4 رقم اعشار
    ولی فقط تا x=1 یا حد اکثر x=2 جواب میده از اون به بعد مثل اینکه اعشار زیاد میاره توی float جا نمیگیره اشتباه میکنه اعداد عجیب غریب میده
    تازه اگه هم برای تا 7 رقم اعشار هم کار کنه نمی دونم چهطوری با ید تا 50 رقمشو بنویسم چون توی doubleکمتر از 10 رقم اعشار جا می گیره و توی long double هم که امتحان کردم اصلا نفهمیدم چی کار میکنه
    می خواستم از تابع ()exp که تویmath .h نوشته شده و آماده است کمک بگیرم چون فکر می کنم آن ها هم از همین سری استفاده کرده بودند ولی فایلشو که توی world pad باز کردم چیزی دستگیرم نشد جز این 1 خط

    double _Cdecl exp (double __x);
    میخواستم کمک کنید که چجوری 50 رقم اعشارو می شه توی یک variable ریخت کلا اگه بشه کمکم کنید ممنون می شم. برنامم هم این پایینه:
    #include<stdio.h>
    #include <math.h>
    main(){
    float x, m=0; int j=1,o,i=0,m1,m2 ;char k;
    scanf("%f",&x) ;
    do {m1=m2 ;
    if (i<= 0) j=1;
    else j=j*i ;
    m=m+float(pow(x,i) / j) ;

    m2=int(m*(pow(10,4))) ;
    i+=1 ;
    }
    while ( m2!= m1) ;
    printf("%5.3f",m);
    scanf("%c",k) ;
    return 0;
    }

  2. #2
    در آغاز فعالیت
    تاريخ عضويت
    Dec 2006
    پست ها
    8

    پيش فرض

    FYI:

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

  3. #3
    حـــــرفـه ای m.beh's Avatar
    تاريخ عضويت
    Mar 2007
    پست ها
    1,089

    پيش فرض

    سلام رفتم به آدرسی که گفتی چیزی دستگیرم نشد می شه بیشتر توضیح بدی.
    در ضمن اگه کسی برنامه ی bigfloatداره کدشو برام بذاره ممنون میشم bigintهم داشتید خوبه.

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

    پيش فرض

    این مطلب بیشتر به نحوه الگوریتم نویسی بر میگرده باید از لیست پیوندی یا آرایه استفاده کنی و عمل ذخیره سازی رو شبیه سازی نرم افزاری کنی ، مراحل کار برای لیست پیوندی به این شکله :
    1- ابتدا اعداد رو کاراکتر به کاراکتر با تابع Getche از ورودی میخونی و در صورت اعتبار (اگر نقطه قبلا زده شده بود مجدد پذیرش نشه ، فقط اعداد پذیرش بشه) میخونی و تو یک لیست پیوندی ذخیره میکنی
    2- توابع جمع ، تفریق ، ضرب ، نمایش اعداد رو مینویسی . تابع جمع و تفریق راحته با پشته به راحتی پیاده سازی میشه ، نمایش اعداد هم ساده است فقط میمونه تابع ضرب که خیلی توش باید کار کنی
    3-محاسباتت رو با استفاده از این لیست پیوندی ها (بدون هیچ گونه محدودیت در دقت اعشار) انجام بده

    یک راه خیلی وقت گیر و پر درد سر راه بالایه یه راه دیگه هم هست که البته محدودیتش از روش خودت کمتره ولی بارزم محدوده اونم اینه که اعدادت رو بصورت صحیح ذخیره کن و اعمال پردازشی رو روش انجام بده و در انتها بصورت اعشاری نمایش بده ، مثلا 0.00000002 رو بصورت 2 روش کار کن در انتها در خروجی بصورت E-8 نمایشش بده

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

    پيش فرض

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

  6. #6
    حـــــرفـه ای m.beh's Avatar
    تاريخ عضويت
    Mar 2007
    پست ها
    1,089

    پيش فرض

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

Thread Information

Users Browsing this Thread

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

User Tag List

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

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