BOOLEAN LÀ GÌ

     

Rất vui được hội ngộ chúng ta trong khóa học lập trình trực tuyến ngôn ngữ c++ hướng thực hành.

Bạn đang xem: Boolean là gì

Bài Viết: Boolean là gì

Trong bài học này, chúng ta cùng tìm hiểu về một kiểu dữ liệu được sử dụng rất thường xuyên trong ngôn ngữ lập trình C++. Đó là kiểu dữ liệu bool.

Nhìn lại bảng những kiểu dữ liệu cơ bản trong những bài trước, chúng ta thấy kiểu bool có kích thước nhỏ nhất.


*

Kiểu dữ liệu bool được sử dụng để lưu trữ kết quả của một mệnh đề toán học trong máy tính.

Mệnh đề toán học là gì?

Mệnh đề toán học (hay còn gọi là mệnh đề logic) là một phát biểu mà nó chỉ có thể xảy ra một trong hai trường hợp: đúng hoặc sai.

Ví dụ:

Mệnh đề A = “Chúng ta đang học lập trình C++”. Mình có thể nói A là một mệnh đề đúng.

Mệnh đề B = “5 là số chẵn”. Đây hiển nhiên là một mệnh đề sai.

Vậy thì, kết quả đúng hoặc sai của một mệnh đề là một sự hiển nhiên, có thể thấy được ngay.

Tính đúng sai của một mệnh đề cũng có thể thay đổi theo thời gian.

Ví dụ:

Mệnh đề C = “Hôm nay là thứ ba”. Mệnh đề này có thể đúng hoặc sai tùy vào thời hạn mình phát biểu nó.

Những câu mệnh lệnh, cảm thán hay khúc mắc … đều không thể đóng vai trò là một mệnh đề vì chúng không phản ánh được sự đúng hoặc sai.

Mệnh đề khẳng định và mệnh đề phủ định

Thử xét lại mệnh đề B ở ví dụ trên.

B = “5 là số chẵn”. Đây này là một mệnh đề khẳng định, nó khẳng định rằng 5 là số chẵn. Và nó cho chúng ta kết quả sai.

Vậy thì nếu chúng ta phủ định lại mệnh đề B, chúng ta sẽ được một mệnh đề có kết quả đúng.

X = “5 không phải là số chẵn”.

Để phủ định một mệnh đề, chúng ta thường thêm vào từ không hoặc không phải. Nếu chúng ta phủ định mệnh đề B 2 lần, chúng ta được mệnh đề B bước đầu. Đây được gọi là quy luật phủ định của phủ định.


Mệnh đề trong ngôn ngữ lập trình C++

Ngôn ngữ C++ có hổ trợ cho chúng ta việc biểu diễn những mệnh đề toán học. Mình lấy một số ví dụ như sau:

1 10; //sai1 + 1 == 2; //đúngint a = 2, b = 4;a * 3 != b; //đúngTrên đây là một vài ví dụ về phương pháp biểu diễn mệnh đề trong ngôn ngữ C++. Như chúng ta thấy, máy tính không thể hiểu được những phát biểu bằng lời như “Đây là ngôn ngữ C++” hay là “Học lập trình không khó”, chúng chỉ có thể hiểu được những mệnh đề dưới dạng những con số, những biểu thức so sánh…

Khai báo và khởi tạo biến kiểu bool

Kiểu bool là kiểu dữ liệu chỉ nhận một trong hai giá trị true (đúng) hoặc false (sai) tương ứng với kết quả của mệnh đề toán học trong C++.

Chúng ta khai báo (và khởi tạo) biến kiểu bool tương tự như phương pháp khai báo biến có những kiểu dữ liệu mà chúng ta đã được làm quen.

bool b;Trong đó, bool là kiểu dữ liệu và b là tên biến.

Xem thêm: Hà Nội Đã Có Lịch Thi Và Cách Tính Điểm Sơ Tuyển Vào Lớp 10 Chuyên Năm 2021

Chúng ta có thể gán trực tiếp giá trị true hoặc false cho biến kiểu bool.

