Bài giảng Kỹ thuật lập trình - Chương 05: Cấu trúc lặp - Nguyễn Thanh Tùng

nỨng dụng của cấu trúc lặp

nCâu lệnh for

nCâu lệnh while

nCâu lệnh do…while

nHiểu được vai trò của thuật toán trong giải quyết bài toán

nMột số lỗi thường gặp trong sử dụng vòng lặp

nBài tập

pptx 38 trang xuanthi 27/12/2022 3020
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Kỹ thuật lập trình - Chương 05: Cấu trúc lặp - Nguyễn Thanh Tùng", để tải tài liệu gốc về máy hãy click vào nút Download ở trên.

File đính kèm:

  • pptxbai_giang_ky_thuat_lap_trinh_chuong_05_cau_truc_lap_nguyen_t.pptx

Nội dung text: Bài giảng Kỹ thuật lập trình - Chương 05: Cấu trúc lặp - Nguyễn Thanh Tùng

  1. Nội dung ◼ Ứng dụng của cấu trúc lặp ◼ Câu lệnh for ◼ Câu lệnh while ◼ Câu lệnh do while ◼ Hiểu được vai trò của thuật toán trong giải quyết bài toán ◼ Một số lỗi thường gặp trong sử dụng vòng lặp ◼ Bài tập Trường Đại Học Bách Khoa Lập trình C/C++ Trung Tâm Kỹ Thuật Điện Toán 2 © 2016
  2. Ứng dụng của cấu trúc lặp ◼ Cấu trúc lặp được dùng nhiều, vì sao? ◼ Xử lý dữ liệu ◼ Dữ liệu trong thực tế rất nhiều ◼ Chương trình để xử lý ít nhất phải chạm đến tất cả các dữ liệu này ◼ Chạm đến tất cả hay nhóm sinh viên nào đó ◼ Trong quản lý sinh viên ◼ Chạm đến tất cả hay nhóm sản phẩm nào đó ◼ Trong quản lý hàng hoá ◼ Chạm đến tất cả hay nhóm điểm ảnh nào đó ◼ Trong xử lý điểm ảnh ◼ Chạm đến tất cả hay nhóm bạn nào đó ◼ Trong xử lý facebook Trường Đại Học Bách Khoa Lập trình C/C++ Trung Tâm Kỹ Thuật Điện Toán 4 © 2016
  3. Câu lệnh for ◼ Bài toán tiêu biểu dùng với câu lệnh for. ◼ Rất phù hợp với bài toán cần lặp với số lần lặp xác định (số lần này là số nguyên) ◼ Rất nhiều bài toán trong kỹ thuật dùng mảng để lưu trữ dữ liệu ◼ Sẽ học mảng trong chương sau ◼ Để xử lý dữ liệu trên mảng (duyệt qua các phần tử), cấu trúc for là phù hợp nhất. ◼ Câu lệnh for, khi kết hợp break, cũng có thể dừng câu lệnh lặp ◼ for cũng dùng với các kiểu lặp khác Trường Đại Học Bách Khoa Lập trình C/C++ Trung Tâm Kỹ Thuật Điện Toán 6 © 2016
  4. Câu lệnh for Ý tưởng ◼ ◼ Công dụng: ◼ Khai báo biến: dùng trong chỉ câu lệnh lặp ◼ Khởi tạo các biến điều khiển câu lệnh lặp ◼ Số lượng: ◼ Không, một hay nhiều biến được khai báo (cùng kiểu) và khởi động ◼ Các phép khởi động cách nhau bởi dấu phẩy ◼ ◼ Công dụng: ◼ Để kiểm tra điều kiện dừng của câu lệnh ◼ Số lượng ◼ Không, một hay nhiều biểu thức luận lý hoặc chuyển qua luận lý được ◼ Các biểu thức cách nhau bằng dấu phẩy ◼ Trường hợp, không có biểu thức nào thì điều kiện là true. Lúc đó, điều kiện dừng bên trong vòng lặp Trường Đại Học Bách Khoa Lập trình C/C++ Trung Tâm Kỹ Thuật Điện Toán 8 © 2016
  5. Câu lệnh for Ý tưởng ◼ Nguyên tắc thực thi ◼ (1) Chương trình sẽ khai báo và khởi tạo các biến trong trong và kiểm tra biểu thức điều kiện ◼ (2) Nếu là true ◼ Thực hiện câu lệnh ◼ Thực thi các thay đổi trong ◼ Kiểm tra lại điều kiện ở Bước (2) ở trên ◼ (3) Ngược lại ◼ Đi đến câu lệnh theo sau câu lệnh lặp này Trường Đại Học Bách Khoa Lập trình C/C++ Trung Tâm Kỹ Thuật Điện Toán 10 © 2016
  6. Câu lệnh for Cú pháp ◼ Lưu ý về mặt cú pháp ◼ Giữa dấu ( và dấu ) của for. ◼ Luôn luôn có đúng 3 dấu chấm phẩy (;). Chia ra 3 phạm vị ◼ Khởi động ◼ Biểu thức điều kiện ◼ Thay đổi giá trị ◼ Cả ba vùng này có thể trống for(;;){ //câu lệnh } Trường Đại Học Bách Khoa Lập trình C/C++ Trung Tâm Kỹ Thuật Điện Toán 12 © 2016
  7. Câu lệnh for Ví dụ ◼ In ra bình phương các số nguyên chẵn 0,2, , 8 int i; for(i=0; i = 10) break; → phải dùng break; } printf("\n"); Trường Đại Học Bách Khoa Lập trình C/C++ Trung Tâm Kỹ Thuật Điện Toán 14 © 2016
  8. Câu lệnh for Ví dụ ◼ Trường dùng nhiều biến for(int i=0, k= 10; i < k; i++, k ){ printf("%-4d", i*k); } printf("\n\n"); for(int i=0, k= 10, n=0; n < 10; i++, k , n++){ printf("%-4d", i*k); } printf("\n"); Hai đoạn chương trình trên in ra gì, vì sao? Trường Đại Học Bách Khoa Lập trình C/C++ Trung Tâm Kỹ Thuật Điện Toán 16 © 2016
  9. Câu lệnh for Ví dụ #include #include #include int main(){ int N; printf("Nhap so nguyen >0:"); scanf("%d", &N); if(N <= 0) printf("Chuong trinh khong lam viec voi so am\n"); else{ //Đoạn chương trình trang sau nằm ở đây }//end if printf("\n\n"); system("pause"); return 0; } Trường Đại Học Bách Khoa Lập trình C/C++ Trung Tâm Kỹ Thuật Điện Toán 18 © 2016
  10. Câu lệnh for lồng nhau ◼ Ứng dụng ◼ Được sử dụng khi cần xử lý mảng nhiều chiều ◼ Khi cần truy cập những dữ liệu có trúc mảng trong mảng Ví dụ: khi cần truy cập thông tin sinh viên, ta có thể truy cập theo: - Duyệt qua tất cả các lớp - Ứng với mỗi lớp, truy cập thông tin của từng sinh viên ◼ V.v Trường Đại Học Bách Khoa Lập trình C/C++ Trung Tâm Kỹ Thuật Điện Toán 20 © 2016
  11. Câu lệnh while Ý tưởng ◼ Nguyên tắc thực thi ◼ Chương trình kiểm tra biểu thức điều kiện ◼ Nếu điều kiện là true ◼ Thực thi câu lệnh ◼ Đến kiểm tra điều kiện ◼ => Câu lệnh phải có phép toán thay đổi biểu thức điều kiện để chương trình không lặp vô hạn ◼ Ngược lại, (là false) chương trình đi đến phát biểu theo sau Trường Đại Học Bách Khoa Lập trình C/C++ Trung Tâm Kỹ Thuật Điện Toán 22 © 2016
  12. Câu lệnh while Cú pháp ◼ Lưu ý với lệnh while ◼ Thông thường các câu lệnh trước (liền trước while) đã thực hiện phép gán sao cho điều kiện thực hiện được thoả mãn ◼ Có thể là gán biến điều khiển ◼ Có thể là gán biến đếm chỉ số lần lặp ◼ V.v ◼ Có thể có trường hợp ◼ while(true){ } ◼ while(1){ } ◼ Với các dạng này cần dùng break; ◼ Ý nghĩa của câu lệnh break và continue như trình bày trong for. Trường Đại Học Bách Khoa Lập trình C/C++ Trung Tâm Kỹ Thuật Điện Toán 24 © 2016
  13. Câu lệnh while Ví dụ ◼ Chương trình xấp xỉ giá trị của các hàm phi tuyến ◼ Dùng Taylor Maclaurin Trường Đại Học Bách Khoa Lập trình C/C++ Trung Tâm Kỹ Thuật Điện Toán 26 © 2016
  14. Câu lệnh do while Ý tưởng ◼ Nguyên tắc thực thi ◼ (1) Chương trình thực thi ngay ◼ Do đó, được thực thi ít nhất 01 lần ◼ Sau khi thực thi xong, chương trình đánh giá biểu thức điều kiện và kiểm tra ◼ (2) Nếu điều kiện là true ◼ Đi đến bước (1) để thực thi ◼ (3) Ngược lại, (false) chương trình đi đến phát biểu theo sau Trường Đại Học Bách Khoa Lập trình C/C++ Trung Tâm Kỹ Thuật Điện Toán 28 © 2016
  15. Câu lệnh do while Cú pháp ◼ Lưu ý với lệnh while ◼ Thông thường các câu lệnh trước (liền trước do) đã thực hiện phép gán để xác định điều kiện đầu của bài toán ◼ Tổng ban đầu bằng 0 ◼ Có thể là gán biến điều khiển ◼ Có thể là gán biến đếm chỉ số lần lặp ◼ V.v ◼ Có thể có trường hợp ◼ do { } while(true) ◼ do { } while(1) ◼ Với các dạng này cần dùng break; ◼ Ý nghĩa của câu lệnh break và continue như trình bày trong for. Trường Đại Học Bách Khoa Lập trình C/C++ Trung Tâm Kỹ Thuật Điện Toán 30 © 2016
  16. Một số lỗi hay gặp khi xử lý vòng lặp ◼ Lặp vô hạn ◼ Chương trình không “chạm” đến điều kiện dừng ◼ Chương trình “chạm” đến được nhưng biểu thức điều kiện không đáp ứng Trường Đại Học Bách Khoa Lập trình C/C++ Trung Tâm Kỹ Thuật Điện Toán 32 © 2016
  17. Bài tập 1 ◼ Viết chương trình để xuất ra chuỗi sau ◼ Đầu vào: N ( số dòng ) ◼ Đầu ra: chuỗi như hình vẽ dưới * * * * * * * * * * * * * * * Trường Đại Học Bách Khoa Lập trình C/C++ Trung Tâm Kỹ Thuật Điện Toán 34 © 2016
  18. Bài tập 3 ◼ Viết chương trình để xuất ra như hình sau ◼ Đầu vào: N ( số dòng của ma trận vuông ) ◼ Đầu ra: ma trận chứa các số theo hình xoắn ốc Với N = 4, ta có ma trận 1 2 3 4 12 13 14 5 11 16 15 6 10 9 8 7 Trường Đại Học Bách Khoa Lập trình C/C++ Trung Tâm Kỹ Thuật Điện Toán 36 © 2016
  19. Tổng kết ◼ Hiểu nguyên tắc thực thi của các câu lệnh lặp ◼ Vận dụng được các câu lệnh để giải các bài toán thực tế Trường Đại Học Bách Khoa Lập trình C/C++ Trung Tâm Kỹ Thuật Điện Toán 38 © 2016