Chương 2 (Bài 03) của bài giảng Lập trình C++ trình bày những kiến thức về cấu trúc rẽ nhánh trong lập trình C++. Trong bài học này sẽ giới thiệu những nội dung sau đây: Lệnh và khối lệnh, câu lệnh if, câu lệnh switch-case. Mời các bạn cùng tham khảo.
Trang 1Bài 03: Cấu Trúc Rẽ Nhánh
GV: Trần Phước Tuấn
EMAIL: tranphuoctuan.khoatoan.dhsp@gmail.com
Trang 2Nội dung bài học
Trang 31 Lệnh và Khối lệnh
• Lệnh
– 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;
• Khối lệnh
– 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 <stdio.h>
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
Trang 42 Câu lệnh if
• Công dụng : 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
• Cú pháp
• Ví dụ
“Nhập vào 1 số nguyên, cho biết số đó chẵn hay lẻ”
if (< BTLOGIC >)
< câu lệnh hoặc khối lệnh >
[else
< câu lệnh hoặc khối lệnh > ]
//thực hiện khi <BTLOGIC> đúng // thực hiện khi <BTLOGIC> sai
Trang 52 Câu lệnh if
BTLOGIC
khối lệnh 1
Đúng
Sai Vào
Ra
khối lệnh 2
Lưu đồ
Trang 6Nhập vào 1 số nguyên, cho biết số đó chẵn hay lẻ.
2 Câu lệnh if
Ví dụ
#include <stdio.h>
#include <conio.h>
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);
Trang 7Nhập hai số thực a, b Sắp xếp chúng tăng dần
2 Câu lệnh if
Ví dụ
#include <stdio.h>
#include <conio.h>
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();
}
Trang 82 Câu lệnh if
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?
Một số bài tập
Trang 93 Câu lệnh switch … case…
Ví dụ - 00
#include <stdio.h>
#include <conio.h>
void main()
{
int i;
printf("Nhap i: ");
scanf("%d", &i);
switch(i)
{
case 3: printf("*");
case 2: printf("*");
case 1: printf("*");
};
printf(“\nAn phim bat ky de ket thuc!\n");
getch();
}
-Nhap i: 3
***
An phim bat ky de ket thuc! -Nhap i: 2
**
An phim bat ky de ket thuc! -Nhap i: 1
*
An phim bat ky de ket thuc!
Trang 10-3 Câu lệnh switch … case…
#include <stdio.h>
#include <conio.h>
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);
Ví dụ - 01
Trang 11switch (<biểu thức>)
{
case TH1:
<Các câu lệnh>; [break;]
case TH2:
<Các câu lệnh>; [break;]
…
case THn:
<Các câu lệnh>; [break;]
[default: <các câu lệnh>;]
}
Với THi (1<=i<=k) là các hằng số nguyên hoặc ký tự
3 Câu lệnh switch … case…
Trang 123 Câu lệnh switch … case… Lưu đồ
Trang 133 Câu lệnh switch … case…
Lưu đồ
Biểu thức = TH1
exit
true
false Hành động n (default)
false
…
break
break
break Không break
Không break
Trang 142 Câu lệnh switch … case …
tháng đó có bao nhiêu ngày
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)
Một số bài tập
Lưu ý : Khi nhập ký tự hay chuỗi thì trước khi nhập ta gọi câu