Bài giảng Kỹ thuật lập trình - Tuần 3: Điều khiển lặp

pdf 18 trang phuongnguyen 3190
Bạn đang xem tài liệu "Bài giảng Kỹ thuật lập trình - Tuần 3: Điều khiển lặp", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdfbai_giang_ky_thuat_lap_trinh_tuan_3_dieu_khien_lap.pdf

Nội dung text: Bài giảng Kỹ thuật lập trình - Tuần 3: Điều khiển lặp

  1. 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 duonghd@mta.edu.vn 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 1
  2. 28/08/2016 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 2
  3. 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
  4. 28/08/2016 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 4
  5. 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
  6. 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
  7. 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
  8. 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? Có Vì sao? 28/08/2016 16 8
  9. 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
  10. 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
  11. 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 ( 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 11
  12. 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
  13. 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ố 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 13
  14. 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ố 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 14
  15. 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
  16. 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
  17. 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 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 17
  18. 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