Bài giảng Lập trình hướng đối tượng - Nguyễn Thị Điệu - Chương 5: Các cấu trúc điều khiển chương trình

5.1. Cấu trúc lựa chọn

5.2. Lệnh lặp

5.3. Cấu trúc Break

5.4. Cấu trúc Continue

pdf31 trang | Chuyên mục: Lập Trình Hướng Đối Tượng | Chia sẻ: dkS00TYs | Lượt xem: 1492 | Lượt tải: 2download
Tóm tắt nội dung Bài giảng Lập trình hướng đối tượng - Nguyễn Thị Điệu - Chương 5: Các cấu trúc điều khiển chương trình, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
Giảng viên: Nguyễn Thị Điệu 
P. 504 Khoa CNTT, ĐH Chu Vĕn An 
1 
LẬP TRÌNH HѬӞNG ĐӔI TѬỢNG 
Chѭơng 5. Các cấu trúc điều khiển chѭơng trình 
2 
5.1. Cấu trúc lựa chọn 
5.2. Lệnh lặp 
5.3. Cấu trúc Break 
5.4. Cấu trúc Continue 
5.1. Cấu trúc lӵa chọn 
3 
5.1.1. Cấu trúc kiểm tra điều kiện if 
5.1.2. Cấu trúc thử và rẽ nhánh switch 
5.1.1. Cấu trúc kiểm tra điều kiện if 
4 
 Cấu trúc kiểm tra điều kiện là để bảo máy kiểm tra một điều 
kiện, nếu đúng thì làm công việc này, nếu sai thì làm công 
việc khác. Biểu thức điều kiện là một biểu thức logic có 
giá trị đúng (khác 0) hoặc sai (bằng 0).  Cấu trúc này có 2 dạng: 
 (1) if (điều_kiện) Câu_lệnh; 
 (2) if (điều_kiện) Câu_lệnh_1; else Câu_lệnh_2; 
 Trong đó Câu_lệnh có thể là một câu lệnh đơn lẻ hoặc một 
khối lệnh. Lưu ý là Điều kiện phải đặt trong ngoặc và sau 
Câu_lệnh_1 vẫn phải có dấu chấm phẩy. 
5.1.1. Cấu trúc kiểm tra điều kiện if (tiếp) 
5 
 Lưu đồ thực hiện Cấu trúc if dạng (1) và (2) như sau: 
(1) if (điều_kiện) Câu_lệnh; 
(2) if (điều_kiện) Câu_lệnh_1; else Câu_lệnh_2; 
 (1) (2) 
Điều_kiện 
Câu_lệnh 
Đúng 
Lệnh tiếp theo 
Sai Điều_kiện 
Lệnh tiếp theo 
Câu_lệnh 1 Câu_lệnh 2 
Sai Đúng 
1. Cấu trúc kiểm tra điều kiện if (tiếp) 
6 
 Ví dụ 5.1: vdp1c51.cpp. Viết chương trình nhập vào một số thực, kiểm tra 
nếu số đó dương thì đưa ra màn hình cĕn bậc 2 của số đó, nếu âm thì đưa ra 
thông báo “Số âm không có cĕn bậc 2”. 
vdp1c51.cpp 
5.1.2. Cấu trúc thử và rẽ nhánh switch 
7 
 Khi cần kiểm tra giá trị của một biểu thức xem có bằng một giá 
trị nào trong nhiều giá trị không ta dùng lệnh switch. 
 Cú pháp: có 2 dạng: 
Dạng (1): 
switch (Biểu thức) 
 { 
 case hằng1: 
 Các câu lệnh; 
 break; 
 case hằng2: 
 Các câu lệnh; 
 break; 
 …… 
 case hằngN: 
 Các câu lệnh; 
 break; 
 } 
Không có dấu chấm phẩy 
Các lệnh ứng với hằng 1 
 Để thoát khỏi switch 
Các lệnh ứng với hằng 2 
Các lệnh ứng với hằng N 
Không có chấm phẩy 
5.1.2. Cấu trúc thử và rẽ nhánh switch (tiếp) 
8 
 Dạng 2: 