bool b1 = true;bool b2(false);bool b3 { true };Giá trị của biến kiểu bool có thể bị đảo từ true sang false hoặc ngược lại nếu sử dụng toán tử not (!).

bool b1 = !true; //not true => falsebool b2(!false); //not false => trueKhi biểu diễn giá trị của biến kiểu bool trên máy tính, nó trọn vẹn không phải là true hoặc false mà được định dạng kiểu integer. Giá trị true ứng với số 1, giá trị false ứng với số . Cùng thử chạy đoạn code mẫu dưới đây để kiểm chứng:

#include using namespace std; int main(){ bool b(true); cout

1001Nếu chúng ta muốn đối tượng người dùng cout in ra giá trị true hoặc false thay vì chỉ in ra những giá trị hoặc 1, những bạn cũng có thể sử dụng std::boolalpha.

#include using namespace std;int main(){cout

10truefalseKiểu bool chỉ có thể lưu trữ một trong hai giá trị true hoặc false tương ứng với giá trị 1 và 0 trong số nguyên, điều gì xảy ra nếu chúng ta gán cho biến kiểu bool những giá trị khác? Cùng thử chạy đoạn chương trình dưới để tìm kết quả:

#include using namespace std;int main(){bool b;cout

falsetruetruetrueKhi gán những giá trị số nguyên cho biến kiểu bool, ngoài giá trị 0 ra, những giá trị khác đều được quy đổi về giá trị true.

Gán những mệnh đề toán học cho biến kiểu bool

Mình sẽ lấy lại một số ví dụ về những biểu thức biểu diễn mệnh đề toán học trong ngôn ngữ C++ như dưới.


1 10; //sai1 + 1 == 2; //đúngint a = 2, b = 4;a * 3 != b; //đúngNhững biểu thức này sẽ cho ra kết quả là giá trị đúng hoặc sai. Do đó, chúng ta có thể gán những biểu thức này cho biến kiểu bool. Ví dụ:

bool b1 = 1 10;bool b3 = (1 + 1 == 2);int a = 2, b = 4;bool b4 = (a * 3 != b);cout

