1 / 40

CÁC CẤU TRÚC ĐIỀU KHIỂN (Control Structures)

CÁC CẤU TRÚC ĐIỀU KHIỂN (Control Structures). CHƯƠNG 3. 1. Giới thiệu. Các cấu trúc điều khiển thứ tự thực thi các lệnh của chương trình. Có 3 loại cấu trúc điều khiển: Cấu trúc tuần tự (sequence) Cấu trúc lựa chọn (selection) Cấu trúc lặp ( repetition or loop). Cấu trúc “Tuần Tự”.

cherie
Download Presentation

CÁC CẤU TRÚC ĐIỀU KHIỂN (Control Structures)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. CÁC CẤU TRÚC ĐIỀU KHIỂN(Control Structures) CHƯƠNG 3

  2. 1. Giới thiệu • Các cấu trúc điều khiển thứ tự thực thi các lệnh của chương trình. • Có 3 loại cấu trúc điều khiển: • Cấu trúc tuần tự (sequence) • Cấu trúc lựa chọn (selection) • Cấu trúc lặp (repetition or loop)

  3. Cấu trúc “Tuần Tự” Lệnh 1 Lệnh 2 … Lệnh n • Cấu trúc tuần tự (sequence): thực hiện các lệnh theo thứ tự từ trên xuống

  4. Cấu trúc “Lựa chọn” • Cấu trúc lựa chọn (selection): dựa vào kết quả của biểu thức điều kiện mà những lệnh tương ứng sẽ được thực hiện. Các cấu trúc lựa chọn gồm: • if • switch

  5. Cấu trúc “Lặp” • Cấutrúclặp(repetition or loop): lặplại 1 hay nhiềulệnhchođếnkhibiểuthứcđiềukiệncógiátrịsai. Cáccấutrúclặpgồm: • for • while • do ... while. • Tuynhiên, thứtựthựchiệncáclệnhcủachươngtrìnhcònbị chi phốibởicáclệnhnhảynhưcontinue, break, goto.

  6. 3. CẤU TRÚC “IF “

  7. 3.1. Cấu trúc IF “Dạng thiếu” Lưu đồ • Cú pháp: if (expression) statement; • Ý 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. Ví dụ Viết chương trình nhập vào một số nguyên a. In ra màn hình kết quả a có phải là số dương không. #include <iostream.h> #include <conio.h> int main() { inta; cout << "Input a = "; cin>>a; // 10 if(a>=0) cout << a << " is a positive.”; getch (); return 0; }

  9. 3.2. Cấu trúc IF “Dạng đủ” Lưu đồ • Cú pháp if (expression) statement1; else statement2; • Ý nghĩa: • NếuExpression được định là true thì statement1 được thực thi. • Ngược lại, thì statement2 được thực thi.

  10. Ví dụ Viết chương trình nhập vào một số nguyên a. In ra màn hình kết quả kiểm tra a là số âm hay dương. #include <iostream.h> #include <conio.h> intmain() { int a; cout << "Input a = "; cin >> a; //10 if(a>=0) cout << a << " is a positive.”; else cout << a << " is a negative.”; getche(); return 0; }

  11. Lưu ý • 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ết hợp với if gần nhất. Ví dụ: Cho biết tháng m (m được nhập từ bàn phím) có bao nhiêu ngày? #include <iostream.h> #include <conio.h>

  12. int main() { unsigned int m;//khai bao m kieu nguyen ko co dau cout << "Input month: "; cin >> m; //13 if(m==1 || m==3 || m==5 || m==7 || m==8 || m==10 || m==12) cout << "Month “ << m << ” has 31 days."; else if(m==4 || m==6 || m==9 || m==11) cout << "Month “ << m << ” has 30 days."; else if(m==2) cout << "Month “ << m << ” has 28 or 29 days."; else cout << "This is not a valid month: ” << m; getche(); return 0; }

  13. 4. CẤU TRÚC “ switch“

  14. Cấu trúc switch là gì? • Cấutrúc switch làmộtcấutrúclựachọncónhiềunhánh, đượcsửdụngkhicónhiềulựachọn. • Cúpháp: switch(expression) { case value_1:statement_1; [break;] … case value_n: statement_n; [break;] [default :statement;] }

  15. Lưu đồ cấu trúc switch

  16. Hoạt động của cấu trúc “switch” • Expression sẽ được định trị. • Nếu giá trị của expression bằng value_1 thì thực hiện statement_1 và thoát. • Nếu giá trị của expression khác value _1 thì so sánh với value_2, nếu bằng value_2 thì thực hiện statement_2 và thoát…., so sánh tới value_n. • Nếu tất cả các phép so sánh đều sai thì thực hiện statement của default.

  17. Lưu ý: • Expression trong switch() phải có kết quả là giá trị kiểu số nguyên (int, char, long). • Các giá trị sau case phải là hằng nguyên. • Không bắt buộc phải có default. • Khi thực hiện lệnh tương ứng của case có giá trị bằng expression, chương trình thực hiện lệnh break để thoát khỏi cấu trúc switch.

  18. Ví dụ Ví dụ: Nhập vào một số nguyên, chia số nguyên này cho 2 lấy phần dư. Kiểm tra nếu phần dư bằng 0 thì in ra thông báo “là số chẳn”, nếu số dư bằng 1 thì in thông báo “là số lẽ”. #include <iostream.h> #include <conio.h>

  19. intmain () { int n, intSoDu; cout<<”Nhap mot so: "; cin>>n; //10 intSoDu = (n % 2); //0 switch(intSoDu) { case0: cout << n << ” la so chan."; break; case 1: cout << n << ” la so le."; break; } getche(); return0; }

  20. 5. CẤU TRÚC LẶP “while” và “do…while”

  21. 5.1 Cấu trúc while • Cúpháp: While (expression) statement; • Ý nghĩa: • Expressionđượcđịnhtrị • Nếukếtquảlàtruethìstatementthựcthivà quay lại (1) • Nếukếtquảlàfalsethìthoátkhỏivònglặpwhile.

  22. Ví dụ : ch3- bai 28 Viết chương trình tính tổng các số nguyên từ 1 tới n. #include<iostream.h> #include<conio.h> int main () { int i, n, sum; cout<<”Input n= ”; cin >> n; // 10 i = 1; sum = 0; if(n>=0) { While (i<=n) // khi i<=n la dung thi thưc hien { sum += i; i++; } cout<< “i=: ” <<i<<“tong la: ”<<sum; } else cout<<“ n<0, không thuc hien!”; getche(); return 0; }

  23. 5.2 Cấu trúc do…while • Cú phá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.

  24. Ví dụ Viếtchươngtrình in dãysốnguyêntừ 1 đến 10. #include <iostream.h> #include <conio.h>

  25. intmain () { int i; clrscr(); cout<<"Display one to ten: "; i=1; do { cout << setw(7) << i; i+=1; } while(i<=10); getche(); return 0; }

  26. 5. CẤU TRÚC LẶP “for”

  27. Hoạt động cấu trúc “for” • Cú pháp: for (Exp1; Exp2; Exp3) statement; • Ý nghĩa: • Exp1: là biểu thức khởi tạo được thực hiện. • Exp2: là biểu thức điều kiện dừng • Exp3: biểu thức điều khiển lặp Đào Thị Cẩm Hằng- Khoa KH và KT Máy Tính- Trường ĐẠI HỌC CÔNG NGHIỆP TP.HCM

  28. Ví dụ Viết chương trình tính tổng các số nguyên từ 1 đến n. #include <iostream.h> #include <conio.h>

  29. intmain() { int i, n, sum; cout<<”Input a number:”; cin >> n; sum = 0; for (i=1 ; i<=n ; i++) sum += i; cout<<”Sum from 1 to “ << n << ” is: ” << sum; getch(); return 0; }

  30. Lưu ý • C/C++ cho phép Exp1 là một định nghĩa biến for(int i=1; i<=n; ++i) • Xóa tất cả các biểu thức trong vòng lặp for sẽ cho một vòng lặp vô tận. for (;;) statement;

  31. Phân biệt dùng “for” hay while”,”do…while” • Đối với for: Lệnh được lặp lại với số lần lặp mà ta biết trước. • Đối với while, do…while: Lệnh được lặp lại khi thỏa điều kiện nào đó và ta không biết trước số lần lặp.

  32. 6. Lệnh ngắt “break”

  33. Ý nghĩa việc dùng lệnh “break” • Khi gặp lệnh break thì lặp tức thóat khỏi một cấu trúc điều khiển mà không chờ đến biểu thức điều kiện được định trị. • Điều khiển (control flow) tự động nhảy đến lệnh tiếp theo. • Trong vòng lặp câu lệnh break thường đi kèm với câu lệnh if.

  34. Vídụ ĐọcvàomộtmậtkhẩungườidùngtốiđaSoLanNhap for (i=0; i<SoLanNhap; ++i) { cout<<"Input a password:“; cin >> passWord; if (passWord= =12345) { cout << "Dang nhapthanhcong!\n"; break; // thoatkhoivong lap } else cout <<"Password is wrong!\n"; }

  35. 6. Lệnh “continue”

  36. Ý nghĩa việc dùng lệnh “continue” • Lệnh continue dùng để kết thúc sớm vòng lặp hiện tại và quay về đầu vòng lặp. • Lệnh continue chỉ được dùng trong thân các cấu trúc lặp như for, while, do...while. • Câu lệnh continue thường đi kèm với câu lệnh if.

  37. Vídụ Một vòng lặp thực hiện nhập vào từ bàn phím một số dương, nếu nhập âm thì bắt buộc người dùng nhập lại. do { cout<<“ Nhap vao mot so: ”; cin >> num; if (num <= 0) continue; // quay về đầu vòng lặp else cout<<“So vua nhap la so duong”; } while (num <= 0);

  38. Tóm tắt các cấu trúc điều khiển • Các cấu trúc điều khiển qui định thứ tự thực thi các lệnh của chương trình. • Có 3 loại cấu trúc điều khiển: • Cấu trúc tuần tự (sequence) • Cấu trúc lựa chọn (selection): if, switch • Cấu trúc lặp (repetition or loop): for, while, do…while

  39. Việc dùng lệnh break, continue ? • Lệnh break: dùng để thoát khỏi một cấu trúc lệnh hiện tại và thực hiện lệnh tiếp theo. • Lệnh continue: khi gặp lệnh continue sẽ quay về đầu vòng lặp và thực hiện lần lặp tiếp theo. • Trong cấu trúc lặp (for,while, do…while) thì lệnh break, continue thường nằm trong cấu trúc lệnh if

  40. HẾT.

More Related