Bài giảng Kỹ thuật lập trình - Tuần 4: Điều khiển lặp (Tiếp theo) - Hà Đại Dương

pdf 18 trang cucquyet12 3390
Bạn đang xem tài liệu "Bài giảng Kỹ thuật lập trình - Tuần 4: Điều khiển lặp (Tiếp theo) - Hà Đại Dương", để 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_4_dieu_khien_lap_tiep_theo.pdf

Nội dung text: Bài giảng Kỹ thuật lập trình - Tuần 4: Điều khiển lặp (Tiếp theo) - Hà Đại Dương

  1. 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 duonghd@mta.edu.vn 02/09/2016 1 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 02/09/2016 2 1
  2. 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
  3. 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
  4. 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
  5. 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
  6. 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
  7. 02/09/2016 Một số lưu ý • Các lệnh trong thân vòng lặp luôn đượ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 toá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 do- while (ví dụ 3) 02/09/2016 14 7
  8. 02/09/2016 Lệnh break và lệnh continue 02/09/2016 15 Vấn đề • Nếu không có yê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ó yê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
  9. 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
  10. 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
  11. 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
  12. 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ố nguyên 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
  13. 02/09/2016 Ví dụ 5 02/09/2016 25 Ví dụ 6 • Tìm số nguyên 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
  14. 02/09/2016 Ví dụ 6 02/09/2016 27 Ví dụ 7 • Kiểm tra xem số nguyên N có phải số nguyên 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
  15. 02/09/2016 Ví dụ 7 • Kiểm tra xem số nguyên N có không phải số nguyên 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ố nguyên tố. 02/09/2016 29 Ví dụ 7 • Kiểm tra xem số nguyên N có không phải số nguyên 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ố nguyên tố. – Viết chương trình (10 phút) 02/09/2016 30 15
  16. 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
  17. 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
  18. 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ố nguyên 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