CHNG 3 CC CU TRC IU KHIN Control
- Slides: 40
CHƯƠNG 3 CÁC CẤU TRÚC ĐIỀU KHIỂN (Control Structures) 1
1. Giới thiệu q 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. q Có 3 loại cấu trúc điều khiển: v Cấu trúc tuần tự (sequence) v Cấu trúc lựa chọn (selection) v. Cấu trúc lặp (repetition or loop) 2
Cấu trúc “Tuần Tự” Ø Cấu trúc tuần tự (sequence): thực hiện các lệnh theo thứ tự từ trên xuống Lệnh 1 Lệnh 2 … Lệnh n 3
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 4
Cấu trúc “Lặp” Ø Cấu trúc lặp (repetition or loop): lặp lại 1 hay nhiều lệnh cho đến khi biểu thức điều kiện có giá trị sai. Các cấu trúc lặp gồ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ối bởi các lệnh nhảy như continue, break, goto. − 5
3. CẤU TRÚC “IF “ 6
3. 1. Cấu trúc IF “Dạng thiếu” Ø Cú pháp: if (expression) statement; Ø Ý nghĩa: Lưu đồ 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ả. 7
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() { int a; cout << "Input a = "; cin>>a; // 10 if(a>=0) cout << a << " is a positive. ”; getch (); return 0; 8 }
3. 2. Cấu trúc IF “Dạng đủ” Ø Cú pháp if (expression) statement 1; else statement 2; Ø Ý nghĩa: Lưu đồ − Nếu Expression được định là true thì statement 1 được thực thi. − Ngược lại, thì statement 2 được thực thi. 9
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> int main() { 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; } 10
Lưu ý n 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> 11
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; } 12
4. CẤU TRÚC “ switch“
Cấu trúc switch là gì? n n 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. Cú pháp: switch(expression) { case value_1: statement_1; [break; ] … case value_n: statement_n; [break; ] [default : statement; ] } 14
Lưu đồ cấu trúc switch 15
Hoạt động của cấu trúc “switch” 1. 2. 3. 4. 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. 16
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. 17
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> 18
int main () { int n, int. So. Du; cout<<”Nhap mot so: "; cin>>n; //10 int. So. Du = (n % 2); //0 switch(int. So. Du) { case 0: cout << n << ” la so chan. "; break; case 1: cout << n << ” la so le. "; break; } getche(); return 0; } 19
5. CẤU TRÚC LẶP “while” và “do…while” 20
5. 1 Cấu trúc while Cú pháp: While (expression) statement; Ø Ý nghĩa: 1. Expression được định trị 2. Nếu kết quả là true thì statement thực thi và quay lại (1) 3. Nếu kết quả là false thì thoát khỏi vòng lặp while. Ø 21
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; Ví dụ : ch 3 - bai 28 22
5. 2 Cấu trúc do…while Ø Cú pháp: do { statement; }while (expression); Ø Ý nghĩa: 1. Statement được thực hiện 2. Expression được định trị. 3. Nếu Expression là true thì quay lại bước 1 4. Nếu Expression là false thì thoát khỏi vòng lặp. 23
Ví dụ Viết chương trình in dãy số nguyên từ 1 đến 10. #include <iostream. h> #include <conio. h> 24
int main () { int i; clrscr(); cout<<"Display one to ten: "; i=1; do { cout << setw(7) << i; i+=1; } while(i<=10); getche(); return 0; } 25
5. CẤU TRÚC LẶP “for” 26
Hoạt động cấu trúc “for” Cú pháp: for (Exp 1; Exp 2; Exp 3) statement; n Ý nghĩa: 1. Exp 1: là biểu thức khởi tạo được thực hiện. 2. Exp 2: là biểu thức điều kiện dừng 3. Exp 3: biểu thức điều khiển lặp n Đà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 27
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> 28
int main() { 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; } 29
Lưu ý n C/C++ cho phép Exp 1 là một định nghĩa biến for(int i=1; i<=n; ++i) n 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; 30
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. 31
6. Lệnh ngắt “break” 32
Ý 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. 33
Ví dụ Đọc vào một mật khẩu người dùng tối đa So. Lan. Nhap for (i=0; i<So. Lan. Nhap; ++i) { cout<<"Input a password: “; cin >> pass. Word; if (pass. Word= =12345) { cout << "Dang nhap thanh cong!n"; break; // thoat khoi vong lap } else cout <<"Password is wrong!n"; } 34
6. Lệnh “continue” 35
Ý 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. 36
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); 37
Tóm tắt các cấu trúc điều khiển 1. 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. 2. Có 3 loại cấu trúc điều khiển: i. Cấu trúc tuần tự (sequence) ii. Cấu trúc lựa chọn (selection): if, switch iii. Cấu trúc lặp (repetition or loop): for, while, do…while 38
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 39
HẾT. 40
- Chng finance
- Trc force
- Trc benchmark goals
- Dibels trc
- An/trc-170
- Squeeze film damper bearing
- T trc
- 1 trc
- An/trc-170
- Trng
- Centurylink penrose co
- Trc marc
- Trc vs drc
- Trc t
- Cách biểu diễn dấu chấm động
- Trc mrc root cause
- Hdlc adalah
- Primary control vs secondary control
- Sectional drive
- Control volume vs control surface
- Control de errores
- Dairy plant management
- Komponen pada ltspice
- Positive and negative controls
- Negative control vs positive control examples
- Reynolds transport theorem
- What is a negative control
- Control flow errors
- Stock control e flow control
- Keycheck 3
- Software quality control checklist
- Virtue of self control
- Difference between control and experimental group
- Concertive control definition
- Redgate source control
- Control de bodega y manejo de inventario
- Hardware and control structures
- Rheostatic brake
- Control de temperatura y humedad relativa
- The group of people who officially control a country
- Sliding mode control