Kỹ thuật lập trình - Tuần 4: Điều khiển lặp
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
18 trang |
Chia sẻ: huyhoang44 | Lượt xem: 837 | Lượt tải: 0
Bạn đang xem nội dung tài liệu Kỹ thuật lập trình - Tuần 4: Điều khiển lặp, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
02/09/2016
1
Tuầ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
02/09/2016 1
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
02/09/2016 2
02/09/2016
2
Bài trước
• Các lệnh lặp:
for
while
02/09/2016 3
Lệnh do - while
02/09/2016 4
02/09/2016
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.
02/09/2016 5
Cú pháp
• Trong đó:
– do, while: từ khóa
– BTLG: Biểu thức logic
02/09/2016 6
02/09/2016
4
Trì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
02/09/2016 7
• In các số từ 1 đến 10 ra màn hình
Ví dụ 1
02/09/2016 8
02/09/2016
5
Ví 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)
02/09/2016 9
• 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.
02/09/2016 10
02/09/2016
6
Ví 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)
02/09/2016 11
• 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=‘~’
02/09/2016 12
02/09/2016
7
Mộ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.
02/09/2016 13
Nhận xét chung về các lệnh lặp
• Có thể sử dụng for, while và do-while cho
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)
02/09/2016 14
02/09/2016
8
Lệnh break và lệnh continue
02/09/2016 15
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
02/09/2016 16
02/09/2016
9
Tổng các số lẻ chia hết cho 3
02/09/2016 17
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ả.
02/09/2016 18
02/09/2016
10
Lệ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)
02/09/2016 19
Ví dụ 4
02/09/2016 20
(debug để xem trình tự thực hiện)
02/09/2016
11
Một số lưu ý
• Dùng continue có 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.
02/09/2016 21
Một số lưu ý
• Chương trình: lỗi cú pháp
02/09/2016 22
02/09/2016
12
Lệ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.
02/09/2016 23
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ố.
02/09/2016 24
02/09/2016
13
Ví dụ 5
02/09/2016 25
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 continue và break.
• Thời gian: 10 phút
02/09/2016 26
02/09/2016
14
Ví dụ 6
02/09/2016 27
Ví dụ 7
• Kiểm tra xem số nguyên N có phải số nguyên
tố?
• Cách làm:
– Gọi m là số các số từ 2 đến N-1 (???) mà N chia
hết.
– Nếu m = 0 -> N là số nguyên tố.
02/09/2016 28
02/09/2016
15
Ví dụ 7
• Kiểm tra xem số nguyên N có không phải số
nguyên tố?
• Cách làm:
– Gọi m là số các số từ 2 đến N-1 (???) mà N chia
hết.
– Nếu m >= 1 -> N không là số nguyên tố.
02/09/2016 29
Ví dụ 7
• Kiểm tra xem số nguyên N có 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 ->N không
là số nguyên tố.
– Viết chương trình (10 phút)
02/09/2016 30
02/09/2016
16
Mộ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
02/09/2016 31
Bài tập
02/09/2016 32
02/09/2016
17
Bà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?
02/09/2016 33
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.
02/09/2016 34
02/09/2016
18
Bà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?
02/09/2016 35
Các file đính kèm theo tài liệu này:
- tuan_04_dieu_khien_lap_tiep_4748.pdf