Thứ tự thực hiện các phép toán lôgic là như sau: NOT tính trước, kế
đến AND, sau cùng là OR, XOR.
Ví dụ, sau khi thực hiện lệnh:
A:=Not(2*3=5) or (‘A’<‘B’) and not (4/2=2) xor (Sqrt(2) >1);
thì gía trị của A= FALSE, thật vậy :
Not (2*3=5) or (‘A’<‘B’) and not (4/2=2) xor (Sqrt(2) >1)
= TRUE or TRUE and FALSE xor TRUE
=TRUE or FALSE xor TRUE
= TRUE xor TRUE
= FALSE
7 trang |
Chia sẻ: maiphuongdc | Lượt xem: 15232 | Lượt tải: 4
Bạn đang xem nội dung tài liệu Pascal - Kiểu lôgic (boolean), để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
KIỂU LÔGIC (BOOLEAN)
Kiểu boolean chỉ có hai gía trị là TRUE (đúng) và FALSE (sai), không
phân biệt chữ hoa hay chữ thường. Về quan hệ thứ tự thì FALSE< TRUE.
Mỗi gía trị boolean chiếm một byte bộ nhớ.
Các phép toán lôgic gồm có: NOT, AND, OR và XOR. Nếu A và B là
hai đại lượng lôgic thì NOT A, A and B, A or B và A xor B cũng là những
đại lượng lôgic có kết qủa được cho ở bảng 6.6.
A not A
True False
False True
A B A and B A or B A xor B
True True True True False
True False False True True
False True False True True
False False False False False
Bảng 6.6
Cũng từ bảng này ta rút ra các nhận xét :
A and B là đúng khi và chỉ khi A và B đồng thời đúng. (Do đó chỉ cần một
trong hai biến A hoặc B sai thì A and B sẽ sai).
A or B là sai khi và chỉ khi A và B đồng thời sai. (Do đó chỉ cần một trong
hai biến A hoặc B đúng thì A or B sẽ đúng).
A xor B là đúng khi và chỉ khi A khác B.
Thứ tự thực hiện các phép toán lôgic là như sau: NOT tính trước, kế
đến AND, sau cùng là OR, XOR.
Ví dụ, sau khi thực hiện lệnh:
A:=Not (2*3=5) or (‘A’1);
thì gía trị của A= FALSE, thật vậy :
Not (2*3=5) or (‘A’1)
= TRUE or TRUE and FALSE xor TRUE
= TRUE or FALSE xor TRUE
= TRUE xor TRUE
= FALSE
Biến chỉ nhận gía trị là TRUE hoặc FALSE gọi là biến kiểu lôgic. Khi
khai báo biến kiểu lôgic ta dùng từ khóa Boolean, ví dụ :
Var
A, B : Boolean;
Trong chương trình ta có thể gán :
A:= true;
B:=2*2 < 3;
Gía trị của biến B sẽ là False vì biểu thức 2*2< 3 là sai.
Về thứ tự tính toán, các phép so sánh thì ngang cấp nhau và được tính
sau tất cả các phép toán khác. Ví dụ tính biểu thức :
5+7 div 2 < -7 mod 3 + 5*2 =
= 5 + 3 < -1 + 10
= 8< 9
= TRUE
Do đó, khi trong một biểu thức mà có các phép toán lôgic xen kẽ với
các biểu thức so sánh thì các biểu thức so sánh phải để trong ngoặc đơn.
Chẳng hạn, biểu thức sau là sai quy cách:
N > 0 and N<10
Cần sửa đúng thành :
(N > 0) and (N<10)
Ví dụ 6.6:
Nhập vào độ dài ba cạnh a,b,c của một tam giác, nếu a, b, c không phải
là ba cạnh của tam giác thì in lên màn hình câu " không phải ba cạnh của
tam gíac", ngược lại, nếu đúng là ba cạnh của một tam giác thì tính chu vi và
diện tích tam giác đó theo công thức Hêrông:
, với p là nửa chu vi:
Ta biết, điều kiện để a,b,c là ba cạnh của một tam giác là mỗi cạnh phải
dương và tổng hai cạnh thì lớn hơn cạnh còn lại.
Dưới đây là chương trình cụ thể :
PROGRAM VIDU66;
{Tính diện tích và chu vi tam giác theo 3 cạnh}
Var
a, b, c, P, S : Real;
Tgiac: Boolean;
Begin
Write(‘ Nhap 3 canh cua tam giac : ‘);
Readln(a, b, c);
Tgiac:= (a>0) and (b>0) and (c>0) and
(a+b>c) and (a+c>b) and (b+c>a);
If Tgiac= FALSE then
Writeln(‘ Khong phai ba canh cua tam giac !’)
else
begin
P:=(a+b+c)/2;
S:= Sqrt( P*(P-a)*(P-b)*(P-c) );
Writeln(‘ chu vi = ‘ , 2*P:10:2);
Writeln(‘ dien tich S= ‘ , S:10:2);
end;
Readln;
End.
Chạy
Chép tập tin nguồn
Khi chạy chương trình này, để nhập ba cạnh của tam giác, bạn gõ ba số
cách nhau khoảng trắng rồi enter, chẳng hạn :
Nhap 3 canh cua tam giac : 3 4 5
Kết qủa chu vi= 12.00, dien tich= 6.00. Nếu nhập ba cạnh là : 2 3 6 thì
máy hiện câu: "Không phải ba cạnh của tam giác ! " (vì 2+3 < 6).
Các file đính kèm theo tài liệu này:
- kieu_logic_6946.pdf