switch (Biểu thức) 
 { 
 case hằng1: 
 Các câu lệnh; 
 break; 
 case hằng2: 
 Các câu lệnh; 
 break; 
 …… 
 case hằngN: 
 Các câu lệnh; 
 break; 
 default: 
 Các câu lệnh; 
 break; 
 } 
Không có dấu chấm phẩy 
 Các lệnh ứng với hằng 1 
 Để thoát khỏi switch 
 Các lệnh ứng với hằng 2 
 Các lệnh ứng với hằng N 
 Các lệnh ứng với default 
Không có dấu chấm phẩy 
5.1.2. Cấu trúc thử và rẽ nhánh switch (tiếp) 
9 
 Biểu thức sau từ khoá switch phải đặt trong ngoặc đơn. 
 Biểu thức và các hằng phải cùng kiểu và phải là kiểu số nguyên hoặc ký 
tự. 
 Các hằng có thể là một giá trị hằng hoặc biểu thức hằng (các hằng kết 
hợp với nhau).Sau các hằng phải có dấu hai chấm. 
 Trước mỗi hằng phải có từ khoá case, tức là không thể có nhiều hằng 
chung một từ khoá case. 
 Nếu muốn nhiều hằng cùng chung một câu lệnh thì các hằng này để gần 
nhau và chỉ viết các lệnh cùng câu lệnh break ở hằng dưới cùng. 
5.1.2. Cấu trúc thử và rẽ nhánh switch (tiếp) 
10 
 Lưu đồ thực hiện lệnh switch như sau: 
Lệnh tiếp theo 
Biểu thức 
=hằng1 ? 
Biểu thức 
=hằngN ? 
Các lệnh ứng vӟi hằng 
1 
Các lệnh ứng vӟi hằng 
N 
Các lệnh ứng vӟi 
default (nếu có) 
Đúng 
Đúng 
Sai 
Sai 
5.1.2. Cấu trúc thử và rẽ nhánh switch (tiếp) 
11 
 Ví dụ 5.2: vdp1c52.cpp 
 Viết chương trình nhập vào tháng và nĕm, cho biết 
tháng đó trong nĕm đó có bao nhiêu ngày? 
 (Chương trình trang sau) 
5.1.2. Cấu trúc thử và rẽ nhánh switch (tiếp) 
12 
void main() 
{ 
 clrscr(); 
 int t,n; 
 cout>t; 
 cout>n; 
 switch (t) 
 { 
 case 1: 
 case 3: 
 case 5: 
 case 7: 
 case 8: 
 case 10: 
 case 12: 
 cout<<"Thang nay co 31 ngay"; 
 break; 
 case 4: 
 case 6: 
 case 9: 
 case 11: 
 cout<<"Thang nay co 30 ngay"; 
 break; 
 case 2: 
 if(n%4==0 && n%100 != 0) cout<<"Thang nay co 29 ngay"; 
 else cout<<"Thang nay co 28 ngay"; 
 break; 
 } 
 getch(); //Dung chuong trinh lai de xem ket qua 
} 
Chuong trinh vdp1c52.cpp 
5.2. Cấu trúc lặp 
13 
 1. Cấu trúc lặp với số lần lặp xác định for 
  2. Cấu trúc lặp với lần lặp không xác định 
5.2.1. Cấu trúc lặp vӟi sӕ lần xác định 
14 
 Để bảo máy thực hiện nhiều lần một số lệnh nào đó với số 
lần thực hiện xác định ta dùng lệnh lặp for. 
 Cú pháp: 
 for (Biểu thức khởi tạo;Biểu thức kiểm tra; Biểu thức tĕng/giảm) 
 Câu lệnh hoặc Khӕi lệnh 
 Biểu thức khởi tạo dùng để khởi tạo giá trị ban đầu cho biến điều khiển vòng 
