Giáo trình ngôn ngữ lập trình C/C++ - Chương 5
lượt xem 79
download
Tham khảo tài liệu 'giáo trình ngôn ngữ lập trình c/c++ - chương 5', công nghệ thông tin, kỹ thuật lập trình phục vụ nhu cầu học tập, nghiên cứu và làm việc hiệu quả
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Giáo trình ngôn ngữ lập trình C/C++ - Chương 5
- TIN HỌC ĐẠI CƯƠNG PII. CHƯƠNG 5: CẤP TRÚC LẶP 1 Tổng quan q an 2 Vòng lặp while 3 Lệnh continue, break 4 Vòng g lặp ặp for 5 Vòng lặp do-while 6 So sánh và cách sử dụng 7. Lập trình cấu trúc Khoa ĐTVTHK. Tin Học Đại Cương Chương 5: Cấu trúc lặp Trang 1
- 1 Tổng quan Định nghĩa vòng lặp: Một đoạn mã lệnh trong chương trình thực hiện lặp đi lặp lại cho đến khi thỏa mãn một điều kiện xác định. định C cung cấp 3 cấu trúc lặp: (1) while (2) for (3) do-while Cả ba b cấu ấ trúc t ú đều đề yêu ê cầu ầ phải hải đánh đá h gía í điều điề kiện kiệ lặp. lặ Kiểm tra điều kiện lặp, chia thành 2 nhóm: Kiểm tra khi bắt đầu vòng lặp (pre-test (pre test loop) : while, for Kiểm tra trước khi kết thúc vòng lặp (post-test loop): do-while Khoa ĐTVTHK. Tin Học Đại Cương Chương 5: Cấu trúc lặp Trang 2
- 1 Tổng quan (2) Các cấu trúc lặp có thể chia thành 2 lọai: Số lần lặp cố định (fixed count loop) Số lần lặp thay đổi (variable condition loop) Có 3 p phương g pháp p p chính để kiểm sóat số lần lặp ặp lại ạ trong vòng lặp: Counter (Vòng lặp cố định) Interactive (Tương tác với người sử dụng) Sentinel (lính canh/cờ) Khoa ĐTVTHK. Tin Học Đại Cương Chương 5: Cấu trúc lặp Trang 3
- 1 Lưu đồ pre-test post-test loop Lệnh trước (n-1) Lệnh trước (n-1) Điều kiện No Thực hiện lệnh đúng? op op trong g vòng g lặp ặp post--test loo pre-test loo Ye s Thực hiện lệnh Yes Điều kiện trong vòng lặp đúng? No Lệnh tiếp theo (n (n+1) 1) Lệnh tiếp theo (n (n+1) 1) Khoa ĐTVTHK. Tin Học Đại Cương Chương 5: Cấu trúc lặp Trang 4
- 2 Vòng lặp while (1) Statements sẽ được lặp lại trong khi condition là true while ( condition) Lệnh trước (n (n-1) 1) statements; t t t Đặc điểm lệnh while: St t t đ Statements: được gọii là thâ thân Điều kiện Điề kiệ No vòng lặp lặp đúng? Thân vòng lặp có thể là lệnh Yes đơn hoặc lệnh kép. Thân vòng lặp phải thay đổi Thực hiện lệnh trong vòng thông số nào đó để thay đổi lặp “condition” Số lần thực hiện ít nhất: 0 lần Lệnh tiếp theo (n+1) ự hiện Số lần thực ệ nhiều nhất: ∞ (Vòng lặp vô hạn) Khoa ĐTVTHK. Tin Học Đại Cương Chương 5: Cấu trúc lặp Trang 5
- 2 Vòng lặp while: Counter-controlled loop Vòng lặp kiểm sóat biến đếm (Biết trước số lần lặp) yêu cầu: 1. Biến đếm (biến count_no) 2. Khởi động biến đếm (count_no = 1) 3. Điều kiện cho giá trị cuối của biến đếm (khi nào vòng lặp kết thúc: ≤10) 4. Tăng (giảm) biến đếm trong thân vòng lặp (count_no++) // Chuong trinh tinh tong so tu 1 den 10 su dung while loop int main() { int count_no, sum = 0 ; // Khai bao bien count_no = 1 // khoi dong bien count_no while (count_no
- 2 Vòng lặp while: Counter-controlled loop Sử dụng counter đểể kiểm ể sóat số lần lặp. Số lần lặp (N) thay đổi ổ được khi chạy chương trình. vòng lặp và đối tượng cin để nhập số liệu và tính tóan: // Chuong trinh Nhap va tinh tong cua N so nguyen nhap tu ban phim i main() int i () { int count_no, sum, so_nhap, N; sum = 0; count_no = 0 printf(“Ban muon nhap bao nhieu so?”) ; scanf(“%d”, &N) ; while hil ((count_no t
- 2 Vòng lặp while: Interactive controlled loop Sử dụng vòng lặp và tương tác với người sử dụng để thóat vòng lặp: // Chuong trinh Nhap va tinh tong cua N so nguyen nhap tu ban phim int main() { int sum, so_nhap, N; sum = 0; char h answer =“y” “ ” // continue ti or endd? while ((answer = “y”) || (answer == “Y”)){ // Loop when y/Y enter printf(“Nhap so nguyen duong bat ky: “); ( scanf(“%d”, , so_nhapp ) ; // input p number from keyboard y sum =+ so_nhap ; // add current input to sum printf “Ban muon nhap tiep (nhan n de thoat)? ”; scanf(“%c”, answer ) ; // input char to answer } // End of Loop printf (“Tong cua cac so da nhap là: %d” , sum) ; // Print sum return 0; } // end main Khoa ĐTVTHK. Tin Học Đại Cương Chương 5: Cấu trúc lặp Trang 8
- 2 Vòng lặp while: Sentinel Giá trị Sentinel là giá trị được sử dụng để kết thúc vòng lặp nhưng không được ảnh hưởng đến dữ liệu chính trong vòng lặp. // Chuong g trinh Nhapp va tinh tong g cua X so nguyen g y nhap p tu ban p phim cont int SENTINEL = 0 ; // Sentinel value = 0 int main() { int sum, so_nhap ; sum = 0; printf (“Nhap so 0 de thoat chuong trinh”); printf (“Nhap so nguyen bat ky:” ); scanf(“%d”, so_nhap) ; while (so_nhap != SENTINEL){ sum =+ so_nhap ; printf (“Nhap so nguyen bat ky: “); scanf(“%d” scanf( %d , so_nhap) so nhap) ; } // End of Loop printf (“Tong cua cac so da nhap là: %d”, sum) ; // In ket qua return 0; } // end d maini Khoa ĐTVTHK. Tin Học Đại Cương Chương 5: Cấu trúc lặp Trang 9
- 3 Lệnh break; continue Lệnh break; Lệnh break được sử dụng để kết thúc một mệnh đề case trong t câu â lệ lệnhh switch it h Nó cũng có thể được sử dụng để kết thúc ngang giữa vòng lặp Khi gặp lệnh break, vòng lặp sẽ kết thúc ngay và điều khiển được chuyển đến lệnh kế tiếp bên ngoài vòng lặp Lệnh continue; Lệnh continue dùng để bắt đầu thực hiện lần lặp kế tiế của tiếp ủ vòng ò lặp lặ Khi gặp lệnh continue, các câu lệnh còn lại trong thân vòng lặp bị bỏ qua và điều khiển được chuyển đến lần lặp kế tiếp Khoa ĐTVTHK. Tin Học Đại Cương Chương 5: Cấu trúc lặp Trang 10
- 3 VD: Lệnh break; // Chuong trinh Nhap va tinh tong cua X so nguyen nhap tu ban phim #include using namespace std; cont int SENTINEL = 0 ; // Sentinel value = 0 int main() { _ int sum, so_nhap p; sum = 0; printf (“Nhap so 0 de thoat chuong trinh”); while (1) { printf (“Nhap so nguyen bat ky: “); scanf(“%d”, so_nhap ); if (so_nhap == 0) break; sum =+ so_nhap ; } // End of Loop printf (“Tong cua cac so da nhap là: %d”, sum) ; // In ket qua return 0; } // end main Khoa ĐTVTHK. Tin Học Đại Cương Chương 5: Cấu trúc lặp Trang 11
- 3 VD: Lệnh continue // Chuong trinh in ra cac so tu 0 den 9 ? int main() () { int i = 0 ; while (i < 10 ) { printf(“%d \n”, i) i ; i++; if (i == 5) continue ; } // End of Loop return 0; } // end main Khoa ĐTVTHK. Tin Học Đại Cương Chương 5: Cấu trúc lặp Trang 12
- 3 Lệnh goto và hàm exit Lệnh goto Thực hiện nhảy ngay đến label Tương thích với c; Hạn chế sử dụng (Không sử dụng) Hàm exit() trong thư viện stdlib.h được sử ử dụng để ể thoát khỏi chương trình: void exit(int ( ExitCode); ); exit(1); // Returns 1 to the operating system Sử dụng hàm này sẽ kết thúc ngay chương trình và điều khiển được chuyển về cho hệ điều hành Khoa ĐTVTHK. Tin Học Đại Cương Chương 5: Cấu trúc lặp Trang 13
- 4 Vòng lặp for for( init ; condition ; step) Lệnh n-1 loop_statements; i it init Init: thực hiện 1 lần ngay khi bắt đầu vòng g lặp ặp false condition Condition: kiểm tra trước mỗi lần true lặp Nếu ế condition là true thì thực statements t t t hiện statements Step: thực hiện mỗi lần lặp ngay step sau khi thực hiện statements Lệnh n n+1 1 Khoa ĐTVTHK. Tin Học Đại Cương Chương 5: Cấu trúc lặp Trang 14
- 4 For loop vd VD1: for ( i = 0 ; i
- 4 for lồng nhau (nested for loop) Trong thực tế, 1 vòng lặp này có thể chứa 1 vòng lặp khác int main() { const int MAX_I = 5; const int MAX_J MAX J = 4; int i, j; for(i = 1; i
- 4 Một vài cách sử dụng khác của for 1. Có thể có nhiều biến trong vòng lặp for. Tóan tử phẩy (,) for ( x=0, y=10; x
- 5 Lệnh do-while do Lệnh trước (n-1) { statements } while (condition) Thực hiện lệnh trong vòng lặp Mô tả thực ự hiện ệ lệnh: ệ 1. Thực hiện statements Điều kiện 2. Kiểm tra condition: nếu Yes lặp Đúng: quay lại bước 1; Sai: đú ? đúng? thóat khỏi vòng lặp. No Đặc điểm lệnh do-while: Post-test loop Lệ h tiếp Lệnh tiế theo th (n+1) ( +1) Số lần thực hiện ít nhất: 1 lần Số lần thực ự hiện ệ nhiều nhất: ∞ (Vòng lặp vô hạn) Khoa ĐTVTHK. Tin Học Đại Cương Chương 5: Cấu trúc lặp Trang 18
- 5 Review: Vòng lặp while // Chuong trinh Nhap va tinh tong cua X so nguyen nhap tu ban phim int main() { cont int SENTINEL = 0 ; // Sentinel value = 0 int sum, so_nhap ; sum = 0; printf (“Nhap so 0 de thoat chuong trinh”); ? printf(“Nhap so nguyen bat ky:”) ; scanf(“%d”, so_nhap ); while (so (so_nhap nhap != ! SENTINEL){ sum =+ so_nhap ; printf(“Nhap so nguyen bat ky: “); scanf(“&d”, so_nhap) ; } // End E d off Loop L printf (“Tong cua cac so da nhap là: %d” , sum) ; // In ket qua return 0; } // end main Khoa ĐTVTHK. Tin Học Đại Cương Chương 5: Cấu trúc lặp Trang 19
- 5 VD: Viết lại VD sử dụng do-while // Chuong trinh Nhap va tinh tong cua X so nguyen int main() { cont int SENTINEL = 0 ; // Sentinel value = 0 int sum, so_nhap ; sum = 0; printf ((“Nhap Nhap so 0 de thoat chuong trinh”); trinh ); do { printf ((“Nhap Nhap so nguyen bat ky: “); ); scanf(“%d”, so_nhap ); sum =+ so_nhap ; } while (so_nhap (so nhap != ! SENTINEL){ printf (“Tong cua cac so da nhap là: %d” , sum) ; return 0; } // end main Khoa ĐTVTHK. Tin Học Đại Cương Chương 5: Cấu trúc lặp Trang 20
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Giáo trình Ngôn ngữ lập trình C - ThS. Tiêu Kim Cương
202 p | 11891 | 5498
-
Giáo trình: Ngôn ngữ lập trình máy tính C++
114 p | 524 | 206
-
Giáo trình Ngôn ngữ lập trình C (Phần 1) - ThS.Tiêu Kim Cương
21 p | 571 | 201
-
Giáo trình ngôn ngữ lập trinh C part 2
21 p | 394 | 163
-
Giáo trình ngôn ngữ lập trinh C part 3
21 p | 328 | 140
-
Giáo trình ngôn ngữ lập trinh C part 4
21 p | 308 | 130
-
Giáo trình ngôn ngữ lập trinh C part 5
21 p | 302 | 123
-
Giáo trình ngôn ngữ lập trinh C part 6
21 p | 307 | 122
-
Giáo trình ngôn ngữ lập trinh C part 7
21 p | 234 | 105
-
Giáo trình ngôn ngữ lập trinh C part 8
21 p | 217 | 101
-
Giáo trình ngôn ngữ lập trinh C part 9
21 p | 220 | 98
-
Giáo trình Ngôn ngữ lập trình C p1
20 p | 354 | 96
-
Giáo trình ngôn ngữ lập trinh C part 10
13 p | 209 | 96
-
Giáo trình Ngôn ngữ lập trình Java: Phần 1
81 p | 234 | 43
-
Giáo trình Ngôn ngữ lập trình C
155 p | 253 | 41
-
Giáo trình Ngôn ngữ lập trình C++: Phần 1 - TS. Vũ Việt Vũ
116 p | 29 | 13
-
Giáo trình Ngôn ngữ lập trình Fortran 90: Phần 1
101 p | 44 | 4
-
Giáo trình Ngôn ngữ lập trình 2
50 p | 55 | 3
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn