
Buổi 20: Mini Test 2 - Tổng Hợp Điều Khiển Luồng¶
I. Mục Tiêu Bài Kiểm Tra¶
Bài kiểm tra này được thiết kế để đánh giá tổng hợp các kỹ năng từ Buổi 07 đến Buổi 19, bao gồm:
- Cấu trúc rẽ nhánh:
if-elselồng nhau,switch-case. - Vòng lặp cơ bản: Sự khác biệt và ứng dụng của
for,while,do-while. - Vòng lặp lồng nhau: Kỹ thuật vẽ hình và duyệt cặp số (2D).
- Tối ưu luồng: Sử dụng
breakvàcontinue.
Bài test gồm 2 phần:
- Phần 1: Trắc nghiệm (15 câu) - Đánh giá khả năng đọc hiểu code và phát hiện lỗi.
- Phần 2: Thực hành code (4 bài) - Đánh giá tư duy giải quyết vấn đề bằng thuật toán lặp.
II. Đề Thi Thực Hành (Thời gian: 60 phút)¶
Bài 1: Máy ATM Mini (25 Điểm)¶
Đề bài:
Viết chương trình mô phỏng một máy ATM đơn giản. Máy có sẵn số dư soDu = 1000000 (1 triệu đồng).
Chương trình sử dụng vòng lặp do-while và switch-case để hiển thị Menu sau cho đến khi người dùng chọn Thoát:
- Xem số dư.
- Rút tiền (Yêu cầu nhập số tiền muốn rút. Nếu số tiền > số dư thì báo lỗi, nếu hợp lệ thì trừ tiền và in số dư mới).
- Thoát.
Output mẫu:
=== ATM MINI ===
1. Xem so du
2. Rut tien
3. Thoat
Chon: 2
Nhap so tien: 1500000
Loi: Khong du tien!
Chon: 2
Nhap so tien: 300000
Rut thanh cong! So du con lai: 700000
Chon: 3
Ket thuc.
Bài 2: Đếm Số Lượng Ước Số và Tổng Ước Số (25 Điểm)¶
Đề bài:
Nhập vào một số nguyên dương \(N\).
Sử dụng vòng lặp for, đếm xem \(N\) có bao nhiêu ước số thực sự (không tính chính nó). In ra màn hình số lượng ước đó và Tổng của các ước đó.
Sau đó, cho biết \(N\) có phải là "Số hoàn hảo" không? (Số hoàn hảo là số có tổng các ước thực sự bằng chính nó, ví dụ 6, 28).
Output mẫu:
Bài 3: Vẽ Hình Đồng Hồ Cát (25 Điểm)¶
Đề bài: Nhập chiều cao \(N\) (giả sử \(N\) lẻ). Vẽ hình đồng hồ cát đối xứng. Ví dụ với \(N = 5\):
- Dòng 1: in 5 sao
- Dòng 2: in 4 sao
- Dòng 3: in 3 sao
- Dòng 4: in 4 sao
- Dòng 5: in 5 sao Gợi ý: Chia bài toán thành 2 nửa để vẽ (Nửa trên vẽ tam giác lùi, nửa dưới vẽ tam giác tiến).
Mẹo: Có thể nghĩ phần trên là dãy N, N-1, ..., (N+1)/2 và phần dưới là dãy ((N+1)/2 + 1), ..., N.
Output mẫu:
Bài 4: Tìm Số Lớn Nhất Bằng Vòng Lặp Vô Hạn (25 Điểm)¶
Đề bài:
Viết chương trình cho phép người dùng nhập liên tục các số nguyên.
Chương trình chỉ dừng lại khi người dùng nhập số 0 (Dùng while(true) và break).
Sau khi kết thúc, in ra số lớn nhất mà người dùng vừa nhập (bỏ qua số 0 cuối cùng).
Nếu tất cả số đã nhập đều là số âm, chương trình vẫn phải tìm đúng số âm lớn nhất.
Output mẫu:
III. Nộp Bài¶
- Học viên hoàn thành 4 bài tập vào 4 tệp:
bt1_atm.cpp,bt2_uoc_so.cpp,bt3_dong_ho_cat.cpp,bt4_max_loop.cpp. - Gửi thư mục chứa bài làm cho giảng viên hoặc upload lên hệ thống chấm điểm tự động.
- Làm bài trắc nghiệm ngay bên dưới.
IV. Phần Trắc Nghiệm¶
Học viên làm bài trắc nghiệm tổng hợp để kiểm tra lại toàn bộ lý thuyết về if, switch, for, while, do-while, break và continue.