Bài giảng Phương pháp lập trình - Chương 3: Các cấu trúc điều khiển (Control structures) - Võ Quang Hoàng Khang

pdf 29 trang phuongnguyen 2611
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ác cấu trúc điều khiển (Control structures) - Võ Quang Hoàng Khang", để 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:

  • pdfbai_giang_phuong_phap_lap_trinh_chuong_3_cac_cau_truc_dieu_k.pdf

Nội dung text: Bài giảng Phương pháp lập trình - Chương 3: Các cấu trúc điều khiển (Control structures) - Võ Quang Hoàng Khang

  1. CHƯƠNG 3 CÁC CẤU TRÚC ĐIỀU KHIỂN (Control structures)
  2. 1. Gi ớithii thiệu Có 3 loạicấutrúcđiềukhiển, Các cấutrúcnày điều khiển thứ tự thực thi các lệnh của chương trình. ‰ Cấu trúc tuần tự (sequence): thực hiện các lệnh theo thứ tự từ trên xuống . ‰ Cấu trúc lựa chọn (selection): dựa vào kết quả củabiểuthức điềukiệnmànhững lệnh tương ứng sẽđượcthựchiện. Các cấutrúc lựachọn gồm: − If − switch.
  3. 1. Gi ớithii thiệu ‰ Cấutrúclặp (repetition or loop): lặplại1hay nhiềulệnh cho đếnkhibiểuthức điềukiệncó giá trị sai. Các cấutrúclặpgồm: − for − while − do while. Tuy nhiên, thứ tự thực hiện các lệnh của chương trình còn bị chi phốibởicáclệnh nhảy như continue, break, goto.
  4. 2. L ệnh và kh ốili lệnh ‰ Lệnh (statement): mộtbiểuthứckếtthúc bởi1dấuchấmphẩy gọilà1lệnh. Ví dụ: int a, b, c ; a=10 ; a++;
  5. 2. L ệnh và kh ốili lệnh ‰ Khốilệnh (block): một hay nhiềulệnh được bao quanh bởi cặp dấu { } gọi là một khối lệnh. Về mặtcúpháp,khốilệnh tương đương 1 câu lệnh đơn. Ví dụ: if (()a<b) { temp=a; a=b; b=temp; }
  6. Các cấutrúclu trúc lựacha chọn XW
  7. 3. C ấutrúcIFu trúc IF Lưu đồ cú pháp y Dạng 1: ◦ Cú pháp: if(expression) statement; ● ÝnghÝ nghĩa: Expression được định trị. Nếu kết quả là true thì statement được thực thi, ngược lại, không làm gì cả.
  8. 3. C ấutrúcIFu trúc IF Ví dụ:Viếtchương trình nhậpvàomộtsố nguyên a. In ra màn hình kết quả a có phải là số dương không. #include #include itint mai i()n() { int a; cout >a; if(a>=0) cout << a << " is a positive .”; getch(); return 0; }
  9. 3. C ấutrúcIFu trúc IF y Dạng 2: Lưu đồ cú pháp ◦ Cú pháp: if (expression) statement1; else statement2; ● Ý nghĩa: − Nếu Expression được định là true thì statement1 được thực thi. − Ngược lại, thì statement2 được thực thi.
  10. 3. C ấutrúcIFu trúc IF Ví dụ:Viếtchương trình nhậpvàomộtsố nguyên a. In ra màn hình kết quả kiểm tra a là số âm hay dương. #include #include int main() { int a; cout > a; if(a>=0) cout << a << " is a positive.”; else cout<<a<<"isanegative.”; getch(); return 0; }
  11. 3. C ấutrúcIFu trúc IF Lưu ý: y Ta có thể sử dụng các câu lệnh if else lồng nhau. Khi dùng if else lồng nhau thì else sẽ kếthợpvớiifgầnnhấtchưacóelse. y Nếucâulệnh if “bên trong”không có else thì phải đặttrongcặpdấu{}
  12. 4. C ấu trúc switch y Cấu trúc switch là một cấu trúc lựa chọn có nhiều nhánh , được sử dụng khi có nhi ều lựa chọn. y Cú pháp : switch(expression) { case value_1: statement_1; [break;] case value_n: statement_n; [break;] [[;]default : statement;] }
  13. 4. C ấu trúc switch
  14. 4. C ấu trúc switch y Giảithích: − Expression sẽđược định trị. − Nếugiátrị củaexpressionbằng value_1 thì thựchiện statement_1 và thoát. − Nếugiátrị củaexpressionkhácvalue_1thì so sánh vớivalue_2,nếubằng value_2 thì thựchiện statement_2 và thoát ., so sánh tới value_n . − Nếutấtcả các phép so sánh đềusaithìthực hiện statement của default.
  15. 4. C ấu trúc switch y Lưuý: −Expression trong switch() phảicókếtquả là giá trị kiểusố nguyên (int, char, long). −Các giá trị sau case phảilàhằng nguyên. −Không bắt buộc phải có default. −Khi thựchiệnlệnh tương ứng củacasecó giá trị bằng expression, chương trình thực hiệnlệnh break để thoát khỏicấutrúc switch.
  16. 4. C ấu trúc switch Ví dụ:Nhậpvàomộtsố nguyên, chia số nguyên này cho 2 lấyphần dư. Kiểm tra nếu phần dư bằng 0 thì in ra thông báo “làlà số chẳn”, nếusố dư bằng 1 thì in thông báo “là số lẽ”. #include #incl ud e void main () { int n,,; remainder; cout >n; remainder = (n % 2); switch(remainder) { case 0: cout << n << ” is an even."; break; case 1: cout << n << ” is an odd."; break; } getch(); }
  17. Các cấuutrúcl trúc lặp XW
  18. 5. C ấu trúc while y Cú pháp: while(expression) statement; ● Ý nghĩa: ● B1: Expression được định trị ● B2: Nếu kết quả là true thì statement thực thi và quay lại B1 ● B3: Nếuku kếttqu quả là false thì thoát khỏi vòng lặp while.
  19. 5. C ấu trúc while Ví dụ: Viết chương trình tính tổng các số nguyên từ 1 tới n. #incl ud e #include void main () { int i, n, sum; cout >n;; cin >> n; i = 1; sum = 0; while(i<=n) { sum += i; i++; } getch(); }
  20. 6. C ấu trúc do while y Cú pppháp: do { statement; }while(expression); ● Ý nghĩa: − Statement được thực hiện − Expression được định trị. − Nếu expression là true thì quay lại bước 1 − Nếu expression là false thì thoát khỏi vòng lặp.
  21. 6. C ấu trúc do while Ví dụ 1: Viết chuong trình in dãy số nguyên từ 1 đến 10. #include #include void main () { int i; clrscr(); cout<<"Display one to ten: "; i=1; do { cout << setw(3) << i; i+=1; } while(i<=10); getch(); }
  22. 7. C ấutrúcforu trúc for y Cú pppháp: for (Exp1; Exp2; Exp3) statement; y Ýnghĩa: − Exp1: là biểu thức khởi tạo đượcthựchiện. − Exp2: là biểuthức điềukiện − Exp3: biểuthức điềukhiển lặp
  23. 7. C ấutrúcforu trúc for Ví dụ: Viết chương trình tính tổng các số nguyên từ 1 đếnnn n. #include #include void mai n() { int i, n, sum; cout > n; sum = 0; for (i=1 ; i<=n ; i++) sum += i; cout<<”Sum from 1 to “ << n << ” is: ” << sum; geth()tch(); }
  24. 7. C ấutrúcforu trúc for y C/C++ cho phép Exp1 là một định nghia biến Ví dụ: for(int i=1; i<=n; ++i) y Bất kỳ biểu thức nào trong 3 biểu thức của vòng lặpforđềucóthể rỗng Ví dụ: for(; i != 0;) statement; y Xóa tấtcả các biểuthức trong vòng lặpforsẽ cho một vòng lặp vô tận. Ví dụ: for (;;) statement;
  25. Các lệnh rẽ nhánh và lệnh nhảy XW
  26. 8. L ệnh break y Lệnh break dùng để thoát khỏimộtcấutrúc điềukhiểnmàkhông chờđếnbiểuthức điều kiện được định trị. y Khi break đượcthựchiệnbêntrong 1cấutrúc lặp, điềukhiển(controlflow)tựđộng nhảy đến lệnh đầu tiênngay sau cấu tútrúc lặp đó. y Không sử dụng lệnh break bên ngoài các cấu tútrúc lặpnhư while, do while, for hay cấu tútrúc switch.
  27. 8. L ệnh break Ví dụ: Đọcvàomộtmậtkhẩungười dùng tối đa attempts lần for (i=0; i > passWord; if (check(passWord)) //kiểmtramậtkhẩu break; //thoátkhỏivòng lặp cout <<"Password is wrong!\n"; }
  28. 9. L ệnh continue y Lệnh continue dùng để kết thúc vòng lặphiện tạivàbắt đầu vòng lặptiếptheo. y Lệnh continue chỉđược dùng trong thân các cấutrúclặpnhư for, while, do while. y Câu lệnh continue thường đikèmvớicâulệnh if.
  29. 9. L ệnh continue 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ố nhập vào là số 0. do { cin >> num; if (num < 0) continue; // process num here } while(num != 0);