cÁc cẤu trÚc ĐiỀu khiỂn (control structures)

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

Upload: cherie

Post on 15-Jan-2016

89 views

Category:

Documents


0 download

DESCRIPTION

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ự”. - PowerPoint PPT Presentation

TRANSCRIPT

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

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

1

CHƯƠNG 3

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

1. Giới thiệu 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á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ủa chương trình.

Có 3 loại cấu trúc điều khiển:Có 3 loại cấu trúc điều khiển: Cấu trúc tuần tự Cấu trúc tuần tự (sequence)(sequence) Cấu trúc lựa chọn Cấu trúc lựa chọn (selection) (selection) Cấu trúc lặp (Cấu trúc lặp (repetition or loop)repetition or loop)

2

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

Cấu trúc tuần tự Cấu trúc tuần tự (sequence): thực hiện các (sequence): thực hiện các lệnh theo thứ tự từ trên xuốnglệnh theo thứ tự từ trên xuống

Cấu trúc “Tuần Tự”

3

Lệnh 1

Lệnh 2

Lệnh n

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

Cấu trúc lựa chọn Cấu trúc lựa chọn (selection): dựa vào kết (selection): dựa vào kết quả của biểu thức điều kiện mà những lệnh 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 tương ứng sẽ được thực hiện. Các cấu trúc lựa chọn gồm:lựa chọn gồm:

− if if

− switchswitch

Cấu trúc “Lựa chọn”Cấu trúc “Lựa chọn”

4

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

Cấu trúc lặp Cấu trúc lặp (repetition or loop): lặp lại 1 hay nhiều (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. 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:Các cấu trúc lặp gồm:

− forfor

− whilewhile

− do ... while. do ... while. Tuy nhiên, thứ tự thực hiện các lệnh của chương 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ư trình còn bị chi phối bởi các lệnh nhảy như continue, continue, break, gotobreak, goto. .

Cấu trúc “Lặp”Cấu trúc “Lặp”

5

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

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

6

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

3.1. Cấu trúc IF “Dạng thiếu”3.1. Cấu trúc IF “Dạng thiếu”

Cú pháp: Cú pháp:

if (if (expressionexpression) )

statementstatement; ;

Ý nghĩa: Ý nghĩa:

ExpressionExpression được định trị. Nếu được định trị. Nếu

kết quả là kết quả là truetrue thì thì statementstatement được thực thi, được thực thi, ngược lại, không làm gì cả.ngược lại, không làm gì cả.

Lưu đồ

7

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

Ví dụ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ó 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. phải là số dương không.

#include <iostream.h> #include <iostream.h>

#include <conio.h> #include <conio.h>

int int main() main()

{ {

intint a; a;

cout << "Input a = "; cin>>a; // 10cout << "Input a = "; cin>>a; // 10

ifif(a>=(a>=00) )

cout << a << " is a positive.”; cout << a << " is a positive.”;

getch getch ()(); ;

return 0return 0; ;

} }

8

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

Cú phápCú phápif (if (expressionexpression) )

statement1statement1; ; else else

statement2statement2;;

Ý nghĩa: Ý nghĩa:

− NếuNếu ExpressionExpression được định là được định là truetrue thì thì statement1statement1 được thực thi. được thực thi.

− Ngược lại, thì Ngược lại, thì statement2statement2 được thực thi. được thực thi.

Lưu đồ

3.2. Cấu trúc IF “Dạng đủ”3.2. Cấu trúc IF “Dạng đủ”

9

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

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;

}

Ví dụVí dụ

10

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

Ta có thể sử dụng các câu lệnh Ta có thể sử dụng các câu lệnh if…elseif…else lồng lồng nhau. Khi dùng nhau. Khi dùng if…elseif…else lồng nhau thì lồng nhau thì elseelse sẽ kết hợp với sẽ kết hợp với if if gần nhất. 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>

Lưu ýLưu ý

11

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

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;}

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

4. CẤU TRÚC “ 4. CẤU TRÚC “ swswitchitch“ “

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

Cấu trúc switch là gì? Cấu trúc switch là gì?

Cấu trúc switch là một cấu trúc lựa chọn có nhiều 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.nhánh, được sử dụng khi có nhiều lựa chọn.

Cú pháp: Cú pháp:

switchswitch((expressionexpression) )

{ {

case case value_1value_1:: statement_1statement_1;; [break [break;;] ]

… …

case case value_nvalue_n: : statement_nstatement_n;; [break [break;;] ]

[default [default :: statementstatement;;] ]

}}

