C++: Bài 26. Xử lý số
Giải phóng thời gian, khai phóng năng lực
Thông thường khi ta làm việc với số thì ta sử dụng các kiểu dữ liệu nguyên thủy như int, short, long, float và double, v.v. Các kiểu dữ liệu số, giá trị có thể có và phạm vi số đã được giải thích trong bài viết Kiểu dữ liệu.
Định nghĩa số trong C++
Dưới đây là một ví dụ tổng hợp định nghĩa các loại số khác nhau trong C++:
#include<iostream> using namespace std; main() { // định nghĩa các biến kiểu số: short s; int i; long l; float f; double d; // gán giá trị cho các biến s = 10; i = 1000; l = 1000000; f = 230.47; d = 30949.374; // in ra các giá trị lưu trong các biến: cout << "short s: " << s << endl; cout << "int i: " << i << endl; cout << "long l: " << l << endl; cout << "float f: " << f << endl; cout << "double d: " << d << endl; return 0; }
Khi đoạn mã trên được biên dịch và thực thi, nó tạo ra kết quả sau:
short s: 10 int i: 1000 long l: 1000000 float f: 230.47 double d: 30949.4
Các hàm xử lý số trong C++
C++ có khá nhiều hàm xử lý số hữu ích. Các hàm này có sẵn trong các thư viện C và C++ tiêu chuẩn và được gọi là các hàm dựng sẵn (built-in).
Dưới đây ta sẽ tìm hiểu một số hàm toán học hữu ích có sẵn trong C++.
Lưu ý: Để sử dụng các hàm này, bạn cần khai báo tệp tiêu đề toán học <cmath>.
double cos()
Hàm này dùng để tính cos (cosin) của một góc theo đơn vị radian.
Ví dụ:
cout<<cos(3.14); //Kết quả: -0.999999
cout<<cos(0); //Kết quả: 1
double sin()
Hàm này dùng để tính sin của một góc theo đơn vị radian.
Ví dụ:
cout<<sin(3.14/2); //Kết quả: 1
cout<<sin(0); //Kết quả: 0
double tan()
Hàm này dùng để tính tan của một góc theo đơn vị radian.
Ví dụ:
cout<<tan(3.14/4); //Kết quả: 0.999204
cout<<tan(0); //Kết quả: 0
double log()
Hàm này dùng để tính loga tự nhiên của một số.
Ví dụ:
cout<<log(2.7); //Kết quả: 0.993252
cout<<log(0); //Kết quả: -inf
double pow(n,m)
Hàm này dùng để tính lũy thừa n mũ m.
Ví dụ:
cout<<pow(5,2); //Kết quả: 25
cout<<pow(2,5); //Kết quả: 32
double hypot(cạnh_góc_vuông_1,cạnh_góc_vuông_2)
Hàm này dùng để tính lũy thừa n mũ m.
Ví dụ:
cout<<hypot(3,4); //Kết quả: 5
cout<<hypot(6,8); //Kết quả: 10
double sqrt()
Hàm này dùng để tính căn bậc 2 của một số.
Ví dụ:
cout<<sqrt(4); //Kết quả: 2
cout<<sqrt(100; //Kết quả: 10
abs() và fabs()
Các hàm này dùng để lấy trị tuyệt đối của một số.
Ví dụ:
cout<<abs(-7.5); //Kết quả: 7.5
cout<<fabs(-10); //Kết quả: 10
double floor(number)
Hàm này dùng để lấy giá trị nguyên nhỏ hơn hoặc bằng number.
Ví dụ:
cout<<floor(-7.5); //Kết quả: -8
cout<<floor(7.5); //Kết quả: 7
Số ngẫu nhiên trong C++
Có hai hàm ta có thể dùng để tạo số ngẫu nhiên. Đầu tiên là hàm rand(), hàm này sẽ chỉ trả về một số ngẫu nhiên giả. Cách để khắc phục điều này trước tiên là gọi hàm srand().
Sau đây là một ví dụ đơn giản để tạo ra một vài số ngẫu nhiên. Ví dụ này sử dụng hàm time() để lấy số giây trên thời gian hệ thống của bạn, sau đó ta dùng giá trị này để tạo ngẫu nhiên với hàm rand().
#include<iostream> #include<ctime> #include<cstdlib> using namespace std; main(){ int i, j; // thiết lập seed srand((unsigned)time(NULL)); /* tạo ra 10 số ngẫu nhiên. */ for(i = 0 ; i < 10 ; i++){ // tạo số ngẫu nhiên thực tế j = rand(); cout << "So ngau nhien: " << j << endl; } return 0; }
Khi đoạn mã trên được biên dịch và thực thi thì nó sẽ tạo ra kết quả dạng sau:
So ngau nhien: 17481 So ngau nhien: 2111 So ngau nhien: 22996 So ngau nhien: 18409 So ngau nhien: 18206 So ngau nhien: 22353 So ngau nhien: 32434 So ngau nhien: 15439 So ngau nhien: 29997 So ngau nhien: 3750 So ngau nhien: 27252
Giải phóng thời gian, khai phóng năng lực