intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Giáo trình ngôn ngữ lập trình C/C++ - Chương 5

Chia sẻ: Pham Thanh Quang | Ngày: | Loại File: PDF | Số trang:0

223
lượt xem
79
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

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ả

Chủ đề:
Lưu

Nội dung Text: Giáo trình ngôn ngữ lập trình C/C++ - Chương 5

  1. 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
  2. 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
  3. 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
  4. 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
  5. 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
  6. 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
  7. 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
  8. 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
  9. 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
  10. 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
  11. 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
  12. 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
  13. 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
  14. 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
  15. 4 For loop vd VD1: for ( i = 0 ; i
  16. 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
  17. 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
  18. 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
  19. 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
  20. 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
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2