Tải bản đầy đủ (.ppt) (54 trang)

Slide BIỂU THỨC LOGIC VÀ CÁC CẤU TRÚC ĐIỀU KHIỂN C++

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (282.55 KB, 54 trang )

Ngôn ngữ lập trình C++ chương 3: Biểu thức Logic và các cấu trúc điều khiển 1/54
Chương 3: BIỂU THỨC LOGIC VÀ CÁC CẤU
TRÚC ĐIỀU KHIỂN

Mục tiêu

Giới thiệu về biểu thức logic; các cấu trúc điều khiển
trong C++. Vận dụng các cấu trúc này vào việc giải
quyết các bài toán đặt ra.

Nội dung

Biểu thức Logic

Các cấu trúc điều khiển

Một số câu lệnh đặc biệt
Ngôn ngữ lập trình C++ chương 3: Biểu thức Logic và các cấu trúc điều khiển 2/54
Dữ liệu kiểu boolean
Biểu thức logic
Ước lượng mạch ngắn
3.1 Biểu thức Logic
Ngôn ngữ lập trình C++ chương 3: Biểu thức Logic và các cấu trúc điều khiển 3/54
Là kiểu dữ liệu xây dựng sẵn (built-in)
Gồm có hai giá trị: true và false
Từ khóa khai báo dữ liệu kiểu boolean: bool
Chẳng hạn, bool x;
//Biến x chỉ được nhận 2 giá trị là true hoặc false
Lưu ý: Trong C++ giá trị true tương ứng với 1 và false
tương ứng với 0. Do đó, khi trả về true hoặc false thực
chất là trả về 1 hoặc 0 (số nguyên).


Dữ liệu kiểu Boolean
Ngôn ngữ lập trình C++ chương 3: Biểu thức Logic và các cấu trúc điều khiển 4/54
Còn gọi là biểu thức boolean
Làm việc với các kiểu giá trị và phép toán logic hoặc
các phép toán quan hệ.

Giá trị trả về của biểu thức logic là gì?
Các phép toán logic và quan hệ đã học là gì?
Biểu thức Logic
Ngôn ngữ lập trình C++ chương 3: Biểu thức Logic và các cấu trúc điều khiển 5/54
Cú pháp xây dựng biểu thức logic:
Bieu_thuc_A Phep_toan Bieu_thuc_B
Trong đó:
Bieu_thuc_A hoặc Bieu_thuc_B: có thể là hằng,
biến, hàm trả về giá trị hay biểu thức.
Phep_toan: Các phép toán quan hệ và phép toán
logic (trừ phép phủ định !)
Ví dụ: Ta có một số biểu thức:
5 > 8 delta > 0
(a > b) && (a > c) a != 0 || b != 0
Biểu thức Logic
Ngôn ngữ lập trình C++ chương 3: Biểu thức Logic và các cấu trúc điều khiển 6/54
Sử dụng cho các biểu thức logic
Khi ước lượng các biểu thức logic, chương trình sẽ thực
hiện từ trái qua phải và sẽ dừng lại khi giá trị thật cuối cùng
của biểu thức được xác định.
Ví dụ: Xét đoạn chương trình sau:
int toan = 4, ly = 6, hoa = 7;
bool kq;
kq = (toan >= 5 ) && (ly >= 5 ) && (hoa >= 5);

Không ước lượng
Ước lượng mạch ngắn
Ngôn ngữ lập trình C++ chương 3: Biểu thức Logic và các cấu trúc điều khiển 7/54
Các lợi ích đối với ước lượng mạch ngắn
Tiết kiệm được thời gian tính toán trong các biểu thức
có sự tham gia của phép && và phép ||
Xây dựng biểu thức đóng vai trò “canh gác” cho biểu
thức thứ 2 không an toàn
Ví dụ: Xét đoạn chương trình sau:
int tu, mau;
float x;
bool kq;
kq = (mau != 0) && ( x < tu/mau);
Ước lượng mạch ngắn
Ngôn ngữ lập trình C++ chương 3: Biểu thức Logic và các cấu trúc điều khiển 8/54
Cấu trúc tuần tự
Cấu trúc rẽ nhánh
Cấu trúc lặp
Một số câu lệnh đặc biệt
3.2 Các cấu trúc điều khiển
Ngôn ngữ lập trình C++ chương 3: Biểu thức Logic và các cấu trúc điều khiển 9/54
Là cấu trúc mặc định trong tất cả các ngôn ngữ lập trình
Các lệnh được thực hiện theo thứ tự từ trên xuống; lệnh
nào viết trước được thực hiện trước.
Cú pháp
Câu lệnh 1;
Câu lệnh 2;
….
Câu lệnh n; Câu