1 0 1 1b1 có giá trị đúng vì mệnh đề (1 là đúng. b2 có giá trị sai vì (5 > 10) là sai. Tương tự cho b3b4.

Những mệnh đề toán học trong C++ được tạo nên từ những biểu thức chứa những toán tử quan hệ (relational operators). Những phép so sánh sẽ trả về giá trị đúng hoặc sai.

Những toán tử quan hệ (Comparisons)

Ngôn ngữ C++ đã định nghĩa 6 toán tử quan hệ dùng để so sánh những kiểu dữ liệu cơ bản.


*

Chúng ta lưu ý phân biệt toán tử gán (=) và toán tử so sánh tương đương (==). Khi muốn thực hiện phép so sánh bằng, chúng ta sử dụng 2 dấu bằng liên tiếp nhau. Ngược lại với toán tử so sánh tương đương (==) là toán tử so sánh không tương đương (!=), toán tử này trả về giá trị đúng nếu 2 giá trị không bằng nhau.

Chúng ta lấy ví dụ sau để hiểu rõ hơn phương pháp hoạt động của những toán tử quan hệ:

Tuổi của A là 15, tuổi của B là 20. Sử dụng những toán tử quan hệ cho tuổi của 2 người này, ta được bảng kết quả như sau:


*

So sánh số thực

Sử dụng những toán tử so sánh để thực hiện so sánh số thực có thể cho ra kết quả không mong muốn. Ví dụ:

#include int main(){ double d1(100 – 99.99); // should equal 0.01 double d2(10 – 9.99); // should equal 0.01 bool b1 = (d1 == d2);bool b2 = (d1 > d2);bool b3 = (d1

Toán tử logic (logical operators)

Chúng ta sử dụng những toán tử quan hệ (relational operators) để kiểm tra một biểu thức mệnh đề cụ thể đúng hay sai, nhưng chúng chỉ có thể kiểm tra 1 mệnh đề tại 1 thời hạn. Đôi khi chúng ta cần kiểm tra cùng lúc nhiều mệnh đề trong cùng thời hạn.

Ví dụ: Khi chúng ta muốn kiểm tra thử có trúng vé số hay không, chúng ta cần so khớp nhiều chữ số khác nhau. Nếu tờ vé số có 5 chữ số, chúng ta cần 5 lần so sánh. Trường hợp trúng giải là tất cả những cặp chữ số đều phải khớp với nhau.

Một trường hợp khác, chúng ta cần kiểm tra rằng có tối thiểu một mệnh đề trong số những mệnh đề đưa ra là đúng hay không.


Ví dụ: Nếu chúng ta muốn nghỉ làm việc trong hôm nay, phải có tối thiểu 1 trong 2 mệnh đề sau đây là đúng. Thứ nhất là “chúng ta bị ốm”, thứ hai là “chúng ta đã hoàn thành việc làm”. Hoặc mệnh đề “chúng ta bị ốm” đúng, hoặc mệnh đề “chúng ta đã hoàn thành việc làm” đúng thì chúng ta có thể nghỉ làm việc hôm nay. Nếu chỉ sử dụng những toán tử so sánh, chúng ta phải thực hiện so sánh 2 lần.

Toán tử logic (logical operators) hổ trợ cho chúng ta kiểm tra nhiều mệnh đề cùng một lúc.

Ngôn ngữ C++ cung ứng cho chúng ta 3 toán tử logic:


*

Toán tử NOT

Toán tử NOT kí hiệu là (!) là toán tử một ngôi có công dụng đảo ngược giá trị của biến kiểu bool. Khi sử dụng, chúng ta đặt toán tử NOT đứng trước giá trị kiểu bool hoặc biến kiểu bool.

Ví dụ:

!true;!false;bool b = false;bool b1 = !b;Dưới đây là bảng chân trị của toán tử NOT:


*

Nếu toán tử NOT tác động đến giá trị True, nó sẽ bị chuyển thành giá trị False và ngược lại.

Toán tử OR

Toán tử OR là một toán tử hai ngôi dùng để kiểm tra một trong hai mệnh đề có đúng hay không. Ví dụ: “Tôi thích chơi game” OR “Tôi thích học lập trình C++”. Nếu mệnh đề “Tôi thích chơi game” đúng, hoặc mệnh đề “Tôi thích học lập trình C++” đúng thì toán tử OR trả về kết quả đúng.


Ví dụ:

int value = 1;value == 0 || value == 1; // truevalue == 0 || value == 2; // falseToán tử ANDToán tử AND là một toán tử hai ngôi dùng để kiểm tra cả hai mệnh đề có đều đúng hay không. Dưới đây là bảng chân trị của toán tử AND:


Ví dụ:

int value = 1;value != 0 && value != 2; //truevalue == 1 && value == 2; //false

Tổng kết

Kiểu bool và những biểu thức mệnh đề toán học được sử dụng rất nhiều trong những cấu trúc điều khiển và cấu trúc vòng lặp trong ngôn ngữ C++ mà chúng ta sẽ được học trong những bài học sau.

Xem thêm: Cách Làm, Tạo, Vẽ Đồ Thị Đường Trong Excel Cực Dễ, Lưu Ngay Để Dùng!

P/s: Hẹn hội ngộ chúng ta trong bài học tiếp theo trong khóa học lập trình C++ hướng thực hành.

Mọi ý kiến đóng góp hoặc thắc mắc có thể đặt khúc mắc trực tiếp tại forums

www.daynhauhoc.com

Link Videos khóa học

https://www.udemy.com/c-co-ban-danh-cho-nguoi-moi-hoc-lap-trinh/learn/v4/overview

Thể Loại: Chia sẻ Kiến Thức Cộng Đồng


Bài Viết: Boolean Là Gì – Kiểu Dữ Liệu Boolean

Thể Loại: LÀ GÌ

Nguồn Blog là gì: https://buoidienxanhha.com Boolean Là Gì – Kiểu Dữ Liệu Boolean