Kiểu bool, boolean trong lập trình C/C++ [Code ví dụ]
[Xem thêm: Tự học lập trình C, C++ qua code ví dụ]
Kiểu dữ liệu boolean, bool là gì?
Kiểu dữ liệu Boolean là một kiểu dữ liệu có chỉ có thể nhận một trong hai giá trị như đúng/sai [true/false, yes/no, 1/0] nhằm đại diện cho hai giá trị thật [truth value].
Trong lập trình C kiểu boolean sẽ được gọi là bool [trong Java thì gọi là boolean, trong Python thì gọi là bool… tùy theo ngôn ngữ].
Ban đầu, ngôn ngữ C không hỗ trợ kiểu bool, mà nó dùng số integer để biểu thị true/false [0 tức là false, khác 0 tức là true]. Bắt đầu từ phiên bản C99 standard for C language thì mới bắt đầu hỗ trợ kiểu bool.
Để sử dụng kiểu bool ta có các cách sau:
Cách 1: Sử dụng thư viện
Với cách này ta sử dụng kiểu bool của C [với C++ thì mặc định không cần khai báo thư viện ]
Ví dụ:
#include #include int main[] { bool value = false; if [value] { // tương đương với kiểm tra value == true printf["value is true"]; } else { printf["value is false"]; } return 0; }Cách 2: Tự định nghĩa kiểu bool với enum
enum bool { false, true }; // tương đương với typedef enum { false=0, true=1 } bool;Ví dụ:
#include typedef enum { false, true } bool; int main[] { bool value = false; if [value] { // tuong duong v?i ki?m tra value == true printf["value is true"]; } else { printf["value is false"]; } return 0; }Cách 3: Định nghĩa kiểu bool với integer
typedef int bool; enum { false, true };Cách 3: Khai báo hằng số true/false
typedef int bool; #define true 1 #define false 0Trong các cách trên:
- Cách 1 chỉ chạy được từ phiên bản C99 standard for C language. Tuy nhiên hầu hết các bản compiler C/C++ đều đã update cho nên các bạn nên dùng cách này.
- Cách 2,3,4: thì hoạt động giống nhau
Nhìn chung thì kiểu bool vẫn là kiểu integer, nên cho dù dùng cách nào thì bạn vẫn có thể gán bool bằng một giá trị integer bất kì [0 tức là false, khác 0 tức là true]
References:
//en.wikipedia.org/wiki/Boolean_data_type
//stackoverflow.com/…/using-boolean-values-in-c
Trang 1264 Cửa sổ IntermediateCửa sổ Intermediate là nơi giúp thi hành trực tiếp một câu lệnh nào đó, rất hữu dụng trong việc gỡ lỗi phần mềm sẽ quay trở lại vấn đề gỡ rối phầnmềm ở cuối chương
2. Các kiểu dữ liệu và khai báo
2.1 Các kiểu dữ liệu cơ bản
Cũng như các ngơn ngữ lập trình khác, VBA đều hỗ trợ các kiểu dữ liệu cơ bản. Dưới đây giới thiệu chi tiết về từng kiểu.BooleanKiểu lơ gíc, tương tự kiểu Boolean trên Pascal. Kiểu này chiếm 2 byte bộ nhớ; chỉ nhận một trong 2 giá trị là: Yes – No hoặc True – False hoặc đôi khi thể hiệnPhần khai báo Thủ tục đáp ứng sựChương trình conTrang 127dưới dạng số 0 tương đương với False, True tương ứng với bất kỳ số nào khác 0. Khi lập trình CSDL, kiểu Boolean tương ứng với kiểu YesNo trong bảng dữ liệu.ByteKiểu số nguyên dương trong phạm vi từ 0..255. Kiểu này chiếm 1 byte bộ nhớ.IntegerKiểu nguyên, có giá trị trong khoảng -32768...32767. Kiểu này chiếm 2 bytes bộ nhớ.LongKiểu số nguyên dài, có giá trị trong khoảng 2,147,483,648 .. 2,147,483,647. Kiểu này chiếm 4 bytes bộ nhớ.SingleKiểu số thực, có giá trị trong khoảng 1.401298E-45 to 3.402823E38. Chiếm 4 bytes bộ nhớ.DoubleKiểu số thực có đợ lớn hơn kiểu Single, có giá trị trong khoảng 4.94065645841247E-324 to 1.79769313486232E308. Chiếm 8 bytes bộ nhớ.CurrencyKiểu tiền tệ. Bản chất là kiểu số, độ lớn 8 bytes, có giá trị trong khoảng - 922,337,203,685,477.5808 to 922,337,203,685,477.5807. Đặc biệt, kiểu này lncó ký hiệu tiền tệ đi kèm.Trang 128StringKiểu xâu ký tự. Kiểu này tương ứng với kiểu String trong Pascal, tương ứng với kiểu Text trong các trường CSDL Access. Độ lớn tối đa 255 bytes tương đương vớikhả năng xử lý xâu dài 255 ký tự.VariantVariant là kiểu dữ liệu không tường minh. Biến kiểu này có thể nhận bất kỳ một giá trị nào có thể. Ví dụ :Dim a As Variant a = 123a = “Nguyễn Văn Ngơ”Hồn tồn khơng có lỗi. Người ta thường khai báo biến kiểu Variant trong những trường hợp phải xử lýbiến đó mềm dẻo. Khi thì biến nhận giá trị kiểu này, khi thì nhận giá trị và xử lý theo kiểu dữ liệu khác.ObjectObject là một loại biến kiểu Variant, chiếm dung lượng nhớ 4 bytes, dùng để tham chiếu tới một loại đối tượng Object nào đó trong khi lập trình. Tất nhiênmuốn khai báo biến Object kiểu nào, phải chắc chắn đối tượng đó đã được đăng kývào thư viện tham chiếu VBA bởi tính năng Tool | Reference. Chúng ta sẽ còn trởlại vấn đề này khi lập trình CSDL.
Dữ liệu là thông tin đã mã hóa trong máy tính. Dữ liệu sau khi tập hợp lại và xử lý sẽ cho ta thông tin.
- Dữ liệu là thông tin đã mã hóa trong máy tính. Dữ liệu sau khi tập hợp lại và xử lý sẽ cho ta thông tin.
- Mỗi ngôn ngữ lập trình thường cung cấp một số kiểu dữ liệu chuẩn cho biết phạm vi giá trị có thể lưu trữ, dung lượng bộ nhớ cần thiết để lưu trữ và các phép toán tác động lên dữ liệu.
- Mỗi kiểu dữ liệu được đặc trưng bởi tên kiểu miền giá trị, kích thước trong bộ nhớ, các phép toán, các hàm và thủ tục sử dụng chúng.
- Một số kiểu dữ liệu chuẩn thường dùng cho các biến chẵn trong Pascal, đó là:
Kiểu nguyên: Các kiểu nguyên được lưu trữ và kết quả tính toán là số nguyên nhưng có hạn chế về miền giá trị. Tập số nguyên là vô hạn là có thứ tự, đếm được
Kiểu |
Bộ nhớ lưu trữ một giá trị |
Phạm vi giá trị |
Byte |
1 byte |
Từ 0 đến 255 |
Integer |
2 byte |
Từ -2-15 đến 215 - 1 |
Word |
2 byte |
Từ 0 đến 216 |
Longint |
4 byte |
Từ -231 đến 231- 1 |
Kiểu thực: Các kiểu thực được lưu trữ và kết quả tính toán chỉ là gần đúng với sai số không đáng kể, nhưng miền giá trị được mở rộng hơn so với kiểu nguyên. Số thực tromg máy tính rời rạc và hữu hạn. Phép toán chia các toán hạng gồm cả kiểu nguyên và kiểu thực sẽ cho kết quả là kiểu thực.
Kiểu |
Bộ nhớ lưu trữ một giá trị |
Phạm vi giá trị |
Real |
6 byte |
0 hoặc có giá trị tuyệt đối nằm trong phạm vi từ 2-38 đến 238 |
Extended |
10 byte |
0 hoặc có giá trị tuyệt đối nằm trong phạm vi từ 2-4932 đến 24932 |
Kiểu kí tự: Kiểu kí tự có tập hợp giá trị là các kí tự trong bảng mã ASCII, được dùng khi thông tin là các kí tự, xâu [string]. Kiểu kí tự là kiểu có thứ tự, đếm được. Kí tự đặc biệt dùng để thể hiện sự ngăn cách giữa hai từ viết liên tiếp trong các văn bản, là dấu cách.
Kiểu |
Bộ nhớ lưu trữ một giá trị |
Phạm vi giá trị |
Char |
1 byte |
256 kí tự trong bộ mã ASCII |
Nhìn bảng dưới ta thấy kí tự A có mã ASCII là 65, a có mã là 97.
Kiểu lôgíc: Kiểu lôgíc trong Pascal chi có hai giá trị là true và false, được dùng khi kiểm tra một điều kiện hoặc tìm giá trị cùa một biểu thức lôgíc. Kiểu lôgíc cũng là kiểu thứ tự đếm được.
Kiểu |
Bộ nhớ lưu trữ một giá trị |
Phạm vi giá trị |
Boolean |
1 byte |
true hoặc false |
Lưu ý : Người lập trình cần tìm hiểu đặc trưng của các kiểu dữ liệu chuẩn được xác định bởi bộ dịch và sử dụng để khai báo biến
Ví dụ: Để lưu trữ giá trị nguyên mang giá trị 65537 thì ta không thể sử dụng kiểu byte, integer, word mà phải dung longint. Tuy nhiên nếu ta chỉ lưu trữ giá trị tối đa nhỏ hơn 32767 thì ta nên sử dụng kiểu integer để tiết kiệm bộ nhớ.
Loigiaihay.com
I. CÁC KIỂU DỮ LIỆU CƠ BẢN *Tổng quát: Các kiểu dữ liệu chuẩn
2. Kiểu số nguyên
2.2.1. Các phép toán số học: +, -, *, / [phép chia cho ra kết quả là số thực]. Phép chia lấy phần nguyên: DIV [Ví dụ : 34 DIV 5 = 6]. Phép chia lấy số dư: MOD [Ví dụ: 34 MOD 5 = 4]. 2.2.2. Các phép toán xử lý bit: Trên các kiểu ShortInt, Integer, Byte, Word có các phép toán: NOT, AND, OR, XOR.
3. Kiểu số thực
3.2. Các phép toán trên kiểu số thực: +, -, *, / Chú ý: Trên kiểu số thực không tồn tại các phép toán DIV và MOD. 3.3. Các hàm số học thường sử dụng cho kiểu số nguyên và số thực: SQR[x]: Trả về x2 SQRT[x]: Trả về căn bậc hai của x [x≥0] ABS[x]: Trả về |x| SIN[x]: Trả về sin[x] theo radian COS[x]: Trả về cos[x] theo radian ARCTAN[x]: Trả về arctang[x] theo radian LN[x]: Trả về ln[x] EXP[x]: Trả về ex TRUNC[x]: Trả về số nguyên gần với x nhất nhưng bé hơn x. INT[x]: Trả về phần nguyên của x FRAC[x]: Trả về phần thập phân của x ROUND[x]: Làm tròn số nguyên x PRED[n]: Trả về giá trị đứng trước n SUCC[n]: Trả về giá trị đứng sau n ODD[n]: Cho giá trị TRUE nếu n là số lẻ. INC[n]: Tăng n thêm 1 đơn vị [n:=n+1]. DEC[n]: Giảm n đi 1 đơn vị [n:=n-1].4. Kiểu ký tự - Từ khoá: CHAR. - Kích thước: 1 byte. - Để biểu diễn một ký tự, ta có thể sử dụng một trong số các cách sau đây: + Đặt ký tự trong cặp dấu nháy đơn. Ví dụ 'A', '0'. + Dùng hàm CHR[n] [trong đó n là mã ASCII của ký tự cần biểu diễn]. Ví dụ CHR[65] biễu diễn ký tự 'A'. + Dùng ký hiệu #n [trong đó n là mã ASCII của ký tự cần biểu diễn]. Ví dụ #65. - Các phép toán: =, >, >=,Chủ Đề |