Cho tới thời điểm này, bạn đã được học về biếnhằng trong C++. Tuy nhiên bạn mới chỉ sử dụng biếnhằng ở mức độ lưu trữ giá trị và nhập / xuất thôi. Bài viết này mình sẽ hướng dẫn bạn sử dụng các phép toán trong C++. Qua đó bạn có thể ứng dụng để thực hiện các biểu thức tính toán với biến / hằng.


Biểu thức


Thông thường khi đề cập đến các phép toán thì người ta hay hình dung đến phép cộng, trừ, nhân, chia, … Và đây cũng chính là những biểu thức tính toán. Nói cách khác, biểu thức là sự kết hợp giữa các toán hạng và các toán tử. Đối với lập trình thì việc bạn sử dụng biểu thức sẽ hay diễn ra. Do đó bạn cần phải nắm thật vững phần này vì sẽ rất dễ và cũng hay sai lắm bạn nhé.

  • Toán hạng gồm: biến, hằng hoặc các giá trị trả ra từ một hàm nào đó.
  • Toán tử là các ký hiệu thể hiện cho phép toán: cộng, trừ, nhân, chia, …

➤ Ví dụ: Dưới đây được xem là biểu thức.
Biểu thức và toán tử


Các phép toán trong C++


Các phép toán trong C++ được biểu diễn bởi các ký hiệu toán tử. Trong C++ có nhiều loại toán tử, mình sẽ chia thành những nhóm sau đây cho bạn dễ theo dõi.

Toán tử số học

Toán tử số học được sử dụng để biểu diễn các phép toán với các toán hạng. Có 02 dạng toán tử số học

  • Toán tử một ngôi, chỉ bao gồm dấu + đặt phía trước toán hạng. Toán tử một ngôi được sử dụng để biểu diễn số âm hoặc số dương.
    Toán tử một ngôi
  • Toán tử hai ngôi, được sử dụng để thực hiện các phép toán của biểu thức. Toán tử hai ngôi bao gồm:
    Toán tử hai ngôi

➤ Ví dụ: Bạn hãy xây dựng chương trình như ví dụ sau:
Toán tử số họcTrong ví dụ trên, mình hai báo 02 biến số nguyên biti có kiểu int. Bạn hãy để ý phần mình highlight (từ dòng 10 đến dòng 14) trong ví dụ nhé. Đó chính là các phép toán số học mà mình đã giới thiệu ở trên. Kết quả của phép toán sẽ được in trực tiếp ra màn hình. Bạn hãy cố gắng tự xây dựng lại chương trình trên và chạy thử để thấy kết quả.

Toán tử quan hệ

Toán tử quan hệ được sử dụng trong các phép so sánh. Ở thời điểm hiện tại, bạn chưa được học về cấu trúc rẽ nhánh, do đó nội dung này mình chỉ trình bày để bạn biết thêm. Còn áp dụng thì đến bài cấu trúc rẽ nhánh sẽ giới thiệu cho bạn kỹ hơn.

Các toán tử quan hệ bao gồm:
Toán tử quan hệ➤ Lưu ý:  Các bạn mới học thường hay quên hoặc nhầm lẫn toán tử so sánh bằng “==” và toán tử gán “=“. Đây là 02 toán tử khác nhau, khi sử dụng nhầm thì trình biên dịch cũng không báo lỗi. Nhưng kết quả mà bạn nhận được sẽ khác nhau, do đó bạn cần hết sức lưu ý trường hợp này.

Toán tử gán

Toán tử gán được sử dụng để lưu giá trị của một biến/hằng/biểu thức/kết quả của một hàm vào một biến nào đó. Trong lập trình C++, phép gán có thể kết hợp với các toán tử số học để tăng tính tiện lợi cho người lập trình.

Các toán tử gán bao gồm:
Toán tử gán Từ bảng trên, bạn có thể thấy rằng nếu sử dụng phép gán kèm theo toán tử số học thì đoạn code của bạn sẽ được rút gọn khá nhiều. Đó chính là tính tiện lợi của toán tử gán mà các lập trình viên rất ưa dùng.

➤ Lưu ý:  Đối với phép gán bằng, trong C++ bạn có thể thực hiện gán giá trị cho nhiều biến cùng lúc. Ví dụ:
Toán tử gán

Toán tử luận lý (logic)

Toán tử luận lý hay được sử dụng để kết hợp các biểu thức với nhau thành một biểu thức. Biểu thức kết hợp bởi toán tử luận lý  cũng thường hay được sử dụng trong cấu trúc rẽ nhánh. Tương tự toán tử quan hệ, kết quả của biểu thức kết hợp bởi toán tử luận lý chỉ trả về 02 giá trị: 1 (Đúng) và 0 (Sai).
Toán tử luận lý (logic)➤ Lưu ý:  dưới đây là qui tắc của toán tử luận lý

  • Toán tử “!” : nghịch đảo kết của biểu thức. Nếu biểu thức đó ĐÚNG, thì nghịch đảo lại là SAI và ngược lại.
  • Toán tử “&&” : có thể hiểu như phép giao. Nếu tất cả các biểu thức ĐÚNG, thì kết quả mới được xem là ĐÚNG. Ngược lại chỉ cần có một biểu thức SAI thì toàn bộ sẽ là SAI.
  • Toán tử “||” : toán tử này nhẹ nhàng hơn toán tử AND. Chỉ cần có một biểu thức ĐÚNG thì toàn bộ kết quả sẽ được xem là ĐÚNG. Ngược lại kết quả được xem là SAI khi toàn bộ các biểu thức đều SAI.

