Tải bản đầy đủ (.pdf) (32 trang)

Bài giảng Tin học đại cương: Bài 4 - ThS. Nguyễn Thị Phương Thảo

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.23 MB, 32 trang )

T IN ĐẠI CƯƠNG
Bài 4: CÁC CẤU TRÚC ĐIỀU KHIỂN
Ths. Nguyễn Thị Phương Thảo
Bộ môn Kỹ thuật máy tính và mạng, Khoa CNTT

Trường Đại học Thủy Lợi

1


Các cấu trúc điều khiển
 Cấu trúc tuần tự
 Cấu trúc rẽ nhánh

 Cấu trúc lặp
 Từ khoá break và continue

3


Cấu trúc tuần tự



Các lệnh được lần lượt thực hiện
Tất cả các chương trình học đến thời
điểm này đều theo cấu trúc tuần tự


Câu lệnh rẽ nhánh


Câu lệnh IF
Điều
kiện

đúng

sai
Công việc

Cú pháp :
if (<điều kiện>)
{
<công việc>
}
Quá trình thực hiện
1.Kiểm tra <điều kiện> (biểu thức logic).
Nếu sai : bỏ qua

2.Thực hiện <công việc> (một lệnh hoặc
khối lệnh)


Câu lệnh IF-ELSE

Điều
kiện
sai
Công việc 2

đúng


Công việc 1

Cú pháp:
if (<điều kiện>)
{
<công việc 1>
}
else
{
<công việc 2>
}
Quá trình thực hiện
1.Kiểm tra <điều kiện>. Nếu sai : chuyển
đến bước 3
2.Thực hiện <công việc 1> và bỏ qua bước
3
3.Thực hiện <công việc 2>


Bài tập

1. Nhập vào một số n từ bàn phím và kiểm tra xem
n có là số chẵn. In câu trả lời ra màn hình
2. Viết chương trình nhập vào 3 số thực. In ra màn
hình số lớn nhất trong 3 số
3. Viết chương trình tính và in ra màn hình giá trị
biểu thức sau:
𝑥+1
3𝑥


Với x là số nguyên được nhập từ bàn phím


Câu lệnh SWITCH

Cú pháp
switch(<biểu thức>)
{
case <giá trị 1> : <công việc 1> ; break ;
case <giá trị 2> : <công việc 2> ; break ;
...
case <giá trị n> : <công việc n> ; break ;
default : <công việc mặc định> ;
}
 Chú ý
-

<biểu thức> phải có kiểu nguyên hoặc kí tự

-

Không được phép quên lệnh break đằng sau mỗi <công việc> !

-

Không bắt buộc phải có default

-


Có thể gom nhiều <giá trị> để thực hiện một <công việc>


Ví dụ

Viết chương trình C++ để nhập số nguyên
dương n và in ra số dư của phép chia n cho
4:

Ví dụ nhập n=13, In ra màn hình dòng
13 chia 4 dư 1


Bài 1


Ví dụ

Bài 2

Viết chương trình nhập vào 1 ký tự (A,B, C,
D, F), hiển thị kết quả điểm đạt của bạn (4,
3, 2, 1, 0) tương ứng với ký tự nhập vào.
Các trường hợp khác ghi “Không phải là
điểm trong thang điểm 4”.


Bài 2



Bài 2: xử lý khi nhập ký tự in thường


Bài 2: xử lý khi nhập ký tự in thường


Cấu trúc lặp
 Ví dụ : Nhập dữ liệu điểm môn Tin học đại cương cho

120 sinh viên lớp N03 và tính điểm trung bình của lớp.
Nếu dùng cấu trúc tuần tự :
-

Khai báo 120 biến để lưu điểm của 120 sinh viên

-

Viết 120 lần lệnh nhập dữ liệu

-

Viết 120 lần lệnh cộng các biến

 Vấn đề : chương trình quá dài, nhàm chán, rất dễ
phát sinh lỗi, không tổng quát hóa

→ Giải pháp : sử dụng cấu trúc lặp, làm lặp đi lặp lại công
việc nào đó cho đến khi thỏa mãn một điều kiện
14



