Bài giảng Phương pháp lập trình - Chương 3: Cấu trúc lập trình - Nguyễn Văn Thắng

ppt 36 trang hapham 750
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Phương pháp lập trình - Chương 3: Cấu trúc lập trình - Nguyễn Văn Thắng", để 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:

  • pptbai_giang_phuong_phap_lap_trinh_chuong_3_cau_truc_lap_trinh.ppt

Nội dung text: Bài giảng Phương pháp lập trình - Chương 3: Cấu trúc lập trình - Nguyễn Văn Thắng

  1. CHƯƠNG 3: CẤU TRÚC ĐIỀU KHIỂN
  2. LỆNH • Một chương trình đang chạy nghĩa là nó đang thực thi các câu lệnh. • Thứ tự mà các câu lệnh được thực hiện được gọi là dòng điều khiển (flow control). • Các câu lệnh đang thực thi có sự điều khiển của CPU, khi CPU hoàn thành sẽ được chuyển giao tới một lệnh khác. • Đặc trưng dòng điều khiển trong một chương trình là tuần tự.
  3. LỆNH • Dòng điều khiển xem xét và quyết định lệnh nào được thực thi và lệnh nào không được thực thi trong quá trình chạy, vì thế làm ảnh hưởng đến kết quả toàn bộ của chương trình • C++ cung cấp những hình thức lệnh khác nhau cho các mục đích khác nhau.
  4. LỆNH • Lệnh khai báo: sử dụng để định nghĩa các biến • Lệnh gán : sử dụng để tính toán đại số đơn giản • Lệnh rẽ nhánh được sử dụng để chỉ định việc thực thi các lệnh, phụ thuộc vào kết quả của một điều kiện luận lý (True, False) • Lệnh lặp được sử dụng để chỉ định các tính toán cần được lặp cho tới khi một điều kiện luận lý nào đó được thỏa.
  5. LỆNH ĐƠN & LỆNH PHỨC • Lệnh đơn là một sự Ví dụ: tính toán được kết thúc bằng dấu ; { int min, i = 10, j = 20; min = (i < j ? i : j); • Nhiều lệnh đơn có min + 5; thể kết nối lại thành cout << min << '\n'; một lệnh phức bằng ; cách rào chúng bên } trong các dấu { } Lệnh rỗng Lệnh vô dụng
  6. CẤU TRÚC RẼ NHÁNH
  7. Cấu trúc điều kiện: if và else • Dạng 1: Cú pháp: if (biểu thức) lệnh; • Nếu biểu thức được ước lượng với kết quả khác 0 (đúng) thì lệnh được thực thi. • Ngược lại, không làm gì cả.
  8. Cấu trúc điều kiện: if và else Ví dụ: #include #include void main () { float a; cout >a; if (a !=0 ) cout<<"Nghich dao cua “<<a<<”la ”<<1/a; getch(); }
  9. Cấu trúc điều kiện: if và else Cú pháp: Lưu đồ cú pháp: if ( ) else
  10. Cấu trúc điều kiện: if và else Ví dụ: #include #include void main () { float a; cout >a; if (a !=0 ) cout<<"Nghich dao cua “<<a<<”la”<<1/a; else cout<<“Khong the tim duoc nghich dao cua a”; getch(); }
  11. Cấu trúc lựa chọn (switch) switch ( ) { case giá trị 1: Khối lệnh thực hiện công việc 1; break; case giá trị n: Khối lệnh thực hiện công việc n; break; [default : Khối lệnh thực hiện công việc mặc định; break;] }
  12. Lưu đồ cú pháp
  13. Ví dụ: #include #include void main () { int n, phandu; cout >n; phandu=songuyen % 2; switch(phandu) { case 0: cout<<n<<” la so chan "; break; case 1: cout<<n<<” la so le "; break; } getch(); }
  14. BÀI TẬP Phần If Bái 1: Nhập 1 số n>=0. Tính và xuất căn bậc hai của n. HD: dùng hàm sqrt(a)=
  15. CẤU TRÚC LẶP
  16. Vòng lặp while Cú pháp Lưu đồ cú pháp while ( ) lệnh;
  17. Vòng lặp while Ví dụ: #include #include int main () { int i, n, sum; i = 1; sum = 0; while (i <= n) { sum += i; i++; } }
  18. Vòng lặp do while Cú pháp: Lưu đồ cú pháp: do while ( )
  19. Ví dụ: #include #include void main () { int i; clrscr(); cout<<"Day so tu 1 den 10 :"; i=1; do { cout<<setw(3)<<i; i+=1; } while (i<=10); getch(); }
  20. Vòng lặp for Cú pháp: for (biểu thức khởi tạo; biểu thứcđiều kiện; biểu thức điều khiển lặp)
  21. Lưu đồ cú pháp
  22. Ví dụ:tính tổng n số nguyên #include #include void main () { int i, n, sum; cout >n; sum = 0; for (i = 1; i <= n; i++) sum += i; cout<<” tong cua “<<n<<”so nguyen la : ”<<sum; getch(); }
  23. Lưu ý: ✓C++ cho phép biểu thức đầu tiên trong vòng lặp for là một định nghĩa biến. Ví dụ: for (int i = 1; i <= n; ++i) sum += i; ✓Bất kỳ biểu thức nào trong 3 biểu thức của vòng lặp for đều có thể rỗng. Ví dụ: for (; i != 0;) // tương đương với: while (i != 0) ✓Xóa tất cả các biểu thức cho chúng ta một vòng lặp vô hạn for (;;) // vòng lặp vô hạn
  24. Các lệnh rẽ nhánh và lệnh nhảy
  25. Lệnh continue • Lệnh continue: dừng lần lặp hiện tại của một vòng lặp và nhảy tới lần lặp kế tiếp. • Lệnh continue: áp dụng tức thì cho vòng lặp gần với lệnh continue. Không sử dụng lệnh continue bên ngoài vòng lặp.
  26. Lệnh continue • Trong vòng lặp while và vòng lặp do-while, chương trình sẽ nhảy đến kiểm tra điều kiện lặp expression ngay lập tức khi gặp lệnh continue. Lần lặp tiếp theo sẽ được thực thi khi điều kiện để lặp vẫn cho phép. while (expression) hoặc do while (expression)
  27. Lệnh continue • Trong vòng lặp for, lần lặp kế tiếp khởi đầu từ biểu thức thứ ba của vòng lặp. for (biểu thức khởi tạo; biểu thứcđiều kiện; biểu thức điều khiển lặp) • Sau đó kiểm tra biểu thức điều kiện, và chỉ lặp lại công việc nếu biểu thức điều kiện thỏa.
  28. Ví dụ: một vòng lặp thực hiện đọc một số, xử lý nó nhưng bỏ qua những số âm, và dừng khi số là 0, có thể diễn giải như sau: do { cin >> num; if (num > num; if (num >= 0) { cout<<num; } } while (num != 0);
  29. Lệnh break • Lệnh break có thể xuất hiện bên trong vòng lặp (while, do, hay for) hoặc một lệnh switch. • Nó gây ra bước nhảy ra bên ngoài những lệnh này và vì thế kết thúc chúng. • Giống như lệnh continue, lệnh break chỉ áp dụng cho vòng lặp hoặc lệnh switch gần nó nhất. • Không sử dụng lệnh break bên ngoài vòng lặp hay lệnh switch.
  30. Ví dụ: Viết chương trình tính tổng các số nguyên được nhập từ bàn phím, chương trình được kết thúc khi nhập số âm. #include #include void main() { int so,tong=0; clrscr(); while (1) { cout >so; if (so<0) break; tong +=so; } cout <<"\nTong cac gia tri da nhap la: "<<tong; getch(); return; }
  31. Chương trình trên nếu không dùng break có thể đuợc viết lại như sau: do { cout >so; if (so>=0) tong +=so; }while (so>=0);
  32. #include #include void main() { int n; char chon; cout >n; cout >chon; if (chon==‘Q’) break; } }
  33. Lệnh goto • Lệnh goto cung cấp một hình thức nhảy tự do không có cấu trúc Goto Nhãn;
  34. Lệnh goto for (i = 0; i > password; if (Verify(password)) // check password for correctness goto out; // drop out of the loop cout << "Incorrect!\n"; } out: //etc
  35. Lệnh return Lệnh return cho phép một hàm trả về một giá trị cho thành phần gọi nó. Cú pháp: return biểu thức; • Trong đó biểu thức chỉ rõ giá trị được trả về bởi hàm. • Kiểu của giá trị này phải hợp với kiểu của hàm. • Trường hợp kiểu trả về của hàm là void, biểu thức sau lệnh return rỗng: return;
  36. Lệnh return int main (void) { cout << "Hello World\n"; return 0; } int