Bài giảng Kỹ thuật lập trình: Điều khiển lặp do GV. Hà Đại Dương biên soạn trình bày về cách thực hiện các câu lệnh: Lệnh for, Lệnh while và bài tập minh họa có sử dụng các câu lệnh này. Tài liệu hữu ích cho các bạn sinh viên để học tốt môn lập trình nâng cao. Mời các bạn cùng tham khảo.
Trang 1Tuầ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
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).
Trang 2Nộ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
Lệnh for
Trang 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.
Cú pháp
• Trong đó:
Trang 4Trì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 condExlà đú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 condExlà sai kết thúc lệnh for
và chuyển điều kiển đến lệnh sau for
Ví dụ 1
• In các số từ 1 đến 10 ra màn hình
Trang 5Ví dụ 1 …
• In các số từ 1 đến 10 ra màn hình
Ví dụ 2
• Tính tổng các số từ 1 đến n
Trang 6Ví dụ 2 …
• Kết quả
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)
Trang 7Ví 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.
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
Trang 8Mộ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
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
Trang 9Một số lưu ý…
• condEx
– Giải thích hoạt động các đoạn chương trình sau:
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
Trang 10Mộ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)
Lệnh while
Trang 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)
Cú pháp
Trang 12Trình tự thực hiện
1 Tính giá trị của BTLG, được V
2 Nếu Vlà
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)
Ví dụ 5
• In các số từ 1 đến 10 ra màn hình
Trang 13Ví dụ 6
• Tính USCLN của 2 số
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 đó.
Trang 14Ví dụ 7 …
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
Trang 15Ví 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.
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ụ
Trang 16Một số lưu ý …
• Lệnh whiletrong chương trình sau:
Không bao giờ kết thúc
Bài tập
Trang 17Bà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?
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
Trang 18Bà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)
Bài tập về nhà
4 Trong chương trình của ví dụ 9 vì sao cần
lệnhch=‘~’(dòng 6), hàm getch()(dòng 9)
hoạt động thế nào?