Thư viện cmath và một số hàm toán học thông dụng trong C++

Đây là bài 14/43 bài của series môn học Nhập môn lập trình

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.

5/5 - (3 bình chọn)
Bài trước và bài sau trong môn học<< Biểu thức và thứ tự ưu tiên của các toán tử trong biểu thứcCấu trúc rẽ nhánh if else và minh họa với C++ >>
Chia sẻ trên mạng xã hội:

2 bình luận về bài viết “Thư viện cmath và một số hàm toán học thông dụng trong C++

Trả lời

Lưu ý:

1) Vui lòng bình luận bằng tiếng Việt có dấu.

2) Khuyến khích sử dụng tên thật và địa chỉ email chính xác.

3) Mọi bình luận trái quy định sẽ bị xóa bỏ.