Tin học đại cương - Bài 6: Các câu lệnh lặp

pdf 17 trang vanle 2460
Bạn đang xem tài liệu "Tin học đại cương - Bài 6: Các câu lệnh lặp", để 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:

  • pdftin_hoc_dai_cuong_bai_6_cac_cau_lenh_lap.pdf

Nội dung text: Tin học đại cương - Bài 6: Các câu lệnh lặp

  1. BÀI 6: CÁC CÂU LỆNH LẶP Nguyễn Mạnh Hiển Khoa Công nghệ thông tin hiennm@tlu.edu.vn
  2. Nội dung bài giảng • Câu lệnh for • Câu lệnh while • Câu lệnh do-while
  3. Chương trình in ra 10 số tự nhiên từ 0 đến 9 #include using namespace std; int main() { cout << 0 << endl; cout << 1 << endl; cout << 2 << endl; cout << 3 << endl; cout << 4 << endl; cout << 5 << endl; cout << 6 << endl; cout << 7 << endl; cout << 8 << endl; cout << 9 << endl; return 0; }
  4. Viết lại chương trình dùng vòng lặp for #include using namespace std; int main() { int i; for (i = 0; i < 10; i++) cout << i << endl; return 0; }
  5. Câu lệnh for • Cú pháp: for (khởi-tạo; điều-kiện; tăng-giảm) các-câu-lệnh • Ví dụ: for (i = 0; i < 10; i++) cout << i << endl; • Giải thích: − khởi-tạo: khởi tạo giá trị cho biến điều khiển lặp (i = 0) − điều-kiện: điều kiện để tiếp tục lặp lại công việc (i < 10) − tăng-giảm: thay đổi giá trị của biến điều khiển lặp (i++) − Nếu có nhiều câu lệnh trong thân vòng lặp for thì phải đặt chúng giữa cặp ngoặc móc { }
  6. Cách làm việc của câu lệnh for Các câu lệnh trước for Các câu lệnh trước for for (khởi tạo; điều kiện; tăng giảm) các câu lệnh khởi tạo Các câu lệnh sau for sai tăng giảm điều kiện đúng các câu lệnh Các câu lệnh sau for
  7. Tính tổng S = 1 + 2 + + n #include using namespace std; int main() { int n; cout > n; int S = 0; for (int i = 1; i <= n; i++) S = S + i; // cong don tung gia tri cua i // vao bien S (ban dau bang 0) cout << "S = " << S << endl; return 0; }
  8. Tính tổng S = 1 - 1/2 + 1/3 - + (-1)n+1/n #include using namespace std; int main() { int n; cout > n; double S = 0; for (int i = 1; i <= n; i++) if (i % 2 != 0) S = S + 1.0/i; // neu i le thi cong 1/i voi S else S = S – 1.0/i; // neu i chan thi cong -1/i voi S cout << "S = " << S << endl; return 0; }
  9. Các câu lệnh for lồng nhau // In ra n dong, dong i co i dau sao #include using namespace std; int main() { int n; cout > n; for (int i = 1; i <= n; i++) { for (int j = 1; j <= i; j++) cout << '*'; cout << endl; } return 0; }
  10. Câu lệnh while: Ví dụ mở đầu // Tinh S = 1 + 1/2 + + 1/n #include using namespace std; int main() { int n; cout > n; double S = 0; int i = 1; while (i <= n) // con lap chung nao i chua vuot qua n { S += 1.0 / i; // cach viet khac: S = S + 1.0 / i i++; // tang i den khi vuot qua n thi dung lap } cout << "S = " << S << endl; return 0; }
  11. Cách làm việc của câu lệnh while Các câu lệnh trước while Các câu lệnh trước while while (điều kiện) các câu lệnh sai Các câu lệnh sau while điều kiện đúng các câu lệnh Để tránh vòng lặp vô tận, thân của vòng lặp while cần có một câu lệnh tác động vào điều Các câu lệnh sau while kiện lặp
  12. Để tránh vòng lặp while vô tận // Tinh S = 1 + 1/2 + + 1/n #include using namespace std; int main() { int n; cout > n; double S = 0; int i = 1; while (i <= n) { Trong thân vòng lặp while, S += 1.0 / i; cần một câu lệnh (i++) làm i++; } thay đổi điều kiện lặp (i<=n) cout << "S = " << S << endl; return 0; }
  13. Câu lệnh while được dùng khi chưa biết trước số lần lặp // Doc tung dong trong mot tep van ban nhung ta khong biet // truoc co bao nhieu dong (tuc la bao nhieu lan lap) #include #include #include using namespace std; int main() { string dong; // bien de chua mot dong doc tu tep van ban ifstream f; // bien tep f.open("sinhvien.txt"); // mo tep sinhvien.txt de doc while (!f.eof()) // ham eof tra ve true neu o cuoi tep { getline(f, dong); // ham getline doc mot dong tu tep cout << dong << endl; // in dong doc duoc ra man hinh } f.close(); // dong tep sau khi lam viec xong voi tep return 0; }
  14. Câu lệnh do-while: Ví dụ mở đầu // Tinh S = 1 + 2 + + n #include using namespace std; int main() { int n; cout > n; int S = 0; int i = 1; do // thuc hien cong viec truoc, kiem tra dieu kien sau { S = S + i; // cong don i vao bien S i++; // tang i den khi vuot qua n thi dung lap } while (i <= n); cout << "S = " << S << endl; return 0; }
  15. Cách làm việc của câu lệnh do-while Các câu lệnh trước do-while Các câu lệnh trước do-while do { các câu lệnh các câu lệnh } while (điều kiện); điều kiện Các câu lệnh sau do-while đúng sai Để tránh vòng lặp vô tận, thân của vòng lặp do-while cần có Các câu lệnh sau do-while một câu lệnh tác động vào điều kiện lặp
  16. Nhân hai số cho đến khi người dùng ấn phím K #include using namespace std; int main() { double x, y; char tra_loi; do { cout > x >> y; cout > tra_loi; // cho nguoi dung nhap vao C hoac K } while (tra_loi != 'k' && tra_loi != 'K'); return 0; }
  17. Hết bài 6