Kỹ thuật lập trình - Tuần 3: Điều khiển lặp
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
18 trang |
Chia sẻ: huyhoang44 | Lượt xem: 645 | 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 3: Đ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
28/08/2016
1
Tuần 3 - Điều khiển lặp
Giáo viên: Hà Đại Dương
duonghd@mta.edu.vn
Kỹ thuật lập trình
28/08/2016 1
Bài trước
• Thuật toá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
28/08/2016
2
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
28/08/2016 3
Lệnh for
28/08/2016 4
28/08/2016
3
Ý 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
28/08/2016
4
Trình tự thực hiện
1. Tính toán (thực hiện) biểu thức initEx.
2. Tính toá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 toá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
28/08/2016
5
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
28/08/2016
6
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
28/08/2016
7
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
28/08/2016
8
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
28/08/2016 16
Lỗi cú pháp? Không
Lỗi logic? Có
Vì sao?
28/08/2016
9
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
28/08/2016 18
tong = ???
55
28/08/2016
10
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
28/08/2016
11
Ý 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
(https://msdn.microsoft.com/en-
us/library/y1tscb5y.aspx).
28/08/2016 21
Cú pháp
• Trong đó:
– while: từ khóa
– BTLG: Biểu thức logic.
28/08/2016 22
28/08/2016
12
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
28/08/2016
13
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ố nguyên đó, 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ố nguyên đó.
• Ý 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
28/08/2016
14
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ố nguyên.
• Ví dụ với số nguyên 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
28/08/2016
15
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
28/08/2016
16
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
28/08/2016
17
Bài tập
1. Sử dụng lệnh for viết chương trình tính
USCLN theo thuật toán trong ví dụ 6
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 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à nguyên 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
28/08/2016
18
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
Các file đính kèm theo tài liệu này:
- tuan_03_dieu_khien_lap_124.pdf