Bài giảng Giới thiệu lập trình - Chương 4: Kiểu cấu trúc lặp - Lê Nguyên Khôi

pdf 32 trang hoanguyen 2770
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Giới thiệu lập trình - Chương 4: Kiểu cấu trúc lặp - Lê Nguyên Khôi", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdfbai_giang_gioi_thieu_lap_trinh_chuong_4_kieu_cau_truc_lap_le.pdf

Nội dung text: Bài giảng Giới thiệu lập trình - Chương 4: Kiểu cấu trúc lặp - Lê Nguyên Khôi

  1. ớ ệ ậ ấ ặ ườ ạ ọ ệ
  2. ộ  Cu trúc lp:  for  while  do while Gi i Thi u L p Trình 1
  3. ấ ề ể ặ  Mô hình hành ng lp mt s ln c nh  In ra “teacher is so cool” 10 ln  Ch y hàm tính im sinh viên 1000 ln  Ch y 5 vòng quanh sân vn ng  S ln lp có th không bi t  Qu y súp cho n khi c  Nh p vào mt s nguyên dơ ng  Ch n mt s ng u nhiên ti khi trúng th ng  Tơ ng ng vi lp gi i hn (trên) và lp không gi i hn (d i) Gi i Thi u L p Trình 2
  4. ấ ặ ớ ạ  Xét bài toán in ra 3 du sao std::cout << "*"; std::cout << "*"; std::cout << "*";  Xét bài toán in ra 4 du sao std::cout << "*"; std::cout << "*"; std::cout << "*"; std::cout << "*";  Xét bài toán in ra N du sao std::cout << "*"; ? Gi i Thi u L p Trình 3
  5. ấ ặ ớ ạ  Mô hình hành ng lp:  Da trên s ln lp N  Có th cn mt bi t m bt u t 0  Tng bi t m thêm 1 sau mi ln lp  Khi ó lp li hành ng, ví d std::cout << "*";  Cho n khi bi t m ti giá tr ca N  Và dng li Gi i Thi u L p Trình 4
  6. ấ ặ ớ ạ for  Cú pháp : for ( MệnhL ệnh1; Bi ểuTh ứcLôgic; MệnhL ệnh2 ) { // thân vòng lặp }  MệnhL ệnh1 kh i to bi n m (bi n iu khi n)  Ch th c hi n mt ln duy nh t khi bt u lp  MệnhL ệnh2 thay i bi n m (bi n iu khi n)  Bi ểuTh ứcLôgic iu khi n quá trình lp (vi iu ki n nào thì ti p tc lp) Gi i Thi u L p Trình 5
  7. ấ ặ ớ ạ for  Cú pháp : for ( MệnhL ệnh1; Bi ểuTh ứcLôgic; MệnhL ệnh2 ) { // thân vòng lặp }  Ý ngh a: 1. MệnhL ệnh1 kh i to bi n iu khi n 2. Nu Bi ểuTh ứcLôgic úng 3. Mnh lnh trong thân vòng lp th c hi n 4. Thay i giá tr bi n iu khi n (MệnhL ệnh2 ) 5. Quay li b c 2 6. Nu không (Bi ểuTh ứcLôgic sai), kt thúc lp Gi i Thi u L p Trình 6
  8. ấ ặ ớ ạ for  Ví d: // i là bi ến đế m (bi ến điều khi ển) for (int i = 0; i < N; i = i + 1) { std::cout << "*"; } Vi N = 4 Giá tr ca n i=0 i=1 i=2 i=3 i=4 iu khi n lp true true true true false Kt qu Gi i Thi u L p Trình 7
  9. ấ ặ ớ ạ for ụ for (int i = 0; i 0; i = i - 1) { tinhDiem(); } for (int i = 0; i < 5; i = i + 1) { ch ạy 5 vòng quanh sân vận độ ng; } Gi i Thi u L p Trình 8
  10. ấ ặ ớ ạ for ụ  In ra tng ca N s nguyên dơ ng u tiên  Cn bao nhiêu bi n (ngo i tr N, c nh p)  2 bi n: bi n iu ki n, bi n lu tng  Kh i to âu  Bi n lu tng kh i to ngoài cu trúc lp  Bi n iu khi n kh i to trong cu trúc lp  Khi nào thì in ra tng  Kt thúc vòng lp, in ra tng (nh yêu cu)  Thân vòng lp  Cng s nguyên dơ ng ti p theo vào tng  Khi nào thì kt thúc lp  Cng xong N s nguyên dơ ng (bi n iu khi n) Gi i Thi u L p Trình 9
  11. ấ ặ ớ ạ for  In ra tng ca N s nguyên dơ ng u tiên int tong = 0; for (int i = 1; i <= N; i = i + 1) { tong = tong + i; } std::cout << tong; Gi i Thi u L p Trình 10
  12. ấ ặ ớ ạ for  In ra tích ca N s nguyên dơ ng u tiên int tich = 1; for (int i = 1; i <= N; i = i + 1) { tich = tich * i; } std::cout << tich; Gi i Thi u L p Trình 11
  13. ấ ặ ớ ạ  Nu s nh p vào khác 0, cng vào tng và in ra tng hi n ti, ví d Nh p s (0 kt thúc): 5 Tng = 5 Nh p s (0 kt thúc): -2 Tng = 3 Nh p s (0 kt thúc): 6 Tng = 9 Nh p s (0 kt thúc): 0 Khác bi t: không bi t bao nhiêu ln lp Gi i Thi u L p Trình 12
  14. ấ ặ ớ ạ ụ  Nu s nh p vào khác 0, cng vào tng và in ra tng hi n ti  Khi nào vòng lp bt u  Nh p vào mt s  Cu i cùng vòng lp làm gì  Nh p vào mt s  Khi nào kt thúc vòng lp  Khi s nh p vào bng 0  Mnh lnh c lp  Cng s va nh p vào tng  Sau ó in ra tng hi n th i Gi i Thi u L p Trình 13
  15. ấ ặ ớ ạ while  Cú pháp : // kh ởi tạo bi ến điều khi ển while ( Bi ểuTh ứcLôgic ) { // thân vòng lặp // thay đổ i giá tr ị bi ến điều khi ển }  Bi ểuTh ứcLôgic iu khi n quá trình lp (vi iu ki n nào thì ti p tc lp) Gi i Thi u L p Trình 14
  16. ấ ặ ớ ạ while  Cú pháp : while (Bi ểuTh ứcLôgic ) { // thân vòng lặp }  Ý ngh a: 1. Kh i to bi n iu khi n 2. Nu Bi ểuTh ứcLôgic úng 3. Mnh lnh trong thân vòng lp th c hi n 4. Thay i giá tr bi n iu khi n 5. Quay li b c 2 6. Nu không (Bi ểuTh ứcLôgic sai), kt thúc lp Gi i Thi u L p Trình 15
  17. ấ ặ ớ ạ while  Nh p s khác 0, tính tng và in ra tng hi n ti int tong = 0; // bi ến tính tổng intinput; // bi ến điều khi ển std::cin >> input; while (input != 0) { tong = tong + input; std::cout > input; } Gi i Thi u L p Trình 16
  18. ấ ặ ớ ạ while  Ch n mt s ng u nhiên ti khi trúng th ng int soLanChoi = 1; int kq = taoSoNgauNhien(XO_SO); int duDoan; std::cin >> duDoan; bool trungThuong = kq == duDoan; while (!trungThuong) { soLanChoi = soLanChoi + 1; kq = taoSoNgauNhien(XO_SO); std::cin >> duDoan; trungThuong = kq == duDoan; } Gi i Thi u L p Trình 17
  19. ấ ặ ớ ạ do while  ôi khi cn th c hi n thân vòng lp tr c khi ki m tra iu ki n lp do { nh t mt lá bài } while ( lá bài không ph i ch t cơ); Gi i Thi u L p Trình 18
  20. ấ ặ ớ ạ do while  Cú pháp : // kh ởi tạo bi ến điều khi ển do { // thân vòng lặp // thay đổ i giá tr ị bi ến điều khi ển } while ( Bi ểuTh ứcLôgic );  Bi ểuTh ứcLôgic iu khi n quá trình lp (vi iu ki n nào thì ti p tc lp)  Lu ý: cu i cùng ca mnh lnh while là du “;” Gi i Thi u L p Trình 19
  21. ấ ặ ớ ạ do while  Cú pháp : do { // thân vòng lặp } while ( Bi ểuTh ứcLôgic );  Ý ngh a: 1. kh i to bi n iu khi n 2. Mnh lnh trong thân vòng lp th c hi n 3. Nu Bi ểuTh ứcLôgic úng 4. Quay li b c 2 5. Nu không (Bi ểuTh ứcLôgic sai), kt thúc lp Gi i Thi u L p Trình 20
  22. ấ ặ ớ ạ do while  Yêu cu nh p vào mt s nguyên dơ ng int input; do { std::cin >> input; } while (input <= 0); Gi i Thi u L p Trình 21
  23. ấ ặ o int input; do { std::cin >> input; } while (input > input; while (input > input; } int input; std::cin >> input; for ( ; input > input; } Gi i Thi u L p Trình 22
  24. ấ ặ o  for  Th ng dùng khi bi t chính xác s ln lp  while  Linh ho t nh t  Không có nh c im  do while  Kém linh ho t  Luôn th c hi n thân vòng lp ít nh t mt ln Gi i Thi u L p Trình 23
  25. ấ ặ ỗ ườ ặ  Vòng lp vô hn  Cu trúc while , có du “;” while (input > input; }  S dng phép gán thay vì phép so sánh bng while (i = 1) { std::cout << "*"; } Gi i Thi u L p Trình 24
  26. ấ ặ ỗ ườ ặ  Vòng lp vô hn  Khi N l ho c âm int i = 0; while (i != N) { std::cout << "*"; i = i + 2; } Gi i Thi u L p Trình 25
  27. ệ ệ break continue  Lu ng iu khi n:  Cu trúc lp th hi n mt cách rõ ràng lu ng iu khi n, khi nào bt u, khi nào kt thúc mt ln lp  Trong mt vài tr ng hp, có th cn thay i lu ng lp t nhiên  Mnh lnh break  Dng vòng lp ngay lp tc, k c khi iu ki n lp vn ang úng  Mnh lnh continue  B qua ph n còn li ca thân vòng lp, bt u mt vòng lp mi (ki m tra iu ki n, lp, ) Gi i Thi u L p Trình 26
  28. ệ ệ break continue ụ  Nh p vào 4 s nguyên dơ ng, và tính tng int soND, tong = 0, dem = 1; while (dem > soND; } while (soND <= 0); tong = tong + soND; dem = dem + 1; } std::cout << tong; Gi i Thi u L p Trình 27
  29. ệ ệ break continue ụ  Nh p vào 4 s nguyên dơ ng, và tính tng int soND, tong = 0, dem = 0; while (dem > soND; if (soND <= 0) { continue; } tong = tong + soND; dem = dem + 1; } std::cout << tong; Gi i Thi u L p Trình 28
  30. ệ ệ break continue ụ  Nh p vào 4 s nguyên dơ ng, và tính tng. Dng khi nh p s âm, in ra s l ng các s int soND, tong = 0, dem = 0; while (dem > soND; if (soND <= 0) { break; } tong = tong + soND; dem = dem + 1; } std::cout << tong << " " << dem; Gi i Thi u L p Trình 29
  31. ệ ệ break continue ụ  Nh p vào 4 s nguyên dơ ng, và tính tng. Nu nh p vào s âm dng, in s các s int soND, tong = 0, dem = 0; while (dem > soND; if (soND > 0) { tong = tong + soND; dem = dem + 1; } else { // ? } } std::cout << tong << " " << dem; Gi i Thi u L p Trình 30
  32. a ảo  c sách:  Ch ơ ng 3, Lp Trình Cơ Bn C++ Gi i Thi u L p Trình 31