14

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

Lưu đồ cấu trúc switchLưu đồ cấu trúc switch

15

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

1.1. ExpressionExpression sẽ được định trị. sẽ được định trị.

2.2. Nếu giá trị của Nếu giá trị của expressionexpression bằng bằng value_1value_1 thì thì thực hiện thực hiện statement_1statement_1 và và thoát thoát. .

3.3. Nếu giá trị của Nếu giá trị của expressionexpression khác khác value _1 value _1 thì so thì so sánh với sánh với value_2value_2, nếu bằng , nếu bằng value_2value_2 thì thực hiện thì thực hiện statement_2statement_2 và và thoátthoát…., so sánh tới …., so sánh tới value_nvalue_n. .

4.4. Nếu tất cả các phép so sánh đều sai thì thực hiện Nếu tất cả các phép so sánh đều sai thì thực hiện statement statement của của defaultdefault. .

Hoạt động của cấu trúc “switch”Hoạt động của cấu trúc “switch”

16

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

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.

Lưu ý:Lưu ý:

17

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

Ví dụ: Nhập vào một số nguyên, chia số nguyên này 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ì 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 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ẽ”. thông báo “là số lẽ”.

#include <iostream.h> #include <iostream.h>

#include <conio.h> #include <conio.h>

Ví dụVí dụ

18

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

19

int main () {

int n, intSoDu; cout<<”Nhap mot so: "; cin>>n; //10 intSoDu = (n % 2); //0switch(intSoDu) {

case 0: cout << n << ” la so chan."; break; case 1: cout << n << ” la so le."; break;

} getche(); return 0;

}

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

2020

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

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

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.

5.1 Cấu trúc while5.1 Cấu trúc while

21

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

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ụ : ch3- bai 28Ví dụ : ch3- bai 28

22

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

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.

5.2 Cấu trúc do…while5.2 Cấu trúc do…while

23

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

Viết chương trình in dãy số nguyên từ 1 đến 10. Viết chương trình in dãy số nguyên từ 1 đến 10.

#include <iostream.h> #include <iostream.h>

#include <conio.h> #include <conio.h>

Ví dụVí dụ

24

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

25

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;

}

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

26

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

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

Cú pháp: for (Exp1; Exp2; Exp3)

statement; Ý nghĩa:1. Exp1: là biểu thức khởi

tạo được thực hiện.2. Exp2: là biểu thức điều

kiện dừng3. Exp3: biểu thức điều

khiển lặp

Hoạt động cấu trúc “for”Hoạt động cấu trúc “for”

27Đà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

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

Viết chương trình tính tổng các số nguyên từ 1 đến n. Viết chương trình tính tổng các số nguyên từ 1 đến n.

#include <iostream.h> #include <iostream.h>

#include <conio.h> #include <conio.h>

Ví dụVí dụ

28

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

29

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; }

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

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;

Lưu ýLưu ý

30

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

Phân biệt dùng “for” hay while”,”do…while”Phân biệt dùng “for” hay while”,”do…while”

31

Đố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.

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

32

6. Lệnh ngắt “6. Lệnh ngắt “breakbreak””

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

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

Ý nghĩa việc dùng lệnh “break”

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

Đọc vào một mật khẩu người dùng tối đa SoLanNhap

for (i=0; i<SoLanNhap; ++i)

{

cout<<"Input a password:“;

cin >> passWord;

if (passWord= =12345)

{

cout << "Dang nhap thanh cong!\n";

break; // thoat khoi vong lap }

else

cout <<"Password is wrong!\n";

}

34

Ví dụVí dụ

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

35

6. Lệnh “6. Lệnh “continuecontinue””

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

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

Ý nghĩa việc dùng lệnh “continue”

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

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

Ví dụVí dụ

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

Tóm tắt các cấu trúc điều khiển

38

1.1. Các cấu trúc điều khiển qui định thứ tự thực 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. thi các lệnh của chương trình.

2.2. Có 3 loại cấu trúc điều khiển:Có 3 loại cấu trúc điều khiển:

i.i. Cấu trúc tuần tự Cấu trúc tuần tự (sequence)(sequence)

ii.ii. Cấu trúc lựa chọn Cấu trúc lựa chọn (selection): (selection): if, switch if, switch

iii.iii. Cấu trúc lặp (Cấu trúc lặp (repetition or loop): repetition or loop): for, for, while, do…whilewhile, do…while

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

Việc dùng lệnh break, continue ?

39

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

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

40

HẾT.HẾT.