lặp và chỉ được thực hiện duy nhất một lần khi bắt đầu vào vòng lặp for. 
Trong Biểu thức khởi tạo có thể khai báo và khởi tạo biến điều khiển, tuy 
nhiên biến điều khiển khai báo ở đây sẽ mất khi vòng lặp for kết thúc. 
5.2.1. Cấu trúc lặp vӟi sӕ lần xác định (tiếp) 
15 
 Biểu_thức_kiểm_tra dùng để kiểm tra giá trị của biến điều 
khiển xem còn tiếp tục lặp hay kết thúc. 
Biểu_thức_kiểm_tra thường là biểu thức logic có giá trị 
đúng hoặc sai, khi có giá trị đúng thì vẫn lặp, khi có giá trị 
sai thì kết thúc. 
 Biểu_thức_tĕng/giảm dùng để thay đổi biến điều khiển 
theo chiều tĕng hoặc giảm. 
5.2.1. Cấu trúc lặp vӟi sӕ lần xác định(tiếp) 
16 
Lưu đồ thực hiện cấu 
trúc for như bên: 
Ba biểu thức trong lệnh 
for có thể không có 
nhưng hai dấu chấm 
phẩy không thể thiếu. 
Khi không viết biểu thức 
kiểm tra thì mặc định 
biểu thức kiểm tra có giá 
trị true, điều này làm cho 
vòng lặp lặp mãi. 
Đúng 
Biểu thức khởi tạo 
Biểu thức 
kiểm tra 
Các lệnh của vòng 
lặp 
Biểu thức 
tĕng/giảm 
Sai 
Lệnh tiếp theo 
(Thoát khӓi vòng 
lặp) 
5.2.1. Cấu trúc lặp vӟi sӕ lần xác định (tiếp) 
17 
 Ví dụ: 
for (i=1;i<=10;i++) Kết quả: 
 cout<<i<<’\n’; 
for (i=10;i<=20;i=i+2) 
{ 
 cout<<i<<’*’; 
 cout<<’\n’; 
} 
5.2.1. Cấu trúc lặp vӟi sӕ lần xác định (tiếp) 
18 
 Ví dụ 5.3: vdp1c53.cpp 
 Viết chương trình tính gần đúng số  theo công thức sau 
(với n số hạng đầu tiên): 
 (Chương trình trang sau) 
