Tải bản đầy đủ (.pdf) (18 trang)

Bài giảng Kỹ thuật lập trình Điều khiển lặp (tiếp) GV. Hà Đại Dương

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 (303.41 KB, 18 trang )

02/09/2016

Kỹ thuật lập trình

Tuần 4 - Điều khiển lặp (tiếp)
Giáo viên: Hà Đại Dương


02/09/2016

1

Nội dung
1.
2.
3.
4.
5.

Lệnh for
Lệnh while
Lệnh do - while
Lệnh break và lệnh continue
Bài tập

02/09/2016

2

1



02/09/2016

Bài trước …
• Các lệnh lặp:
for

while

02/09/2016

3

Lệnh do - while

02/09/2016

4

2


02/09/2016

Ý 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

3


02/09/2016

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


Ví dụ 1
• In các số từ 1 đến 10 ra màn hình

02/09/2016

8

4


02/09/2016

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

5



02/09/2016

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

6



02/09/2016

Một số lưu ý
• Các lệnh trong thân vịng lặp ln đượ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 tố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 dowhile (ví dụ 3)

02/09/2016

14

7


02/09/2016


Lệnh break và lệnh continue

02/09/2016

15

Vấn đề
• Nếu khơng có 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ó 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

8


02/09/2016

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

9


02/09/2016

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

(debug để xem trình tự thực hiện)

Ví dụ 4

02/09/2016

20

10


02/09/2016

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

11


02/09/2016

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ố ngun 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

12


02/09/2016

Ví dụ 5 …

02/09/2016

25

Ví dụ 6
• Tìm số ngun 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

13


02/09/2016


Ví dụ 6 …

02/09/2016

27

Ví dụ 7
• Kiểm tra xem số ngun N có phải số ngun
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

14


02/09/2016

Ví dụ 7 …
• Kiểm tra xem số ngun N có khơng phải số
ngun 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ố ngun tố.

02/09/2016

29

Ví dụ 7 …
• Kiểm tra xem số ngun N có khơng phải số
ngun 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ố ngun tố.
– Viết chương trình (10 phút)

02/09/2016

30

15


02/09/2016

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

16


02/09/2016

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

17


02/09/2016

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ố ngun 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

18




×