06/04/2021, 14:47

Các hàm tính toán (Math Function) trong C++ - Học C++ căn bản và nâng cao

Trong bài học hôm nay chúng ta sẽ cùng tìm hiểu các hàm toán học (Math Function) trong C++. Vậy C++ hổ trợ cho chúng ta các hàm toán học nào? Để sử dụng các hàm toán học trong C++ chúng ta cần khai báo thư viện nào? Chúng ta sẽ cùng tìm hiểu trong nội dung sau đây. 1. Hàm toán học (Math Function) ...

Trong bài học hôm nay chúng ta sẽ cùng tìm hiểu các hàm toán học (Math Function) trong C++. Vậy C++ hổ trợ cho chúng ta các hàm toán học nào? Để sử dụng các hàm toán học trong C++ chúng ta cần khai báo thư viện nào? Chúng ta sẽ cùng tìm hiểu trong nội dung sau đây.

1. Hàm toán học (Math Function) trong C++

Trong C++ cung cấp một số hàm toán học cơ bản và chúng ta phải include <math.h> thì mới có thể sử dụng các hàm toán học được.

Trong C++ có hổ trợ các loại toán học sau:

  • Trignometric functions
  • Hyperbolic functions
  • Exponential functions
  • Floating point manipulation functions
  • Maximum,Minimum and Difference functions
  • Power functions
  • Nearest integer operations
  • Other functions
  • Macro functions
  • Comparison macro functions
  • Error and gamma functions

Trong bài học hôm nay chúng ta chỉ tìm hiểu một trong số các loại trên thôi nhé. 

Trignometric functions

Ví dụ

Chúng ta cùng xem ví dụ đơn giản sau đây có sử dụng các hàm toán học như asin, sin, cos, tan, ...

Ví dụ
#include <iostream>  
#include<math.h>  
using namespace std;  
int main()  
{  
    double goc = 60;  
    double d = goc*3.14/180;
    cout << "cosin =  " << cos(d) << endl; 
    cout << "sin =  " << sin(d) << endl;
    cout << "tan =  " << tan(d) << endl;
    cout << "cosin nghich dao =  " << acos(d) << endl; 
    cout << "sin nghich dao =  " << asin(d) << endl;
    cout << "tan nghich dao =  " << atan(d) << endl;
    
    return 0;  
}  

Và kết quả sau khi thực thi chương trình trên:

math function JPG

Hyperbolic functions

Ví dụ

Chúng ta cùng xem xét một ví dụ đơn giản có sử dụng hyperbolic functions trong C++ như sau:

Ví dụ
#include <iostream>  
#include<math.h>  
using namespace std;  
int main()  
{  
    double x = 45;  
    double d = x*3.14/180;
    cout << "cos hyperbolic =  " << cosh(d) << endl; 
    cout << "sin hyperbolic =  " << sinh(d) << endl;
    cout << "tang hyperbolic =  " << tanh(d) << endl;
    cout << "nghịch dao cos hyperbolic =  " << acosh(d) << endl; 
    cout << "nghich dao sin hyperbolic =  " << asinh(d) << endl;
    cout << "nghich dao tang hyperbolic =  " << atanh(d) << endl;
    
    return 0;  
}

Và kết quả sau khi thực thi chương trình trên như sau:

math function p2 JPG

Nearest integer operations

Ví dụ

Chúng ta cùng xem xét một ví dụ đơn giản có sử dụng nearest integer operations trong C++ như sau:

Ví dụ
#include <iostream>  
#include<math.h>  
using namespace std;  
int main()  
{  
    double x = 9.8;
    double y = 3;
    cout << "ceil(" << x << "): " << ceil(x) << endl;
    cout << "floor(" << x << "): " << floor(x) << endl;
    cout << "round(" << x << "): " << round(x) << endl;
    cout << "lround(" << x << "): " << lround(x) << endl;
    cout << "llround(" << x << "): " << llround(x) << endl;
    cout << "fmod(" << x << "," << y << "): " << fmod(x,y) << endl;
    cout << "trunc(" << x << "): " << trunc(x) << endl;
    cout << "rint(" << x << "): " << rint(x) << endl;
    cout << "lrint(" << x << "): " << lrint(x) << endl;
    cout << "llrint(" << x << "): " << llrint(x) << endl;
    return 0;  
}

Và kết quả sau khi thực thi chương trình trên như sau:

math function p7 JPG

Other functions

Ví dụ

