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

28/08/2016

Kỹ thuật lập trình

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


28/08/2016

1

Bài trước …
• Thuật tốn được thiết kế dựa trên ba cấu trúc
logic về thứ tự thực hiện câu lệnh sau đây:
– Tuần tự (Sequential): Các công việc (lệnh) được
thực hiện một cách tuần tự, công việc này nối tiếp
công việc kia (từ trên xuống dưới).
– Lựa chọn (Selection) : Lựa chọn một công việc (lệnh)
để thực hiện căn cứ vào một điều kiện nào đó.
– Lặp (Repeating): Thực hiện lặp lại một công việc
(lệnh) không hoặc nhiều lần căn cứ vào một điều
kiện nào đó.
28/08/2016

2

1


28/08/2016



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

28/08/2016

3

Lệnh for

28/08/2016

4

2


28/08/2016

Ý nghĩa

• Lặp lại một cơng việc nào đó một số lần.
• The for statement lets you repeat a statement or
compound statement a specified number of times.
The body of a for statement is executed zero or more
times until an optional condition becomes false. You
can use optional expressions within
the for statement to initialize and change values
during the for statement's execution.

28/08/2016

5

Cú pháp

• Trong đó:
– for: từ khóa
– initEx: Thường dùng khởi tạo giá trị biến đếm
– condEx: Thường dùng để xác định điều kiện lặp
– loopEx: Thường dùng để điều khiển biến đếm
28/08/2016

6

3


28/08/2016

Trình tự thực hiện

1. Tính tốn (thực hiện) biểu thức initEx.
2. Tính tốn (thực hiện) biểu thức condEx.
3. Nếu giá trị của condEx là đúng các lệnh
a. Các Lệnh 1; Lệnh 2; … được thực hiện
b. Tính tốn (thực hiện) biểu thức loopEx, quay trở
lại bước 2.

4. Nếu giá trị của condEx là sai kết thúc lệnh for
và chuyển điều kiển đến lệnh sau for.
28/08/2016

7

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

28/08/2016

8

4


28/08/2016

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

28/08/2016


9

Ví dụ 2
• Tính tổng các số từ 1 đến n

28/08/2016

10

5


28/08/2016

Ví dụ 2 …
• Kết quả

28/08/2016

11

Ví dụ 3
• Tính tổng các số lẻ từ 1 đến n
– Số lẻ???
– Viết chương trình (10 phút)

28/08/2016

12


6


28/08/2016

Ví dụ 4
• Giả sử tiền gửi tiết kiệm được tính với lãi suất
là m% mỗi tháng, sau n tháng thì tiền lãi được
cộng vào gốc. Viết chương trình cho phép tính
và in ra màn hình số tiền có được sau K tháng
gửi tiết kiệm với số tiền gốc ban đầu là T.

28/08/2016

13

Một số lưu ý
• initEx
– Được thực hiện 1 lần duy nhất.
– Thường là dùng để khởi tạo biến đếm tuy nhiên
có thể sử dụng với mục đích khác.
– Ví dụ: Đoạn chương trình

28/08/2016

14

7



28/08/2016

Một số lưu ý…
• initEx
– Được thực hiện 1 lần duy nhất.
– Thường là dùng để khởi tạo biến đếm tuy nhiên
có thể sử dụng với mục đích khác.
– Ví dụ: hoặc

28/08/2016

15

Một số lưu ý…
• condEx
– Được thực hiện nhiều lần.
– Thường là dùng để kiểm tra điều kiện thực hiện
tuy nhiên có thể sử dụng với mục đích khác.
– Ví dụ: Đoạn chương trình sau
Lỗi cú pháp?

Khơng

Lỗi logic?


Vì sao?

28/08/2016


16

8


28/08/2016

Một số lưu ý…
• condEx
– Giải thích hoạt động các đoạn chương trình sau:

28/08/2016

17

Một số lưu ý…
• loopEx
– Được thực hiện nhiều lần.
– Thường là dùng để biến đổi biến đếm tuy nhiên
có thể sử dụng với mục đích khác.
– Ví dụ: Đoạn chương trình sau

