Bài giảng Kỹ thuật lập trình - Chương 5: Cấu trúc lặp - Lê Thành Sách

Nội dung
n Ứng dụng của cấu trúc lặp
n Câu lệnh for
n Câu lệnh while
n Câu lệnh do…while
n Hiểu được vai trò của thuật toán trong giải quyết bài toán
n Một số lỗi thường gặp trong sử dụng vòng lặp
n Bài tập 
pdf 38 trang xuanthi 27/12/2022 2800
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 5: Cấu trúc lặp - Lê Thành Sách", để 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:

  • pdfbai_giang_ky_thuat_lap_trinh_chuong_5_cau_truc_lap_le_thanh.pdf

Nội dung text: Bài giảng Kỹ thuật lập trình - Chương 5: Cấu trúc lặp - Lê Thành Sách

  1. Nội dung n Ứng dụng của cấu trúc lặp n Câu lệnh for n Câu lệnh while n Câu lệnh do while n Hiểu được vai trò của thuật toán trong giải quyết bài toán n Một số lỗi thường gặp trong sử dụng vòng lặp n 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 n Cấu trúc lặp được dùng nhiều, vì sao? n Xử lý dữ liệu n Dữ liệu trong thực tế rất nhiều n Chương trình để xử lý ít nhất phải chạm đến tất cả các dữ liệu này n Chạm đến tất cả hay nhóm sinh viên nào đó n Trong quản lý sinh viên n Chạm đến tất cả hay nhóm sản phẩm nào đó n Trong quản lý hàng hoá n Chạm đến tất cả hay nhóm điểm ảnh nào đó n Trong xử lý điểm ảnh n Chạm đến tất cả hay nhóm bạn nào đó n 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 n Bài toán tiêu biểu dùng với câu lệnh for. n 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) n Rất nhiều bài toán trong kỹ thuật dùng mảng để lưu trữ dữ liệu n Sẽ học mảng trong chương sau n Để 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. n Câu lệnh for, khi kết hợp break, cũng có thể dừng câu lệnh lặp n 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 n n Công dụng: n Khai báo biến: dùng trong chỉ câu lệnh lặp n Khởi tạo các biến điều khiển câu lệnh lặp n Số lượng: n Không, một hay nhiều biến được khai báo (cùng kiểu) và khởi động n Các phép khởi động cách nhau bởi dấu phẩy n n Công dụng: n Để kiểm tra điều kiện dừng của câu lệnh n Số lượng n Không, một hay nhiều biểu thức luận lý hoặc chuyển qua luận lý được n Các biểu thức cách nhau bằng dấu phẩy n 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 n Nguyên tắc thực thi n (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 n (2) Nếu là true n Thực hiện câu lệnh n Thực thi các thay đổi trong n Kiểm tra lại điều kiện ở Bước (2) ở trên n (3) Ngược lại n Đ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 n Lưu ý về mặt cú pháp n Giữa dấu ( và dấu ) của for. n Luôn luôn có đúng 3 dấu chấm phẩy (;). Chia ra 3 phạm vị n Khởi động n Biểu thức điều kiện n Thay đổi giá trị n 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ụ n 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ụ n 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 n Ứng dụng n Được sử dụng khi cần xử lý mảng nhiều chiều n 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 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 n Nguyên tắc thực thi n Chương trình kiểm tra biểu thức điều kiện n Nếu điều kiện là true n Thực thi câu lệnh n Đến kiểm tra điều kiện 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 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 n Lưu ý với lệnh while n 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 n Có thể là gán biến điều khiển n Có thể là gán biến đếm chỉ số lần lặp n V.v n Có thể có trường hợp n while(true){ } n while(1){ } n Với các dạng này cần dùng break; n Ý 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ụ n Chương trình xấp xỉ giá trị của các hàm phi tuyến 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 n Nguyên tắc thực thi n (1) Chương trình thực thi ngay n Do đó, được thực thi ít nhất 01 lần 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 n (2) Nếu điều kiện là true n Đi đến bước (1) để thực thi n (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 n Lưu ý với lệnh while n 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 n Tổng ban đầu bằng 0 n Có thể là gán biến điều khiển n Có thể là gán biến đếm chỉ số lần lặp n V.v n Có thể có trường hợp n do { } while(true) n do { } while(1) n Với các dạng này cần dùng break; n Ý 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 n Lặp vô hạn n Chương trình không “chạm” đến điều kiện dừng n 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 n Viết chương trình để xuất ra chuỗi sau n Đầu vào: N ( số dòng ) n Đầ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 n Viết chương trình để xuất ra như hình sau n Đầu vào: N ( số dòng của ma trận vuông ) n Đầ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 n Hiểu nguyên tắc thực thi của các câu lệnh lặp n 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