Bài giảng,giảng Kỹ,Bài giảng Kỹ Bài giảng Kỹ thuật lập trình Điều khiển lặp (tiếp) GV. Hà Đại DươngBài giảng Kỹ thuật lập trình Điều khiển lặp (tiếp) GV. Hà Đại DươngBài giảng Kỹ thuật lập trình Điều khiển lặp (tiếp) GV. Hà Đại DươngBài giảng Kỹ thuật lập trình Điều khiển lặp (tiếp) GV. Hà Đại Dương
Trang 1Tuần 4 - Điều khiển lặp (tiếp)
Giáo viên: Hà Đại Dương duonghd@mta.edu.vn
Kỹ thuật lập trình
Nội dung
1 Lệnh for
2 Lệnh while
3 Lệnh do - while
4 Lệnh break và lệnh continue
5 Bài tập
Trang 2Bài trước …
• Các lệnh lặp:
for
while
Lệnh do - while
Trang 3Ý nghĩa
• Lặp lại một công việc nào đó khi điều kiện
logic còn thỏa mãn
• The do-while statement lets you repeat a statement
or compound statement until a specified expression
becomes false.
Cú pháp
• Trong đó:
–do, while: từ khóa
– BTLG: Biểu thức logic
Trang 4Trình tự thực hiện
1 Thực hiện các các lệnh: Lệnh 1, Lệnh 2 …
2 Tính giá trị của BTLG, V:
– Nếu V = đúng (1) quay lại bước 1
– Nếu V = sai (0) kết thúc vòng lặp và chuyển đến
lệnh tiếp sau do-while
• In các số từ 1 đến 10 ra màn hình
Ví dụ 1
Trang 5Ví dụ 2
• Tính USCLN của 2 số
– Xem lại cách tính ở ví dụ 6 tuần 3
– Viết chương trình sử dụng lệnh do-while (10 phút)
• So sánh với cách dùng lệnh while
– Kết quả thực hiện với a = 3, b =6: USCLN = 3
– Khi n = 0 vấn đề gì xảy ra với 2 chương trình trên.
Trang 6Ví dụ 3
• Viết chương trình cho phép hiển thị mã ASCII
của ký tự vừa gõ trên bàn phím Chương trình
kết thúc khi nhấn phím Enter.
– Xem lại cách làm trong ví dụ 9 tuần 3
– Viết chương trình sử dụng lệnh do-while (10 phút)
• So sánh:
– Hoạt động đáp ứng yếu cầu – Dùng do-while
“đẹp” hơn while khi không phải gán ch=‘~’
Trang 7Một số lưu ý
• Các lệnh trong thân vòng lặp luôn được thực
hiện ít nhất 1 lần (khác với for và while)
• Các lệnh của vòng lặp (Lệnh 1, Lệnh 2 …) phải
làm biến đổi BTLG, nếu không vòng lặp có thể
thực hiện mãi mãi
Nhận xét chung về các lệnh lặp
• Có thể sử dụng for, whilevà do-whilecho
cùng một bài toán
• Cần kiểm tra điều kiện trước khi thực hiện:
nên dùng while(ví dụ 2)
• Khi cần kiểm tra điều kiện sau khi thực hiện
một số việc (thuộc vòng lặp) nên dùng
do-while(ví dụ 3)
Trang 8Lệnh break và lệnh continue
Vấn đề
• Nếu không có yêu cầu “bất thường” thì các
lệnh lặp for, while, do-while như đã học có thể
giải quyết được vấn đề đặt ra
• Khi có yêu cầu “bất thường”, ví dụ Tính tổng
các số lẻ chia hết cho 3
• Giải quyết:
– Theo cách thông thường: được
Trang 9Tổng các số lẻ chia hết cho 3
Tổng các số lẻ chia hết cho 3
• Nếu việc kiểm tra (i%3==0) rất mất thời gian
• Nên chăng:
– Chỉ kiểm tra (i%3==0) với các
số lẻ.
– Với các số chẵn không cần làm gì cả.
Trang 10Lệnh continue
• Cú pháp:
continue;
• Ý nghĩa: Cho phép chuyển đến vòng lặp tiếp
theo và bỏ qua các lệnh sau nó đến cuối vòng
lặp
• Ví dụ: Tính tổng các số lẻ chia hết cho 3
(debug để xem trình tự thực hiện)
Ví dụ 4
(debug để xem trình tự thực hiện)
Trang 11Một số lưu ý
• Dùng continuecó thể tránh được việc thực thi
các lệnh không cần thiết (tăng tốc độ thực
hiện)
• Chỉ dùng trong thân các vòng lặp for, while,
do-while
Một số lưu ý …
• Chương trình: lỗi cú pháp
Trang 12Lệnh break
• Tình huống bất thường, ví dụ:
– Tìm số nguyên nhỏ nhất chia hết cho 3, 5 và 7.
– Kiểm tra xem số nguyên N có phải số nguyên tố?
• Cú pháp:
break;
• Ý nghĩa: Kết thúc vòng lặp tức thời
Ví dụ 5
• Xét ví dụ: Tìm số nguyên nhỏ nhất chia hết
cho 3, 5 và 7
– Tìm trong giới hạn các số nguyên (int)
– Chỉ cần tìm 1 số duy nhất -> Nếu tìm thấy có thể
kết thúc ngay lập tức việc tìm kiểm.
– Kết thúc ngay khi tìm được 1 số.
Trang 13Ví dụ 5 …
Ví dụ 6
• Tìm số nguyên nhỏ nhất chia hết cho 3, 5 và 7;
dùng các lệnh continuevà break
• Thời gian: 10 phút
Trang 14Ví dụ 6 …
Ví dụ 7
• Kiểm tra xem số nguyênNcó phải số nguyên
tố?
• Cách làm:
– Gọim là số các số từ 2 đến N-1 (???) màNchia
hết.
– Nếum = 0-> Nlà số nguyên tố.
Trang 15Ví dụ 7 …
• Kiểm tra xem số nguyênNcó không phải số
nguyên tố?
• Cách làm:
– Gọim là số các số từ 2 đến N-1 (???) màNchia
hết.
– Nếum >= 1-> Nkhông là số nguyên tố.
Ví dụ 7 …
• Kiểm tra xem số nguyênNcó không phải số
nguyên tố?
• Cách khác:
– Tồn tại 1 số từ 2 đến N-1 mà N chia hết ->Nkhông
là số nguyên tố.
– Viết chương trình (10 phút)
Trang 16Một số lưu ý
• Lệnh break được dùng trong các vòng lặp for,
while, do-while, và lệnh switch.
• Chương trình: lỗi cú pháp
Bài tập
Trang 17Bài tập
1 Sử dụng lệnh do-while viết chương trình tính
USCLN của hai số
2 Một số nguyên dương chia hết cho 3 nếu
tổng các chữ số của nó chia hết cho 3 Viết
chương trình sử dụng do-while kiểm tra xem
một số có chia hết cho 3 hay không?
3 Viết chương trình sử dụng do-while kiểm tra
xem một số có phải là nguyên tố hay không?
Bài tập
4 In ra tất cả các số nguyên tố từ 1 đến N
5 Số Hạnh phúc là số mà khi viết theo chiều
ngược lại có giá trị bằng chính nó, ví dụ 232,
4554 là số hạnh phúc Viết chương trình kiểm
tra xem 1 số có phải là số hạnh phúc hay
không?
6 Biểu diễn một số từ hệ cơ số 10 thành số ở
hệ cơ số 2, 8 và 16
Trang 18Bài tập về nhà
1 Đo thời gian và so sánh thời gian thực hiện
chương trình ví dụ 5 và ví dụ 6 Giải thích
nguyên nhân
2 Để kiểm tra N (N>2) có phải số nguyên tố hay
không? thì cần kiểm tra N chia hết hay không
cho các số từ 2 đến bao nhiều là ít nhất?