math.h trong C
math.h trong C là gì? Cách dùng math.h trong C như thế nào? Hãy cùng Quantrimang.com tìm hiểu nhé!
Lập trình hiện đang là một ngành “hot” hiện nay. Nó được ứng dụng trong nhiều lĩnh vực, giúp cuộc sống của con người tốt đẹp hơn.
Bạn có rất nhiều ngôn ngữ lập trình để phát triển web, ứng dụng và C là một trong số đó. Thế giới của C đa dạng và phong phú với nhiều hàm khác nhau. Ở bài viết này, hãy cùng nhau tìm hiểu math.h trong C như thế nào nhé!
math.h trong C là hàm toán học. Khi lập trình bằng ngôn ngữ C, bạn có nhiều hàm toán học để lựa chọn. Đúng như tên gọi, chúng cho phép bạn thực hiện các phép tính toán các con số.
Để sử dụng chúng, bạn phải bao gồm file header math.h trong chương trình:
#include <math.h>
Ví dụ: Để tìm căn bậc hai của một số, dùng hàm sqrt()
:
printf("%f", sqrt(16));
Làm tròn số
Hàm ceil() làm tròn một số lên tới số nguyên gần nhất và phương thức floor()
làm tròn một số xuống số nguyên gần nhất và trả về kết quả:
printf("%f", ceil(1.4));
printf("%f", floor(1.4));
Lũy thừa
Hàm pow()
trả về giá trị x theo lũy thừa của y (xy). Ví dụ:
printf("%f", pow(4, 3));
Các macro được định nghĩa trong math.h
Chỉ có một Macro được định nghĩa trong thư viện này:
HUGE_VAL: Macro này được sử dụng khi kết quả của một hàm không thể biểu diễn dưới dạng một số thực dấu chấm động. Nếu độ lớn để biểu diễn chính xác kết quả là quá lớn, thì hàm thiết lập errno thành ERANGE để chỉ một Range Error, và trả về một giá trị đủ lớn, cụ thể được đặt tên bởi HUGE_VAL hoặc đối của nó là – HUGE_VAL.
Nếu độ lớn của kết quả là quá nhỏ, thì một giá trị 0 được trả về. Trong trường hợp này, errno có thể hoặc không thể được thiết lập thành ERANGE.
Các hàm được định nghĩa trong math.h
Sau đây là một số hàm được định nghĩa trong math.h trong Thư viện C:
Hàm | Mô tả |
---|---|
double acos(double x) | Trả về arcos của x (giá trị radian) |
double asin(double x) | Trả về arcsin của x (giá trị radian) |
double atan(double x) | Trả về arctan của x (giá trị radian) |
double atan2(doubly y, double x) | Trả về arctan của y/x (giá trị radian) |
double cos(double x) | Trả về cos của góc x (giá trị radian) |
double cosh(double x) | Trả về cosh (hàm hyperbolic cosin) của x (giá trị radian) |
double sin(double x) | Trả về sin của góc x (giá trị radian) |
double sinh(double x) | Trả về sinh (hàm hyperbolic sin) của x (giá trị radian) |
double tanh(double x) | Trả về tanh (hàm hyperbolic tan) của x (giá trị radian) |
double exp(double x) | Trả về ex |
double frexp(double x, int *exponent) | Giá trị được trả về là mantissa (phần định trị) và số nguyên được trỏ tới bởi exponent (số mũ). Giá trị kết quả là x = mantissa * 2 ^ exponent |
double ldexp(double x, int exponent) | Trả về x*2exponent |
double log(double x) | Trả về lnx |
double log10(double x) | Trả về log10(x) |
double modf(double x, double *integer) | Trả về phần thập phân của x |
double pow(double x, double y) | Trả về xy |
double sqrt(double x) | Trả về căn bậc hai của x |
double ceil(double x) | Trả về giá trị nguyên nhỏ nhất lớn hơn hoặc bằng x |
double fabs(double x) | Trả về trị tuyệt đối của x |
double floor(double x) | Trả về giá trị nguyên lớn nhất nhỏ hơn hoặc bằng x |
double fmod(double x, double y) | Trả về phần dư của phép chia x/y |
1. Hàm acos() trong C
Hàm double acos(double x) trong Thư viện C trả về arcos của x (giá trị radian).
Khai báo hàm acos() trong C
Dưới đây là phần khai báo cho hàm acos() trong C:
double acos(double x)
Tham số:
x − Đây là giá trị số thực dấu chấm động trong đoạn [-1,+1].
Trả về giá trị:
Hàm này trả về arcos của x, trong đoạn [0, pi] radian.
Ví dụ:
Chương trình C sau minh họa cách sử dụng của hàm acos() trong C:
#include <stdio.h> #include <math.h> #define PI 3.14159265 int main () { double x, ret, val; x = 0.9; val = 180.0 / PI; ret = acos(x) * val; printf("Gia tri arccos cua %lf la bang %lf", x, ret); return(0); }
Biên dịch và chạy chương trình C trên sẽ cho kết quả:
2. Hàm asin() trong C
Hàm double asin(double x) trong Thư viện C trả về arcsin của x (giá trị radian).
Khai báo hàm asin() trong C
Dưới đây là phần khai báo cho hàm asin() trong C:
double asin(double x)
Tham số:
x − Đây là giá trị số thực dấu chấm động trong đoạn [-1,+1].
Trả về giá trị:
Hàm này trả về arcsin của x, trong đoạn [-pi/2,+pi/2] radian.
Ví dụ:
Chương trình C sau minh họa cách sử dụng của hàm asin() trong C:
#include <stdio.h> #include <math.h> #define PI 3.14159265 int main () { double x, ret, val; x = 0.9; val = 180.0 / PI; ret = asin(x) * val; printf("Gia tri arcsin cua %lf la bang %lf", x, ret); return(0); }
Biên dịch và chạy chương trình C trên sẽ cho kết quả:
3. Hàm atan() trong C
Hàm double atan(double x) trong Thư viện C trả về arctan của x (giá trị radian).
Khai báo hàm atan() trong C
Dưới đây là phần khai báo cho hàm atan() trong C:
double atan(double x)
Tham số:
x − Đây là giá trị số thực dấu chấm động.
Trả về giá trị:
Hàm này trả về arctan của x, trong đoạn [-pi/2,+pi/2] radian.
Ví dụ:
Chương trình C sau minh họa cách sử dụng của hàm atan() trong C:
#include <stdio.h> #include <math.h> #define PI 3.14159265 int main () { double x, ret, val; x = 1.0; val = 180.0 / PI; ret = atan (x) * val; printf("Gia tri arctan cua %lf la bang %lf", x, ret); return(0); }
Biên dịch và chạy chương trình C trên sẽ cho kết quả:
4. Hàm atan2() trong C
Hàm double atan2(doubly y, double x) trong Thư viện C trả về arctan của y/x (giá trị radian).
Khai báo hàm atan2() trong C
Dưới đây là phần khai báo cho hàm atan2() trong C:
double atan2(doubly y, double x)
Tham số:
- x − Đây là giá trị số thực dấu chấm động biểu diễn tọa độ x.
- y − Đây là giá trị số thực dấu chấm động biểu diễn tọa độ y.
Trả về giá trị:
Hàm này trả về arctan của y/x, trong đoạn [-pi,+pi] radian.
Ví dụ:
Chương trình C sau minh họa cách sử dụng của hàm atan2() trong C:
#include <stdio.h> #include <math.h> #define PI 3.14159265 int main () { double x, y, ret, val; x = -7.0; y = 7.0; val = 180.0 / PI; ret = atan2 (y,x) * val; printf("Gia tri arctan2 cua x = %lf, y = %lf ", x, y); printf("la bang %lf\n", ret); return(0); }
Biên dịch và chạy chương trình C trên sẽ cho kết quả:
5. Hàm cos() trong C
Hàm double cos(double x) trong Thư viện C trả về cos của góc x (đo bằng radian).
Khai báo hàm cos() trong C
Dưới đây là phần khai báo cho hàm cos() trong C:
double cos(double x)
Tham số:
x − Đây là giá trị số thực dấu chấm động biểu diễn một góc được diễn đạt bằng giá trị radian.
Trả về giá trị:
Hàm này trả về cos của x.
Ví dụ:
Chương trình C sau minh họa cách sử dụng của hàm cos() trong C:
#include <stdio.h> #include <math.h> #define PI 3.14159265 int main () { double x, ret, val; x = 60.0; val = PI / 180.0; ret = cos( x*val ); printf("Gia tri cosin cua %lf la bang %lf\n", x, ret); x = 90.0; val = PI / 180.0; ret = cos( x*val ); printf("Gia tri cosin cua %lf la bang %lf\n", x, ret); return(0); }
Biên dịch và chạy chương trình C trên sẽ cho kết quả:
6. Hàm cosh() trong C
Hàm double cosh(double x) trong Thư viện C trả về hypebolic cosine của x.
Khai báo hàm cosh() trong C
Dưới đây là phần khai báo cho hàm cosh() trong C:
double cosh(double x)
Tham số:
x − Đây là giá trị số thực dấu chấm động.
Trả về giá trị:
Hàm này trả về hyperbolic cosine của x.
Ví dụ:
Chương trình C sau minh họa cách sử dụng của hàm cosh() trong C:
#include <stdio.h> #include <math.h> int main () { double x; x = 0.5; printf("Gia tri hyperbolic cosine cua %lf la bang %lf\n", x, cosh(x)); x = 1.0; printf("Gia tri hyperbolic cosine cua %lf la bang %lf\n", x, cosh(x)); x = 1.5; printf("Gia tri hyperbolic cosine cua %lf la bang %lf\n", x, cosh(x)); return(0); }
Biên dịch và chạy chương trình C trên sẽ cho kết quả:
7. Hàm sin() trong C
Hàm double sin(double x) trong Thư viện C trả về sin của góc x (giá trị radian).
Khai báo hàm sin() trong C
Dưới đây là phần khai báo cho hàm sin() trong C:
double sin(double x)
Tham số:
x − Đây là giá trị số thực dấu chấm động biểu diễn một góc được diễn đạt bằng giá trị radian.
Trả về giá trị:
Hàm này trả về sin của x.
Ví dụ:
Chương trình C sau minh họa cách sử dụng của hàm sin() trong C:
#include <stdio.h> #include <math.h> #define PI 3.14159265 int main () { double x, ret, val; x = 45.0; val = PI / 180; ret = sin(x*val); printf("Sin cua %lf bang %lf", x, ret); return(0); }
Biên dịch và chạy chương trình C trên sẽ cho kết quả:
8. Hàm sinh() trong C
Hàm double sinh(double x) trong Thư viện C trả về hyperbolic sine của x.
Khai báo hàm sinh() trong C
Dưới đây là phần khai báo cho hàm sinh() trong C:
double sinh(double x)
Tham số:
x − Đây là giá trị số thực dấu chấm động.
Trả về giá trị:
Hàm này trả về hyperbolic sine của x.
Ví dụ:
Chương trình C sau minh họa cách sử dụng của hàm sinh() trong C:
#include <stdio.h> #include <math.h> int main () { double x, ret; x = 0.5; ret = sinh(x); printf("Hyperbolic sine cua %lf bang %lf", x, ret); return(0); }
Biên dịch và chạy chương trình C trên sẽ cho kết quả:
9. Hàm tanh() trong C
Hàm double tanh(double x) trong Thư viện C trả về hyperbolic tang của x.
Khai báo hàm tanh() trong C
Dưới đây là phần khai báo cho hàm tanh() trong C:
double tanh(double x)
Tham số:
x − Đây là giá trị số thực dấu chấm động.
Trả về giá trị:
Hàm này trả về hyperbolic tang của x.
Ví dụ:
Chương trình C sau minh họa cách sử dụng của hàm tanh() trong C:
#include <stdio.h> #include <math.h> int main () { double x, ret; x = 0.5; ret = tanh(x); printf("Hyperbolic tangent cua %lf bang %lf", x, ret); return(0); }
Biên dịch và chạy chương trình C trên sẽ cho kết quả:
10. Hàm exp() trong C
Hàm double exp(double x) trong Thư viện C trả về e mũ x.
Khai báo hàm exp() trong C
Dưới đây là phần khai báo cho hàm exp() trong C:
double exp(double x)
Tham số:
x − Đây là giá trị số thực dấu chấm động.
Trả về giá trị:
Hàm này trả về ex.
Ví dụ:
Chương trình C sau minh họa cách sử dụng của hàm exp() trong C:
#include <stdio.h> #include <math.h> int main () { double x = 0; printf("e^%lf = %lf\n", x, exp(x)); printf("e^%lf = %lf\n", x+1, exp(x+1)); printf("e^%lf = %lf\n", x+2, exp(x+2)); return(0); }
Biên dịch và chạy chương trình C trên sẽ cho kết quả:
11. Hàm frexp() trong C
Hàm double frexp(double x, int *exponent) trong Thư viện C trả về mantissa (phần định trị) và số nguyên được trỏ tới bởi exponent (số mũ). Giá trị kết quả là x = mantissa * 2 ^ exponent.
Khai báo hàm frexp() trong C
Dưới đây là phần khai báo cho hàm frexp() trong C:
double frexp(double x, int *exponent)
Tham số:
x − Đây là giá trị số thực dấu chấm động để được tính toán.
exponent − Đây là con trỏ tới một đối tượng int nơi mà giá trị exponent được lưu trữ.
Trả về giá trị:
Hàm này trả về phần định trị (mantissa) và số nguyên được trỏ tới bởi exponent.
Ví dụ:
Chương trình C sau minh họa cách sử dụng của hàm frexp() trong C:
#include <stdio.h> #include <math.h> int main () { double x = 1024, fraction; int e; fraction = frexp(x, &e); printf("x = %.2lf = %.2lf * 2^%d\n", x, fraction, e); return(0); }
Biên dịch và chạy chương trình C trên sẽ cho kết quả:
12. Hàm ldexp() trong C
Hàm double ldexp(double x, int exponent) trong Thư viện C trả về x*2exponent.
Khai báo hàm ldexp() trong C
Dưới đây là phần khai báo cho hàm ldexp() trong C:
double ldexp(double x, int exponent)
Tham số:
x − Đây là giá trị số thực dấu chấm động, cũng biểu diễn số chữ số sau dấu phảy có nghĩa.
exponent − Đây là giá trị của exponent.
Trả về giá trị:
Hàm này trả về x * 2 exp
Ví dụ:
Chương trình C sau minh họa cách sử dụng của hàm ldexp() trong C:
#include <stdio.h> #include <math.h> int main () { double x, ret; int n; x = 0.65; n = 3; ret = ldexp(x ,n); printf("%f * 2^%d = %f\n", x, n, ret); return(0); }
Biên dịch và chạy chương trình C trên sẽ cho kết quả:
13. Hàm log() trong C
Hàm double log(double x) trong Thư viện C trả về lnx.
Khai báo hàm log() trong C
Dưới đây là phần khai báo cho hàm log() trong C:
double log(double x)
Tham số:
x − Đây là giá trị số thực dấu chấm động.
Trả về giá trị:
Hàm này trả về lnx.
Ví dụ:
Chương trình C sau minh họa cách sử dụng của hàm log() trong C:
#include <stdio.h> #include <math.h> int main () { double x, ret; x = 2.7; /* tim gia tri cua log(2.7) */ ret = log(x); printf("log(%lf) = %lf", x, ret); return(0); }
Biên dịch và chạy chương trình C trên sẽ cho kết quả:
14. Hàm log10() trong C
Hàm double log10(double x) trong Thư viện C trả về log10(x).
Khai báo hàm log10() trong C
Dưới đây là phần khai báo cho hàm log10() trong C:
double log10(double x)
Tham số:
x − Đây là giá trị số thực dấu chấm động.
Trả về giá trị:
Hàm này trả về log10(x), với x lớn hơn 0.
Ví dụ:
Chương trình C sau minh họa cách sử dụng của hàm log10() trong C:
#include <stdio.h> #include <math.h> int main () { double x, ret; x = 1000; /* tim gia tri cua log101000 */ ret = log10(x); printf("log10(%lf) = %lf\n", x, ret); return(0); }
Biên dịch và chạy chương trình C trên sẽ cho kết quả:
15. Hàm modf() trong C
Hàm double modf(double x, double *integer) trong Thư viện C trả về phần thập phân của x.
Khai báo hàm modf() trong C
Dưới đây là phần khai báo cho hàm modf() trong C:
double modf(double x, double *integer)
Tham số:
x − Đây là giá trị số thực dấu chấm động.
integer − Đây là con trỏ tới một đối tượng mà phần nguyên được lưu trữ.
Trả về giá trị:
Hàm này trả về phần thập phân của x, có cùng dấu.
Ví dụ:
Chương trình C sau minh họa cách sử dụng của hàm modf() trong C:
#include<stdio.h> #include<math.h> int main () { double x, fractpart, intpart; x = 7.123456; fractpart = modf(x, &intpart); printf("Phan nguyen = %lf\n", intpart); printf("Phan thap phan = %lf \n", fractpart); return(0); }
Biên dịch và chạy chương trình C trên sẽ cho kết quả:
16. Hàm pow() trong C
Hàm double pow(double x, double y) trong Thư viện C trả về xy.
Khai báo hàm pow() trong C
Dưới đây là phần khai báo cho hàm pow() trong C:
double pow(double x, double y)
Tham số:
- x − Đây là cơ số, là một giá trị số thực dấu chấm động.
- y − Đây là số mũ, là một giá trị số thực dấu chấm động.
Trả về giá trị:
Hàm này trả về xy.
Ví dụ:
Chương trình C sau minh họa cách sử dụng của hàm pow() trong C:
#include <stdio.h> #include <math.h> int main () { printf("9.0 ^ 3 = %lf\n", pow(9.0, 3)); printf("4.05 ^ 2.98 = %lf", pow(4.05, 2.98)); return(0); }
Biên dịch và chạy chương trình C trên sẽ cho kết quả:
17. Hàm sqrt() trong C
Hàm double sqrt(double x) trong Thư viện C trả về căn bậc hai của x.
Khai báo hàm sqrt() trong C
Dưới đây là phần khai báo cho hàm sqrt() trong C:
double sqrt(double x)
Tham số:
x − Đây là giá trị số thực dấu chấm động.
Trả về giá trị:
Hàm này trả về căn bậc hai của x.
Ví dụ:
Chương trình C sau minh họa cách sử dụng của hàm sqrt() trong C:
#include <stdio.h> #include <math.h> int main () { printf("Can bac hai cua %lf bang %lf\n", 4.0, sqrt(4.0) ); printf("Can bac hai cua %lf bang %lf\n", 5.0, sqrt(5.0) ); return(0); }
Biên dịch và chạy chương trình C trên sẽ cho kết quả:
18. Hàm ceil() trong C
Hàm double ceil(double x) trong Thư viện C trả về giá trị nguyên nhỏ nhất lớn hơn hoặc bằng x.
Khai báo hàm ceil() trong C
Dưới đây là phần khai báo cho hàm ceil() trong C:
double ceil(double x)
Tham số:
x − Đây là giá trị số thực dấu chấm động.
Trả về giá trị:
Trả về giá trị nguyên nhỏ nhất không nhỏ hơn x.
Ví dụ:
Chương trình C sau minh họa cách sử dụng của hàm ceil() trong C:
#include <stdio.h> #include <math.h> int main () { float val1, val2, val3, val4; val1 = 1.6; val2 = 1.2; val3 = 2.8; val4 = 2.3; printf ("Gia tri cua ceil(%.1f) = %.1lf\n", val1, ceil(val1)); printf ("Gia tri cua ceil(%.1f) = %.1lf\n", val2, ceil(val2)); printf ("Gia tri cua ceil(%.1f) = %.1lf\n", val3, ceil(val3)); printf ("Gia tri cua ceil(%.1f) = %.1lf\n", val4, ceil(val4)); return(0); }
Biên dịch và chạy chương trình C trên sẽ cho kết quả:
19. Hàm fabs() trong C
Hàm double fabs(double x) trong Thư viện C trả về giá trị tuyệt đối của x.
Khai báo hàm fabs() trong C
Dưới đây là phần khai báo cho hàm fabs() trong C:
double fabs(double x)
Tham số:
x − Đây là giá trị số thực dấu chấm động.
Trả về giá trị:
Hàm này trả về giá trị tuyệt đối của x.
Ví dụ:
Chương trình C sau minh họa cách sử dụng của hàm fabs() trong C:
#include <stdio.h> #include <math.h> int main () { int a, b; a = 345; b = -345; printf("Tri tuyet doi: |%d| = %lf\n", a, fabs(a)); printf("Tri tuyet doi: |%d| = %lf\n", b, fabs(b)); return(0); }
Biên dịch và chạy chương trình C trên sẽ cho kết quả:
20. Hàm floor() trong C
Hàm double floor(double x) trong Thư viện C trả về giá trị nguyên lớn nhất nhỏ hơn hoặc bằng x.
Khai báo hàm floor() trong C
Dưới đây là phần khai báo cho hàm floor() trong C:
double floor(double x)
Tham số:
x − Đây là giá trị số thực dấu chấm động.
Trả về giá trị:
Hàm này trả về số nguyên lớn nhất không lớn hơn x.
Ví dụ:
Chương trình C sau minh họa cách sử dụng của hàm floor() trong C:
#include <stdio.h> #include <math.h> int main () { float val1, val2, val3, val4; val1 = 1.6; val2 = 1.2; val3 = 2.8; val4 = 2.3; printf("Gia tri cua floor(%.1f) = %.1lf\n", val1, floor(val1)); printf("Gia tri cua floor(%.1f) = %.1lf\n", val2, floor(val2)); printf("Gia tri cua floor(%.1f) = %.1lf\n", val3, floor(val3)); printf("Gia tri cua floor(%.1f) = %.1lf\n", val4, floor(val4)); return(0); }
Biên dịch và chạy chương trình C trên sẽ cho kết quả:
21. Hàm fmod() trong C
Hàm double fmod(double x, double y) trong Thư viện C trả về phần dư của phép chia x/y.
Khai báo hàm fmod() trong C
Dưới đây là phần khai báo cho hàm fmod() trong C:
double fmod(double x, double y)
Tham số:
x − Đây là giá trị số thực dấu chấm động đóng vai trò là tử số.
y − Đây là giá trị số thực dấu chấm động đóng vai trò là mẫu số.
Trả về giá trị:
Hàm này trả về phần dư của phép chia x/y.
Ví dụ:
Chương trình C sau minh họa cách sử dụng của hàm fmod() trong C:
#include <stdio.h> #include <math.h> int main () { float a, b; int c; a = 9.2; b = 3.7; c = 2; printf("Phan du cua phep chia %f / %d la %lf\n", a, c, fmod(a,c)); printf("Phan du cua phep chia %f / %f la %lf\n", a, b, fmod(a,b)); return(0); }
Biên dịch và chạy chương trình C trên sẽ cho kết quả:
Theo Tutorialspoint
Bài trước: locale.h trong C
Bài tiếp: Thư viện C: <setjmp.h>
Bạn nên đọc
Cũ vẫn chất
-
Những câu nói hay về mùa thu, lời chào mùa thu hay và ý nghĩa
Hôm qua -
Code LaLa Land Lục Địa Bí Ẩn mới nhất và cách nhập code
Hôm qua 2 -
Hướng dẫn chuyển sang ngôn ngữ tiếng Việt cho Gmail
Hôm qua -
Hướng dẫn toàn tập Word 2016 (Phần 26): Tạo đồ họa SmartArt
Hôm qua -
70 câu ca dao, tục ngữ về học tập hay nhất
Hôm qua -
Bạn đã sử dụng keo tản nhiệt đúng cách?
Hôm qua -
Đấu Trường Chân Lý Mobile (TFT Mobile)
-
30 lời chúc sinh nhật chồng yêu ý nghĩa và ngọt ngào
Hôm qua 1 -
Cách sao chép định dạng trong Google Docs, Sheets và Slides
Hôm qua -
‘Ghét’ Apple, Mark Zuckerberg vẫn phải dùng Macbook nhưng nó lạ lắm
Hôm qua 1