Lưu đồ
Câu lệnh 1
Câu lệnh 2
lệnh n
Cấu trúc tuần tự
Ngôn ngữ lập trình C++ chương 3: Biểu thức Logic và các cấu trúc điều khiển 10/54
Là cấu trúc xác định thứ tự thực hiện các câu lệnh dựa
vào giá trị của biểu thức Logic.
Sử dụng từ khóa if hoặc if … else, switch để viết câu
lệnh rẽ nhánh
Các câu lệnh rẽ nhánh:
Câu lệnh if
Câu lệnh if else
Câu lệnh else if (if lồng nhau)
Câu lệnh switch
Cấu trúc rẽ nhánh
Ngôn ngữ lập trình C++ chương 3: Biểu thức Logic và các cấu trúc điều khiển 11/54
Cú pháp
if (bieu_thuc_logic)
câu lệnh;
Trong đó
bieu_thuc_logic: là biểu thức cho 2 giá trị true hoặc
false
câu lệnh: có thể là một lệnh hoặc một khối lệnh
Câu lệnh if
Ngôn ngữ lập trình C++ chương 3: Biểu thức Logic và các cấu trúc điều khiển 12/54
Sơ đồ khối
Hoạt động:
Khi gặp câu lệnh if Máy kiểm tra Bieu_thuc_logic. Nếu
kết quả là true thì thực hiện câu lệnh. Ngược lại bỏ qua

câu lệnh trong thân if và tiếp tục thực hiện các lệnh sau if.
true
false
Bieu_thuc_logic
Câu lệnh
Câu lệnh if
Ngôn ngữ lập trình C++ chương 3: Biểu thức Logic và các cấu trúc điều khiển 13/54
Bài tập 1: Viết đoạn chương trình kiểm tra một số nhập
vào có phải là số dương hay không. Nếu đúng là số dương
thì đưa ra câu thông báo “số vừa nhập vào là số dương”.
Bài tập 2: Viết đoạn chương trình tìm và xuất ra màn hình
giá trị lớn nhất của 2 số a và b bất kỳ được nhập vào từ bàn
phím
Câu lệnh if
Ngôn ngữ lập trình C++ chương 3: Biểu thức Logic và các cấu trúc điều khiển 14/54
Cú pháp
if (bieu_thuc_logic)
câu lệnh 1;
else
câu lệnh 2;
Trong đó
bieu_thuc_logic: là biểu thức cho 2 giá trị true hoặc
false
câu lệnh1, câu lệnh 2: có thể là một lệnh hoặc một
khối lệnh
Câu lệnh if else
Ngôn ngữ lập trình C++ chương 3: Biểu thức Logic và các cấu trúc điều khiển 15/54
Sơ đồ khối
Hoạt động:
B1: Máy kiểm tra Bieu_thuc_logic. Nếu kết

quả là true thì qua B2, ngược lại qua B3.
B2: Thực hiện câu lệnh 1 rồi thoát khỏi if
B3: Thực hiện câu lệnh 2 rồi thoát khỏi if
true false
Bieu_thuc_logic
Câu lệnh 1
Câu lệnh 2
Câu lệnh if else
Ngôn ngữ lập trình C++ chương 3: Biểu thức Logic và các cấu trúc điều khiển 16/54
Bài tập 3: Viết đoạn chương trình kiểm tra một số nguyên
bất kỳ nhập vào từ bàn phím có là nguyên dương chẵn hay
không?
Bài tập 4: Viết đoạn chương trình kiểm tra 3 số a, b, c bất
kỳ được nhập vào từ bàn phím có thõa mãn là 3 cạnh của
một tam giác hay không? Xuất kết quả ra màn hình.
Câu lệnh if else
Ngôn ngữ lập trình C++ chương 3: Biểu thức Logic và các cấu trúc điều khiển 17/54
Sử dụng trong trường hợp kiểm tra nhiều điều kiện với
các mức giá trị khác nhau.
Cú pháp
if ( bieu_thuc_logic 1 )
Cau lenh 1
else if ( bieu_thuc_logic 2 )
cau lenh 2
.
else if ( bieu_thuc_logic n )
cau lenh n
else cau lenh n+1
Câu lệnh else if (if lồng nhau)
Ngôn ngữ lập trình C++ chương 3: Biểu thức Logic và các cấu trúc điều khiển 18/54

