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