Trong bài 4, chúng ta đã nói về biến, là một đại lượng lưu trữ giá trị. Trong bài này, chúng ta sẽ tìm hiểu cách kết hợp các biến với nhau và cách lưu trữ giá trị vào biến trong ngôn ngữ lập trình C++.
Để có thể thực hiện tính toán với các biến số và hằng số, ta cần dùng các toán tử. Dưới đây, thầy sẽ giới thiệu cho các em một số toán tử cơ bản trong C++.
Để dễ dàng cho việc học, thầy lấy ví dụ với hai biến a lưu trữ giá trị kiểu nguyên là 10 và b lưu trữ giá trị kiểu nguyên là 3.
Lưu ý: Nếu một trong hai biến a và b là kiểu thực, a / b sẽ cho kết quả là 3.3333...
Bên cạnh đó, C++ còn cung cấp cho chúng ta một vài toán tử giúp chúng ta viết nhanh hơn. Đó là toán tử tăng (++) và toán tử giảm (--).
Biểu thức là sự kết hợp của các giá trị, hằng số, biến số hay hàm, gọi là toán hạng và các toán tử mà ngôn ngữ lập trình có thể diễn giải và tính toán để ra một giá trị nào đó.
Ghi chú: Mỗi biến số hoặc hằng số đơn lẻ cũng là một biểu thức.
Biểu thức số học gồm các giá trị, hằng số, biến số và hàm số kiểu số nguyên hoặc số thực và các toán tử số học.
Quy tắc thực hiện tính toán:
Nếu có ngoặc thì thực hiện tính toán trong ngoặc trước.
Nếu không có ngoặc thực hiện tính toán các phép toán *, /, % trước; +, - sau.
Nếu mức độ ưu tiên của các phép toán bằng nhau, thực hiện tính toán từ trái sang phải.
Kết quả: Nếu tất cả toán hạng kiểu nguyên, biểu thức cho kết quả kiểu nguyên. Nếu có ít nhất một toán hạng kiểu thực, biểu thức cho kết quả kiểu thực.
Ví dụ: (x / y) * 2 % (8 + 10 - 2) với x, y là các biến kiểu số nguyên.
Biểu thức trên sẽ được thực hiện như sau:
Tính kết quả của biểu thức (x / y)
Tính kết quả của biểu thức (8 + 10 - 2) = (18 - 2) = 16.
Tính kết quả của biểu thức ((x / y) * 2)
Tính kết quả của biểu thức ((x / y) * 2) % 16
Giả sử, x, y lần lượt lưu trữ giá trị là 1, 5.
Giá trị của biểu thức trong ví dụ sẽ là ((1 / 5) * 2) % 16 = (0 * 2) % 16 = 0 % 16 = 0
Lưu ý: Nếu biểu thức có ít nhất một toán hạng kiểu thực thì không thể dùng toán tử %.
Một số hàm số học chuẩn
C++ cung cấp mốt số hàm số học thông dụng, muốn sử dụng các hàm này, các em khai báo thêm thư viên <math.h>
Ví dụ:
Một số biểu thức sau đây trong toán sẽ được viết tương ứng trong C++ là:
Biểu thức quan hệ có cấu trúc:
<biểu thức 1> <toán tử quan hệ> <biểu thức 2>
Quy tắc thực hiện tính toán:
Thực hiện tính toán giá trị các biểu thức.
Thực hiện tính toán biểu thức quan hệ
Kết quả: Biểu thức quan hệ cho kết quả kiểu logic.
Ví dụ: (5*10+3) >= (1-2*6)
Biểu thức trên sẽ được thực hiện như sau:
Tính kết quả của biểu thức (5*10+3) = (50+3) = 53
Tính kết quả của biểu thức (1-2*6) = (1-12) = -11
Tính kết quả của biểu thức 53>=-11 là đúng.
Vậy biểu thức (5*10+3) >= (1-2*6) có kết quả là đúng.
Biểu thức logic gồm các giá trị, hằng số, biến số, hàm số kiểu logic, biểu thức quan hệ và các toán tử logic.
Quy tắc thực hiện tính toán:
Nếu có ngoặc thì thực hiện tính toán trong ngoặc trước.
Nếu không có ngoặc thì thực hiện tính toán phép toán logic ! trước; tiếp theo là biểu thức quan hệ; cuối cùng là các phép toán logic &&, ||.
Nếu mức độ ưu tiên của các phép toán như nhau thì thực hiện tính toán từ trái sang phải.
Kết quả: Biểu thức logic cho kết quả kiểu logic.
Ví dụ: true && !(5>6)
Biểu thức trên sẽ được thực hiện như sau:
Tính kết quả của biểu thức (5>6) là false.
Tính kết quả của biểu thức !(false) là true.
Tính kết quả của biểu thức true && true là true.
Vậy biểu thức true && !(5>6) có kết quả là true.
Ghi chú: Trong C++, các giá trị true và false còn được biểu diễn dưới dạng số nguyên lần lượt là 1 và 0.
Qua bài 4, các em đã biết biến dùng để "lưu trữ giá trị" và từ đầu bài 5 đến giờ cũng đã nghe cụm từ đó rất nhiều. Vậy việc đó thực hiện thế nào trong ngôn ngữ lập trình C++? Đó là nhờ phép gán.
Phép gán trong C++ có cấu trúc:
<tên biến> = <biểu thức>
Tên biến là tên của biến mà các em muốn gán giá trị vào. Các em cần đảm bảo giá trị của biểu thức và kiểu dữ liệu của biến giống nhau. Dấu "=" gọi là toán tử gán.
Lưu ý:
Có thể gán giá trị của biến kiểu số nguyên cho biến kiểu số thực.
Nếu gán giá trị của biến kiểu số thực cho biến kiểu số nguyên thì biến kiểu số nguyên sẽ lưu trữ giá trị là phần nguyên.
Ví dụ:
int a; //khai báo biến a kiểu số nguyên
a=10; //gán giá trị 10 cho biến a
bool b; //khai báo biến b kiểu logic
b=5>6; //gán giá trị của biểu thức quan hệ 5>6 cho biến b
float c; //khai báo biến c kiểu số thực
c=a; //gán giá trị của biến a cho biến c
c=20.5; //gán giá trị 20.5 cho biến c
a=c; //gán giá trị của biến c cho biến a
Sau khi thực hiện các khai báo và phép gán trên, giá trị của các biến a, b, c lần lượt là 20, true, 20.5.
Người viết: Thái Dương Bảo Duy