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

Đề tài: Bài tập C | Tính biểu thức toán học

  1. #1
    Ngày gia nhập
    03 2009
    Nơi ở
    quan binh thanh
    Bài viết
    36

    Exclamation Bài tập C | Tính biểu thức toán học

    các huynh tính giùm bài này
    s=(x^2)/1!-(x^4)/3!-(x^6)/5!+(x^8)/7!-...
    quy luật 1 dấu cộng rồi đến hai dấu trừ,thông số nhập là x và epselon

  2. #2
    Ngày gia nhập
    08 2008
    Nơi ở
    Liên Bang Nga
    Bài viết
    46

    Em lập lấy một cái hàm xét dấu
    Code:
    int sign(int n)
    {
        n = (int) (n/2);
        if(n% == 0) return 1;
        else return -1;
    }
    Khi đó biểu thức của em sẽ là tổng của sign(n)*x^(2*n)/(n!)
    Tôi thường thích những cái gì mà tôi không bao giờ có được...

  3. #3
    Ngày gia nhập
    03 2009
    Nơi ở
    quan binh thanh
    Bài viết
    36

    có huynh nào biễu diễn bằng code không, đừng dùng mảng vì em chưa học tới đó

  4. #4
    Ngày gia nhập
    11 2006
    Bài viết
    633

    Tôi viết tạm bằng mã giả, phần còn lại dành cho bạn
    Code:
    s = 0;
    i = 0;
    while ( /*gì gì đó*/)
    {
         temp = x ^ ((i + 1) * 2) / ((i * 2) + 1)!;
         s = s + (i % 3 == 0 ? temp : -temp);
         ++i;
    }

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

    Để em giải thử nha anh huynguyen

    nguoingu ơi, code của mình nè

    Không biết có đúng ko, mọi người test lại dùm mình nhé !

    C Code:
    1. #include<stdio.h>
    2. #include<math.h>
    3. void Nhap_N(int &n,double &x)
    4. {
    5.     do{
    6.         printf("\nNhap n = ");
    7.         scanf("%d",&n);    
    8.         printf("\nNhap x = ");
    9.         scanf("%lf",&x);
    10.         if(n<=1)
    11.             printf("\nn > 1 , Nhap sai !");
    12.     }while(n<=1);
    13. }
    14. long double Giai_Thua(int n)
    15. {
    16.     long double gt=1;
    17.     for(int i=n;i>=2;i--)
    18.         gt = gt * i;
    19.     return gt;
    20. }
    21. void Tong(int n,double x)
    22. {
    23.     printf("\t    Luy thua\t\t\t\t       Giai thua\tDau     Ket qua");
    24.  
    25.     int dau=1;
    26.     long double lt=1,gt=1,S=0;
    27.     for(int i=1;i<=n*2;i+=2)
    28.     {
    29.         lt = pow(x,i+1);
    30.         gt = Giai_Thua(i);
    31.  
    32.         if(i%3 == 1)
    33.             dau = 1;
    34.         else
    35.             dau =-1;
    36.  
    37.         S = S + dau*lt/gt;
    38.  
    39.         printf("\n%20.0lf",lt);   //  Phan nay minh test lai cho chac thoi !
    40.         printf("\t%40.0lf",gt);   //  Phan nay minh test lai cho chac thoi !
    41.         printf("\t%d",dau);       //  Phan nay minh test lai cho chac thoi !
    42.         printf("\t%3.15lf",S);    //  Phan nay minh test lai cho chac thoi !
    43.     }
    44.     printf("\n\n\nKet qua S = %.15lf",S);
    45. }
    46. void main()
    47. {
    48.     int n;
    49.     double x;
    50.     Nhap_N(n,x);
    51.     Tong(n,x);
    52. }
    Đã được chỉnh sửa lần cuối bởi basilisk : 28-03-2009 lúc 04:41 PM.

  6. #6
    Ngày gia nhập
    11 2006
    Bài viết
    633

    Mặc định Bài tập C | Tính biểu thức toán học

    Dùng i = i + 2 thì bình thường quá rồi
    Vẫn dùng ++i mà giải quyết được vấn đề mới hay chứ, xem lại code của tớ nhá

  7. #7
    Ngày gia nhập
    09 2008
    Bài viết
    33

    Mới đầu em cũng định làm cách giống anh đó, nhưng sửa 1 hồi đi theo cách kia lun

    Làm được là em mừng lắm rồi hihi
    Đã được chỉnh sửa lần cuối bởi basilisk : 28-03-2009 lúc 02:23 PM.

  8. #8
    Ngày gia nhập
    09 2008
    Bài viết
    33

    Cách 2 của mình đây !

    C Code:
    1. #include<stdio.h>
    2. void Nhap(int &n,int &x)
    3. {
    4.     do{
    5.         printf("\nNhap n = ");
    6.         scanf("%d",&n);
    7.         printf("\nNhap x = ");
    8.         scanf("%d",&x);
    9.         if(n<1)
    10.             printf("\nError !");
    11.     }while (n<1);
    12. }
    13. double TongS2(int n, int x)
    14. {
    15.     printf("\n\t    Luy thua\t\t\t\t\t\t Giai thua\tDau     Ket qua");
    16.     double t=0,lt=1,gt=1,dau=1;
    17.     for(int i=0;i<n;i++)
    18.     {
    19.         if((i+1)%3==1)
    20.             dau=1;
    21.         else
    22.             dau=-1;
    23.         lt=lt*x*x;
    24.         t=t+dau*(lt/gt);
    25.  
    26.         printf("\n%20.0lf",lt);   //  Phan nay minh test lai cho chac thoi !
    27.         printf("\t%50.0lf",gt);   //  Phan nay minh test lai cho chac thoi !
    28.         printf("\t%.0lf",dau);    //  Phan nay minh test lai cho chac thoi !
    29.         printf("\t%2.7lf",t);     //  Phan nay minh test lai cho chac thoi !
    30.  
    31.         gt=gt*(2*(i+1))*(2*(i+1)+1);
    32.     }
    33.     return t;
    34. }
    35. void main()
    36. {
    37.     int n,x;
    38.     Nhap(n,x);
    39.     double kq2 = TongS2(n,x);
    40.     printf("\n\n\nTong S = %2.20lf",kq2);
    41. }

    Hix, gần thi mấy môn khác rồi mà chưa ôn gì hết, sao mình cứ vào code C thế nhỉ T_T
    Đã được chỉnh sửa lần cuối bởi basilisk : 28-03-2009 lúc 04:52 PM.

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

    Giúp mình bài này:"Nhập vào một dãy số thực a.Tìm dãy con tăng dài nhất của dãy".Mình cảm ơn các bạn đã giúp!

  10. #10
    Ngày gia nhập
    01 2009
    Bài viết
    165

    cái bài s(n) dùng đệ quy thì đơn giản hơn,ko cần viết hàm tính giai thừa luôn.

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