Từ 1 tới 2 trên tổng số 2 kết quả

Đề tài: Hỏi về đoạn code tính sin(x)

  1. #1
    Ngày gia nhập
    11 2008
    Nơi ở
    Hà Nội
    Bài viết
    70

    Mặc định Hỏi về đoạn code tính sin(x)

    Dưới đây là đoạn code tính sin(x)
    C Code:
    1. #include <stdio.h>
    2. #include <math.h>
    3.  
    4. double giaithua(double n)
    5. {
    6.    double i, ketqua=1;
    7.  
    8.    for (i=2; i<=n; i++)
    9.      ketqua *= i;
    10.    return ketqua;
    11. }
    12.  
    13. void main()
    14. {
    15.   double ketqua, epsilon, x, n = 1;
    16.  
    17.   printf("\nNhap gia tri x (radian) : ");
    18.   scanf("%lf", &x);
    19.   ketqua = x;
    20.   do {
    21.     epsilon = pow(x, 2*n+1) / giaithua(2*n+1);
    22.     ketqua += pow(-1, n) * epsilon;
    23.     n++;
    24.   } while (fabs(epsilon) > 0.0001);
    25.  
    26.   printf("\nKet qua tinh theo cong thuc = %10.8lf", ketqua);
    27.   printf("\nKet qua tinh theo ham = %10.8lf", sin(x));
    28.   getch();
    29. }

    Trong đoạn code trên mình có những chỗ chưa hiểu mong mọi người giải thích dùm:
    Khi đặt fabs(epsilon) > 0.0001 nghĩa là gì?
    Mình mới bắt đầu học C nên mong các bạn giải thích căn kẽ.
    Đã được chỉnh sửa lần cuối bởi zodjac1990 : 25-11-2008 lúc 07:23 PM.
    Dân thường sống đẹp đè bẹp dân chơi.
    Hi [you]

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

    Công thức này là công thức Maclauren để tính sin(x). fabs(epsilon) nghĩa là khi sai số nhỏ hơn 0.0001 thì dừng lại. Vì công thức tính tổng của Maclauren là tổng vô hạn nên cần phải có điều kiện này để thoát khỏi vòng lặp
    Cũng có thể có 1 cách khác, là cho n=1000000(hoặc lớn hơn để cho kết quả tính chính xác). Không biết như vậy có làm bạn khó hiểu không nhỉ

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

  1. Tại sao lại bỏ Store Proceduce nếu code theo hướng Code First trong MVC3
    Gửi bởi rogerminh2401 trong diễn đàn Thắc mắc lập trình ASP.NET
    Trả lời: 5
    Bài viết cuối: 02-11-2012, 08:22 PM
  2. Trả lời: 5
    Bài viết cuối: 27-04-2012, 07:51 PM
  3. compiler Warning: Unreachable code và chạy sai trong khi code đúng. Vì sao?
    Gửi bởi lovemoney trong diễn đàn Thảo luận, góp ý code C/C++ của bạn
    Trả lời: 19
    Bài viết cuối: 19-01-2012, 10:02 PM
  4. Bài tập C++ Nhập code và name sv vào in ra thì name in đúng nhưng code thì in ra cả 2 code lẫn name
    Gửi bởi spacy0212 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 2
    Bài viết cuối: 27-09-2011, 08:47 AM
  5. Code quản lý sinh viên bằng danh sách lối vòng. Giúp mình thay đổi code kế thừa?
    Gửi bởi caocanha trong diễn đàn Thảo luận, góp ý code C/C++ của bạn
    Trả lời: 6
    Bài viết cuối: 04-05-2009, 03:39 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