Tải bản đầy đủ (.pptx) (64 trang)

Bài giảng Kỹ thuật lập trình cơ bản: Chương 3 – Trần Minh Thái

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 (6.23 MB, 64 trang )

CHƯƠNG 3
CẤU TRÚC ĐIỀU KHIỂN
1

TRẦN MINH THÁI
Email:
Website: www.minhthai.edu.vn


2

Cấu trúc điều khiển
TUẦN TỰ

Lệnh 1;
Lệnh 2;
Lệnh 3;
….

RẼ NHÁNH CÓ ĐIỀU KIỆN

if
if … else

LỰA CHỌN

switch … case

LẶP

for


while
do … while


3

Cấu trúc tuần tự
Tuần tự thực thi tiến trình, mỗi
lệnh được thực thi theo một
chuỗi từ trên xuống, xong lệnh
này rồi chuyển xuống lệnh kế
tiếp.


void main()
{
4

int a, b, tong, hieu, tich;
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\n“, tong);
printf("Hieu: %d\n”, hieu);

printf(“Tich: %d\n“, tich);
printf("Thuong: %f“, thuong);
}


void main()
{
5

int a, b, tong, hieu, tich;
float thuong;
cout<<"Nhap vao a: “;
cin>>a;
cout<<"Nhap vao b: “;
cin>>b;
tong = a + b;
hieu = a - b;
tich = a * b;
thuong = (float)a / b; //Ép kiểu
cout<<"Tong: " <cout<<"Hieu: “<cout<<"Tich: “<cout<<"Thuong: “<}


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 đó dựa vào kết quả của một điều kiện (biểu thức quan
hệ hay biểu thức so sánh)
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.


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
7

void main()
{
int n;

printf(“Nhap mot so nguyen: “);
scanf(“%d”, &n);
if (n<0)
{
n=-n;
}
printf(“Gia tri tuyet doi= %d“,
n);



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
8

void main()
{
int n;
cout<<“Nhap mot so nguyen: “;
cin>>n;
if (n<0)
{
n=-n;
}
cout<<“Gia tri tuyet doi=
“<

Xét cả hai trường hợp đúng và sai:
9

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 thì thực hiện
khối lệnh 1, ngược lại thì cho thực hiện khối lệnh thứ 2



VD: Nhập vào 2 số nguyên a và b, nếu a là bội số của b thì
in thông báo “a là bội số của b”, ngược lại in “a khong la
10
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 khong la boi so cua b“);
}

{
printf(“a la boi so cua b“);
}


void main()
{

11

int a, b;

if(a%b= =0)


printf(“Nhap vao a: “);

{

scanf(“%d”, &a);

printf(“a la boi so cua b”);

printf(“Nhap vao b: “);

}

scanf(“%d”, &b);

else
{
printf(“a khong la boi so cua b”);
}
}


VD: Nhập vào 2 số nguyên a và b, nếu a là bội số của b thì
in thông báo “a là bội số của b”, ngược lại in “a khong la
12
boi so cua b”
cout<<“Nhap vao a: “;
cin>>a;
cout<<“Nhap vao b: “;
cin>>b;

if(a%b==0)

else
{
cout<<“a khong la boi so cua b“;
}

{
cout<<“a la boi so cua
b“;


void main()
{

13

int a, b;

if(a%b= =0)

cout<<“Nhap vao a: “;

{

cin>>a;

cout<<“a la boi so cua b”;

cout<<“Nhap vao b: “;


}

cin>>b;

else
{
cout<<“a khong la boi so cua b”;
}
}


Ví dụ 2: Giải và biện luận phương trình: ax+b=0
14


void main()
{

15

float a, b;

printf("Nhap vao a: “);
scanf(“%d”, &a);
printf(“Nhap vao b: “);
scanf(“%d”, &b);

if (a == 0)
{

if (b == 0)
{
printf("PT VSN”);
}
else
{
printf("PT VN”);
}
}
else
{
printf(“Nghiem x = %f“,
-b/a);
}


void main()
{

16

float a, b;
cout<<"Nhap vao a: “;
cin>>a;
cout<<“Nhap vao b: “;
cin>>b;

if (a == 0)
{
if (b == 0)

{
cout<<"PT VSN”;
}
else
{
cout<<"PT VN”;
}
}
else
{
cout<<“Nghiem x = “<<
-b/a;
}


17

Bài tập – cho biết kết quả
void main()
{
int a=9, b=6;
a++;
a=a+b--;
a=a+(--b);
if(a%2==0)
printf(“Gia tri cua a la chan”);
//cout<<"Gia tri cua a la chan”;
printf(“Tong cua a va b la: %d“, a+b);
//cout<<"Tong cua a va b la: " <}



18

void main()
{
int a=7, b=8;
a++;
a=a+b--;
--b;
a--;
a = (--a)+(--b);
if(a%2 != 0)
printf(“a la so le”);
//cout<<"a la so le”;
else
printf(“a la so chan”;
//cout<<"a la so chan”;
printf(“Gia tri cua a: “, a);
//cout<<"Gia tri cua a: " <}


19

Bài tập viết chương trình

1. Nhập vào 2 sớ a và b, xuất ra số lớn nhất.
2. Cho 3 số 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ả.

3. Cho 3 số a, b và c, hãy in ra màn hình theo thứ
tự tăng dần các số.
4. Viết chương trình nhập vào một số nguyên n
gồm 3 chữ số. Xuất ra màn hình chữ số lớn
nhất ở vị trí nào?
VD: n=291. Chữ số lớn nhất nằm ở hàng
chục (9).


5. Nhập vào số nguyên n gồm 3 chữ số. Xuất ra
20
màn hình theo thứ tự tăng dần của các chữ số.
Ví dụ: n=291. Xuất ra 129.
6. Nhập vào ngày, tháng, năm. Kiểm tra xem
ngày, tháng, năm đó có hợp lệ hay không? In
kết quả ra màn hình.
7. 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.
8. 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.


9. Tính tiền cước TAXI. Biết rằng:
21 km

đầu tiên là 13000đ.

mỗi km tiếp theo là 12000đ.

từ km 30 trở lên thì mỗi km thêm sẽ là 11000 đ.
Hãy nhập số km sau đó in ra sớ tiền phải trả.
10. Nhập vào 3 số nguyên dương. Kiểm tra xem 3 số đó
có lập thành tam giác khơng? Nếu có hãy cho biết
tam giác đó tḥc loại nào? (Cân, vng, đều, …).
11. Nhập vào số nguyên dương n. Kiểm tra xem n có
phải là sớ chính phương hay khơng? (sớ chính
phương là sớ khi lấy căn bậc 2 có kết quả là
ngun).


Cấu trúc lựa chọn
22

switch (biểu thức)


case n1:
các câu lệnh ;
break ;
case n2:
các câu lệnh ;
break ;
………
case nk:

Trường hợp giá trị biểu
thức bằng n1
Trường hợp giá trị biểu
thức bằng n2


<các câu lệnh> ;
break ;
[default:



các câu lệnh]

Các trường hợp cịn lại
(nếu có)


23

Với:
 ni là các hằng số nguyên hoặc ký tư.
 Phụ thuộc vào giá trị của biểu thức viết
sau switch, nếu:
 Giá trị này = ni thì thực hiện câu lệnh
sau case ni.
 Khi giá trị biểu thức không thỏa tất cả
các ni thì thực hiện câu lệnh sau
default nếu có, hoặc thốt khỏi câu
lệnh switch.


24

Khi chương trình đã thực hiện xong câu

lệnh của case ni nào đó thì nó sẽ thực hiện
ln các lệnh tḥc case bên dưới nó mà
khơng xét lại điều kiện (do các ni được xem
như các nhãn)
 Vì vậy, để chương trình thoát khỏi lệnh
switch sau khi thực hiện xong một trường
hợp, ta dùng lệnh break.


Ví dụ: Nhập vào sớ ngun n có giá trị từ 1 đến 5. In cách đọc của
sớ đó ra màn hình.
25

void main()
{
int n;
printf("Nhap vao n (1<=n<=5): “);
scanf(“%d”, &n);
switch (n)
{
case 1: printf("So mot”);

break;

case 2: printf("So hai”);

break;

case 3: printf("So ba”);


break;

case 4: printf("So bon”);

break;

case 5: printf("So nam”);

break;

default : printf(“Chua xu ly”);
}
}


×