Trang 1 trên tổng số 2 12 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 16 kết quả

Đề tài: Code tính e mũ x | e^x =1+x/1! +x^2/2! +....+ x^n/n! - Kết quả ở bài làm lại nhỏ hơn trong máy tính là sao?

  1. #1
    Ngày gia nhập
    03 2009
    Bài viết
    61

    Wink Code tính e mũ x | e^x =1+x/1! +x^2/2! +....+ x^n/n! - Kết quả ở bài làm lại nhỏ hơn trong máy tính là sao?

    Nhập một số c>0(vi du c=0.0001) va một số thực x rồi tính e^x
    e^x =1+x/1! +x^2/2! +....+ x^n/n!
    với n đủ lớn sao cho |x^n/n! |<=c
    Đây là code ,mình thử với máy tính thì kết quả ở bài làm lại nhỏ hơn trong máy tính
    Mọi người xem giúp xem có sai sót gì không
    Cảm ơn nhiều nhé !!!
    C Code:
    1.  /* Tinh e mu x */
    2.  
    3. #include<stdio.h>
    4. #include<conio.h>
    5. float Tinh(float c,float x)
    6. {
    7.   float x_mu=1,e=1;
    8.   int n_gt=1,i=1;
    9. while(x_mu/n_gt>c)
    10. {
    11.   e=e+x_mu/n_gt;
    12.   i++;
    13.   x_mu=x_mu*x;
    14.   n_gt=n_gt*i;
    15. }
    16. return e;
    17. }
    18. void main()
    19. {
    20. float c,x;
    21. printf("\nc=");
    22. scanf("%f",&c);
    23. printf("\nx=");
    24. scanf("%f",&x);
    25. printf("\ne mu %2.f=%6.2f",x,Tinh(c,x));
    26. getch();
    27. }

  2. #2
    Ngày gia nhập
    05 2008
    Bài viết
    11

    MỚI CÓ 1 NGÀY MÀ LÂU GÌ BẠN.
    mình thấy bạn khai báo hàm:
    C Code:
    1. float Tinh(float c,float x)
    mà ở trong thân hàm lại ko có sử dụng biến "float x"
    C Code:
    1. while(x_mu/n_gt>c)
    2. {
    3.   e=e+x_mu/n_gt;
    4.   i++;
    5.   x_mu=x_mu*x;
    6.   n_gt=n_gt*i;
    7. }

    với lại mình test thử, khi cho x=0 thì cho kết quả sai.
    buồn buồn viết nhãm send chơi
    ai ngờ viết thiệt bùn ơi là bùn
    Mr Nguyễn

  3. #3
    Ngày gia nhập
    03 2009
    Bài viết
    61

    Mình làm được rồi bạn à.Dù sao cũng cảm ơn ý kiến đóng góp của bạn nhé

  4. #4
    Ngày gia nhập
    06 2011
    Bài viết
    2

    Lightbulb Code tính e mũ x | e^x =1+x/1! +x^2/2! +....+ x^n/n! Xem giúp mình có sai gì không?

    nhập một số thực x rồi tính e^x
    e^x =1+x/1! +x^2/2! +....+ x^n/n!
    với n đủ lớn sao cho |x^n/n! |<=c (lấy c=0.0001)
    Đây là code ,mình thử với máy tính thì kết quả ở bài làm lại nhỏ hơn trong máy tính
    Mọi người xem giúp xem có sai sót gì không?.Thank

    C Code:
    1. #include <stdio.h>
    2. #include <conio.h>
    3.  
    4. int main()
    5. {
    6.    
    7.     float c=0.0001,x, mu=1,s=0;
    8.     int gt=1,i=1;
    9.     printf("x=");
    10.     scanf("%f",&x);
    11.  
    12.     while(mu/gt>c)
    13.         {
    14.             s=s+1.0*(mu/gt);
    15.             i++;
    16.             mu=mu*x;
    17.             gt=gt*i;
    18.         }
    19.     printf("s: %4.6f",s);
    20.     getch();
    21. }

  5. #5
    Ngày gia nhập
    07 2010
    Nơi ở
    chỗ kín
    Bài viết
    446

    sai rồi,
    sửa int gt=1,i=1; thành int gt=1,i=0;

  6. #6
    Ngày gia nhập
    04 2010
    Bài viết
    1,534

    Mặc định Code tính e mũ x | e^x =1+x/1! +x^2/2! +....+ x^n/n! - Kết quả ở bài làm lại nhỏ hơn trong máy tính là sao?

    Bài của bạn đếm không đúng, trị mu chạy sau trị gt một bậc

    while(mu/gt>c)
    {
    s=s+1.0*(mu/gt);
    i++;
    mu=mu*x;
    gt=gt*i;
    printf("%4.6f %4.6f", mu, gt); // thêm dòng này vào chạy thử sẽ thấy lỗi
    }

  7. #7
    Ngày gia nhập
    06 2011
    Bài viết
    2

    Trích dẫn Nguyên bản được gửi bởi pkthanh92 Xem bài viết
    sai rồi,
    sửa int gt=1,i=1; thành int gt=1,i=0;
    cảm ơn ý kiến của bạn nhé!

    Trích dẫn Nguyên bản được gửi bởi VoTichSu Xem bài viết
    Bài của bạn đếm không đúng, trị mu chạy sau trị gt một bậc

    while(mu/gt>c)
    {
    s=s+1.0*(mu/gt);
    i++;
    mu=mu*x;
    gt=gt*i;
    printf("%4.6f %4.6f", mu, gt); // thêm dòng này vào chạy thử sẽ thấy lỗi
    }
    cảm ơn ý kiến đóng góp của bạn.

  8. #8
    Ngày gia nhập
    07 2010
    Nơi ở
    chỗ kín
    Bài viết
    446

    Trích dẫn Nguyên bản được gửi bởi VoTichSu Xem bài viết
    Bài của bạn đếm không đúng, trị mu chạy sau trị gt một bậc

    while(mu/gt>c)
    {
    s=s+1.0*(mu/gt);
    i++;
    mu=mu*x;
    gt=gt*i;
    printf("%4.6f %4.6f", mu, gt); // thêm dòng này vào chạy thử sẽ thấy lỗi
    }
    không đúng rồi..

  9. #9
    Ngày gia nhập
    04 2010
    Bài viết
    1,534

    Trích dẫn Nguyên bản được gửi bởi pkthanh92 Xem bài viết
    không đúng rồi..
    Vậy sao? Có lẽ cách tính tay của mình nhầm.

    Explain Code:
    1. mu =1, s = 0
    2. gt = 1, i = 1
    3.  
    4. (vòng lặp while : mu/gt = 1; 1 > 0.0001 : true)
    5. {
    6. s=s+1.0*(mu/gt);  ==> s = 0 + 1.0*(1/1) = 1
    7. i++;   ==> i = 1 + 1 = 2
    8. mu=mu*x;   ==> mu = 1* x = x
    9. gt=gt*i;   ==> gt = 1+2 = 2
    10. ==> mũ mới bậc 1, giai thừa đã sang bậc 2
    11. }

    Cách debug bằng tay đâu có khó. Chỉ việc in code vòng lặp ra vài lần trên giấy rồi dùng bút chì tính từng vòng một.

  10. #10
    Ngày gia nhập
    12 2010
    Nơi ở
    Hanoi, Vietnam, Vietnam
    Bài viết
    687

    chuyển như thế này mới đúng !
    C Code:
    1. while(mu/gt>c)
    2. {
    3. s=s+1.0*(mu/gt);
    4.  
    5. mu=mu*x;
    6. gt=gt*i;
    7. i++;
    8. }

Các đề tài tương tự

  1. code form tách hộ trong quản lý nhân khẩu
    Gửi bởi haphonui trong diễn đàn Nhập môn lập trình C#, ASP.NET
    Trả lời: 3
    Bài viết cuối: 10-11-2012, 06:57 AM
  2. code cắt bỏ space thừa trong chuỗi. ko hiện thị kết quả và ko hiện thị lỗi
    Gửi bởi mak123 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 3
    Bài viết cuối: 19-02-2012, 02:51 PM
  3. Quản lý source code trong mạng internet bằng phần mềm nào?
    Gửi bởi coldheart trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 6
    Bài viết cuối: 27-10-2010, 11:23 AM
  4. Code quản lý từ vựng trong DevC !! Anh chị giúp đỡ em
    Gửi bởi dichume trong diễn đàn Thắc mắc chung
    Trả lời: 5
    Bài viết cuối: 19-09-2010, 08:55 PM
  5. Code sử dụng vector để quản lý bảng điểm trong lập trình C++
    Gửi bởi anhhaibi trong diễn đàn Thảo luận, góp ý code C/C++ của bạn
    Trả lời: 14
    Bài viết cuối: 28-04-2009, 08:16 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn