• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Bai Giang 4
 

Bai Giang 4

on

  • 2,734 views

 

Statistics

Views

Total Views
2,734
Views on SlideShare
2,723
Embed Views
11

Actions

Likes
1
Downloads
36
Comments
0

1 Embed 11

http://www.slideshare.net 11

Accessibility

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Bai Giang 4 Bai Giang 4 Presentation Transcript

    • 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ỗi lập trình thường gặp Vòng lặp 2
    • 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
    • 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
    • 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
    • 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
    • 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
    • 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
    • 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
    • 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
    • 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
    • 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
    • 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
    • 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
    • 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
    • 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
    • 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
    • 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
    • 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
    • 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
    • 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
    • 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
    • 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