









Preview text:
10/26/2025 Cấu trúc điều khiển
Trường Đại học Thủ Dầu Một • Cấu trúc tuần tự
Viện Công nghệ số • Cấu trúc lựa chọn • Cấu trúc lặp CƠ SỞ LẬP TRÌNH Chương III
Cấu trúc điều khiển 2 1 2 Cấu trúc tuần tự Cấu trúc tuần tự
Ø Các lệnh trong chương trình void main() Bắt đầu {
thực hiện tuần tự từ trên
int a, b, tong, hieu, tich; xuống. float thuong;
printf("Nhap vao a: ");
scanf("%d",&a);
printf("Nhap vao b: ");
scanf("%d",&b);
tong = a + b;
hieu = a - b;
tich = a * b;
thuong = (float)a / b; //Ép kiểu
printf("Tong=%d ",tong);
printf("\nHieu=%d",hieu);
printf("\nTich=%d",tich);
printf("\nThuong= %f",thuong); Kết thúc }
Chương 3. Cấu trúc điều khiển 3
Chương 3. Cấu trúc điều khiển 4 3 4 1 10/26/2025 Cấu trúc lựa chọn
Cấu trúc lựa chọn if
• Cấu trúc lựa chọn cho phép máy tính chọn
if (biểu thức điều kiện)
thực hiện một khối lệnh nào đó dựa vào {
kết quả của biểu thức điều kiện. ; • Có hai dạng: }
Nếu biểu thức điều kiện cho kết – if
quả true thì thực hiện khối lệnh – if … else bên trong if. 5
Chương 3. Cấu trúc điều khiển 6 5 6
Cấu trúc lựa chọn if
Cấu trúc lựa chọn
Ø Ví dụ: Viết chương trình nhập vào một số nguyên từ 1
Ø Cấu trúc if … else
đến 10, nếu nhập sai thì hiển thị thông báo void main() Bắt đầu
if (biểu thức điều kiện) { { int k; ;
printf("Nhap mot so [1..10]: "); }
scanf("%d",&k); else
if (k < 1 || k > 10) { {
printf("So vua nhap khong hop ; le"); } }
Nếu biểu thức điều kiện cho kết quả true thì thực hiện khối } Kết thúc
lệnh 1, ngược lại thì thực hiện khối lệnh 2
Chương 3. Cấu trúc điều khiển 7
Chương 3. Cấu trúc điều khiển 8 7 8 2 10/26/2025
Cấu trúc lựa chọn Cấu trúc lựa chọn
Ø Ví dụ: Nhập vào số nguyên a và b, nếu a là bội số của b
Chương trình cài đặt:
thì in thông báo "a là bội số của b", ngược lại in "a không là bội số của b" void main() { int a, b;
printf("Nhap so a:");
scanf("%d",&a);
printf("Nhap so b:");
scanf("%d",&b);
if(a%b==0)
printf("%d la boi so cua %d",a,b); else
printf("%d khong la boi so cua %d",a,b); }
Chương 3. Cấu trúc điều khiển 9 10 9 10
Cấu trúc lựa chọn Cấu trúc lựa chọn
Ø Giải và biện luận phương trình bậc1 ax+b=0 void main() { float a, b;
printf("Nhap so a:");
scanf("%f",&a);
printf("Nhap so b:");
scanf("%f",&b);
if (a==0)
if (b==0)
printf("Phuong trinh vo so nghiem"); else
printf("Phuong trinh vo nghiem"); else
printf("Phuong trinh co nghiem x = %.2f", -b/a); }
Chương 3. Cấu trúc điều khiển 11 12 11 12 3 10/26/2025 Cấu trúc switch Cấu trúc switch switch (biểu thức) {
– n là các hằng số nguyên hoặc ký tự. i case n1:
– n phụ thuộc vào giá trị của biểu thức sau các câu lệnh ; i switch break ;
Giá trị biểu thức = n1 case n2:
- Nếu: giá trị của biểu thức = n thì thực hiện câu lệnh i các câu lệnh ; sau case n .
Giá trị biểu thức = n2 i break ;
- Nếu giá trị biểu thức không thỏa các n thì thực hiện ……… i
câu lệnh sau default nếu có, hoặc thoát khỏi câu case nk: lệnh switch. ; break ;
- Mặc định chương trình thực hiện tuần tự các câu
[default: các câu lệnh]
lệnh của các case n , do đó sau mỗi case phải dùng i }
Các trường hợp còn lại
lệnh break để thoát khỏi switch.
Chương 3. Cấu trúc điều khiển 13 14 13 14
Nhập vào số nguyên n có giá trị từ 1 đến 12. In ra màn hình tháng tương ứng,
nếu n có giá trị <1 hoặc >12 thì in ra chuỗi "tháng không hợp lệ". Cấu trúc lặp void main() { int n;
printf("Nhap vao n (1<=n<=12): ");
scanf("%d", &n);
switch (n) {
case 1: printf("thang mot"); break;
case 2: printf("thang hai"); break;
case 3: printf("thang ba"); break; …
case 12: printf("thang 12"); break;
default : printf("thang khong hop le"); } } 15 16 15 16 4 10/26/2025 Cấu trúc lặp For Cấu trúc lặp For
for ( ; <điều kiện lặp> ; ) • Cấu trúc For {
– Khởi gán: khởi gán giá trị ban đầu cho biến ; điều khiển vòng lặp }
– Điều kiện lặp: kiểm tra điều kiện thực hiện vòng lặp
– Cập nhật: cập nhật giá trị của biến điều khiển vòng lặp
Bất kỳ đối số nào trong câu lệnh for đều có thể
thiếu nhưng phải có dấu chấm phẩy (;) để phân cách.
Chương 3. Cấu trúc điều khiển 17 18 17 18 Cấu trúc lặp For Cấu trúc lặp For Ø
• Các bước thực hiện vòng lặp for
Ví dụ: viết chương trình
in ra bảng cửu chương n,
– Bước 1: Khởi gán với n là số nguyên
– Bước 2: Kiểm tra điều kiện
dương nhập từ bàn phím.
- Nếu giá trị của biểu thức điều kiện bằng true thì
- Thực hiện các lệnh của vòng lặp
- Cập nhật biến điều khiển vòng lặp. Quay trở lại bước 2.
- Ngược lại thoát khỏi lặp. 19
Chương 3. Cấu trúc điều khiển 20 19 20 5 10/26/2025 Cấu trúc lặp For Ø Ví dụ: viết chương trình nhập số n nguyên dương từ bàn phím. Tính tổng các số từ 1 đến n 21
Chương 3. Cấu trúc điều khiển 22 21 22 Cấu trúc lặp For Cấu trúc lặp For 23 24 23 24 6 10/26/2025 Cấu trúc lặp - While
Cấu trúc lặp - While
Ø Ví dụ: viết chương trình nhập số n nguyên dương từ bàn phím. Tính < Khởi gán>
tổng các số từ 1 đến n
while (<điều kiện lặp>) { lệnh/ khối lệnh; }
• @ Lưu ý: Cách hoạt động của while giống for 25
Chương 3. Cấu trúc điều khiển 26 25 26
Cấu trúc lặp Do … While
Cấu trúc lặp Do … While
Ø Ví dụ: nhập các số nguyên dương có giá trị <=10, do
xuất ra tổng các số hợp lệ. { ; ;
} while (điều kiện);
ØThực hiện lệnh trước, sau đó
kiểm tra điều kiện
ØLệnh được thực hiện đến khi biểu
thức có giá trị sai
Chương 3. Cấu trúc điều khiển 27
Chương 3. Cấu trúc điều khiển 28 27 28 7 10/26/2025 Cấu trúc lặp Do … While Lệnh break và return • Nhận xét
• break: thoát khỏi cấu trúc lệnh switch,
– Cấu trúc For và While: kiểm tra điều kiện
while, for, do…while đang chứa nó.
trước khi thực hiện lệnh lặp, do đó các lệnh
• return: thoát khỏi chương trình đồng thời
lặp có thể không thực hiện lần nào.
cũng thoát khỏi các vòng lặp và trả về kết
– Cấu trúc do … while: thực hiện lệnh trước, quả.
kiểm tra điều kiện sau, do đó các lệnh có thể
được thực hiện ít nhất là 1 lần. 29 30 29 30 Lệnh continue Lệnh break và return
Ø Ví dụ: Cho phép người dùng nhập liên tục số nguyên
• Lệnh continue được sử dụng trong các
dương, nếu nhập số nguyên âm thì dừng
vòng lặp while, for, do…while.
• Khi lệnh continue được gọi thì chương
trình sẽ kết thúc vòng lặp hiện tại và bắt
đầu vòng lặp mới tiếp theo. 31
Chương 3. Cấu trúc điều khiển 32 31 32 8 10/26/2025 Lệnh continue Bài tập
Ø Ví dụ: In ra màn hình giá trị từ 10 đến 20 trừ đi số 13 và số 17.
1. Viết chương trình tính tổng các số chính
phương nhỏ hơn N (N nguyên dương) 2. Viết chương trình
a) Tính n! bằng cách sử dụng vòng lặp, n nguyên dương
b) Tính en bằng cách sử dụng vòng lặp, n nguyên dương
Chương 3. Cấu trúc điều khiển 33 34 33 34 Bài tập Bài tập
3. Viết chương trình nhập vào 2 số nguyên dương a và b.
6. Cho một hình chữ nhật có các cạnh song song với
- Nếu cả a và b đều là số chẵn thì xuất câu:
các trục tọa độ, tọa độ góc trái dưới là (x1, y1) và
“a va b la hai so chan”
tọa độ góc phải trên là (x2, y2). Hãy kiểm tra xem
- Nếu trong 2 số a và b chỉ có một số chẵn thì xuất câu:
điểm M(x, y) có nằm trong hình chữ nhật trên hay
“chi co mot so chan”
không? (nằm trên cạnh được xem như nằm trong).
- Nếu trong 2 số a và b không có số chẵn thì xuất câu:
Giả sử tọa độ các điểm là các số nguyên. “a, b la hai so le”
4. Giải phương trình dạng: ax2+bx+c = 0
7. Tính tổng S = 1 + + + … + với n là số tự
5. Trong mặt phẳng tọa độ OXY cho hai đường tròn, mỗi nhiên ≥0.
đường tròn biết tọa độ tâm và bán kính. Hãy kiểm tra 8. Tính tổng S = + + … + với n là số tự nhiên
xem hai đường tròn này giao nhau, cắt nhau hay tiếp xúc nhau. ≥1. 35 36 35 36 9 10/26/2025 Bài tập Bài tập 9. Tính tổng S(x,n) = + + + … + với n là số
14. Nhập số nguyên tố n. Hãy tìm số nguyên tố kế tiếp sau ... số n tự nhiên ≥1
15. Nhập số nguyên n. Hãy tìm số nguyên tố gần nhất 10. Tính tổng S =− + − + … + (−1) với n là số tự ! ! ! nhiên ≥0
16. Có 100 bó cỏ biết: trâu đứng ăn năm, trâu nằm ăn ba,
lọm khọm trâu già ba con một bó. Viết chương trình liệt
11. Giả sử n≥0 và x là số thực. Hãy viết hàm tính giá trị của biểu
kê các phương án có thể thức sau đây: S = 1 − + − … + (−1)
17. Cần có 200000 đồng từ ba loại giấy bạc 1000 đồng, ( )
2000 đồng, 5 đồng. Viết chương trình tìm tất cả các
12. Tính S = 1.2 + 2.3.4 + ⋯ + + 1 … (2 ) phương án có thể.
13. Cho tổng S=1+3+5+...+(2n+1) với n≥0 và số nguyên M. Hãy
18. Viết chương trình hiển thị tất cả các số có 3 chữ số sao
tìm giá trị n nhỏ nhất sao cho S>M
cho tổng các chữ số bằng tích của chúng 37 38 37 38 Bài tập
19.Viết hàm kiểm tra xem một số nguyên
dương cho trước có phải là chứa toàn
các chữ số nguyên tố hay không? Ví dụ: 23527, 22, ...
20.Viết hàm kiểm tra xem một số nguyên
dương n có phải là số đối xứng hay
không? Ví dụ: 12521, 797, ... 39 39 10