Professional Documents
Culture Documents
Kỹ thuật lập trình
Kỹ thuật lập trình
Kỹ thuật lập trình
4
1.2. Khối lệnh
7
2. Cấu trúc rẽ nhánh
Ví dụ: Nhập vào 2 số a và b, in ra số lớn nhất.
#include <stdio.h> Begin
int main()
{ Nhập a, b
int a, b;
printf(“Nhập 2 số a, b: ”); False
a>b
scanf(“%d %d”,&a,&b);
True
if(a>b) a b
printf(“Max=%d”,a)
else
printf(“Max=%d”,b) End
return 0;
} 8
2.1 Cấu trúc điều kiện if
A. Cấu trúc if
Cú pháp
Biểu thức
if (biểu thức)
{ True
lệnh 1; lệnh 1
…
lệnh n; lệnh n
}
9
2.1 Cấu trúc điều kiện if
B. Cấu trúc if - else
Cú pháp
if (biểu thức)
{
lệnh 1;
… Khối lệnh 1
Biểu thức
False
lệnh n;
} True
else Khối lệnh 1 Khối lệnh 2
{
lệnh n+1;
lệnh n+2; Khối lệnh 2
…
} 10
2.1 Cấu trúc điều kiện if
C. Cấu trúc if – else if
Cú pháp Biểu False
thức 1
if (biểu thức)
{ Biểu False
thức 2
Lệnh 1;
} else if (biểu thức 2) True Biểu False
{ thức n-1
True
Lệnh 2; True
}… else if (biểu thức n-1)
{ Lệnh 1 Lệnh 2 Lệnh n-1 Lệnh n
Lệnh n-1;
} else Lệnh n;
11
2.1 Cấu trúc điều kiện if
Bài tập: Viết chương trình phân loại học sinh dựa theo điểm số,
biết rằng:
12
2.2 Cấu trúc switch - case
Cú pháp
switch (biểu thức)
{
case 1: lệnh 1;
switch(i)
break;
case 2: lệnh 2;
case 1 case 2 case n
break;
case n: lệnh n;
break;
default: lệnh n+1;
(break;)
13
}
2.2 Cấu trúc switch - case
Bài tập: Viết chương trình in ra màn hình địa chỉ tương ứng với
các tùy chọn số sau đây:
1: 104 Nguyễn Văn Trỗi, P8, Phú Nhuận, Hồ Chí Minh
2: 18A/1 Cộng Hòa, Quận Tân Bình, Hồ Chí Minh
14
3. Cấu trúc vòng lặp
15
3. Cấu trúc vòng lặp
Ví dụ: Xuất ra màn hình các số từ 1 đến 1000.
#include <stdio.h>
Trong đó:
• Biểu thức 1 - initialization: biến dùng để đếm số bước của vòng lặp
• Biểu thức 2 - condition: điều kiện thực hiện vòng lặp
• Biểu thức 3 - increase: đại lượng tăng số bước nhảy trong vòng lặp
• Lệnh – statement 17
3.1 Vòng lặp for
Bài tập:
1. Tính tổng các số từ 1 đến n, với n là số nguyên dương
được người dùng nhập vào (dùng vòng lặp for)
*Lưu ý: cần kiểm tra điều kiện nhập n, nếu sai thì in ra
báo lỗi và thoát khỏi chương trình.
2. Tính tổng các số lẻ trong đoạn từ 1 đến n, với n là số
nguyên dương được người sử dụng nhập vào (dùng vòng
lặp for).
3. Tính tổng các số chẵn trong đoạn từ 1 đến n, với n là số
nguyên dương được người sử dụng nhập vào (dùng vòng
lặp for).
18
3.2 Vòng lặp while
Cú pháp
❑ while ❑ do…while
while(biểu thức) do
{ {
Lệnh 1; Lệnh 1;
… …
Lệnh n; Lệnh n;
} } while(biểu thức);
Trong đó:
• Biểu thức - condition: điều kiện thực thi của vòng lặp
19
3.2 Vòng lặp while
Cú pháp Giải thích
❑ while ❑ Kiểm tra biểu thức:
▪ True: Thực hiện khối lệnh
while(biểu thức) ▪ False: Bỏ qua khối lệnh
{ ❑ Có sự thay đổi của biểu thức:
Lệnh 1; ▪ Vẫn còn True: Thực hiện khối lệnh
…
Lệnh n; ▪ False: Thoát khỏi vòng lặp
} → Thực hiện khối lệnh cho đến khi
biểu thức False (điều kiện sai) thì thoát
khỏi vòng lặp while.
20
3.2 Vòng lặp while
Cú pháp Giải thích
❑ do…while ❑ Thực hiện khối lệnh trước
❑ Kiểm tra biểu thức
do ▪ True: Tiếp tục lặp lại khối lệnh
{ ▪ False: Thoát khỏi vòng lặp
Lệnh 1;
…
Lệnh n;
} while(biểu thức);
21
3.2 Vòng lặp while
Ví dụ: Xuất ra màn hình các số từ 1 đến 1000, sử dụng lặp while
#include <stdio.h>
Begin
int main()
{ False
i<=1000
int i = 1;
True
while(i<=1000) i
{
printf(“%d\n”,i);
i++
i++;
}
return 0; End
} 22
3.2 Vòng lặp while
Ví dụ: Xuất ra màn hình các số từ 1 đến 1000,
sử dụng lặp do … while
#include <stdio.h> Begin
int main()
{ i
int i = 1;
do i++
{
printf(“%d\n”,i); True False
i<=1000
i++;
} while(i<=1000);
End
return 0;
} 23
3.2 Vòng lặp while
Bài tập: Dùng vòng lặp while / do...while
1. Tính tổng các số từ 1 đến n, với n là số nguyên dương
được người sử dụng nhập vào
2. Tính tổng các số chẵn trong đoạn từ 1 đến n, với n là số
nguyên dương được người sử dụng nhập vào (dùng vòng
lặp while / do…while).
3. Tính tổng các số chia hết cho 3 trong đoạn từ 1 đến n, với
n là số nguyên dương được người sử dụng nhập vào (dùng
vòng lặp while / do…while).
*Lưu ý: Cần kiểm tra điều kiện nhập n, nếu sai thì bắt
buộc người dùng nhập lại cho đến khi nhập đúng, chỉ
thoát chương trình khi nhập n=0.
24
4. Các lệnh nhảy (jump statements)
A. Lệnh Break
➢ Gặp lệnh break trong vòng lặp, chương trình sẽ thoát
khỏi vòng lặp và chỉ đến câu lệnh liền sau nó;
27
4. Các lệnh nhảy (jump statements)
B. Lệnh Continue
➢ Đối với while(condition), do…while(condition): condition sẽ
được kiểm tra để biết có thực hiện vòng lặp nữa hay không.
Kết quả
0
1
Infinite
loop
0
1
3
4
28
4. Các lệnh nhảy (jump statements)
C. Lệnh Goto
➢ Gặp lệnh goto trong vòng lặp, CT sẽ thoát ra ngoài vòng
lặp và nhảy đến nhãn label định trước;
Kết quả
0
1
0
1
0
CT 1
0
1
…
Infinite
loop
29
Bài tập về nhà
Bài tập 01: Viết chương trình nhập vào 1 số (từ 1 đến 7),
in ra các thứ trong tuần tương ứng. VD: nhập 1 in ra “thứ
hai”.
Bài tập 02: Viết chương trình nhập vào từ bàn phím n số
nguyên. Kiểm tra và in ra tất cả các số nguyên tố.
Bài tập 03: Viết chương trình cho phép nhập vào 1 số, kiểm
tra số chẵn hay lẻ và xuất ra màn hình. Sau đó chương
trình lại tiếp tục cho nhập số mới để tiếp tục kiểm tra.
Chương trình chỉ dừng khi người dùng nhập vào số 0.
30
Kết
thúc
31