Chúng ta cùng xem xét một ví dụ đơn giản có sử dụng fabs, abs và fma trong C++ như sau:

Ví dụ
#include <iostream>  
#include<math.h>  
using namespace std;  
int main()  
{  
    double x = -5.6;
    double y = 2;
    double z = 3;
    cout << "fabs(" << x << "): " << fabs(x) << endl;
    cout << "abs(" << x << "): " << abs(x) << endl;
    cout << "fma("<< x << "," << y << "," << z << "): " << fma(x,y,z) << endl;
    
    return 0;  
}

Và kết quả sau khi thực thi chương trình trên như sau:

math function p6 JPG

Macro functions

Ví dụ

Chúng ta cùng xem xét một ví dụ có sử dụng macro functions trong C++ như sau:

Ví dụ
#include <iostream>  
#include<math.h>  
using namespace std;  
int main()  
{  
    double x = 4.0/0.0;  
    switch(fpclassify(x))  
    {  
        case FP_INFINITE:  
            cout << "4.0/0.0 la FP_INFINITE" << endl;    
            break;  
        case FP_NAN:  
            cout << "4.0/0.0 la FP_NAN" << endl;  
            break;  
        case FP_ZERO:  
            cout << "4.0/0.0 la FP_ZERO" << endl;  
            break;  
        case FP_SUBNORMAL:  
            cout << "4.0/0.0 la FP_SUBNORMAL" << endl;  
            break;  
        case FP_NORMAL:  
            cout << "4.0/0.0 FP_NORMAL";  
            break;  
        default:  
            cout << "4.0/0.0 khong phai la so";  
    }  
    
    x = 5;
    cout << "isfinite(" << x << "): " << isfinite(x) << endl;
    cout << "isinf(" << x << "): " << isinf(x) << endl;
    cout << "isnan(" << x << "): " << isnan(x) << endl;
    cout << "isnormal(" << x << "): " << isnormal(x) << endl;
    cout << "signbit(" << x << "): " << signbit(x) << endl;
    
    return 0;  
}

Và kết quả sau khi thực thi chương trình trên như sau:

math function p5 JPG

Comparison macro functions

Ví dụ

Chúng ta cùng xem xét một ví dụ đơn giản có sử dụng comparison macro functions trong C++ như sau:

Ví dụ
#include <iostream>  
#include<math.h>  
using namespace std;  
int main()  
{  
    float x;
    float y;
    x = 3;
    y = 4;
    cout << "isgreater(x,y): " << isgreater(x,y) << endl;
    cout << "isgreaterequal(x,y): " << isgreaterequal(x,y) << endl;
    cout << "isless(x,y): " << isless(x,y) << endl;
    cout << "islessequal(x,y): " << islessequal(x,y) << endl;
    cout << "islessgreater(x,y): " << islessgreater(x,y) << endl;
    cout << "isunordered(x,y): " << isunordered(x,y) << endl;
    
    return 0;  
}  

Và kết quả sau khi thực thi chương trình trên như sau:

math function p4 JPG

Error and gamma functions

Ví dụ

Chúng ta cùng xem một ví dụ đơn giản có sử dụng error and gamma functions trong C++ như sau:

Ví dụ
#include <iostream>  
#include<math.h>  
using namespace std;  
int main()  
{  
    double x;
    x = 1;
    cout << "erf(x) =  " << erf(x/0) << endl; javascript:void(0)
    x = -1;
    cout << "erfc(x) = " << erfc(x/0) << endl;
    x = 0;
    cout << "tgamma(x) = " << tgamma(x) << endl;
    x = 2;
    cout << "lgamma(x) = " << lgamma(x) << endl;
    return 0;  
}

Và kết quả sau khi thực thi chương trình trên như sau:

math function p3 JPG

2. Kết luận

Như vậy chúng ta đã tìm hiểu xong về các hàm tính toán (Math Functions) có sẳn trong C++. Bài này rất là dài và có rất nhiều hàm chúng ta không thể nào nhớ hết nổi.

Vì vậy trong bài này các bạn chỉ cần nhớ include<math.h> để sử dụng các hàm tính toán trong C++.

Mình sẽ kết thúc bài học này ở đây nhé. Bài tiếp theo mình sẽ tìm hiểu về thừa kế trong C++. Các bạn nhớ theo dõi nhé.

Bài tiếp

Trần Trung Dũng

15 chủ đề

2610 bài viết

Cùng chủ đề
0