Ngôn Ngữ Lập Trình
       C++
  Cấu trúc lặp (tiếp theo)
Đề mục

  Câu lệnh for
  Câu lệnh do-while
  So sánh while, for và do-while
  Vòng lặp lồng nhau
  Gỡ rối vòng lặp
  Các l...
Câu lệnh for

  Câu lệnh for thích hợp với vòng lặp thực hiện các
  công việc giống nhau dựa trên biến đếm.
  Ví dụ 1: In ...
Câu lệnh for
  Giải thích quá trình thực hiện:
                   for (dem = 0; dem < 20; dem++)
                   for (d...
Câu lệnh for

     Ví dụ 2 : Tính lương cho các công nhân
     for (dem_cn = 0; dem_cn < 10; dem_cn ++)
     {
        cou...
Bài tập

  Tính tổng S = 13 + 23 + 33 + ... + 103
  In ra màn hình bảng giá trị
           i   i*i      sqrt(i)
          ...
Lời giải

  Tính tổng S = 13 + 23 + 33 + ... + 103
  tong = 0;
  for (i = 1; i <= 10; i++)
       tong += i*i*i;


  In bả...
Câu lệnh for

  Biến điều khiển trong lệnh for có thể tăng giảm với
  một lượng bất kỳ.
  Ví dụ: Tính tổng các số lẻ nằm t...
Bài tập

  In ra màn hình bảng đổi nhiệt độ từ độ C sang độ F
  Celsius    Fahrenheit
    20          68.00
    15        ...
Câu lệnh for

  Cú pháp:
  for (khởi tạo; biểu thức điều kiện; cập nhật biến điều khiển)
       <Câu lệnh>;
  Giái thích:
...
Câu lệnh do-while
  Câu lệnh do-while thích hợp với những vòng lặp cần
  thực hiện ít nhất một lần lặp
       Làm thực đơn...
Câu lệnh do-while

  Làm thực đơn:
  void thuc_don()
  {
      cout<<“1. Tinh dien tich hinh tron”<<endl;
      cout<<“2. ...
Câu lệnh do-while

  Kiểm tra lệnh nhiều lần
  do
  {
     cout<<“Nhap ban kinh: ”;
     cin>>ban_kinh;
     ket_qua = chu...
Break và Continue

  Lệnh break dùng để thoát ngay ra khỏi vòng lặp
  Lệnh continue dùng để quay trở lại ngay đầu vòng lặp...
So sánh các câu lệnh lặp

  while:
       Thích hợp với vòng lặp chưa biết trước số lần lặp
       Câu lệnh trong while có...
Vòng lặp lồng nhau

  Ví dụ 1: In ra màn hình 20 dòng và 30 cột các ngôi sao
  ******************************
  **********...
Vòng lặp lồng nhau

  Ví dụ 2: In ra màn hình các ngôi sao như sau
  *
  **
  ***
  ****
  *****
  ******
  *******
  Lời ...
Gỡ rối vòng lặp

  Lần theo giá trị các biến trong sau từng bước lặp
  Lập bảng vết – ví dụ:
  tong = 0;                  ...
Gỡ rối vòng lặp

  In ra các giá trị trung gian trong từng bước lặp
  tong = 0;
  gt = 1;
  for (i = 1; i <= 6; i++)
  {
 ...
Bài tập

  Vòng lặp sau cho kết quả như thế nào ?
  tong = 0;
  for (i = 1; i <= 7; i++)                  i   tong
  {
   ...
Bài tập

  Vòng lặp sau cho kết quả như thế nào ?
  for (i = 1; i <= 7; i++)
  {                               i/j 1    2 ...
Các lỗi lập trình thường gặp

  Nhầm giữa if và while
  Sai ở điều kiện lặp
       So sánh sự bằng nhau giữa hai số thực
 ...
Bài tập
  Viết chương trình tính giá trị
  A = 1/n + 2/(n-1) + 3/(n-2) + ... + n/1
  Viết chương trình nhập vào một số ngu...
Upcoming SlideShare
Loading in …5
×

Bai Giang 4

2,219 views

Published on

Published in: Education, Sports, News & Politics
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,219
On SlideShare
0
From Embeds
0
Number of Embeds
18
Actions
Shares
0
Downloads
38
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Bai Giang 4

  1. 1. Ngôn Ngữ Lập Trình C++ Cấu trúc lặp (tiếp theo)
  2. 2. Đề mục Câu lệnh for Câu lệnh do-while So sánh while, for và do-while Vòng lặp lồng nhau Gỡ rối vòng lặp Các lỗi lập trình thường gặp Vòng lặp 2
  3. 3. Câu lệnh for Câu lệnh for thích hợp với vòng lặp thực hiện các công việc giống nhau dựa trên biến đếm. Ví dụ 1: In ra màn hình 20 dấu ‘*’ dem = 0; for (dem = 0; dem < 20; dem++) for (dem = 0; dem < 20; dem++) while (dem < 20) cout<<‘*’<<endl; cout<<‘*’<<endl; { cout<<‘*’<<endl; dem ++; } Vòng lặp 3
  4. 4. Câu lệnh for Giải thích quá trình thực hiện: for (dem = 0; dem < 20; dem++) for (dem = 0; dem < 20; dem++) cout<<‘*’<<endl; cout<<‘*’<<endl; khởi tạo dem = 0; kiểm tra (dem < 20) thấy đúng, vậy in ra dấu ‘*’ tăng dem ++ vậy dem = 1 quay lại kiểm tra (dem < 20) thấy đúng, vậy in ra dấu ‘*’ tăng dem ++ vậy dem = 2 ... tăng dem ++ vậy dem = 19 quay lại kiểm tra (dem < 20) thấy đúng, vậy in ra dấu ‘*’ tăng dem ++ vậy dem = 20 quay lại kiểm tra (dem < 20) thấy sai, vậy ra khỏi vòng lặp Vòng lặp 4
  5. 5. Câu lệnh for Ví dụ 2 : Tính lương cho các công nhân for (dem_cn = 0; dem_cn < 10; dem_cn ++) { cout<<“So san pham lam duoc : quot;; cin>>SoSP; Luong = SoSP * 5; cout<<“Luong cua ban la : quot;<<Luong<<quot; nghin dongquot;<<endl; } Vòng lặp 5
  6. 6. Bài tập Tính tổng S = 13 + 23 + 33 + ... + 103 In ra màn hình bảng giá trị i i*i sqrt(i) 1 1 1.0 2 4 1.4 3 9 1.7 4 16 2.0 5 25 2.2 6 36 2.4 7 49 2.6 Vòng lặp 6
  7. 7. Lời giải Tính tổng S = 13 + 23 + 33 + ... + 103 tong = 0; for (i = 1; i <= 10; i++) tong += i*i*i; In bảng cout.setf(ios::fixed); // hien thi theo ki phap dau cham cout.precision(1); // lay 1 so le sau dau cham cout<<setw(3)<<“i”<<setw(5)<<“i*i” <<setw(7)<<“sqrt(i)”<<endl; for (i = 1; i <= 7; i++) cout<<setw(3)<<i<<setw(6)<<i*i<<setw(9)<<sqrt(i)<<endl; Vòng lặp 7
  8. 8. Câu lệnh for Biến điều khiển trong lệnh for có thể tăng giảm với một lượng bất kỳ. Ví dụ: Tính tổng các số lẻ nằm từ 1 đến N sum = 0; for (le = 1; le <= N; le += 2) sum += le; Vòng lặp 8
  9. 9. Bài tập In ra màn hình bảng đổi nhiệt độ từ độ C sang độ F Celsius Fahrenheit 20 68.00 15 59.00 10 50.00 5 41.00 0 32.00 -5 23.00 -10 14.00 -15 5.00 -20 -4.00 Công thức: F = 1.8*C + 32 Vòng lặp 9
  10. 10. Câu lệnh for Cú pháp: for (khởi tạo; biểu thức điều kiện; cập nhật biến điều khiển) <Câu lệnh>; Giái thích: Thực hiện câu lệnh khởi tạo; Kiểm tra biểu thức điều kiện; Nếu điều kiện đúng thì • Thực hiện <Câu lệnh>; • Thực hiện cập nhật biến điều khiển • Quay lại kiểm tra điều kiện; Nếu điều kiện sai thì ra khỏi vòng lặp Vòng lặp 10
  11. 11. Câu lệnh do-while Câu lệnh do-while thích hợp với những vòng lặp cần thực hiện ít nhất một lần lặp Làm thực đơn (menu) Kiểm tra lệnh nhiều lần Cú pháp do { <Câu lệnh>; } while (biểu thức điều kiện) Giải thích Làm <Câu lệnh>. Kiểm tra điều kiện, nếu đúng thì • Quay lại làm <Câu lệnh> • Kiểm tra điều kiện Kiểm tra điều kiện, nếu sai thì • Ra khỏi vòng lặp. Vòng lặp 11
  12. 12. Câu lệnh do-while Làm thực đơn: void thuc_don() { cout<<“1. Tinh dien tich hinh tron”<<endl; cout<<“2. Tinh dien tich tam giac”<<endl; cout<<“3. Thoat”<<endl; } do { thuc_don(); cout<<“Chon mot so: ”; cin>>so; switch (so)... } while (so != 3); Vòng lặp 12
  13. 13. Câu lệnh do-while Kiểm tra lệnh nhiều lần do { cout<<“Nhap ban kinh: ”; cin>>ban_kinh; ket_qua = chu_vi_ht(ban_kinh); cout<<“Chu vi la: “<<ket_qua; } while (ban_kinh != 0); Vòng lặp 13
  14. 14. Break và Continue Lệnh break dùng để thoát ngay ra khỏi vòng lặp Lệnh continue dùng để quay trở lại ngay đầu vòng lặp do { cout<<“Nhap mot so: ”; cin>>so; if (so == 0) break; cout<<“Hello”<<endl; } while (so != 0); Vòng lặp 14
  15. 15. So sánh các câu lệnh lặp while: Thích hợp với vòng lặp chưa biết trước số lần lặp Câu lệnh trong while có thể không được thực hiện 1 lần nào nếu điều kiện kiểm tra là sai ngay từ đầu. for: Thích hợp với vòng lặp biết trước số lần lặp do-while: Thích hợp với vòng lặp có ít nhất là một lần lặp Vòng lặp 15
  16. 16. Vòng lặp lồng nhau Ví dụ 1: In ra màn hình 20 dòng và 30 cột các ngôi sao ****************************** ****************************** ****************************** ****************************** ... Lời giải: for (dong = 1; dong <= 20; dong ++) { for (cot = 1; cot <= 30; cot ++) cout<<‘*’; cout<<endl; } Vòng lặp 16
  17. 17. Vòng lặp lồng nhau Ví dụ 2: In ra màn hình các ngôi sao như sau * ** *** **** ***** ****** ******* Lời giải: for (dong = 1; dong <= 7; dong ++) { for (cot = 1; cot <= dong; cot ++) cout<<‘*’; cout<<endl; } Vòng lặp 17
  18. 18. Gỡ rối vòng lặp Lần theo giá trị các biến trong sau từng bước lặp Lập bảng vết – ví dụ: tong = 0; i gt tong gt = 1; 1 0 for (i = 1; i <= 6; i++) 1 1 1 { gt = gt*i; 2 2 3 tong = tong + gt; 3 6 9 } 4 24 33 cout<<“Tong: “<<tong; 5 120 153 Tong = 1! + 2! +... + 6! 6 720 873 Vòng lặp 18
  19. 19. Gỡ rối vòng lặp In ra các giá trị trung gian trong từng bước lặp tong = 0; gt = 1; for (i = 1; i <= 6; i++) { gt = gt*i; cout<<“gt = “<<gt<<endl; tong = tong + gt; cout<<“tong = “<<tong<<endl; } cout<<“Tong: “<<tong; Vòng lặp 19
  20. 20. Bài tập Vòng lặp sau cho kết quả như thế nào ? tong = 0; for (i = 1; i <= 7; i++) i tong { 1 1 if (i % 2) == 1 tong = tong + i*i; 2 -3 else 3 6 tong = tong – i*i; 4 -10 } 5 15 cout<<“Tong: “<<tong; Tong = 12 – 22 + 32 – 42 + 52 – 62 + 72 2 2 2 2 2 2 2 6 -21 7 28 Vòng lặp 20
  21. 21. Bài tập Vòng lặp sau cho kết quả như thế nào ? for (i = 1; i <= 7; i++) { i/j 1 2 3 4 5 6 7 for (j = 1; j <= i; j++) 1 1 cout<<setw(3)<<j; 2 1 2 cout<<endl; } 3 1 2 3 4 1 2 3 4 5 1 2 3 4 5 6 1 2 3 4 5 6 7 1 2 3 4 5 6 7 Vòng lặp 21
  22. 22. Các lỗi lập trình thường gặp Nhầm giữa if và while Sai ở điều kiện lặp So sánh sự bằng nhau giữa hai số thực Thiếu { } ở câu lệnh gộp Biến chưa khởi tạo giá trị Vòng lặp 22
  23. 23. Bài tập Viết chương trình tính giá trị A = 1/n + 2/(n-1) + 3/(n-2) + ... + n/1 Viết chương trình nhập vào một số nguyên dương, sau đó cho biết số đó có bao nhiêu chữ số Viết chương trình kiểm tra một số có là số nguyên tố Viết chương trình in ra màn hình cây thông * ** *** **** ***** ****** ******* Vòng lặp 23

×