Bài giảng Lập trình C - Bài 3: Cấu trúc điều khiển trong C - Võ Đức Hoàng

Lập trì nh C  
Bài 3. Cấu trúc điều khiển trong C  
Võ Đức Hoàng  
Cập nhật: 8/2018  
1
Mục tiêu  
Trình bày các cấu trúc lệnh, sinh viên hiểu và cài đặt được  
các cấu trúc điều khiển trong viết chương trình, bao gồm:  
1. Cấu trúc rẽ nhánh: if…else  
2. Cấu trúc lựa chọn: switch…case  
3. Cấu trúc lặp: while, for, do…while  
4. Lệnh điều khiển: break, return, continue  
2
Cấu trúc điều khiển  
• Mục đích: điều khiển thứ tự thực thi các lệnh của chương  
trình theo nhu cầu  
• Lệnh (statement): một biểu thức kết thúc bởi 1 dấu chấm  
phẩy  
• Khối lệnh (block): tập các lệnh được bao quanh bởi cặp  
dấu { }  
3
Cá c loại cấu trúc điều khiển  
Lệnh 1;  
Lệnh 2;  
Lệnh 3;  
TUẦN TỰ  
….  
RẼ NHÁNH CÓ ĐIỀU  
if  
if … else  
KIỆN  
switch … case  
LỰA CHỌN  
for  
while  
do … while  
LẶP  
4
Cấu trúc tuần tự (sequence)  
• Tuần tư  
thực thi theo một chuꢁi tư  
• Thực hiện xong lệnh này rồi chuyển  
xuống lệnh kê tiếp  
̣
thực thi tiến trꢀnh, mꢁi lệnh được  
Lệnh 1  
Lệnh 2  
Lệnh 3  
̀
trên xuống  
́
• Mꢁi lệnh đều được thực hiện và duy nhất  
một lần  
5
#include <stdio.h>  
#include <conio.h>  
int main()  
{
int a, b, tong, hieu, tich;  
float thuong;  
printf("Nhap vao so nguyen a: ");  
scanf("%d", &a);  
printf("Nhap vao so nguyen b: ");  
scanf("%d", &b);  
tong = a + b;  
hieu = a - b;  
tich = a * b;  
thuong = (float)a / b; //Ép kiểu  
printf("Tong: %d\n", tong);  
printf("Hieu: %d\n", hieu);  
printf("Tich: %d\n", tich);  
printf("Thuong: %f", thuong);  
getch();  
return 0;  
}
6
Cấu trúc rẽ nhá nh  
Cấu trúc rẽ nhánh chỉ cho phép thực hiện một dãy lệnh nào  
đó tuỳ thuộc vào biểu thức điều kiện  
Dạng 1: chỉ xét trường hợp đúng  
if (biꢀu thꢁc điꢂu kiꢃn)  
{
<khꢄi lꢃnh>;  
}
→ Nꢅu biꢀu thꢁc điꢂu kiꢃn cho kꢅt quꢆ true thì thꢇc hiꢃn khꢄi  
lꢃnh bên trong if  
7
Ví dụ: Viết chương trꢀnh nhập vào một số nguyên n, in ra  
giá trị tuyệt đối của n  
#include <stdio.h>  
#include <conio.h>  
int main()  
{
n
int n;  
printf("Nhap mot so nguyen: " );  
scanf("%d", &n);  
n<0  
Yes  
n=-n  
if (n<0)  
{
n = -n;  
}
 Gia tri  
tuyet  
printf("Gia tri tuyet doi = %d", n);  
doi= +n  
getch();  
return 0;  
}
8
Dạng 2: xét cả hai trường hợp đúng và sai  
if (biꢀu thꢁc điꢂu kiꢃn)  
{
<khꢄi lꢃnh 1>;  
}
else  
{
<khꢄi lꢃnh 2>;  
}
→Nꢅu biꢀu thꢁc điꢂu kiꢃn cho kꢅt quꢆ true thi  
̀ thꢇc  
hiꢃn khꢄi lꢃnh 1, ngưꢈc lꢉi thꢇc hiꢃn khꢄi lꢃnh thư  
́
2
9
VD: Nhập vào 2 số nguyên a và b, nếu a là bội số của b thꢀ  
in “a là bội số của b”, ngược lại in “a khong la boi so cua b”  
printf("Nhap vao a: ");  
scanf("%d", &a);  
printf("Nhap vao b : ");  
scanf("%d", &b);  
if (a%b == 0)  
else  
{
printf("a la boi so cua b");  
printf("a khong la boi so cua b");  
10  
}
VD: Nhập vào 2 số nguyên a và b, nếu a là bội số của b thì  
in “a là bội số của b”, ngược lại in “a khong la boi so cua b”  
#include <stdio.h>  
#include <conio.h>  
int main()  
{
int a, b;  
printf("Nhap vao a: ");  
scanf("%d", &a);  
printf("Nhap vao b : ");  
scanf("%d", &b);  
if (a%b == 0)  
{
printf("a la boi so cua b");  
}
else  
{
printf("a khong la boi so cua b");  
}
getch();  
return 0;  
11  
}
Cấu trúc if…else lồng nhau  
• Cần xét từ 3 trường hợp trở lên  
• Có thể lồng if…else vào bên trong của if hoặc else  
• Phải đảm bảo trước else phải có if (cùng cấp)  
• Nếu lồng if…else vào trong if thì phải đặt if…else trong  
cặp dấu {}  
if (bt điꢂu kiꢃn1)  
{
if (bt điꢂu kiꢃn1)  
if (bt điꢂu kiꢃn 2)  
….  
if (bt điꢂu kiꢃn 2)  
….  
}
12  
Cấu trúc if…else lồng nhau  
if (bt điều kiện 1){ //Nếu điều kiện 1 đúng  
khối lệnh 1;  
}
else if (bt điều kiện 2){ //Ngược lại, nếu điều kiện 2 đúng  
khối lệnh 2;  
}
…
else if (bt điều kiện N){ //Ngược lại, nếu điều kiện N đúng  
khối lệnh N;  
}
else{ //Không điều kiện nào thoả  
khối lệnh cho trường hợp còn lại;  
}
13  
Cấu trúc if…else lồng nhau  
if (bt điều kiện 1){  
if (bt điều kiện 2){  
khối lệnh 1_2;  
}
else{  
khối lệnh 1;  
}
…
}
else …  
14  
VD: Giải và biện luận phương trꢀnh: ax+b=0  
15  
#include <stdio.h>  
#include <conio.h>  
int main()  
{
int a, b;  
printf("Nhap vao a: ");  
scanf("%d", &a);  
printf("Nhap vao b : ");  
scanf("%d", &b);  
if (a == 0)  
{
if (b == 0)  
printf("PT co vo so nghiem");  
else  
printf("PT vo nghiem");  
}
else  
printf("PT co 1 nghiem: x = %f", (float)-b / a);  
getch();  
return 0;  
}
16  
Bài tập – cho biết kết quả  
int main()  
{
int a = 9, b = 6;  
a++;  
a = a + b--;  
if (a % 2 == 0)  
printf("Gia tri cua a la chan");  
printf("\nTong cua a va b la : %d", a + b);  
getch();  
return 0;  
}
17  
Bài tập viết chương trì nh  
1. Cho 3 số nguyên a, b và c, hãy tꢀm giá trị lớn nhất của ba  
sô trên và in ra kết quả.  
́
2. Nhập vào số nguyên dương n, hãy cho biết n có phải là số  
chính phương không? (n được gọi là số chính phương khi  
căn bậc 2 của n là nguyên)  
18  
Bài tập viết chương trình  
3. Viết chương trꢀnh nhập vào một sô  
chữ sô. Xuất ra màn hꢀnh chữ sô lớn nhất ở vị trí nào? (nếu  
trùng nhau thꢀ lấy chữ số ở hàng trăm)  
VD: n=291 → Chữ sô lꢊn nhất là 9 ở hàng chꢋc  
4. Nhập vào sô nguyên n gồm 3 chữ sô. Tạo lại số n sao cho các  
́ nguyên dương n gồm 3  
́
́
́
́
́
chữ số có thứ tự tăng dần  
Ví dụ: n=291 → n = 129  
5. Nhập vào giơ  
̀, phút, giây. Kiểm tra xem giờ, phút, giây đó có  
hợp lê hay không? In kết quả ra màn hꢀnh.  
̣
19  
Bài tập về nhà – Viết các chương trình sau  
sau  
1. Tính tiền cước TAXI. Biết rꢂng:  
• km đꢌu tiên là 13.000đ  
• mỗi km tiꢅp theo là 12.000đ  
• từ km 30 trở lên thi  
Hãy nhập sô km sau đó in ra sô  
2. Nhập vào 3 sô nguyên dương. Kiểm tra xem 3 số đó có  
̀
mỗi km thêm sꢍ là 11.000đ  
́
́
tiền phải trả  
́
lập thành 3 cạnh của tam giác không? Nếu có hãy cho  
biết tam giác đó thuộc loại nào? (Vuông cân, cân,  
vuông, đều hay thường)  
3. Nhập vào một năm (>0). Cho biết năm này có phải là  
năm nhuận hay không? In kết quả ra màn hꢀnh  
20  
Tải về để xem bản đầy đủ
pptx 54 trang Thùy Anh 16960 Free
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Lập trình C - Bài 3: Cấu trúc điều khiển trong C - Võ Đức Hoàng", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pptxbai_giang_lap_trinh_c_bai_3_cau_truc_dieu_khien_trong_c_vo_d.pptx