Các bieu_thuc_logic sẽ được kiểm tra tuần tự cho đến
khi có biểu thức cho kết quả true
Chỉ có những lệnh theo sau biểu thức có giá trị true
mới được thi hành
Nếu không có biểu thức nào true thì câu lệnh sau else
cuối cùng sẽ được thực hiện
else luôn được kết hợp với if gần nhất chứa nó.
Câu lệnh else if (if lồng nhau)
Ngôn ngữ lập trình C++ chương 3: Biểu thức Logic và các cấu trúc điều khiển 19/54
Ví dụ: Với n = 20, 2 đoạn chương trình sau xuất ra màn hình
kết quả là gì?
if(n>0) if (n>0)
if(n<15) else
cout<<“You are fail”<<endl; if(n<15)
else cout<<“You are fail”<<endl;
cout<<“You are pass”<<endl; else
cout<<“You are pass”<<endl;
Câu lệnh else if (if lồng nhau)
Ngôn ngữ lập trình C++ chương 3: Biểu thức Logic và các cấu trúc điều khiển 20/54
Bài tập 5: Viết đoạn chương trình xếp loại học lực của sinh
viên. Với điểm tổng của sinh viên được nhập vào từ bàn
phím theo các mức sau.
Nếu DT >=3.5 thì thông báo “Xuất sắc”
Nếu DT >=3.2 thì thông báo “Giỏi”
Nếu DT >= 2.5 thì thông báo “Khá”
Nếu DT >=2.0 thì thông báo “Trung bình”
Ngược lại thông báo “Yếu”
Bài tập 6: Viết đoạn chương trình nhập vào một tháng bất
kỳ trong năm và xuất ra màn hình số ngày của tháng đó.
Câu lệnh else if (if lồng nhau)

Ngôn ngữ lập trình C++ chương 3: Biểu thức Logic và các cấu trúc điều khiển 21/54
Cú pháp
switch (bieu_thuc_nguyen hoặc ky_tu)
{ case gia_tri 1 :
câu lệnh 1; break;
case gia_tri 2 :
câu lệnh 2; break;
.
.
.
case gia_tri n :
câu lệnh n; break;
default : câu lệnh n+1;
}
switch (bieu_thuc_nguyen hoặc ky_tu)
{ case gia_tri 1 :
câu lệnh 1; break;
case gia_tri 2 :
câu lệnh 2; break;
.
.
.
case gia_tri n :
câu lệnh n; break;
default : câu lệnh n+1;
}
Câu lệnh switch
Ngôn ngữ lập trình C++ chương 3: Biểu thức Logic và các cấu trúc điều khiển 22/54
Sơ đồ khối
Bieu_thuc_nguyen hoac ky_tu

Bt_nguyen hoac
ky tu == gia_tri
1
Bt_nguyen hoac
ky tu == gia_tri
2
false
true
false
true
Câu lệnh 1
Câu lệnh 2
Câu lệnh n+1
Câu lệnh switch
Ngôn ngữ lập trình C++ chương 3: Biểu thức Logic và các cấu trúc điều khiển 23/54
Hoạt động
Máy sẽ tiến hành so sánh kết quả của
bieu_thuc_nguyen hoặc ký tự lần lượt với các giá trị sau
nhãn case. Nếu giá trị nào thỏa mãn, thì câu lệnh sau giá
trị đó sẽ được thực hiện cho đến khi gặp câu lệnh break.
Sau đó thoát khỏi switch
Trường hợp không có lệnh break thì khi gặp một giá trị
thỏa mãn, tất cả các câu lệnh sau nó và sau tất cả các nhãn
sau nó cũng được thực hiện cho đến hết switch
Trường hợp không có giá trị nào thỏa mãn thì câu lệnh sau
default (nếu có) sẽ được thực hiện.
Câu lệnh switch
Ngôn ngữ lập trình C++ chương 3: Biểu thức Logic và các cấu trúc điều khiển 24/54
Ví dụ: Với f = ‘O’ thì đoạn chương trình sau cho kết quả
như thế nào?

switch(f)
{
case ‘P’: cout<<“\nP”<<endl;
case ‘F’: cout<<“\nF”<<endl;
case ‘C’: cout<<“\nC”<<endl;
case ‘O’: cout<<“\nO”<<endl;
case ‘M’: cout<<“\nM”<<endl;
default: cout<<“\nError”<<endl;
}
Câu lệnh switch
Ngôn ngữ lập trình C++ chương 3: Biểu thức Logic và các cấu trúc điều khiển 25/54
Bài tập 7: làm lại bài tập 6 với tháng và năm nhập vào từ
bàn phím sau đó hiển thị số ngày của tháng đó. Với:
+ Tháng 2:
- Năm nhuận có 29 ngày
- Năm không nhuận có 28 ngày
+ Năm nhuận là năm:
- Chia hết cho 4 nhưng không chia hết
cho 100
- Hoặc chia hết cho 400
Câu lệnh switch

×