bai giang 2

20
Ni dung trình bày • Biu thc logic và các toán tlogic •Ti ưu biu thc • Câu lnh rnhánh if • Câu lnh if lng nhau • Câu lnh rnhánh switch So sánh if và switch

Upload: nbb3i

Post on 21-Jun-2015

1.595 views

Category:

Education


2 download

TRANSCRIPT

Page 1: Bai Giang 2

Nội dung trình bày

• Biểu thức logic và các toán tử logic• Tối ưu biểu thức• Câu lệnh rẽ nhánh if• Câu lệnh if lồng nhau• Câu lệnh rẽ nhánh switch• So sánh if và switch

Page 2: Bai Giang 2

Biểu thức logic

• Biểu thức Logic (hay còn gọi là biểu thức điềukiện hoặc biểu thức nhị phân) là biểu thức trongđó có thể chứa các toán tử so sánh, biến logic, hằng logic, các toán tử logic. Giá trị của biểuthức Logic chỉ là 1 trong 2 giá trị true (đúng ; 1) hoặc false (sai ; 0)

• Ví dụ:a > (b + 4)2 < 0

Page 3: Bai Giang 2

Biểu thức Logic đơn

• Biểu thức Logic đơn là biểu thức chứamột hằng số hoặc một biến số thuộc kiểubool

• Ví dụ:falsebool x, y;x = true; // true là một biểu thức logic đơny = x; // x là một biểu thức logic đơn

Page 4: Bai Giang 2

Các toán tử so sánh

• Ký hiệu của các toán tử so sánh– So sánh bằng: ‘==‘– So sánh khác: ‘!=‘– So sánh lớn hơn: ‘>’– So sánh nhỏ hơn: ‘<‘– So sánh lớn hơn hoặc bằng: ‘>=‘– So sánh nhỏ hơn hoặc bằng: ‘<=‘

Page 5: Bai Giang 2

Biểu thức Logic được tạo thành từcác toán tử so sánh

• Bằng việc sử dụng một toán tử so sánh tacó thể tạo thành một biểu thức logic.

• Ví dụ:15 < 20 => BThức Logic mang giá trị falsefloat x = 3.5;const float PI = 3.14;bool y = (x == PI);

//ở đây (x == PI) là BThức Logic mang giá trị false

Page 6: Bai Giang 2

Biểu thức Logic được tạo thành từcác toán tử so sánh

• Giả sử ta có các giátrị sau:A = 5B = 6

false(-1+B) != AtrueA != BtrueA <= 5trueA >= 5falseA >= BtrueA < BfalseA > BtrueA == 5falseA == B

Kết quảBiểu thức

Page 7: Bai Giang 2

Các toán tử Logic

• Ký hiệu của các toán tử Logic:– Toán tử Và: ‘&&’– Toán tử Hoặc: ‘||’– Toán tử Phủ định: ‘!’

Page 8: Bai Giang 2

Bảng chân lý của các toán tử Logic

• Nhận xét:– A && B chỉ nhận giá trị true khi cả A và B đều bằng

true.– A || B chỉ nhận giá trị false khi cả A và B đều bằng

false.

falsefalsefalse

falsetruefalse

falsefalsetrue

truetruetrue

A&&BBA

falsefalsefalse

truetruefalse

truefalsetrue

truetruetrue

A||BBA

falsetrue

truefalse

! AA

Page 9: Bai Giang 2

Biểu thức Logic được tạo thành từcác toán tử logic

• Bằng việc sử dụng kết hợp các toán tửlogic với nhau ta có thể tạo thành một biểuthức logic.

• Ví dụ: Giả sử A, B, C, D là các biến số kiểu bool, ta có:– A && B //Đây là một biểu thức Logic– bool y;

y = A && (B || C) || (!D) // Vế phải cũng là mộtbiểu thức Logic

Page 10: Bai Giang 2

Biểu thức Logic phức tạp

• Biểu thức Logic phức tạp được tạo thànhbởi sự kết hợp giữa các toán tử so sánh, các toán tử logic, …

• Ví dụ:– (A>5) && (B<=6)– (A!=B) || (B==4)– ! (B>6)– ! (A==4) && (B<3)– (A>2) && ((B<3) || (A>4)))

Page 11: Bai Giang 2

Mức ưu tiên của các toán tử

