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
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:
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.pdf

