Lập trình - Câu lệnh lặp

pdf 29 trang vanle 2740
Bạn đang xem 20 trang mẫu của tài liệu "Lập trình - 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:

  • pdflap_trinh_cau_lenh_lap.pdf

Nội dung text: Lập trình - Câu lệnh lặp

  1. Trường Đại học Khoa học Tự nhiên Khoa Công nghệ thông tin Bộ môn Công nghệ phần mềm NHẬP MÔN LẬP TRÌNH ThS. Đặng Bình Phương dbphuong@fit.hcmus.edu.vn CÂU LỆNH LẶP 1
  2. & VC BB Nội dung 1 Câu lệnh for 2 Câu lệnh while 3 Câu lệnh do while 4 Một số kinh nghiệm lập trình Câu lệnh lặp 2
  3. & VC BB Đặt vấn đề Ví dụ . Viết chương trình xuất các số từ 1 đến 10 => Sử dụng 10 câu lệnh printf . Viết chương trình xuất các số từ 1 đến 1000 => Sử dụng 1000 câu lệnh printf ! Giải pháp . Sử dụng cấu trúc lặp lại một hành động trong khi còn thỏa một điều kiện nào đó. . 3 lệnh lặp: for, while, do while Câu lệnh lặp 3
  4. & VC BB Câu lệnh for Đ S for ( ; ; ) ; , , : là biểu thức C bất kỳ có chức năng riêng : đơn hoặc khối lệnh. Câu lệnh lặp 4
  5. & VC BB Câu lệnh for void main() { int i; for (i = 0; i < 10; i++) printf(“%d\n”, i); for (int j = 0; j < 10; j = j + 1) printf(“%d\n”, j); for (int k = 0; k < 10; k += 2) { printf(“%d”, k); printf(“\n”); } } Câu lệnh lặp 5
  6. & VC BB Câu lệnh for - Một số lưu ý Câu lệnh for là một câu lệnh đơn và có thể lồng nhau. if (n < 10 && m < 20) { for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { printf(“%d”, i + j); printf(“\n”); } } } Câu lệnh lặp 6
  7. & VC BB Câu lệnh for - Một số lưu ý Trong câu lệnh for, có thể sẽ không có phần int i; for (i = 0; i int i = 0; for (; i S Câu lệnh lặp 7
  8. & VC BB Câu lệnh for - Một số lưu ý Trong câu lệnh for, có thể sẽ không có phần int i; for (i = 0; i for (i = 0; i { Đ printf(“%d\n”, i); i++; } S Câu lệnh lặp 8
  9. & VC BB Câu lệnh for - Một số lưu ý Trong câu lệnh for, có thể sẽ không có phần int i; for (i = 0; i = 10) break; printf(“%d\n”, i); } Câu lệnh lặp 9
  10. & VC BB Câu lệnh for - Một số lưu ý Lệnh break làm kết thúc câu lệnh. Lệnh continue bỏ qua lần lặp hiện tại. for (i = 0; i < 10; i++) { if (i % 2 == 0) break; printf(“%d\n”, i); } for (i = 0; i < 10; i++) { if (i % 2 == 0) continue; printf(“%d\n”, i); } Câu lệnh lặp 10
  11. & VC BB Câu lệnh for - Một số lưu ý Không được thêm ; ngay sau lệnh lệnh for. => Tương đương câu lệnh rỗng. for (i = 0; i < 10; i++); { printf(“%d”, i); printf(“\n”); } for (i = 0; i < 10; i++) { }; { printf(“%d”, i); printf(“\n”); } Câu lệnh lặp 11
  12. & VC BB Câu lệnh for - Một số lưu ý Các thành phần , , cách nhau bằng dấu ; Nếu có nhiều thành phần trong mỗi phần thì được cách nhau bằng dấu , for (int i = 1, j = 2; i + j < 10; i++, j += 2) printf(“%d\n”, i + j); Câu lệnh lặp 12
  13. & VC BB Câu lệnh while Đ S Biểu thức C bất kỳ, thường là biểu thức quan hệ cho kết quả while ( ) 0 (sai) và != 0 (đúng) ; Câu lệnh đơn hoặc Câu lệnh phức (kẹp giữa { và }) Câu lệnh lặp 13
  14. & VC BB Câu lệnh while int i = 0; while (i < 10) { printf(“%d\n”, i); i++; } for (int i = 0; i < 10; i++) printf(“%d\n”, i); int i = 0; for (; i < 10; ) { printf(“%d\n”, i); i++; } Câu lệnh lặp 14
  15. & VC BB Câu lệnh while - Một số lưu ý Câu lệnh while là một câu lệnh đơn và có thể lồng nhau. if (n = 1) { while (m >= 1) { printf(“%d\n”, m); m ; } n ; } } Câu lệnh lặp 15
  16. & VC BB Câu lệnh while - Một số lưu ý Câu lệnh while có thể không thực hiện lần nào do điều kiện lặp ngay từ lần đầu đã không thỏa. void main() { int n = 1; while (n > 10) { printf(“%d\n”, n); n ; } } Câu lệnh lặp 16
  17. & VC BB Câu lệnh for - Một số lưu ý Không được thêm ; ngay sau lệnh lệnh while. int n = 0; while (n < 10); { printf(“%d\n”, n); n++; } while (n < 10) { }; { printf(“%d\n”, n); n++; } Câu lệnh lặp 17
  18. & VC BB Câu lệnh while - Một số lưu ý Câu lệnh while có thể bị lặp vô tận (loop) void main() { int n = 1; while (n < 10) { printf(“%d\n”, n); n ; } n = 1; while (n < 10) printf(“%d\n”, n); } Câu lệnh lặp 18
  19. & VC BB Câu lệnh do while Đ S Câu lệnh đơn hoặc Câu lệnh phức (kẹp do giữa { và }) ; Biểu thức C bất kỳ, while ( ); thường là biểu thức quan hệ cho kết quả 0 (sai) và != 0 (đúng) Câu lệnh lặp 19
  20. & VC BB Câu lệnh do while int i = 0; do { printf(“%d\n”, i); i++; } while (i < 10); int i = 0; printf(“%d\n”, i); i++; for (; i < 10; ) { printf(“%d\n”, i); i++; } Câu lệnh lặp 20
  21. & VC BB Câu lệnh do while - Một số lưu ý Câu lệnh do while là một câu lệnh đơn và có thể lồng nhau. int a = 1, b; do { b = 1; do { printf(“%d\n”, a + b); b = b + 2; } while (b < 20); a++; } while (a < 20); Câu lệnh lặp 21
  22. & VC BB Câu lệnh do while - Một số lưu ý Câu lệnh do while sẽ được thực hiện ít nhất 1 lần do điều kiện lặp được kiểm tra ở cuối. void main() { int n; do { printf(“Nhap n: ”); scanf(“%d”, &n); } while (n 100); } Câu lệnh lặp 22
  23. & VC BB Câu lệnh do while - Một số lưu ý Câu lệnh do while có thể bị lặp vô tận (loop) int n = 1; do { printf(“%d\n”, n); n ; } while (n < 10); n = 1; do printf(“%d\n”, n); while (n < 10); Câu lệnh lặp 23
  24. & VC BB for, while, do while Đều có khả năng lặp lại nhiều hành động. int n = 10; for (int i = 1; i <= n; i++) printf(“%d\n”, i); int i = 1; while (i <= n) { printf(“%d\n”, i); i++; } int i = 1; do { printf(“%d\n”, i); i++; } while (i < n); Câu lệnh lặp 24
  25. & VC BB for, while, do while Số lần lặp xác định ngay trong câu lệnh for int n = 10; for (int i = 1; i n); Câu lệnh lặp 25
  26. & VC BB while & do while while có thể không thực hiện lần nào. do while sẽ được thực hiện ít nhất 1 lần. int n = 100; while (n 10); Câu lệnh lặp 26
  27. & VC BB Bài tập 1. Nhập một số nguyên dương n (n > 0). Hãy cho biết: a. Có phải là số đối xứng? Ví dụ: 121, 12321, b. Có phải là số chính phương? Ví dụ: 4, 9, 16, c. Có phải là số nguyên tố? Ví dụ: 2, 3, 5, 7, d. Chữ số lớn nhất và nhỏ nhất? e. Các chữ số có tăng dần hay giảm dần không? Câu lệnh lặp 27
  28. & VC BB Bài tập 2. Nhập một số nguyên dương n. Tính: a. S = 1 + 2 + + n b. S = 12 + 22 + + n2 c. S = 1 + 1/2 + + 1/n d. S = 1*2* *n = n! e. S = 1! + 2! + + n! 3. Nhập 3 số nguyên a, b và n với a, b < n. Tính tổng các số nguyên dương nhỏ hơn n chia hết cho a nhưng không chia hết cho b. 4. Tính tổng các số nguyên tố nhỏ hơn n (0 < n < 50) Câu lệnh lặp 28
  29. & VC BB Bài tập 5. Nhập một số nguyên dương n. Xuất ra số ngược lại. Ví dụ: Nhập 1706 Xuất 6071. 6. Tìm và in lên màn hình tất cả các số nguyên trong phạm vi từ 10 đến 99 sao cho tích của 2 chữ số bằng 2 lần tổng của 2 chữ số đó. 7. Tìm ước số chung lớn nhất của 2 số nguyên dương a và b nhập từ bàn phím. 8. Nhập n. In n số đầu tiên trong dãy Fibonacy. a. a0 = a1 = 1 b. an = an – 1 + an – 2 Câu lệnh lặp 29