Cấu trúc lặp
 Có hai kiểu lặp thông dụng
-

lặp sử dụng biến đếm (biết trước số lần lặp), ví dụ : nhập điểm
của 120 sinh viên

-

lặp sử dụng điều kiện dừng, ví dụ : nhập mật khẩu cho đến khi
nhập đúng

 Tương ứng với những kiểu lặp này, C++ cung cấp các
lệnh lặp for, while và do-while

15


Vòng lặp FOR
Cú pháp :
for (<khởi tạo> ; <điều kiện> ; <thay đổi>)
{
<công việc>

Khởi tạo

Điều kiện
đúng


công việệc

sai

}
Quá trình thực hiện
1. <khởi tạo> : gán giá trị ban đầu cho biến điều
khiển
2. Kiểm tra <điều kiện> (biểu thức logic). Nếu sai :
dừng lặp

thay đổi

3. Thực hiện <công việc> (một lệnh hoặc khối lệnh)

4. Thực hiện <thay đổi> (tăng hoặc giảm giá trị
biến điều khiển)
for (int a=10; a>=0; a--) { công việc} 5. Quay về bước 2
Hoặc
for (int a=0; a<=10; a++) {công việc}
16


Ví dụ: đoạn chương trình sau thực hiện công việc gì


2. Vòng lặp FOR








Khởi gán a = 10 ; 10 có >= 0 không ? → có → in ra 10
Bớt a đi 1 → a = 9 ; 9 có >= 0 không ? → có → in ra 9
...
Bớt a đi 1 → a = 0 ; 0 có >= 0 không ? → có → in ra 0
Bớt a đi 1 → a = -1 ; -1 có >= 0 không ? → không → dừng
vòng lặp, không in -1 ra màn hình
18


Ví dụ

Nhập vào một số nguyên
dương n, tính tổng các số
nguyên dương nhỏ hơn n.


Vòng lặp FOR : ví dụ

//tính tổng các số nguyên từ 10 đến 20
for (int i = 10, tong = 0 ; i <= 20 ; i++)
{
tong = tong + i ;
}
//vòng lặp này làm gì ?
for (int i = 10, tich = 1 ; i <= 20 ; i = i+2)
{

tich = tich * i ;
}
20


3. Vòng lặp WHILE
Cú pháp :
while (<điều kiện>)
Điều kiện

sai

{
<công việc>

đúng

}
công việc

Quá trình thực hiện
1. Kiểm tra <điều kiện>. Nếu sai : dừng lặp
2. Thực hiện <công việc>
3. Quay về bước 1

21


Vòng lặp WHILE
 Vòng lặp While được dùng khi không biết chính xác số lần

lặp, chỉ biết điều kiện dừng
 Chú ý khởi tạo các biến cần thiết trước khi vào vòng lặp
 Các lệnh trong khối <công việc> có thể không được thực hiện

lần nào nếubiểuthức <điều kiện> sai ngay từ đầu
 Trong <công việc> thường có ít nhất một lệnh ảnh hưởng

đến giá trị của biểu thức <điều kiện>, làm cho biểu thức
<điều kiện> đang đúng trở thành sai
 Lỗi hay gặp: vòng lặp vô hạn
22


Vòng lặp WHILE - ví dụ
int a = 10;
while (a > = 0)
{
cout << a << endl;
a− − ;
}
 Khởi tạo giá trị của abằng10
 Khi a vẫn còn lớn hơn hoặc bằng 0 thì làm công việc sau
1. In ra màn hình giá trị của a

2. Bớt a đi 1, lệnh này ảnh hưởng đến giá trị của biểu thức <điều kiện>

23


Vòng lặp WHILE - ví dụ

 Vòng lặp vô hạn
int a = 10; while (a > = 0)
{
cout << a << endl;
}
 Chương trình sau đây làm gì ?
int a = n-1 ;
while ( (n % a) != 0 )
{
a = a - 1;
}

24


Ví dụ

Viết chương trình nhập vào số
nguyên dương N. Yêu cầu
nhập lại nếu N <=0.
In ra màn hình các số dương
chia hết cho 4 nhỏ hơn N.


×