Ngôn ngữ C++ cung cấp một số hàm toán học cơ bản để thực hiện các phép toán trên các biến số. Để sử dụng các hàm toán học này, các bạn phải khai báo thư viện <cmath>.
Lưu ý: Trong ngôn ngữ C thì sử dụng thư viện math.h
Hàm abs(x)
Trả về giá trị tuyệt đối của x.
cout<<abs(-2);//2
Hàm cbrt(x)
Trả về giá trị căn bậc ba của x.
cout<<cbrt(1000);//10
Hàm ceil(x)
Trả về số nguyên là giá trị làm tròn lên của x.
cout<<ceil(2.3);//3
cout<<ceil(2.8);//3
Hàm exp(x)
Trả về của ex.
cout<<exp(2);//7.38906
Hàm expm1(x)
Trả về giá trị của ex -1.
cout<<expm1(2);//6.38906
Hàm fabs(x)
Trả về giá trị tuyệt đối của số thực x.
cout<<fabs(-2.3);//2.3
Hàm floor(x)
Trả về số nguyên là giá trị làm tròn xuống của x.
cout<<floor(2.3);//2
cout<<floor(2.8);//2
Hàm fmax(x, y)
Trả về giá trị lớn nhất của số thực x và y.
cout<<fmax(2.1, 3.5);//3.5
Hàm fmin(x, y)
Trả về giá trị nhỏ nhất của số thực x và y.
cout<<fmin(2.1, 3.5);//2.1
Hàm fmod(x, y)
Trả về phần dư của phép chia số thực x/y.
cout<<fmod(15, 8);//7
cout<<fmod(15.8, 8.5);//7.3
Hàm log(x)
Trả về giá trị logarit cơ số e ln(x) của x.
cout<<log(2);//0.693147
Hàm pow(x, y)
Trả về giá trị của x lũy thừa y, tức là xy.
cout<<pow(2, 3);//8
Hàm round(2.6)
Trả về số nguyên là giá trị làm tròn lên của x nếu phần thập phân >= 5. Trả về số nguyên là giá trị làm tròn xuống nếu phần thập phân < 5.
cout<<round(2.3);//2
cout<<round (2.8);//3
Hàm sqrt(x)
Trả về giá trị căn bậc 2 của x.
cout<<sqrt(5);//2.23607
Hàm min và hàm max
Hai hàm này nằm trong không gian tên (namespace) std chứa thư viện chuẩn của C++.
Hàm max(x,y) sẽ tìm giá trị lớn nhất của x và y.
cout <<max(5, 10);//10
Hàm min(x,y) sẽ tìm giá trị nhỏ nhất của x và y.
cout <<min(5, 10);//5
Chương trình C++ minh họa các hàm toán học
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
cout<<"abs(-2) = "<<abs(-2)<<endl;//2
cout<<"cbrt(1000) = "<<cbrt(1000)<<endl;//10
cout<<"ceil(2.3) = "<<ceil(2.3)<<endl;//3
cout<<"ceil(2.8) = "<<ceil(2.8)<<endl;//3
cout<<"exp(2) = "<<exp(2)<<endl;//7.38906
cout<<"expm1(2) = "<<expm1(2)<<endl;//6.38906
cout<<"fabs(-2.3) = "<<fabs(-2.3)<<endl;//2.3
cout<<"floor(2.3) = "<<floor(2.3)<<endl;//2
cout<<"floor(2.8) = "<<floor(2.8)<<endl;//2
cout<<"fmax(2.1, 3.5) = "<<fmax(2.1, 3.5)<<endl;//3.5
cout<<"fmin(2.1, 3.5) = "<<fmin(2.1, 3.5)<<endl;//2.1
cout<<"fmod(15, 8) = "<<fmod(15, 8)<<endl;//7
cout<<"log(2) = "<<log(2)<<endl;//0.693147
cout<<"pow(2, 3) = "<<pow(2, 3)<<endl;//8
cout<<"round(2.3) = "<<round(2.3)<<endl;//2
cout<<"round (2.8) = "<<round (2.8)<<endl;//3
cout<<"sqrt(5) = "<<sqrt(5)<<endl;//2.23607
cout <<"max(5, 10) = "<<max(5, 10)<<endl;//10
cout <<"min(5, 10) = "<<min(5, 10)<<endl;//5
system("pause");
}
Kết quả
abs(-2) = 2
cbrt(1000) = 10
ceil(2.3) = 3
ceil(2.8) = 3
exp(2) = 7.38906
expm1(2) = 6.38906
fabs(-2.3) = 2.3
floor(2.3) = 2
floor(2.8) = 2
fmax(2.1, 3.5) = 3.5
fmin(2.1, 3.5) = 2.1
fmod(15, 8) = 7
log(2) = 0.693147
pow(2, 3) = 8
round(2.3) = 2
round (2.8) = 3
sqrt(5) = 2.23607
max(5, 10) = 10
min(5, 10) = 5
Ngoài những hàm toán học trên, thư viện <cmath> còn có một số hàm toán học khác. Các bạn có thể tham khảo ở website cplusplus.
- Tính đóng gói (encapsulation) và đa hình (polymorphism) trong Python
- Xây dựng danh sách liên kết kép (Doubly Linked List) với con trỏ (pointer)
- Cấu trúc điều khiển vòng lặp while trong Python
- Truyền tham trị và tham chiếu cho phương thức trong Java
- Lớp dẫn xuất (derived class) trong lập trình hướng đối tượng với C++
Hay
Nội dung đầy đủ, ví dụ minh hoạ rõ ràng.