Chương 05 Cấu trúc lặp MÔN NHẬP MÔN VỀ LẬP TRÌNH Đại học Bách Khoa TpHCM Khoa KH KT Máy Tính Môn Nhập môn lập trình Slide ‹› Chương 5 Cấu trúc lặp Chuẩn đầu ra L O 3 1 – Liệt kê được các kiểu điều.. Chương 05 Cấu trúc lặp MÔN NHẬP MÔN VỀ LẬP TRÌNH
MƠN: NHẬP MƠN VỀ LẬP TRÌNH Chương 05 Cấu trúc lặp Đại học Bách Khoa TpHCM Khoa KH & KT Máy Tính Chương 5: Cấu trúc lặp Mơn: Nhập mơn lập trình Slide Chuẩn đầu L.O.3.1 – Liệt kê kiểu điều khiển vẽ sơ đồ mô tả chúng L.O.3.2 – Mô tả được nguyên tắc kết hợp kiểu điều khiển để mô tả giải thuật L.O.3.3 – Hiện thực kiểu điều khiển ngôn ngữ C L.O.3.4 – Sử dụng cấu trúc điều khiển để giải toán thực tế Đại học Bách Khoa TpHCM Khoa KH & KT Máy Tính Chương 5: Cấu trúc lặp Mơn: Nhập mơn lập trình Slide Cấu trúc lặp ■Cấu trúc lặp (vòng lặp) cấu trúc điều khiển dùng để thực công việc nhiều lần ■Các câu lệnh vòng lặp gọi thân vòng lặp ■Một vòng lặp thường có phần: ■Khởi động vịng lặp ■Thân vịng lặp ■Điều khiển vịng lặp ■Có thể phân loại vòng lặp theo: ■Điều kiện lặp: trước sau ■Số lần lặp : biết trước trước Đại học Bách Khoa TpHCM Khoa KH & KT Máy Tính Chương 5: Cấu trúc lặp Mơn: Nhập mơn lập trình Slide Các loại vịng lặp C cung cấp loại vòng lặp: ■Vòng lặp while while (condition) statement; ■Vòng lặp … while statement while (condition); ■Vòng lặp for for (initopt ; condopt ; loopopt ) statement; Đại học Bách Khoa TpHCM Khoa KH & KT Máy Tính Chương 5: Cấu trúc lặp Mơn: Nhập mơn lập trình Slide Vịng lặp while Cú pháp 1: dùng cho câu lệnh đơn w hile(< điềề u kiện> ) < câu lệnh> Cú pháp 2: dùng cho câu lệnh phức w hile(< điềề u kiện> ){ < câu lệnh 1> < câu lệnh N > } Đại học Bách Khoa TpHCM Khoa KH & KT Máy Tính Chương 5: Cấu trúc lặp Mơn: Nhập mơn lập trình Slide Lưu đồ vịng lặp while Khởi đợng Khởi động Sai Điều kiện? Điều kiện? Đúng Thân Thân Thoát Đại học Bách Khoa TpHCM Khoa KH & KT Máy Tính Chương 5: Cấu trúc lặp Mơn: Nhập mơn lập trình Slide Vịng lặp while ■Trong cịn cịn thực câu lệnh thân vòng lặp ■ biểu thức luận lý chuyển sang biểu thức luận lý để điều khiển vịng lặp: ■ Đúng lặp ■ Sai kết thúc ■Vịng lặp while vịng lặp có điều kiện trước số lần lặp chưa biết trước Đại học Bách Khoa TpHCM Khoa KH & KT Máy Tính Chương 5: Cấu trúc lặp Mơn: Nhập mơn lập trình Slide Ví dụ while (1) ■Tính tổng số nguyên S = + + + + n (1) ■Để sử dụng vịng lặp, ta cần đưa cơng thức tính dãy dạng “từng bước”: S(n) = G[S(n-1)] ■Theo dạng này, muốn tính giá trị bước thứ n, phải có giá trị bước thứ (n-1) ■Xuất phát của vòng lặp từ bước n=0 Đại học Bách Khoa TpHCM Khoa KH & KT Máy Tính Chương 5: Cấu trúc lặp Mơn: Nhập mơn lập trình Slide Ví dụ while (2) ■Ta viết lại tởng sau: S(n) = + + + + (n-1) + n (2) mặt khác theo (1) ta cũng có: S(n-1) = + + + (n-1) (3) Vậy, từ (2) (3) ta suy ra: S(n) = S(n-1) + n Đại học Bách Khoa TpHCM Khoa KH & KT Máy Tính (4) Chương 5: Cấu trúc lặp Mơn: Nhập mơn lập trình Slide Ví dụ while (3) ■Để xác định giá trị ban đầu, từ (1) ta có: S(1) = (5) Mặt khác, từ (4) ta có: S(1) = S(0) + Từ (5), (6) suy ra: (6) S(0)=0 ■Trong công thức (4), ta thay n biến đếm i : S(i)=S(i-1) + i (với i = ÷ n) ■Trong thực tế, ta sử dụng biến S cho tất S(0), S(i) S(i-1) Đại học Bách Khoa TpHCM Khoa KH & KT Máy Tính Chương 5: Cấu trúc lặp Mơn: Nhập mơn lập trình Slide 10 while do-while int main() { int main() { int i=1, s=0; int i=1, s=0; while (i>4) { { s+=5; s+=5; i++; i++; } } while (i>4); printf("s = %d ", s); printf("s = %d ", s); return 0; return 0; } } S= Đại học Bách Khoa TpHCM Khoa KH & KT Máy Tính S= Chương 5: Cấu trúc lặp Mơn: Nhập mơn lập trình Slide 20 Ví dụ do-while Đại học Bách Khoa TpHCM Khoa KH & KT Máy Tính Chương 5: Cấu trúc lặp Mơn: Nhập mơn lập trình Slide 21 Vịng lặp for ■Cú pháp: for (initopt ; condopt ; loopopt ) statement ■Chương trình thực câu lệnh statement điều kiện condopt ■Ý nghĩa tham số: ■initopt ■condopt : khởi tạo biến điều khiển : điều kiện tiếp tục thực vịng lặp ■loopopt : thay đởi biến điều khiển ■statement : câu lệnh (đơn hay phức) Đại học Bách Khoa TpHCM Khoa KH & KT Máy Tính Chương 5: Cấu trúc lặp Mơn: Nhập mơn lập trình Slide 22 Lưu đồ vòng lặp for Initopt Initopt Điều kiện trước Sai condopt condopt Đúng Kết thúc lặp Statement Statement loopopt loopopt Đại học Bách Khoa TpHCM Khoa KH & KT Máy Tính Chương 5: Cấu trúc lặp Mơn: Nhập mơn lập trình Slide 23 Một vài lưu ý với vòng lặp for ■Khởi tạo biến điều khiển ■Số lượng từ khơng, hay nhiều biến khai báo (cùng kiểu) khởi động giá trị ban đầu ■Nếu nhiều biến phân cách biến dấu phẩy ■Điều kiện để tiếp tục thực ■Số lượng từ khơng, hay nhiều biểu thức luận lý chuyển qua luận lý ■Các biểu thức cách dấu phẩy ■Thay đổi biến điểu khiển ■Để vịng lặp dừng sau số lần lặp ■Số lượng từ khơng, một, hay nhiều phép thay đổi biến điều khiển, phân cách dấu phẩy Đại học Bách Khoa TpHCM Khoa KH & KT Máy Tính Chương 5: Cấu trúc lặp Mơn: Nhập mơn lập trình Slide 24 Một vài lưu ý với vòng lặp for ■Về cú pháp vòng for phải có đủ phần cặp dấu ( ), tức ln ln có dấu chấm phẩy (;) ■Cả ba vùng để trống for( ; ; ) { // câu lệnh } ■Biến khai báo for biến cục bộ, nên dùng thân vịng for Khơng thể sử dụng lệnh bên ngồi vịng for Đại học Bách Khoa TpHCM Khoa KH & KT Máy Tính Chương 5: Cấu trúc lặp Mơn: Nhập mơn lập trình Slide 25 Ví dụ: Tính n! int main() { int n=5,gt=1; for(int i=1;i