...
12
)1(
...
7
1
5
1
3
1
1
4
 n n
5.2.1. Cấu trúc lặp vӟi sӕ lần xác định(tiếp) 
19 
//Chuong trinh vdp1c53.cpp 
void main() 
{ 
 int n,dau=1; 
 clrscr(); 
 cout<<"Nhap vao gia tri cua n: "; 
 cin>>n; 
 float t=1,t1; 
 for(int i=1;i<=n;i++) 
 { 
 dau=-dau; 
 t1=dau/(2*i+1); 
 t=t+t1; 
 } 
 cout<<"PI = "<<t*4; 
 getch(); 
} 
5.5.2. Cấu trúc lặp vӟi sӕ lần lặp không xác định 
20 
 Lệnh lặp kiểm tra điều kiện trước: while  Cú pháp: 
 while (Biểu thức kiểm tra) 
 Câu lệnh; 
Hoặc: 
 while (Biểu thức kiểm tra) 
 { 
 Câu lệnh; 
 Câu lệnh; 
 ……. 
 } 
Không có dấu 
chấm phẩy 
5.2.2. Cấu trúc lặp vӟi sӕ lần lặp không xác định 
(tiếp) 
21 
 Lưu đồ thực hiện lệnh while 
Biểu thức 
kiểm tra 
Các lệnh của vòng lặp 
Đúng 
Sai 
Lệnh tiếp theo 
(thoát khỏi vòng lặp) 
5.5.2. Cấu trúc lặp vӟi sӕ lần lặp không xác định 
(tiếp) 
22 
 Lệnh lặp kiểm tra điều kiện sau: do …while 
 do 
 Câu lệnh; 
 while (Biểu thức kiểm tra); 
Hoặc: 
 do 
 { 
 Câu lệnh; 
 Câu lệnh; 
 …… 
 } while (Biểu thức kiểm tra); 
Không có dấu 
chấm phẩy 
5.2.2. Lệnh lặp vӟi sӕ lần lặp không xác định 
(tiếp) 
23 
 Lưu đồ thực hiện lệnh do … while 
Đúng 
Các lệnh của vòng lặp 
Sai 
Lệnh tiếp theo 
(thoát khỏi vòng lặp) 
Biểu thức 
kiểm tra 
5.2.2. Cấu trúc lặp vӟi sӕ lần lặp không xác định 
(tiếp) 
24 
 Ví dụ: vdp1c54.cpp 
Viết chương trình tính ex theo công thức: 
Với độ chính xác 0.00001, tức là ta cần chọn n sao cho: 
 (Chương trình trang sau) 
...
!
...
!3!2!1
1
32 
n
xxxx
e
n
x
00001.0
!

n
x
n
5.2.2. Cấu trúc lặp vӟi sӕ lần lặp không xác định 
(tiếp) 
25 
//Chuong trinh vdp1c54.cpp 
//Khai bao su dung thu vien chuong trinh 
void main() 
{ 
 clrscr(); 
 float s,s1,x; 
 int i=0; 
 cout>x; 
 s=1;s1=1; 
 do 
 { 
 s1*=x/++i; 
 s+=s1; 
 } 
 while(fabs(s1)>=0.00001); 
 cout<<"e mu "<<x<<"= "<<s<<'\n'; 
 getch(); //Dung chuong trinh lai de xem ket qua 
} 
5.3. Lệnh break 
26 
 Lệnh break được dùng để thoát khỏi lệnh for, while, 
do-while và switch. Nếu các lệnh này lồng nhau thì 
lệnh break thoát khỏi lệnh bên trong nhất chứa nó. 
 Với lệnh break ta có thể thoát khỏi vòng lặp từ một 
điểm bất kỳ bên trong vòng lặp mà không dùng 
đến điều kiện kết thúc vòng lặp. 
 Ví dụ: Viết chương trình nhập vào một số nguyên dương, 
cho biết số này có phải là số nguyên tố không? 
5.4. Lệnh continue 
27 
 Lệnh continue chỉ dùng với các lệnh lặp for, while và 
do-while. 
 Lệnh continue không làm thoát khỏi lệnh lặp mà làm 
cho lệnh lặp bỏ qua các lệnh sau lệnh continue để thực 
hiện vòng lặp tiếp theo. 
 Tác động của lệnh continue với các lệnh lặp được làm 
rõ qua các lưu đồ thực hiện lệnh dưới đây. 
5.4. Lệnh continue (tiếp) 
28 
 Tác động của lệnh 
continue đối với 
lệnh for. 
Biểu thức khởi tạo 
Biểu thức 
kiểm tra 
Lệnh1; 
Lệnh2; 
continue; 
LệnhN; 
Biểu thức tĕng/giảm 
Sai 
Đúng 
Lệnh tiếp theo 
5.4. Lệnh continue (tiếp) 
29 
 Tác động của 
lệnh continue 
đối với lệnh 
while. 
Biểu thức 
kiểm tra 
Lệnh 1; 
Lệnh 2; 
continue; 
Lệnh N; 
Đúng 
Sai 
Lệnh tiếp theo 
(thoát khỏi vòng lặp) 
5.4. Lệnh continue (tiếp) 
30 
 Tác động của lệnh 
continue đối với lệnh 
 do-while. 
Đúng 
Lệnh 1; 
Lệnh 2; 
continue; 
Lệnh N; 
Sai 
Lệnh tiếp theo 
(thoát khỏi vòng lặp) 
Biểu thức 
kiểm tra 
BÀI TẬP VÀ THӴC HÀNH 
31 
Q & A? 

File đính kèm:

  • pdfBài giảng Lập trình hướng đối tượng - Nguyễn Thị Điệu - Chương 5 Các cấu trúc điều khiển chương trình.pdf