CHƯƠNG 02: Ngôn Ng CHƯƠNG
02: Ngôn Ngữữ CC
Bài 03: Cấu Trúc Rẽ Nhánh
GV: Trần Phước Tuấn EMAIL: tranphuoctuan.khoatoan.dhsp@gmail.com
Nội dung bài học
1. Lệnh và Khối lệnh 2. Câu lệnh if 3. Câu lệnh switch … case…
Page 2 T.P.Tuấn-Lập Trình C 9/16/2008
1. Lệnh và Khối lệnh •• LLệệnhnh
– Lệnh là tác vụ, biểu thức, hàm, cấu trúc điều khiển, ... – Ví dụ: x=x+2;
•• KhKhốối li lệệnhnh
– Khối lệnh là dãy các câu lệnh được đặt trong cặp dấu {}, các lệnh thường được viết thụt vào 1 tab để chương trình rõ ràng, đẹp mắt.
– Ví dụ:
#include
void main()
{//dấu đầu khối
int a=5,b=6; printf(“%d + %d = %d.\n",a,b,a+b);
}//dấu cuối khối
Page 3 T.P.Tuấn-Lập Trình C 9/16/2008
2. Câu lệnh if
•• Công d
Công dụụngng: Sử dụng giải quyết những trường hợp liên quan đến việc giải bài toán có sự biện luận, phân chia trường hợp.
•• CCúú phpháápp
//thực hiện khi đúng
BTLOGIC>)
if (
câu lệệnhnh hoặc khkhốối li lệệnhnh>
[[else
// thực hiện khi sai
câu lệệnhnh hoặc khkhốối li lệệnhnh>]]
•• VVíí ddụụ
“Nhập vào 1 số nguyên, cho biết số đó chẵn hay lẻ”
Page 4 T.P.Tuấn-Lập Trình C 9/16/2008
2. Câu lệnh if
Lưu đồồ
Lưu đ
Vào
Sai
BTLOGIC
Đúng
khối lệnh 1
khối lệnh 2
Ra
Page 5 T.P.Tuấn-Lập Trình C 9/16/2008
Nhập vào 1 số nguyên, cho biết số đó chẵn hay lẻ.
2. Câu lệnh if
VVíí ddụụ
#include
#include
void main()
{
clrscr();
int n;char kq[100];
printf(“Chuong trinh kiem tra so chan!\n”);
printf(“Nhap so n: “);scanf(“%d”,&n);
if (n%2==0)
sprintf(kq,”%d la so chan!”, n);
else
sprintf(kq,”%d la so le!”, n);
printf(“%s”,kq);
}
Page 6 T.P.Tuấn-Lập Trình C 9/16/2008
Nhập hai số thực a, b. Sắp xếp chúng tăng dần
2. Câu lệnh if
VVíí ddụụ
#include
#include
void main()
{
clrscr(); float a, b;
printf(“Chuong trinh sap xep hai so!\n”);
printf(“Nhap a: “);scanf(“%f”,&a);
printf(“Nhap b: “);scanf(“%f”,&b);
if (a>b)
{
float tam=a;a=b;b=tam;
}
printf(“a = %.2f, b = %.2f”,a,b);
getch();
}
Page 7 T.P.Tuấn-Lập Trình C 9/16/2008
2. Câu lệnh if
MMộột st sốố bbàài ti tậậpp
1. Nhập a, b, c. Tìm max. Phát triển nhiều số
2. Giải phương trình ax+b=0
3. Giải phương trình ax2+bx+c=0
4. Giải hệ phương trình: a1x+b1y=c1
a2x+b2y=c2
5. Nhập vào điểm trung bình, hãy xếp loại học tập
6. Tính tiền điện (nhập vào số kw)
7. Dạng tam giác (nhập a, b,c )
8. Nhập vào 1 tháng, cho biết tháng này thuộc
quý mấy?
Page 8 T.P.Tuấn-Lập Trình C 9/16/2008
3. Câu lệnh switch … case…
VVíí ddụụ -- 0000
----------------------------------
#include
#include
void main()
{
Nhap i: 3
***
An phim bat ky de ket thuc!
----------------------------------
int i;
printf("Nhap i: ");
scanf("%d", &i);
switch(i)
{
Nhap i: 2
**
An phim bat ky de ket thuc!
----------------------------------
case 3: printf("*");
case 2: printf("*");
case 1: printf("*");
};
printf(“\nAn phim bat ky de ket thuc!\n");
getch();
}
Nhap i: 1
*
An phim bat ky de ket thuc!
----------------------------------
Page 9 T.P.Tuấn-Lập Trình C 9/16/2008
3. Câu lệnh switch … case…
VVíí ddụụ -- 0101
#include
#include
void main()
{
int ithang;char kq[100];
printf("Nhap vao thang: ");scanf("%d", &ithang);
switch(ithang)
{
case 1:case 2:case 3:
sprintf(kq,"Quy 1.\n");
break;
case 4:case 5:case 6:
sprintf(kq,"Quy 2.\n");
break;
case 7:case 8:case 9:
sprintf(kq,"Quy 3.\n");
break;
case 10:case 11:case 12:
sprintf(kq,"Quy 4.\n");
break;
default: sprintf(kq,"Thang khong hop le.\n");
};
printf(“%s”,kq);
getch();
}
Page 10 T.P.Tuấn-Lập Trình C 9/16/2008
3. Câu lệnh switch … case…
CCúú phpháápp
switch ()
{
case TH1:
break;]
; [break
case TH2:
break;]
; [break
…
case THn:
break;]
; [break
[default: ;]
nguyên hoặc ký tký tựự.
}
Với THi (1<=i<=k) là các hhằằng sng sốố nguyên
Page 11 T.P.Tuấn-Lập Trình C 9/16/2008
3. Câu lệnh switch … case… Lưu đ
Lưu đồồ
Page 12 T.P.Tuấn-Lập Trình C 9/16/2008
3. Câu lệnh switch … case…
Lưu đồồ
Lưu đ
true
break
Hành động 1
Biểu thức = TH1
Không break
false
break
true
Hành động 2
Biểu thức = TH2
Không break
…
break
false
Hành động n (default)
exit
Page 13 T.P.Tuấn-Lập Trình C 9/16/2008
2. Câu lệnh switch … case …
MMộột st sốố bbàài ti tậậpp
1. Viết chương trình nhập vào tháng, in ra
tháng đó có bao nhiêu ngày
2. Viết chương trình nhập vào 2 số x, y và 1
trong 4 toán tử +, -, *, /. Sau đó thực
hiện phép tính (nếu y = 0 thì thông báo
không chia được)
Lưu ý: Khi nhập ký tự hay chuỗi thì trước khi nhập ta gọi câu
lệnh: fflush(stdin) -- #include để xóa vùng đệm
Page 14 T.P.Tuấn-Lập Trình C 9/16/2008
Page 15 T.P.Tuấn-Lập Trình C 9/16/2008
câu lệệnhnh hoặc khkhốối li lệệnhnh>
[[else
// thực hiện khi sai
câu lệệnhnh hoặc khkhốối li lệệnhnh>]]
•• VVíí ddụụ
“Nhập vào 1 số nguyên, cho biết số đó chẵn hay lẻ”
Page 4 T.P.Tuấn-Lập Trình C 9/16/2008
2. Câu lệnh if
Lưu đồồ
Lưu đ
Vào
Sai
BTLOGIC
Đúng
khối lệnh 1
khối lệnh 2
Ra
Page 5 T.P.Tuấn-Lập Trình C 9/16/2008
Nhập vào 1 số nguyên, cho biết số đó chẵn hay lẻ.
2. Câu lệnh if
VVíí ddụụ
#include
#include
void main()
{
clrscr();
int n;char kq[100];
printf(“Chuong trinh kiem tra so chan!\n”);
printf(“Nhap so n: “);scanf(“%d”,&n);
if (n%2==0)
sprintf(kq,”%d la so chan!”, n);
else
sprintf(kq,”%d la so le!”, n);
printf(“%s”,kq);
}
Page 6 T.P.Tuấn-Lập Trình C 9/16/2008
Nhập hai số thực a, b. Sắp xếp chúng tăng dần
2. Câu lệnh if
VVíí ddụụ
#include
#include
void main()
{
clrscr(); float a, b;
printf(“Chuong trinh sap xep hai so!\n”);
printf(“Nhap a: “);scanf(“%f”,&a);
printf(“Nhap b: “);scanf(“%f”,&b);
if (a>b)
{
float tam=a;a=b;b=tam;
}
printf(“a = %.2f, b = %.2f”,a,b);
getch();
}
Page 7 T.P.Tuấn-Lập Trình C 9/16/2008
2. Câu lệnh if
MMộột st sốố bbàài ti tậậpp
1. Nhập a, b, c. Tìm max. Phát triển nhiều số
2. Giải phương trình ax+b=0
3. Giải phương trình ax2+bx+c=0
4. Giải hệ phương trình: a1x+b1y=c1
a2x+b2y=c2
5. Nhập vào điểm trung bình, hãy xếp loại học tập
6. Tính tiền điện (nhập vào số kw)
7. Dạng tam giác (nhập a, b,c )
8. Nhập vào 1 tháng, cho biết tháng này thuộc
quý mấy?
Page 8 T.P.Tuấn-Lập Trình C 9/16/2008
3. Câu lệnh switch … case…
VVíí ddụụ -- 0000
----------------------------------
#include
#include
void main()
{
Nhap i: 3
***
An phim bat ky de ket thuc!
----------------------------------
int i;
printf("Nhap i: ");
scanf("%d", &i);
switch(i)
{
Nhap i: 2
**
An phim bat ky de ket thuc!
----------------------------------
case 3: printf("*");
case 2: printf("*");
case 1: printf("*");
};
printf(“\nAn phim bat ky de ket thuc!\n");
getch();
}
Nhap i: 1
*
An phim bat ky de ket thuc!
----------------------------------
Page 9 T.P.Tuấn-Lập Trình C 9/16/2008
3. Câu lệnh switch … case…
VVíí ddụụ -- 0101
#include
#include
void main()
{
int ithang;char kq[100];
printf("Nhap vao thang: ");scanf("%d", &ithang);
switch(ithang)
{
case 1:case 2:case 3:
sprintf(kq,"Quy 1.\n");
break;
case 4:case 5:case 6:
sprintf(kq,"Quy 2.\n");
break;
case 7:case 8:case 9:
sprintf(kq,"Quy 3.\n");
break;
case 10:case 11:case 12:
sprintf(kq,"Quy 4.\n");
break;
default: sprintf(kq,"Thang khong hop le.\n");
};
printf(“%s”,kq);
getch();
}
Page 10 T.P.Tuấn-Lập Trình C 9/16/2008
3. Câu lệnh switch … case…
CCúú phpháápp
switch ()
{
case TH1:
break;]
; [break
case TH2:
break;]
; [break
…
case THn:
break;]
; [break
[default: ;]
nguyên hoặc ký tký tựự.
}
Với THi (1<=i<=k) là các hhằằng sng sốố nguyên
Page 11 T.P.Tuấn-Lập Trình C 9/16/2008
3. Câu lệnh switch … case… Lưu đ
Lưu đồồ
Page 12 T.P.Tuấn-Lập Trình C 9/16/2008
3. Câu lệnh switch … case…
Lưu đồồ
Lưu đ
true
break
Hành động 1
Biểu thức = TH1
Không break
false
break
true
Hành động 2
Biểu thức = TH2
Không break
…
break
false
Hành động n (default)
exit
Page 13 T.P.Tuấn-Lập Trình C 9/16/2008
2. Câu lệnh switch … case …
MMộột st sốố bbàài ti tậậpp
1. Viết chương trình nhập vào tháng, in ra
tháng đó có bao nhiêu ngày
2. Viết chương trình nhập vào 2 số x, y và 1
trong 4 toán tử +, -, *, /. Sau đó thực
hiện phép tính (nếu y = 0 thì thông báo
không chia được)
Lưu ý: Khi nhập ký tự hay chuỗi thì trước khi nhập ta gọi câu
lệnh: fflush(stdin) -- #include để xóa vùng đệm
Page 14 T.P.Tuấn-Lập Trình C 9/16/2008
Page 15 T.P.Tuấn-Lập Trình C 9/16/2008
câu lệệnhnh hoặc khkhốối li lệệnhnh>]]
•• VVíí ddụụ
“Nhập vào 1 số nguyên, cho biết số đó chẵn hay lẻ”
Page 4 T.P.Tuấn-Lập Trình C 9/16/2008
2. Câu lệnh if Lưu đồồ Lưu đ
Vào
Sai
BTLOGIC
Đúng
khối lệnh 1
khối lệnh 2
Ra
Page 5 T.P.Tuấn-Lập Trình C 9/16/2008
Nhập vào 1 số nguyên, cho biết số đó chẵn hay lẻ.
2. Câu lệnh if VVíí ddụụ
#include
clrscr(); int n;char kq[100]; printf(“Chuong trinh kiem tra so chan!\n”); printf(“Nhap so n: “);scanf(“%d”,&n); if (n%2==0)
sprintf(kq,”%d la so chan!”, n);
else
sprintf(kq,”%d la so le!”, n);
printf(“%s”,kq);
}
Page 6 T.P.Tuấn-Lập Trình C 9/16/2008
Nhập hai số thực a, b. Sắp xếp chúng tăng dần
2. Câu lệnh if VVíí ddụụ
#include
clrscr(); float a, b; printf(“Chuong trinh sap xep hai so!\n”); printf(“Nhap a: “);scanf(“%f”,&a); printf(“Nhap b: “);scanf(“%f”,&b); if (a>b) {
float tam=a;a=b;b=tam;
} printf(“a = %.2f, b = %.2f”,a,b); getch();
}
Page 7 T.P.Tuấn-Lập Trình C 9/16/2008
2. Câu lệnh if MMộột st sốố bbàài ti tậậpp
1. Nhập a, b, c. Tìm max. Phát triển nhiều số 2. Giải phương trình ax+b=0 3. Giải phương trình ax2+bx+c=0 4. Giải hệ phương trình: a1x+b1y=c1 a2x+b2y=c2
5. Nhập vào điểm trung bình, hãy xếp loại học tập 6. Tính tiền điện (nhập vào số kw) 7. Dạng tam giác (nhập a, b,c ) 8. Nhập vào 1 tháng, cho biết tháng này thuộc
quý mấy?
Page 8 T.P.Tuấn-Lập Trình C 9/16/2008
3. Câu lệnh switch … case… VVíí ddụụ -- 0000
----------------------------------
#include
Nhap i: 3 *** An phim bat ky de ket thuc! ----------------------------------
int i; printf("Nhap i: "); scanf("%d", &i); switch(i) {
Nhap i: 2 ** An phim bat ky de ket thuc! ----------------------------------
case 3: printf("*"); case 2: printf("*"); case 1: printf("*");
}; printf(“\nAn phim bat ky de ket thuc!\n"); getch();
}
Nhap i: 1 * An phim bat ky de ket thuc! ----------------------------------
Page 9 T.P.Tuấn-Lập Trình C 9/16/2008
3. Câu lệnh switch … case…
VVíí ddụụ -- 0101
#include
#include
void main()
{
int ithang;char kq[100]; printf("Nhap vao thang: ");scanf("%d", &ithang); switch(ithang) {
case 1:case 2:case 3:
sprintf(kq,"Quy 1.\n"); break;
case 4:case 5:case 6:
sprintf(kq,"Quy 2.\n"); break;
case 7:case 8:case 9:
sprintf(kq,"Quy 3.\n"); break; case 10:case 11:case 12:
sprintf(kq,"Quy 4.\n"); break;
default: sprintf(kq,"Thang khong hop le.\n");
}; printf(“%s”,kq); getch();
}
Page 10 T.P.Tuấn-Lập Trình C 9/16/2008
3. Câu lệnh switch … case… CCúú phpháápp
switch (
case TH1:
break;]
case TH2:
break;]
… case THn:
break;]
nguyên hoặc ký tký tựự.
} Với THi (1<=i<=k) là các hhằằng sng sốố nguyên
Page 11 T.P.Tuấn-Lập Trình C 9/16/2008
3. Câu lệnh switch … case… Lưu đ Lưu đồồ
Page 12 T.P.Tuấn-Lập Trình C 9/16/2008
3. Câu lệnh switch … case… Lưu đồồ Lưu đ
true
break
Hành động 1
Biểu thức = TH1
Không break
false
break
true
Hành động 2
Biểu thức = TH2
Không break
…
break
false
Hành động n (default)
exit
Page 13 T.P.Tuấn-Lập Trình C 9/16/2008
2. Câu lệnh switch … case … MMộột st sốố bbàài ti tậậpp
1. Viết chương trình nhập vào tháng, in ra
tháng đó có bao nhiêu ngày
2. Viết chương trình nhập vào 2 số x, y và 1 trong 4 toán tử +, -, *, /. Sau đó thực hiện phép tính (nếu y = 0 thì thông báo không chia được)
Lưu ý: Khi nhập ký tự hay chuỗi thì trước khi nhập ta gọi câu
lệnh: fflush(stdin) -- #include để xóa vùng đệm
Page 14 T.P.Tuấn-Lập Trình C 9/16/2008
Page 15 T.P.Tuấn-Lập Trình C 9/16/2008