14/08/2018, 12:35

Number trong C++

Thông thường, khi chúng ta làm việc với Number (các kiểu giá trị số), chúng ta sử dụng các kiểu dữ liệu gốc như int, short, long, float và double, …. Các kiểu dữ liệu số, về giá trị có thể và dãy giá trị của chúng, đã được bàn luận trong chương Kiểu dữ liệu trong C++. Định nghĩa ...

Thông thường, khi chúng ta làm việc với Number (các kiểu giá trị số), chúng ta sử dụng các kiểu dữ liệu gốc như int, short, long, float và double, …. Các kiểu dữ liệu số, về giá trị có thể và dãy giá trị của chúng, đã được bàn luận trong chương Kiểu dữ liệu trong C++.

Định nghĩa Number trong C++

Bạn đã thấy định nghĩa các số trong các ví dụ đa dạng ở các chương trước. Dưới đây là một ví dụ tổng hợp để định nghĩa các kiểu số đa dạng trong C++:

#include <iostream>
using namespace std;
 
int main ()
{
   // phan dinh nghia cac so:
   short  s;
   int    i;
   long   l;
   float  f;
   double d;
   
   // phep gan cho cac so;
   s = 10;      
   i = 1000;    
   l = 1000000; 
   f = 230.47;  
   d = 30949.374;
   
   // in cac so;
   cout << "short  s la: " << s << endl;
   cout << "int    i la: " << i << endl;
   cout << "long   l la: " << l << endl;
   cout << "float  f la: " << f << endl;
   cout << "double d la: " << d << endl;
 
   return 0;
}

Khi code trên được biên dịch và thực thi, nó cho kết quả sau:

short  s la: 10
int    i la: 1000
long   l la: 1000000
float  f la: 230.47
double d la: 30949.4

Hàm toán học trong C++

Bên cạnh các hàm đa dạng bạn có thể tạo, C++ cũng bao gồm một số hàm toán học hữu ích cho bạn sử dụng. Những hàm này có sẵn trong các thư viện C và C++ chuẩn, và được gọi là các hàm built-in. Đây là các hàm mà có thể được bao trong chương trình của bạn và sau đó sử dụng.

C++ có một tập hợp hàm toán học đa dạng, có thể được thực hiện trên các kiểu số khác nhau. Bảng dưới liệt kê một số hàm toán học có sẵn hữu ích trong C++.

Để sử dụng các hàm này, bạn cần bao header file là <cmath>.

STT Hàm & Mục đích
1 double cos(double);

Hàm này trả về cosin của một góc (dạng một double)

2 double sin(double);

Hàm này trả về sin của một góc (dạng một double)

3 double tan(double);

Hàm này trả về tang của một góc (dạng một double)

4 double log(double);

Hàm này trả về logarit tự nhiên (ln) của số đó

5 double pow(double, double);

Hàm mũ với cơ số là số double đầu tiên và số mũ là double thứ hai

6 double hypot(double, double);

Nếu bạn truyền độ dài của hai cạnh của tam giác (lần lượt là các số double), nó sẽ trả về độ dài cạnh huyền

7 double sqrt(double);

Trả về căn bậc hai của số double

8 int abs(int);

Trả về trị tuyệt đối của int

9 double fabs(double);

Trả về trị tuyệt đối của bất kỳ số double nào

10 double floor(double);

Tìm số integer mà nhỏ hơn hoặc bằng tham số đã truyền cho nó

Ví dụ sau minh họa một số hàm toán học trong C++:

#include <iostream>
#include <cmath>
using namespace std;
 
int main ()
{
   // phan dinh nghia cac so:
   short  s = 10;
   int    i = -1000;
   long   l = 100000;
   float  f = 230.47;
   double d = 200.374;

   // cac hoat dong toan hoc;
   cout << "sin(d)     co gia tri la: " << sin(d) << endl;
   cout << "abs(i)     co gia tri la: " << abs(i) << endl;
   cout << "floor(d)   co gia tri la: " << floor(d) << endl;
   cout << "sqrt(f)    co gia tri la: " << sqrt(f) << endl;
   cout << "pow( d, 2) co gia tri la: " << pow(d, 2) << endl;
 
   return 0;
}

Chạy chương trình C++ trên sẽ cho kết quả như hình sau:

Hàm toán học trong C++

Số ngẫu nhiên (Random Number) trong C++

Trong một số trường hợp, bạn muốn tạo một số ngẫu nhiên (random number). Có hai hàm có thể giúp bạn thực hiện việc này. Hàm đầu tiên là rand() được định nghĩa trong thư viện <cstdlib>: sẽ chỉ trả về một số ngẫu nhiên giả, mà có thể không thay đổi qua các lần chạy chương trình. Để giải quyết điểm bất thường này, chúng ta sẽ sử dụng hàm srand() trong thư viện <ctime>.

Ví dụ sau sẽ tạo vài số ngẫu nhiên trong C++. Ví dụ có sử dụng hàm time() để lấy số giây trên System time của bạn. Giá trị trả về từ time là qua scrand, bạn lưu ý là số ngẫu nhiên được tạo ra trước lời gọi rand.

#include <iostream>
#include <ctime>
#include <cstdlib>

using namespace std;
 
int main ()
{
   int i,j;
 
 
   srand( (unsigned)time( NULL ) );

   /* tao 10 so ngau nhien. */
   for( i = 0; i < 10; i++ )
   {
      
      j= rand();
      cout <<" So ngau nhien la : " << j << endl;
   }

   return 0;
}

Chạy chương trình C++ trên sẽ cho kết quả như hình sau:

Số ngẫu nhiên trong C++

0