Toán tử luận lý (logic)

Toán tử tăng giảm

Toán tử tăng giảm là toán tử một ngôi, được sử dụng để tăng hoặc giảm giá trị của các biến. Đây là toán tử rất được ưa dùng vì cách viết khá gọn.
Toán tử tăng giảmCác toán tử tăng hoặc giảm có thể được đặt trước tên biến làm tiền tố hoặc đặt sau tên biến làm hậu tố. Việc bạn đặt toán tử tăng / giảm làm tiền tố hoặc hậu tố sẽ ảnh hưởng tới kết quả của biểu thức. Do đó bạn cần hết sức lưu ý cách sử dụng toán tử này:

  • Nếu toán tử tăng / giảm là tiền tố có nghĩa là thực hiện tăng / giảm trên giá trị trước rồi mới sử dụng giá trị.
    • Ví dụ:
      Toán tử tăng
    • Kết quả thực thi:
      Toán tử tăng
  • Nếu toán tử tăng / giảm là hậu tố có nghĩa là sử dụng giá trị trước rồi mới thực hiện tăng / giảm trên giá trị. Ví dụ:
    • Ví dụ:
      Toán tử tăng
    • Kết quả thực thi:
      Toán tử tăng

Từ 02 ví dụ trên, bạn đã nhận thấy sự khác nhau giữa việc sử dụng toán tử tăng/giảm làm tiền tố và hậu tố chưa. Rõ ràng nó làm ảnh hưởng đến kết quả của bài toán nếu bạn sử dụng không đúng. Việc sử dụng tiền tố hay hậu tố là tuỳ thuộc vào ngữ cảnh của câu lệnh. Do đó mình cũng không thể đưa ra quy tắc chính xác khi nào thì sử dụng tiền tố hay hậu tố được.

➤ Lưu ý: một số lưu ý bạn cần nhớ khi sử dụng toán tử tăng / giảm.

  • Toán tử này chỉ được dùng cho toán hạng là một biến. Không sử dụng cho toán hạng là hằng, biểu thức.
  • Bạn cần phải viết các ký hiệu “++” hoặc “” liền nhau.

Toán tử dấu phẩy

Đây là toán tử đặc biệt và rất ít được nhắc tới. Toán tử dấu phẩy được sử dụng để phân tách các biểu thức con trong một biểu thức kết hợp (còn được gọi là biểu thức dấu phẩy). Các biểu thức con sẽ được thực hiện lần lượt từ trái sang phải, do đó kết quả của biểu thức bên trái có thể được áp dụng ngay cho biểu thức bên phải.

➤ Ví dụ:
Toán tử dấu phẩyKết quả thu được:
Toán tử dấu phẩyTuy rằng biểu thức dấy phẩy ít được nhắc tới, nhưng lại hay được sử dụng. Lạ quá phải không? Thực tế thì nhiều bạn học lập trình sử dụng thường xuyên nhưng lại không biết tới nó. Trong nhiều trường hợp, người ta sử dụng biểu thức dấu phẩy để đơn giản hoá bớt các thao tác cần thực hiện. Ví dụ hay gặp nhất là trong vòng lặp for, phần này sẽ được mình trình bày ở một bài viết khác.

Toán tử điều kiện

Toán tử điều kiện là một dạng toán tử đặc biệt được tạo bởi 02 ký hiệu “?” và “:“, do đó đôi khi còn được gọi là “toán tử dấu chấm hỏi“. Toán tử này cho phép bạn thực hiện việc kiểm tra điều kiện theo dạng “nếu … thì … ngược lại …“. Cú pháp của toán tử này như sau:
Toán tử điều kiệnBạn có thể hiểu cú pháp trên như sau: “Nếu thoả <biểu thức điều kiện> thì trả về <kết quả 1> ngược lại trả về <kết quả 2>“.

➤ Ví dụ:
Toán tử điều kiệnMình giải thích dòng số 6 một xíu nhé. Ý nghĩa của nó thế này: “Nếu giá trị của biến fabiti lớn hơn giá trị của biến com, thì lấy giá trị biến com gán cho biến min, ngược lại thì lấy giá trị biến fabiti gán cho biến min“. Vậy theo bạn thì với biểu thức trên, biến min sẽ có giá trị là bao nhiêu? Hãy comment kết quả để xem bạn có hiểu bài không nhé.


Tổng kết


Phần này mình đã trình bày tới bạn hầu hết các toán tử cơ bản trong C++. Vẫn còn một số toán tử nữa (chẳng hạn toán tử trên Bit), nhưng những toán tử này theo suy nghĩ của mình thì sẽ không phù hợp nếu trình bày ở đây. Do về ứng dụng thì bạn cũng không sử dụng tới, mà về kiến thức thì cũng chưa đủ để có thể tiếp cận. Vì vậy nếu sau này có thời gian mình sẽ viết dưới dạng một bài viết hướng dẫn riêng lẻ.

Kết thúc bài viết này là bạn đã có thể làm được một số bài tập về tính toán. Mình mong rằng bạn sẽ nắm và vận dụng được những kiến thức trong bài học này.

5 2 votes
Đánh giá bài viết
0 Góp ý
Inline Feedbacks
View all comments