Chúng ta đã từng sử dụng 2 hàm printf()
và scanf()
trong thư viện stdio.h
. Các bạn phải hiểu rằng còn nhiều thư viện khác nữa, mỗi thư viện sẽ chứa những hàm với những cụm chức năng riêng biệt.
Và ở bài trước chúng ta đã tìm hiểu qua những phép tính toán đơn giản trong C, hôm nay chúng ta sẽ cùng tìm hiểu những phép tính toán phức tạp hơn và hiệu quả hơn thông qua một thư viện hỗ trợ mới là math.h
, nó chứa những hàm xử lý toán học đã được viết trước.
Tóm Tắt
Các hàm xử lý toán học trong thư viện math.h
STTTên hàmMô tả1double cos(double x)
Trả về cos của một góc radian x.2double sin(double x)
Trả về sin của một góc radian x.3double exp(double x)
Trả về giá trị của e mũ x.4double ldexp(double x, int exponent)
Trả về x * 2^exp.5double log(double x)
Trả về logarit tự nhiên (logarit cơ sở) của x.6double log10(double x)
Trả về logarit chung (logarit cơ sở 10) của x.7double pow(double x, double y)
Trả về x mũ y.8double sqrt(double x)
Trả về căn bậc hai của x.9double ceil(double x)
Trả về giá trị nguyên nhỏ nhất lớn hơn hoặc bằng x.10double fabs(double x)
Trả về giá trị tuyệt đối của x.11double floor(double x)
Trả về giá trị nguyên lớn nhất nhỏ hơn hoặc bằng x.12double fmod(double x, double y)
Trả về số dư còn lại của x chia cho y.
Một số ví dụ mình hoạ:
Hàm fabs
Hàm này sẽ trả về giá trị tuyệt đối của một số, trong toán học viết là | |
.
Ví dụ:
#
include
<stdio.h>
#
include
<math.h>
int
main
(
)
{
int
a;
a =
fabs
(
-
5
)
;
printf
(
"a = %d"
,
a)
;
}
Kết quả chương trình:
a =
5
Hàm ceil
Hàm này sẽ trả về giá trị dạng số nguyên nếu như ta đưa cho nó một số thực. Hay chúng ta còn gọi là làm tròn số, nhưng hàm ceil
sẽ luôn làm tròn giá trị lên (tăng giá trị).
Ví dụ:
#
include
<stdio.h>
#
include
<math.h>
int
main
(
)
{
int
a;
int
b;
a =
ceil
(
5.125
)
;
a =
ceil
(
5.7
)
;
printf
(
"a = %d, b = %d"
,
a,
b)
;
}
Kết quả chương trình:
a =
6
,
b =
6
Hàm floor
Trái ngược với hàm ceil
, hàm floor
sẽ luôn làm tròn giá trị xuống (giảm giá trị).
Ví dụ:
#
include
<stdio.h>
#
include
<math.h>
int
main
(
)
{
int
a;
int
b;
a =
ceil
(
5.125
)
;
a =
ceil
(
5.7
)
;
printf
(
"a = %d, b = %d"
,
a,
b)
;
}
Kết quả chương trình:
a =
5
,
b =
5
Hàm pow
Hàm này cho phép tính lũy thừa một số. Chúng ta phải chỉ ra cho nó 2 giá trị: số hạng và cấp lũy thừa của số đó. Đây là cấu trúc của hàm này:
pow(number, exponential)
Ví dụ:
#
include
<stdio.h>
#
include
<math.h>
int
main
(
)
{
int
a =
4
;
int
b =
3
;
int
c =
pow
(
a,
b)
;
printf
(
"c = %d"
,
c)
;
}
Kết quả chương trình:
c =
64
Hàm sqrt
Hàm này sẽ tính căn bậc 2 của một số được truyền vào. Giá trị trả về có thể là số nguyên hoặc số thập phân.
Ví dụ:
#
include
<stdio.h>
#
include
<math.h>
int
main
(
)
{
int
a;
double
b;
a =
sqrt
(
9
)
;
b =
sqrt
(
15
)
;
printf
(
"a = %d, b = %lf"
,
a,
b)
;
}
Kết quả chương trình:
a =
3
,
b =
3.872983
Hàm exp
Hàm này sẽ tính exponential, hay còn gọi là lũy thừa cơ số e. Trả về giá trị là một số thập phân.
Ví dụ:
#
include
<stdio.h>
#
include
<math.h>
int
main
(
)
{
double
a;
a =
exp
(
5
)
;
printf
(
"a = %lf"
,
a)
;
}
Kết quả chương trình:
a =
148.413159