tong = ???
55
28/08/2016

18

9



28/08/2016

Một số lưu ý…
• Vịng lặp for như sau:

– Có lỗi cú pháp?
– Hoạt động như thế nào (khi nào kết thúc)
28/08/2016

19

Lệnh while

28/08/2016

20

10


28/08/2016

Ý nghĩa
• Lặp lại một cơng việc nào đó một số lần khi
điều kiện logic nào đó cịn đúng.
• The while statement lets you repeat a
statement until a specified expression
becomes false
( />

28/08/2016

21

Cú pháp

• Trong đó:
– while: từ khóa
– BTLG: Biểu thức logic.

28/08/2016

22

11


28/08/2016

Trình tự thực hiện

1. Tính giá trị của BTLG, được V
2. Nếu V là
a. Sai (0): Chuyển đến lệnh tiếp sau vòng lặp while.
b. Đúng (1): thực hiện Lệnh 1, Lệnh 2 … quay lại (1)
28/08/2016

23

Ví dụ 5

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

28/08/2016

24

12


28/08/2016

Ví dụ 6
• Tính USCLN của 2 số

28/08/2016

25

Ví dụ 7
• Gọi TongN (tổng N) của một số nguyên dương
là tổng các chữ số của số ngun đó, ví dụ
TongN của 3205 TongN(3205)=3+2+0+5=10.
Viết chương trình cho phép nhập vào một số
nguyên, tính là in ra TongN của số ngun đó.
• Ý tưởng:
– Lấy 5 (hàng đơn vị) từ 3205?
– Lấy 320 (từ hàng chục) 3205?

• Viết chương trình (10) phút
28/08/2016


26

13


28/08/2016

Ví dụ 7 …

28/08/2016

27

Ví dụ 8
• Nếu giá trị TongN (ví dụ 7) của một số có
nhiều hơn một chữ số thì tiếp tục tính TongN
của giá trị đó và lặp lại cho đến khi giá trị tính
được cuối cùng chỉ còn một chữ số, giá trị cuối
gọi là tổng triệt để (TongTD) của số ngun.
• Ví dụ với số ngun 3205 ta có TongN(3205) =
3+2+0+5 = 10, vì 10 có 2 chữ số nên tính tiếp
TongN(10) = 1+0 = 1, như vậy TongTD(3205)=1
• Viết chương trình tính TongTD (10 phút)
28/08/2016

28

14



28/08/2016

Ví dụ 9
• 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.

28/08/2016

29

Một số lưu ý
• Các lệnh của vòng lặp
(Lệnh 1, Lệnh 2 …) phải làm
biến đổi BTLG
• Ví dụ

28/08/2016

30

15


28/08/2016

Một số lưu ý …
• Lệnh while trong chương trình sau:


Không bao giờ kết thúc
28/08/2016

31

Bài tập

28/08/2016

32

16


28/08/2016

Bài tập
1. Sử dụng lệnh for viết chương trình tính
USCLN theo thuật tốn trong ví dụ 6
2. Một số ngun 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 kiểm tra xem một số có chia hết
cho 3 hay khơng?.
3. Viết chương trình kiểm tra xem một số có
phải là ngun tố hay khơng?
28/08/2016

33

Bài tập …

4. Viết phương trình giải phương trình bậc 2 với
yêu cầu hệ số a nhập vào phải khác 0.

28/08/2016

34

17


28/08/2016

Bài tập về nhà
1. Viết chương trình tính tiền gửi tiết kiệm theo
yêu cầu đặt ra ở Ví dụ 4.
2. Giải thích hoạt động của vịng lặp for trong
các đoạn chương trình ở slide 16, 17.
3. Viết chương trình tính số ngày tính từ ngày
bắt đầu (NBD) đến ngày kết thúc (NKT) (Bài
tập về nhà số 5 tuần 2).

28/08/2016

35

Bài tập về nhà
4. Trong chương trình của ví dụ 9 vì sao cần
lệnh ch=‘~’ (dòng 6), hàm getch() (dòng 9)
hoạt động thế nào?


28/08/2016

36

18



×