Mua hosting giá rất rẻ => Xem ngay
hoc c plus plus gif Bài tập C++

Quảng cáo

Tính S(n) = 1/2 + 3/4 + 5/6 + … + (2n + 1)/( 2n + 2) bằng C / C++

Trong bài viết này chúng ta sẽ thực hiện chương trình tính biểu thức S(n) = 1/2 + 3/4 + 5/6 + …. + (2 * n + 1) / (2 * n + 2) bằng C / C++. Đây là bài tập căn bản khi bắt đầu học bât kỳ một ngôn ngữ lập trình nào.

Mình sẽ thực hiện hai chương trình để tính biểu thức bằng hai ngôn ngữ khác nhau là C và C++.

Quảng cáo

Tính S(n) = 1/2 + 3/4 + 5/6 + …. + (2 * n + 1) / (2 * n + 2) bằng ngôn ngữ C

Ta cần khai báo một biến n kiểu int là mẫu số của phần tử trong biểu thức ((2 * n + 1) / (2 * n + 2)) và biến S kiểu float để lưu trữ kết quả của biểu thức.

Tiếp đến sử dụng vòng lặp do..while để xét điều kiện n >= 1, nếu n < 1 thì yêu cầu nhập lại n.

Để tính biểu thức ta có thể sử dụng một trong hai vòng lặp while hoặc for.

Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.
//tính biểu thức bằng vòng lặp for
  for(int i = 1; i <= n; i++){
    S = S + (float)(2 * i + 1) / (2 * i + 2);
  }

Hoặc:

Quảng cáo

while(i <= n) // với i = 1, S = 0;
  {
     S = S + (float)(2 * i + 1) / (2 * i + 2);
     i++;
  }

Sau khi tính toán được biểu thức và gán cho biến S, thì chỉ cần xuất S ra màn hình bằng printf().

Code:

#include<stdio.h>
int main()
{
  int i, n;
  float S;
  S = 0;
  do
  {
     printf("\nNhập vào số n: ");
     scanf("%d", &n);
     if(n < 1)
     {
        printf("\nSố n phải lớn hơn hoặc bằng 1, vui lòng nhập lại !");
     }
  }while(n < 1);
  //tính biểu thức bằng vòng lặp for
  for(int i = 1; i <= n; i++){
    S = S + (float)(2 * i + 1) / (2 * i + 2);
  }
  //tính biểu thức bằng vòng lặp while
  // while(i <= n)
  // {
  // 	S = S + (float)(2 * i + 1) / (2 * i + 2);
  // 	i++;
  // }
  printf("\nTổng 1/2 + 3/4 + ... + %d/%d là: %.2f",(2 * n + 1),(2 * n + 2), S);

  printf("\n-----------------------------------------------------\n");
  printf("Chương trình này được đăng tại Freetuts.net");
}

Kết quả:

bai8 01 PNG

Tính S(n) = 1/2 + 3/4 + 5/6 + …. + (2 * n + 1) / (2 * n + 2) bằng ngôn ngữ C++

Tương tự như ví dụ trên, trong ngôn ngữ C++ thì ta cũng thực hiện các bước tương tự như vậy.

Chỉ cần thay đổi printf() và scanf() trong ngôn ngữ C bằng cout và cin trong ngôn ngữ C++.

Quảng cáo

#include<iostream>
using namespace std;
int main()
{
  int n;
  float S;
  S = 0;
  do
  {
    cout<<"\nNhập vào số n: ";
    cin>>n;
    if(n < 1)
      {
      cout<<"\nSố n phải lớn hơn hoặc bằng 1, vui lòng nhập lại !";
      }
  }while(n < 1);
  //tính biểu thức bằng vòng lặp for
  for(int i = 1; i <= n; i++){
    S = S + (float)(2 * i + 1) / (2 * i + 2);
  }
  //tính biểu thức bằng vòng lặp while
  //while(i <= n)
  //{
  //  S = S + (float)(2 * i + 1) / (2 * i + 2);
  //   i++;
  //}
  cout<<"\nTổng 1/2 + 3/4 + ... + "<<2 * n + 1<<"/"<<2 * n + 2<<" là: "<< S;

  cout<<"\n-----------------------------------------------------\n";
  cout<<"Chương trình này được đăng tại Freetuts.net";
}

Kết quả:

bai8 02 PNG

Như vậy là chúng ta đã thực hiện xong hai chương trình tính biểu thức S(n) = 1/2 + 3/4 + 5/6 + …. + (2 * n + 1) / (2 * n + 2) bằng hai ngôn ngữ khác nhau. Các bạn hãy luyện tập thật nhiều các bài toán logic tương tự như vậy nhé !!!

Quảng cáo

Câu hỏi thường gặp liên quan:

Các chủ đề liên quan:

Quảng cáo

Top