• Mức ưu tiên của các toán tử theo thứ tự giảmdần như sau:

!*, /, %+, -<, <=, >=, >==, !=&&||=

Page 12: Bai Giang 2

Bảng mã ASCIIASCII (American Standard Code for Information Interchange -Chuẩn mã trao đổi thông tin Hoa Kì), là bộ kí tự và bộ mã kí tựdựa trên bảng chữ cái La Tinh được dùng trong tiếng Anh hiệnđại và các ngôn ngữ Tây Âu khác. Nó thường được dùng đểhiển thị văn bản trong máy tính và các thiết bị thông tin khác.

Page 13: Bai Giang 2

So sánh ký tự

• Tất cả các ký tự được sắp xếp theo mộtthứ tự nhất định trong bảng mã ASCII. Do đó việc so sánh 2 ký tự chính là so sánhthứ tự (hay mã) của chúng.

• Ví dụ:– ‘a’ > ‘c’ => BThức Logic mang giá trị false– ‘1’ < ‘A’ => BThức Logic mang giá trị true– ‘$’ > ‘1’ => BThức Logic mang giá trị false

Page 14: Bai Giang 2

Câu lệnh rẽ nhánh if

• Câu lệnh if thực hiện rẽ nhánh công việcbằng cách xét đến yếu tố thỏa mãn hay không thỏa mãn một điều kiện nào đó.Ví dụ: Nếu A thỏa mãn điều kiện B thì thực hiện

công việc C, còn nếu A không thỏa mãn điềukiện B thì thực hiện công việc D.

• Có 2 dạng câu lệnh rẽ nhánh if– Dạng khuyết– Dạng đầy đủ

Page 15: Bai Giang 2

Câu lệnh rẽ nhánh if dạng khuyết

• Ví dụ:– Kiểm tra xem giá trị của a có nhỏ hơn giá trị của b hay không ?

if (a < b)cout << “Gia tri cua a nho hon gia tri cua b.” << endl;

– Nếu giá trị của a lớn hơn hoặc bằng giá trị của b thì thựchiện công việc sau:

• a sẽ bằng hiệu của a và b• In giá trị mới của a ra màn hìnhif (a >= b){

a = a – b;cout << “Gia tri moi cua a la: “ << a << endl;

}

Page 16: Bai Giang 2

Câu lệnh rẽ nhánh if dạng đầy đủ

• Ví dụ: Sử dụng lại ví dụ trên ta có thể viết kếthợp cả 2 ý vào một câu lệnh if dạng đầy đủ nhưsau:

if (a < b)cout << “Gia tri cua a nho hon gia tri cua b.” << endl;

else{

a = a – b;cout << “Gia tri moi cua a la: “ << a << endl;

}

Page 17: Bai Giang 2

Câu lệnh rẽ nhánh if lồng nhau

• Ví dụ 1: Tính nghiệm của phương trình bậc 2if (delta < 0)

cout<<“Vo nghiem”;else

if (delta > 0){

x1 = (-b + sqrt(delta)) / (2*a);x2 = (-b + sqrt(delta)) / (2*a);

}else // delta == 0

x1 = -b / (2*a);

Page 18: Bai Giang 2

Câu lệnh rẽ nhánh if lồng nhau

• Ví dụ 2: Xếp loại if (diem >= 9)

cout<<‘A’;else if (diem >= 8)

cout<<‘B’;else if (diem >= 7)

cout<<‘C’;else if (diem >= 6)

cout<<‘D’;else // diem < 6

cout<<‘F’;

Page 19: Bai Giang 2

Câu lệnh rẽ nhánh switch• Dùng để thể hiện sự rẽ nhánh dựa trên giá trị của một

biểu thức.• Cú pháp:

switch (biểu thức){

case <giá trị 1>:<câu lệnh 1>;break;

case <giá trị 2>:<câu lệnh 2>;break;

...

default:<câu lệnh n>;break;

}

Page 20: Bai Giang 2

Câu lệnh rẽ nhánh switch• Ví dụ: Viết dạng chữ của một số từ 1 đến 3

switch (so){

case 1:cout<<“So mot nhe !”;break;

case 2:cout<<“Ah so hai !”;break;

case 3:cout<<“So ba day ma !”;break;

default:cout<<“Ban nhap sai roi !”;break;

}