Tải bản đầy đủ (.pdf) (49 trang)

Bài giảng Nhập môn lập trình C - Chương 2: Cấu trúc điều khiển

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 (3.15 MB, 49 trang )


Cấu trúc điều khiển
 Cấu trúc tuần tự
 Cấu trúc lựa chọn
 Cấu trúc lặp


Cấu trúc tuần tự
 Các lệnh trong chương trình

Lệnh 1

thực hiện tuần tự từ trên xuống.
Lệnh 2
Lệnh 3

...


void main()
{

Ví dụ

Bắt đầu

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 ",tong);
printf(“\nHieu=%d“,hieu);
printf(“\nTich=%d“,tich);

Kết thúc

printf(“\nThuong=
%f“,thuong);
4
}


Cấu trúc lựa chọn
 Cấu trúc lựa chọn cho phép máy tính chọ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:
 If

 If … Else


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

 Cấu trúc If
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 từ 1 đến 10, nếu
nhập sai thì hiển thị thơng báo
void main()
{
int k;

printf(“Nhap mot so [1..10]: “);
scanf(“%d”,&k);
if (k < 1 || k > 10)
{
printf("So vua nhap khong hop le“);
}
}


Cấu trúc lựa chọn
 Cấu trúc If … Else
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ì thực hiện
khối lệnh 2


Ví dụ: Nhập vào 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
không là bội số của b”


Begin

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

Lưu đồ thuật toán
if(a%b==0)

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


{

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

End

}


Chương trình cài đặt:
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);
}


 Ví dụ:

Giải và biện luận phương trình phương trình bậc1
ax+b=0



Begin

Lưu đồ thuật toán

End


Cài đặt

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);
}


Bài tập 1
1. Cho biết kết quả của chương trình sau:

int a=9, b=6;

a++;
a=a+b--;
a=a+(--b);
if(a%2==0)
printf(“Gia tri cua a la chan”);
printf(“Tong cua a va b la: %d“,a + b);


2. Cho biết kết quả của chương trình sau:
int a=7, b=8;
a++;
a=a+b--;
--b;
a--;
a = (--a)+(--b);
if(a%2 != 0)
printf(“a la so le”);
else
printf(“a la so chan”;
Printf(“Gia tri cua a: %d“, a);


Bài tập 2: Viết chương trình
1. Nhập từ bàn phím hai số nguyên a, b. In ra màn hình giá trị số

lớn nhất.

2. Nhập từ bàn phím ba số nguyên a, b, c. In ra màn hình số lớn
nhất.
3. Nhập từ bàn phím ba sớ ngun a, b, c. Hãy in ra màn hình theo


thứ tự tăng dần. (Chỉ được dùng thêm hai biến phụ).


Bài tập 2: Viết chương trình
4. Viết chương trình nhập vào một số nguyên n gồm ba chữ số. Xuất ra màn

hình vị trí của chữ sớ lớn nhất
Ví dụ: n=291. Chữ số lớn nhất nằm ở hàng chục (chữ số 9).
5. Viết chương trình nhập vào số nguyên n gồm ba chữ số. Xuất ra 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. Viết chương trình tính diện tích và chu vi các hình: tam giác, hình vuông,

hình chữ nhật và hình tròn với những thông tin cần được nhập từ bàn phím


Bài tập 3*
1. 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.
2. 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.
3. Viết chương trình nhập vào ngày, tháng, năm hợp lệ. Cho biết năm này có

phải là năm nḥn hay khơng? In kết quả ra màn hình.
4. 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 đó thuộc loại nào


• Cấu trúc switch

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:
<các câu lệnh> ;
break ;
[default: các câu lệnh]

Giá trị biểu thức = n1

Giá trị biểu thức = n2

Các trường hợp còn lại



 Cấu trúc switch
 ni là các hằng số nguyên hoặc ký tự.
 ni phụ thuộc vào giá trị của biểu thức sau switch


Nếu: giá trị của biểu thức = ni thì thực hiện câu lệnh sau case ni.



Nếu giá trị biểu thức không thỏa các ni thì thực hiện câu lệnh sau
default nếu có, hoặc thoát khỏi câu lệnh switch.



Mặc định chương trình thực hiện tuần tự các câu lệnh của các case ni,
do đó sau mỗi case phải dùng lệnh break để thoát khỏi switch.


Ví dụ: Nhập vào số ngun 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ệ”.
void main()
{
int n;
printf(“Nhap vao n (1<=n<=12): “);
scanf(“%d”, &n);
switch (n)
{
case 1: ptintf(“thang mot”); break;
case 2: ptintf(“thang hai“); break;
case 3: printf(“thang ba”); break;


case 12: printf(“thang 12”); break;
default : printf(“thang khong hop le“);
}
}
22


Bài tập
1. Viết chương trình nhập vào 1 số nguyên dương gồm 2 chữ số,

in ra cách đọc của số này
2. Viết chương trình nhập vào ngày tháng năm, kiểm tra xem ngày

tháng năm có hợp lệ khơng? In kết quả kiểm tra ra màn hình


Cấu trúc lặp
 Tổng quát
Điều kiện
lặp

Yes

No
Lệnh / Khối
lệnh


Cấu trúc lặp For

Khởi gán

for (<khởi gán> ; <điều kiện lặp> ; <cập nhật>)
{
<khối lệnh>;
}

Điều kiện lặp

Yes

Lệnh / Khối lệnh
Cập nhật vòng lặp


×