SlideShare a Scribd company logo
1 of 49
VCVC
&&
BBBB
11
Nội dung
NMLT - Câu lệnh lặp
Câu lệnh for1
Câu lệnh while2
Câu lệnh do… while3
Một số kinh nghiệm lập trình4
VCVC
&&
BBBB
22
Đặt vấn đề
Ví dụ
 Viết chương trình xuất các số từ 1 đến 10
=> Sử dụng 10 câu lệnh printf
 Viết chương trình xuất các số từ 1 đến 1000
=> Sử dụng 1000 câu lệnh printf !
Giải pháp
 Sử dụng cấu trúc lặp lại một hành động trong
khi còn thỏa một điều kiện nào đó.
 3 lệnh lặp: for, while, do… while
NMLT - Câu lệnh lặp
VCVC
&&
BBBB
33
<Lệnh>
Câu lệnh for
NMLT - Câu lệnh lặp
Đ
S
<Đ/K lặp>
for (<Khởi đầu>; <Đ/K lặp>; <Bước nhảy>)
<Lệnh>; <Khởi đầu>, <Đ/K lặp>, <Bước nhảy>:
là biểu thức C bất kỳ có chức năng riêng
<Lệnh>: đơn hoặc khối lệnh.
<Khởi đầu>
<Bước nhảy>
VCVC
&&
BBBB
44
Câu lệnh for
NMLT - Câu lệnh lặp
void main()
{
int i;
for (i = 0; i < 10; i++)
printf(“%dn”, i);
for (int j = 0; j < 10; j = j + 1)
printf(“%dn”, j);
for (int k = 0; k < 10; k += 2)
{
printf(“%d”, k);
printf(“n”);
}
}
VCVC
&&
BBBB
55
Câu lệnh for - Một số lưu ý
Câu lệnh for là một câu lệnh đơn và có thể lồng
nhau.
NMLT - Câu lệnh lặp
VCVC
&&
BBBB
66
Câu lệnh for - Một số lưu ý
Trong câu lệnh for, có thể sẽ không có phần
<Khởi đầu>
NMLT - Câu lệnh lặp
int i;
for (i = 0; i < 10; i++)
printf(“%dn”, i);
int i = 0;
for (; i < 10; i++)
printf(“%dn”, i); <Lệnh>
Đ
S
<Đ/K lặp>
<Khởi đầu>
<Bước nhảy>
VCVC
&&
BBBB
77
Câu lệnh for - Một số lưu ý
Trong câu lệnh for, có thể sẽ không có phần
<Bước nhảy>
NMLT - Câu lệnh lặp
int i;
for (i = 0; i < 10; i++)
printf(“%dn”, i);
for (i = 0; i < 10; )
{
printf(“%dn”, i);
i++;
}
<Lệnh><Lệnh>
Đ
S
<Đ/K lặp>
<Khởi đầu>
<Bước nhảy><Bước nhảy>
VCVC
&&
BBBB
88
Câu lệnh for - Một số lưu ý
Trong câu lệnh for, có thể sẽ không có phần
<Đ/K lặp>
NMLT - Câu lệnh lặp
int i;
for (i = 0; i < 10; i++)
printf(“%dn”, i);
for (i = 0; ; i++)
printf(“%dn”, i);
for (i = 0; ; i++)
{
if (i >= 10)
break;
printf(“%dn”, i);
}
VCVC
&&
BBBB
99
Câu lệnh for - Một số lưu ý
Lệnh break làm kết thúc câu lệnh.
Lệnh continue bỏ qua lần lặp hiện tại.
NMLT - Câu lệnh lặp
for (i = 0; i < 10; i++)
{
if (i % 2 == 0)
break;
printf(“%dn”, i);
}
for (i = 0; i < 10; i++)
{
if (i % 2 == 0)
continue;
printf(“%dn”, i);
}
VCVC
&&
BBBB
1010
Câu lệnh for - Một số lưu ý
Không được thêm ; ngay sau lệnh lệnh for.
=> Tương đương câu lệnh rỗng.
NMLT - Câu lệnh lặp
for (i = 0; i < 10; i++);
{
printf(“%d”, i);
printf(“n”);
}
for (i = 0; i < 10; i++)
{
};
{
printf(“%d”, i);
printf(“n”);
}
VCVC
&&
BBBB
1111
Câu lệnh for - Một số lưu ý
Các thành phần <Khởi đầu>, <Đ/K lặp>,
<Bước nhảy> cách nhau bằng dấu ;
Nếu có nhiều thành phần trong mỗi phần thì
được cách nhau bằng dấu ,
NMLT - Câu lệnh lặp
for (int i = 1, j = 2; i + j < 10; i++, j += 2)
printf(“%dn”, i + j);
VCVC
&&
BBBB
1212
Câu lệnh while
NMLT - Câu lệnh lặp
<Lệnh>
Đ
S
<Đ/K lặp>
while (<Đ/K lặp>)
<Lệnh>;
Câu lệnh đơn hoặc
Câu lệnh phức (kẹp
giữa { và })
Biểu thức C bất kỳ,
thường là biểu thức
quan hệ cho kết quả
0 (sai) và != 0 (đúng)
VCVC
&&
BBBB
1313
Câu lệnh while
NMLT - Câu lệnh lặp
int i = 0;
while (i < 10)
{
printf(“%dn”, i);
i++;
}
for (int i = 0; i < 10; i++)
printf(“%dn”, i);
int i = 0;
for (; i < 10; )
{
printf(“%dn”, i);
i++;
}
VCVC
&&
BBBB
1414
Câu lệnh while - Một số lưu ý
Câu lệnh while là một câu lệnh đơn và có thể
lồng nhau.
NMLT - Câu lệnh lặp
VCVC
&&
BBBB
1515
Câu lệnh while - Một số lưu ý
Câu lệnh while có thể không thực hiện lần nào
do điều kiện lặp ngay từ lần đầu đã không thỏa.
NMLT - Câu lệnh lặp
void main()
{
int n = 1;
while (n > 10)
{
printf(“%dn”, n);
n--;
}
…
}
VCVC
&&
BBBB
1616
Câu lệnh While - Một số lưu ý
Không được thêm ; ngay sau lệnh lệnh while.
NMLT - Câu lệnh lặp
int n = 0;
while (n < 10);
{
printf(“%dn”, n);
n++;
}
while (n < 10)
{
};
{
printf(“%dn”, n);
n++;
}
VCVC
&&
BBBB
1717
Câu lệnh while - Một số lưu ý
Câu lệnh while có thể bị lặp vô tận (loop)
NMLT - Câu lệnh lặp
void main()
{
int n = 1;
while (n < 10)
{
printf(“%d”, n);
n--;
}
n = 1;
while (n < 10)
printf(“%d”, n);
}
VCVC
&&
BBBB
1818
Câu lệnh do… while
NMLT - Câu lệnh lặp
<Lệnh>
S
Đ
<Đ/K lặp>
do
<Lệnh>;
while (<Đ/K lặp>);
Câu lệnh đơn hoặc
Câu lệnh phức (kẹp
giữa { và })
Biểu thức C bất kỳ,
thường là biểu thức
quan hệ cho kết quả
0 (sai) và != 0 (đúng)
VCVC
&&
BBBB
1919
Câu lệnh do… while
NMLT - Câu lệnh lặp
int i = 0;
do
{
printf(“%dn”, i);
i++;
}
while (i < 10);
int i = 0;
printf(“%dn”, i);
i++;
for (; i < 10; )
{
printf(“%dn”, i);
i++;
}
VCVC
&&
BBBB
2020
Câu lệnh do… while - Một số lưu ý
Câu lệnh do… while là một câu lệnh đơn và có
thể lồng nhau.
NMLT - Câu lệnh lặp
int a = 1, b;
do
{
b = 1;
do
{
printf(“%dn”, a + b);
b = b + 2;
}
while (b < 20);
a++;
}
while (a < 20);
VCVC
&&
BBBB
2121
Câu lệnh do… while - Một số lưu ý
Câu lệnh do… while sẽ được thực hiện ít nhất 1
lần do điều kiện lặp được kiểm tra ở cuối.
NMLT - Câu lệnh lặp
void main()
{
int n;
do
{
printf(“Nhap n: ”);
scanf(“%d”, &n);
}
while (n < 1 || n > 100);
}
VCVC
&&
BBBB
2222
Câu lệnh do… while - Một số lưu ý
Câu lệnh do… while có thể bị lặp vô tận (loop)
NMLT - Câu lệnh lặp
…
int n = 1;
do
{
printf(“%d”, n);
n--;
}
while (n < 10);
n = 1;
do
printf(“%d”, n);
while (n < 10);
…
VCVC
&&
BBBB
2323
for, while, do… while
Đều có khả năng lặp lại nhiều hành động.
NMLT - Câu lệnh lặp
int n = 10;
for (int i = 1; i <= n; i++)
printf(“%dn”, i);
int i = 1;
while (i <= n)
{
printf(“%dn”, i); i++;
}
int i = 1;
do {
printf(“%dn”, i); i++;
} while (i < n);
VCVC
&&
BBBB
2424
for, while, do… while
Số lần lặp xác định ngay trong câu lệnh for
NMLT - Câu lệnh lặp
int n = 10;
for (int i = 1; i <= n; i++)
…;
int i = 1;
while (i <= n)
{
…;
}
int i = 1;
do {
…;
} while (i > n);
VCVC
&&
BBBB
2525
while & do… while
while có thể không thực hiện lần nào.
do… while sẽ được thực hiện ít nhất 1 lần.
NMLT - Câu lệnh lặp
int n = 100;
while (n < 10)
{
…;
}
…
do
{
printf(“Nhap n: ”);
scanf(“%d”, &n);
}
while (n > 10);
VCVC
&&
BBBB
2626
Bài tập thực hành
3. Nhập một số nguyên dương n (n > 0).
Hãy cho biết:
a. Có phải là số đối xứng? Ví dụ: 121, 12321,
…
b. Có phải là số chính phương? Ví dụ: 4, 9, 16,
…
c. Có phải là số nguyên tố? Ví dụ: 2, 3, 5, 7, …
d. Chữ số lớn nhất và nhỏ nhất?
e. Các chữ số có tăng dần hay giảm dần
không?
NMLT - Câu lệnh lặp
VCVC
&&
BBBB
2727
Bài tập thực hành
4. Nhập một số nguyên dương n. Tính:
a. S = 1 + 2 + … + n
b. S = 12
+ 22
+ … + n2
c. S = 1 + 1/2 + … + 1/n
d. S = 1*2*…*n = n!
e. S = 1! + 2! + … + n!
4. Nhập 3 số nguyên a, b và n với a, b < n. Tính
tổng các số nguyên dương nhỏ hơn n chia hết
cho a nhưng không chia hết cho b.
5. Tính tổng các số nguyên tố nhỏ hơn n (0 < n <
50) NMLT - Câu lệnh lặp
VCVC
&&
BBBB
2828
Bài tập thực hành
7. Nhập một số nguyên dương n. Xuất ra số
ngược lại. Ví dụ: Nhập 1706  Xuất 6071.
8. Tìm và in lên màn hình tất cả các số nguyên
trong phạm vi từ 10 đến 99 sao cho tích của 2
chữ số bằng 2 lần tổng của 2 chữ số đó.
9. Tìm ước số chung lớn nhất của 2 số nguyên
dương a và b nhập từ bàn phím.
10.Nhập n. In n số đầu tiên trong dãy Fibonacy.
a. a0 = a1 = 1
b. an = an – 1 + an – 2
NMLT - Câu lệnh lặp
VCVC
&&
BBBB
2929
Bài tập 3a
NMLT - Câu lệnh lặp
void main()
{
int n, sogoc, sodao, donvi;
printf(“Nhap n: ”);
scanf(“%d”, &n);
sogoc = n; sodao = 0;
while (sogoc > 0)
{
donvi = sogoc % 10;
sodao = sodao*10 + donvi;
sogoc = sogoc / 10;
}
if (sodao == n) printf(“DX”);
else printf(“Khong doi xung”);
}
VCVC
&&
BBBB
3030
Bài tập 3b
NMLT - Câu lệnh lặp
#include <math.h>
void main()
{
int n, n_can_nguyen;
printf(“Nhap n: ”);
scanf(“%d”, &n);
n_can_nguyen = int(sqrt(n));
if (n_can_nguyen*n_can_nguyen == n)
printf(“%d la so CP.”, n);
else
printf(“%d khong la so CP.”, n);
}
VCVC
&&
BBBB
3131
Bài tập 3c
NMLT - Câu lệnh lặp
void main()
{
int n, i, souoc;
printf(“Nhap n: ”);
scanf(“%d”, &n);
souoc = 0;
for (i = 1; i <= n; i++)
if (n % i == 0)
souoc++;
if (souoc == 2)
printf(“%d la so nguyen to”);
else
printf(“%d ko la so nguyen to”, n);
}
VCVC
&&
BBBB
3232
Bài tập 3d
NMLT - Câu lệnh lặp
void main()
{
int n, min, max, donvi;
…
min = n % 10;
max = min;
n = n / 10;
while (n>0)
{
donvi = n % 10;
n = n / 10;
if (donvi < min) min = donvi;
if (donvi > max) max = donvi;
}
printf(“So NN = %d, So LN = %d”, min, max);
}
VCVC
&&
BBBB
3333
Bài tập 3e
NMLT - Câu lệnh lặp
void main()
{
int n, sotruoc, sosau;
… // Nhập n
sotruoc = n % 10;
do
{
sosau = sotruoc;
n = n / 10;
sotruoc = n % 10;
} while (n != 0 && sotruoc < sosau);
if (sotruoc < sosau)
printf(“Cac chu so tang dan”);
else
printf(“Cac chu so ko tang dan”);
}
VCVC
&&
BBBB
3434
Bài tập 4a
NMLT - Câu lệnh lặp
void main()
{
int n, i, s;
printf(“Nhap n: ”);
scanf(“%d”, &n);
s = 0;
for (i = 1; i <= n; i++)
s = s + i;
printf(“1 + 2 + … + %d = %d”, n, s);
}
VCVC
&&
BBBB
3535
Bài tập 4b
NMLT - Câu lệnh lặp
void main()
{
int n, i, s;
printf(“Nhap n: ”);
scanf(“%d”, &n);
s = 0;
for (i = 1; i <= n; i++)
s = s + i*i;
printf(“1^2 + 2^2 + … + %d^2 = %d”, n, s);
}
VCVC
&&
BBBB
3636
Bài tập 4c
NMLT - Câu lệnh lặp
void main()
{
int n, i;
float s;
printf(“Nhap n: ”);
scanf(“%d”, &n);
s = 0;
for (i = 1; i <= n; i++)
s = s + 1.0/i;
printf(“1 + 1/2 + … + 1/%d = %f”, n, s);
}
VCVC
&&
BBBB
3737
Bài tập 4d
NMLT - Câu lệnh lặp
void main()
{
int n, i, s;
printf(“Nhap n: ”);
scanf(“%d”, &n);
s = 1;
for (i = 2; i <= n; i++)
s = s * i;
printf(“%d! = %d”, n, s);
}
VCVC
&&
BBBB
3838
Bài tập 4e
NMLT - Câu lệnh lặp
void main()
{
int n, i, j, igt, s;
printf(“Nhap n: ”);
scanf(“%d”, &n);
s = 0;
for (i = 1; i <= n; i++)
{
igt = 1;
for (j = 2; j <= i; j++)
igt = igt * j;
s = s + igt;
}
printf(“1! + 2! + … + %d! = %d”, n, s);
}
VCVC
&&
BBBB
3939
Bài tập 5
NMLT - Câu lệnh lặp
void main()
{
int a, b, n, i, s;
do
{
printf(“Nhap a, b, n: ”);
scanf(“%d%d%d”, &a, &b, &n);
} while (a >= n || b >= n);
s = 0;
for (i = 1; i <= n – 1; i++)
if (i % a == 0 && i % b != 0)
s = s + i;
printf(“Tong cac thoa yeu cau la %d”, s);
}
VCVC
&&
BBBB
4040
Bài tập 6
NMLT - Câu lệnh lặp
void main()
{
int n, i, j, souoc, s;
do
{
printf(“Nhap n: ”);
scanf(“%d”, &n);
} while (n <= 0 || n >= 50);
s = 0;
for (i = 2; i <= n – 1; i++)
{
… // Đếm số ước của i
if (souoc == 2) // Là số nguyên tố
s = s + i;
}
printf(“Tong cac so nt < %d la %d”, n, s);
}
VCVC
&&
BBBB
4141
Bài tập 7
NMLT - Câu lệnh lặp
void main()
{
int n, donvi;
printf(“Nhap n: ”);
scanf(“%d”, &n);
printf(“So dao cua %d la ”, n);
while (n > 0)
{
donvi = n % 10;
n = n / 10;
printf(“%d”, donvi);
}
}
VCVC
&&
BBBB
4242
Bài tập 8
NMLT - Câu lệnh lặp
void main()
{
int n, i, donvi, chuc;
printf(“Cac so thoa yeu cau la: ”);
for (i = 10; i <= 99; i++)
{
donvi = i % 10;
chuc = i / 10;
if (chuc*donvi == 2*(chuc + donvi))
printf(“%d”, i);
}
}
VCVC
&&
BBBB
4343
Bài tập 9
Ví dụ: a = 12, b = 8
Cách 1:
 Cho 1 biến i chạy từ 8 trở về 1, nếu cả a và b
đều chia hết cho i thì dừng và i chính là uscln.
 8, 7, 6, 5, 4 => USCLN của 12 và 8 là 4.
Cách 2:
 USCLN của a & b (a khác b), ký hiệu (a, b) là:
• (a – b, b) nếu a > b
• (a, b – a) nếu b > a
 (12, 8) = (4, 8) = (4, 4) = 4
NMLT - Câu lệnh lặp
VCVC
&&
BBBB
4444
Bài tập 9
NMLT - Câu lệnh lặp
void main()
{
int a, b, uscln;
printf(“Nhap a va b: ”);
scanf(“%d%d”, &a, &b);
if (a < b) uscln = a;
else uscln = b;
while (a % uscln != 0 || b % uscln != 0)
uscln--;
printf(“USCLN cua %d va %d la %d”,a, b, uscln);
}
VCVC
&&
BBBB
4545
Bài tập 9
NMLT - Câu lệnh lặp
void main()
{
int a, b;
printf(“Nhap a va b: ”);
scanf(“%d%d”, &a, &b);
while (a <> b)
{
if (a > b)
a = a – b;
else
b = b – a;
}
printf(“USCLN cua a va b la %d’, a);
}
VCVC
&&
BBBB
4646
Bài tập 10
Dãy Fibonacy: a0 a1 a2 … an-2 an-1 an
 Với a0 = a1 = 1, an = an-1 + an-2
Ví dụ: 1 1 2 3 5 8 13 21 …
Xuất n phần tử đầu tiên của dãy Fibonacy
 n = 1 => 1, n = 2 => 1 1
 n > 2
• Lưu lại 2 phần tử trước nó là a và b
• Mỗi lần tính xong cập nhật lại a và b.
Nên thêm 2 phần tử ảo đầu tiên là a-2, a-1
 1 0 1 1 2 3 5 8 13 21 … NMLT - Câu lệnh lặp
VCVC
&&
BBBB
4747
Bài tập 10
NMLT - Câu lệnh lặp
void main()
{
int n, an, an1, an2, i;
printf(“Nhap n: ”);
scanf(“%d”, &n);
an2 = 1; an1 = 0;
printf(“%d phan tu dau tien cua day: “, n);
for (i = 1; i <= n; i++)
{
an = an2 + an1;
printf(“%d ”, an);
an2 = an1;
an1 = an;
}
}
VCVC
&&
BBBB
4848
Bài tập
S = 1/2 + 1/4 + … + 1/2n
S = 1 + 1/3 + 1/5 + … + 1/(2n+1)
S = 1/(1x2
) + 1/(2x3
) + … + 1/(nxn+1
)
S = 1/2 + 2/3 + … + n/(n+1)
S = 1 + 1/(1 + 2) + … + 1/(1 + 2 + … + n)
Liệt kê tất cả ước số của số nguyên dương n
Tính tổng các ước số của số nguyên dương n
Đếm số lượng ước số của số nguyên dương n
Tính tổng các ước số chẵn của số nguyên
dương n
NMLT - Câu lệnh lặp
VCVC
&&
BBBB
4949
Nhập một số nguyên có giá trị từ -5 đến 5

More Related Content

What's hot

5_Konsep Dasar & Analisis Pasar Kerja.pptx
5_Konsep Dasar & Analisis Pasar Kerja.pptx5_Konsep Dasar & Analisis Pasar Kerja.pptx
5_Konsep Dasar & Analisis Pasar Kerja.pptxDeboraSimanjuntak6
 
EOQ dalam Persediaan _Materi Training "INVENTORY & WAREHOUSING MANAGEMENT"
EOQ dalam Persediaan _Materi Training "INVENTORY & WAREHOUSING MANAGEMENT"EOQ dalam Persediaan _Materi Training "INVENTORY & WAREHOUSING MANAGEMENT"
EOQ dalam Persediaan _Materi Training "INVENTORY & WAREHOUSING MANAGEMENT"Kanaidi ken
 
Hart Communication, Protokol
Hart Communication, Protokol Hart Communication, Protokol
Hart Communication, Protokol Giffari Muslih
 
Sistem Penomoran diagram pneumatic
Sistem Penomoran diagram pneumaticSistem Penomoran diagram pneumatic
Sistem Penomoran diagram pneumaticSaoloan Naiborhu
 
Algoritma fuzzy c means fcm java c++ contoh program
Algoritma fuzzy c means fcm java c++   contoh programAlgoritma fuzzy c means fcm java c++   contoh program
Algoritma fuzzy c means fcm java c++ contoh programym.ygrex@comp
 
Prinsip-prinsip Pemasaran Principles of Marketing Kotler - Armstrong Bab 1 -...
Prinsip-prinsip Pemasaran Principles of Marketing Kotler - Armstrong  Bab 1 -...Prinsip-prinsip Pemasaran Principles of Marketing Kotler - Armstrong  Bab 1 -...
Prinsip-prinsip Pemasaran Principles of Marketing Kotler - Armstrong Bab 1 -...Mirza Syah
 
EKMA 4215 - Manajemen Operasi Modul 1 : Introduksi Manajemen Operasi
EKMA 4215 - Manajemen Operasi Modul 1 : Introduksi Manajemen OperasiEKMA 4215 - Manajemen Operasi Modul 1 : Introduksi Manajemen Operasi
EKMA 4215 - Manajemen Operasi Modul 1 : Introduksi Manajemen OperasiAncilla Kustedjo
 
Kecerdasan Buatan: Menyimpan graph dalam sebuah database MySQL
Kecerdasan Buatan: Menyimpan graph dalam sebuah database MySQLKecerdasan Buatan: Menyimpan graph dalam sebuah database MySQL
Kecerdasan Buatan: Menyimpan graph dalam sebuah database MySQLAnon Kuncoro
 
03 enkapsulasi
03 enkapsulasi03 enkapsulasi
03 enkapsulasiKuliahKita
 
EKMA 4215 - Manajemen Operasi Modul 5 : Strategi Kualitas
EKMA 4215 - Manajemen Operasi Modul 5 : Strategi KualitasEKMA 4215 - Manajemen Operasi Modul 5 : Strategi Kualitas
EKMA 4215 - Manajemen Operasi Modul 5 : Strategi KualitasAncilla Kustedjo
 
EKMA 4478 - Analisis Kasus Bisnis Modul 6 : Analisis Kasus Pengelolaan dan Pe...
EKMA 4478 - Analisis Kasus Bisnis Modul 6 : Analisis Kasus Pengelolaan dan Pe...EKMA 4478 - Analisis Kasus Bisnis Modul 6 : Analisis Kasus Pengelolaan dan Pe...
EKMA 4478 - Analisis Kasus Bisnis Modul 6 : Analisis Kasus Pengelolaan dan Pe...Ancilla Kustedjo
 

What's hot (20)

Queue antrian
Queue antrian Queue antrian
Queue antrian
 
5_Konsep Dasar & Analisis Pasar Kerja.pptx
5_Konsep Dasar & Analisis Pasar Kerja.pptx5_Konsep Dasar & Analisis Pasar Kerja.pptx
5_Konsep Dasar & Analisis Pasar Kerja.pptx
 
EOQ dalam Persediaan _Materi Training "INVENTORY & WAREHOUSING MANAGEMENT"
EOQ dalam Persediaan _Materi Training "INVENTORY & WAREHOUSING MANAGEMENT"EOQ dalam Persediaan _Materi Training "INVENTORY & WAREHOUSING MANAGEMENT"
EOQ dalam Persediaan _Materi Training "INVENTORY & WAREHOUSING MANAGEMENT"
 
Aplikasi fungsi linier dalam ekonomi
Aplikasi fungsi linier dalam ekonomiAplikasi fungsi linier dalam ekonomi
Aplikasi fungsi linier dalam ekonomi
 
Hart Communication, Protokol
Hart Communication, Protokol Hart Communication, Protokol
Hart Communication, Protokol
 
Sistem Penomoran diagram pneumatic
Sistem Penomoran diagram pneumaticSistem Penomoran diagram pneumatic
Sistem Penomoran diagram pneumatic
 
Algoritma fuzzy c means fcm java c++ contoh program
Algoritma fuzzy c means fcm java c++   contoh programAlgoritma fuzzy c means fcm java c++   contoh program
Algoritma fuzzy c means fcm java c++ contoh program
 
SDLC
SDLCSDLC
SDLC
 
Prinsip-prinsip Pemasaran Principles of Marketing Kotler - Armstrong Bab 1 -...
Prinsip-prinsip Pemasaran Principles of Marketing Kotler - Armstrong  Bab 1 -...Prinsip-prinsip Pemasaran Principles of Marketing Kotler - Armstrong  Bab 1 -...
Prinsip-prinsip Pemasaran Principles of Marketing Kotler - Armstrong Bab 1 -...
 
EKMA 4215 - Manajemen Operasi Modul 1 : Introduksi Manajemen Operasi
EKMA 4215 - Manajemen Operasi Modul 1 : Introduksi Manajemen OperasiEKMA 4215 - Manajemen Operasi Modul 1 : Introduksi Manajemen Operasi
EKMA 4215 - Manajemen Operasi Modul 1 : Introduksi Manajemen Operasi
 
Kecerdasan Buatan: Menyimpan graph dalam sebuah database MySQL
Kecerdasan Buatan: Menyimpan graph dalam sebuah database MySQLKecerdasan Buatan: Menyimpan graph dalam sebuah database MySQL
Kecerdasan Buatan: Menyimpan graph dalam sebuah database MySQL
 
03 enkapsulasi
03 enkapsulasi03 enkapsulasi
03 enkapsulasi
 
EKMA 4215 - Manajemen Operasi Modul 5 : Strategi Kualitas
EKMA 4215 - Manajemen Operasi Modul 5 : Strategi KualitasEKMA 4215 - Manajemen Operasi Modul 5 : Strategi Kualitas
EKMA 4215 - Manajemen Operasi Modul 5 : Strategi Kualitas
 
2 alfabet dan string
2 alfabet dan string2 alfabet dan string
2 alfabet dan string
 
EKMA 4478 - Analisis Kasus Bisnis Modul 6 : Analisis Kasus Pengelolaan dan Pe...
EKMA 4478 - Analisis Kasus Bisnis Modul 6 : Analisis Kasus Pengelolaan dan Pe...EKMA 4478 - Analisis Kasus Bisnis Modul 6 : Analisis Kasus Pengelolaan dan Pe...
EKMA 4478 - Analisis Kasus Bisnis Modul 6 : Analisis Kasus Pengelolaan dan Pe...
 
Soal Kewirausahaan
Soal KewirausahaanSoal Kewirausahaan
Soal Kewirausahaan
 
7 pengembangan sistem
7 pengembangan sistem7 pengembangan sistem
7 pengembangan sistem
 
Mt3 #3 laplace
Mt3 #3 laplaceMt3 #3 laplace
Mt3 #3 laplace
 
Soal sekuensial
Soal sekuensialSoal sekuensial
Soal sekuensial
 
Sister 06 - client server
Sister   06 - client serverSister   06 - client server
Sister 06 - client server
 

Similar to Nmlt c05 cau_lenhlap

Nmlt c05 cau_lenhlap_in
Nmlt c05 cau_lenhlap_inNmlt c05 cau_lenhlap_in
Nmlt c05 cau_lenhlap_inHuy Nguyễn
 
Nmlt C05 Cau Lenh Lap
Nmlt C05 Cau Lenh LapNmlt C05 Cau Lenh Lap
Nmlt C05 Cau Lenh LapCuong
 
Phần 5: Câu lệnh lặp
Phần 5: Câu lệnh lặpPhần 5: Câu lệnh lặp
Phần 5: Câu lệnh lặpHuy Rùa
 
Nmlt c04 cau_lenhdieukienvarenhanh
Nmlt c04 cau_lenhdieukienvarenhanhNmlt c04 cau_lenhdieukienvarenhanh
Nmlt c04 cau_lenhdieukienvarenhanhMinh Ngoc Tran
 
Nmlt c04 cau_lenhdieukienvarenhanh_in
Nmlt c04 cau_lenhdieukienvarenhanh_inNmlt c04 cau_lenhdieukienvarenhanh_in
Nmlt c04 cau_lenhdieukienvarenhanh_inHuy Nguyễn
 
Bài tập mẫu C và C++ có giải
Bài tập mẫu C và C++ có giảiBài tập mẫu C và C++ có giải
Bài tập mẫu C và C++ có giảiTrung Thanh Nguyen
 
Nmlt c11 con_trocoban_in
Nmlt c11 con_trocoban_inNmlt c11 con_trocoban_in
Nmlt c11 con_trocoban_inHuy Nguyễn
 
Nmlt c16 ky_thuatlaptrinhdequy
Nmlt c16 ky_thuatlaptrinhdequyNmlt c16 ky_thuatlaptrinhdequy
Nmlt c16 ky_thuatlaptrinhdequyMinh Ngoc Tran
 
Nmlt c16 ky_thuatlaptrinhdequy_in
Nmlt c16 ky_thuatlaptrinhdequy_inNmlt c16 ky_thuatlaptrinhdequy_in
Nmlt c16 ky_thuatlaptrinhdequy_inHuy Nguyễn
 
Giao trinh bai tap c va c++
Giao trinh bai tap c va c++Giao trinh bai tap c va c++
Giao trinh bai tap c va c++Congdat Le
 
Nmlt c15 ham_nangcao_phan1_in
Nmlt c15 ham_nangcao_phan1_inNmlt c15 ham_nangcao_phan1_in
Nmlt c15 ham_nangcao_phan1_inHuy Nguyễn
 
Lập trình C cơ bản cho vi điều khiển
Lập trình C cơ bản cho vi điều khiểnLập trình C cơ bản cho vi điều khiển
Lập trình C cơ bản cho vi điều khiểnMr Giap
 
Nmlt c11 con_trocoban-
Nmlt c11 con_trocoban-Nmlt c11 con_trocoban-
Nmlt c11 con_trocoban-Minh Ngoc Tran
 
Nmlt c13 con_tronangcao_in
Nmlt c13 con_tronangcao_inNmlt c13 con_tronangcao_in
Nmlt c13 con_tronangcao_inHuy Nguyễn
 

Similar to Nmlt c05 cau_lenhlap (20)

Nmlt c05 cau_lenhlap_in
Nmlt c05 cau_lenhlap_inNmlt c05 cau_lenhlap_in
Nmlt c05 cau_lenhlap_in
 
Nmlt C05 Cau Lenh Lap
Nmlt C05 Cau Lenh LapNmlt C05 Cau Lenh Lap
Nmlt C05 Cau Lenh Lap
 
Phần 5: Câu lệnh lặp
Phần 5: Câu lệnh lặpPhần 5: Câu lệnh lặp
Phần 5: Câu lệnh lặp
 
Nmlt c04 cau_lenhdieukienvarenhanh
Nmlt c04 cau_lenhdieukienvarenhanhNmlt c04 cau_lenhdieukienvarenhanh
Nmlt c04 cau_lenhdieukienvarenhanh
 
Nmlt c04 cau_lenhdieukienvarenhanh_in
Nmlt c04 cau_lenhdieukienvarenhanh_inNmlt c04 cau_lenhdieukienvarenhanh_in
Nmlt c04 cau_lenhdieukienvarenhanh_in
 
Nmlt c06 ham
Nmlt c06 hamNmlt c06 ham
Nmlt c06 ham
 
Nmlt c06 ham_in
Nmlt c06 ham_inNmlt c06 ham_in
Nmlt c06 ham_in
 
Bài tập mẫu C và C++ có giải
Bài tập mẫu C và C++ có giảiBài tập mẫu C và C++ có giải
Bài tập mẫu C và C++ có giải
 
Nmlt c11 con_trocoban_in
Nmlt c11 con_trocoban_inNmlt c11 con_trocoban_in
Nmlt c11 con_trocoban_in
 
Nmlt c11 con_trocoban
Nmlt c11 con_trocobanNmlt c11 con_trocoban
Nmlt c11 con_trocoban
 
Nmlt c16 ky_thuatlaptrinhdequy
Nmlt c16 ky_thuatlaptrinhdequyNmlt c16 ky_thuatlaptrinhdequy
Nmlt c16 ky_thuatlaptrinhdequy
 
Nmlt c16 ky_thuatlaptrinhdequy_in
Nmlt c16 ky_thuatlaptrinhdequy_inNmlt c16 ky_thuatlaptrinhdequy_in
Nmlt c16 ky_thuatlaptrinhdequy_in
 
Giao trinh bai tap c va c++
Giao trinh bai tap c va c++Giao trinh bai tap c va c++
Giao trinh bai tap c va c++
 
Giao trinh bai tap c va c++
Giao trinh bai tap c va c++Giao trinh bai tap c va c++
Giao trinh bai tap c va c++
 
Nmlt c15 ham_nangcao_phan1_in
Nmlt c15 ham_nangcao_phan1_inNmlt c15 ham_nangcao_phan1_in
Nmlt c15 ham_nangcao_phan1_in
 
Lập trình C cơ bản cho vi điều khiển
Lập trình C cơ bản cho vi điều khiểnLập trình C cơ bản cho vi điều khiển
Lập trình C cơ bản cho vi điều khiển
 
Nmlt c11 con_trocoban-
Nmlt c11 con_trocoban-Nmlt c11 con_trocoban-
Nmlt c11 con_trocoban-
 
Nmlt c13 con_tronangcao_in
Nmlt c13 con_tronangcao_inNmlt c13 con_tronangcao_in
Nmlt c13 con_tronangcao_in
 
Control structure in C
Control structure in CControl structure in C
Control structure in C
 
Tn ktlt
Tn ktltTn ktlt
Tn ktlt
 

More from Minh Ngoc Tran

Nmlt c03 cac_kieudulieucoso
Nmlt c03 cac_kieudulieucosoNmlt c03 cac_kieudulieucoso
Nmlt c03 cac_kieudulieucosoMinh Ngoc Tran
 
Nmlt c02 gioi_thieunnltc
Nmlt c02 gioi_thieunnltcNmlt c02 gioi_thieunnltc
Nmlt c02 gioi_thieunnltcMinh Ngoc Tran
 
Nmlt c01 cac_khainiemcobanvelaptrinh
Nmlt c01 cac_khainiemcobanvelaptrinhNmlt c01 cac_khainiemcobanvelaptrinh
Nmlt c01 cac_khainiemcobanvelaptrinhMinh Ngoc Tran
 
Chuong9 lop vadoituong
Chuong9 lop vadoituongChuong9 lop vadoituong
Chuong9 lop vadoituongMinh Ngoc Tran
 
Lập trình c++ có lời giải 2
Lập trình c++ có lời giải 2Lập trình c++ có lời giải 2
Lập trình c++ có lời giải 2Minh Ngoc Tran
 
Lap trinh c++ có lời giải 1
Lap trinh c++ có lời giải 1Lap trinh c++ có lời giải 1
Lap trinh c++ có lời giải 1Minh Ngoc Tran
 
Lap trinh c++ có lời giải 3
Lap trinh c++ có lời giải 3Lap trinh c++ có lời giải 3
Lap trinh c++ có lời giải 3Minh Ngoc Tran
 

More from Minh Ngoc Tran (15)

Nmlt c12 quan_lybonho
Nmlt c12 quan_lybonhoNmlt c12 quan_lybonho
Nmlt c12 quan_lybonho
 
Nmlt c10 cau_truc
Nmlt c10 cau_trucNmlt c10 cau_truc
Nmlt c10 cau_truc
 
Nmlt c09 chuoi_kytu
Nmlt c09 chuoi_kytuNmlt c09 chuoi_kytu
Nmlt c09 chuoi_kytu
 
Nmlt c08 mang2_chieu
Nmlt c08 mang2_chieuNmlt c08 mang2_chieu
Nmlt c08 mang2_chieu
 
Nmlt c07 mang1_chieu
Nmlt c07 mang1_chieuNmlt c07 mang1_chieu
Nmlt c07 mang1_chieu
 
Nmlt c03 cac_kieudulieucoso
Nmlt c03 cac_kieudulieucosoNmlt c03 cac_kieudulieucoso
Nmlt c03 cac_kieudulieucoso
 
Nmlt c02 gioi_thieunnltc
Nmlt c02 gioi_thieunnltcNmlt c02 gioi_thieunnltc
Nmlt c02 gioi_thieunnltc
 
Nmlt c01 cac_khainiemcobanvelaptrinh
Nmlt c01 cac_khainiemcobanvelaptrinhNmlt c01 cac_khainiemcobanvelaptrinh
Nmlt c01 cac_khainiemcobanvelaptrinh
 
Chuong9 lop vadoituong
Chuong9 lop vadoituongChuong9 lop vadoituong
Chuong9 lop vadoituong
 
Bai tapktlt phan3
Bai tapktlt phan3Bai tapktlt phan3
Bai tapktlt phan3
 
Bai tapktlt phan2
Bai tapktlt phan2Bai tapktlt phan2
Bai tapktlt phan2
 
Bai tapktlt phan1
Bai tapktlt phan1Bai tapktlt phan1
Bai tapktlt phan1
 
Lập trình c++ có lời giải 2
Lập trình c++ có lời giải 2Lập trình c++ có lời giải 2
Lập trình c++ có lời giải 2
 
Lap trinh c++ có lời giải 1
Lap trinh c++ có lời giải 1Lap trinh c++ có lời giải 1
Lap trinh c++ có lời giải 1
 
Lap trinh c++ có lời giải 3
Lap trinh c++ có lời giải 3Lap trinh c++ có lời giải 3
Lap trinh c++ có lời giải 3
 

Nmlt c05 cau_lenhlap

  • 1. VCVC && BBBB 11 Nội dung NMLT - Câu lệnh lặp Câu lệnh for1 Câu lệnh while2 Câu lệnh do… while3 Một số kinh nghiệm lập trình4
  • 2. VCVC && BBBB 22 Đặt vấn đề Ví dụ  Viết chương trình xuất các số từ 1 đến 10 => Sử dụng 10 câu lệnh printf  Viết chương trình xuất các số từ 1 đến 1000 => Sử dụng 1000 câu lệnh printf ! Giải pháp  Sử dụng cấu trúc lặp lại một hành động trong khi còn thỏa một điều kiện nào đó.  3 lệnh lặp: for, while, do… while NMLT - Câu lệnh lặp
  • 3. VCVC && BBBB 33 <Lệnh> Câu lệnh for NMLT - Câu lệnh lặp Đ S <Đ/K lặp> for (<Khởi đầu>; <Đ/K lặp>; <Bước nhảy>) <Lệnh>; <Khởi đầu>, <Đ/K lặp>, <Bước nhảy>: là biểu thức C bất kỳ có chức năng riêng <Lệnh>: đơn hoặc khối lệnh. <Khởi đầu> <Bước nhảy>
  • 4. VCVC && BBBB 44 Câu lệnh for NMLT - Câu lệnh lặp void main() { int i; for (i = 0; i < 10; i++) printf(“%dn”, i); for (int j = 0; j < 10; j = j + 1) printf(“%dn”, j); for (int k = 0; k < 10; k += 2) { printf(“%d”, k); printf(“n”); } }
  • 5. VCVC && BBBB 55 Câu lệnh for - Một số lưu ý Câu lệnh for là một câu lệnh đơn và có thể lồng nhau. NMLT - Câu lệnh lặp
  • 6. VCVC && BBBB 66 Câu lệnh for - Một số lưu ý Trong câu lệnh for, có thể sẽ không có phần <Khởi đầu> NMLT - Câu lệnh lặp int i; for (i = 0; i < 10; i++) printf(“%dn”, i); int i = 0; for (; i < 10; i++) printf(“%dn”, i); <Lệnh> Đ S <Đ/K lặp> <Khởi đầu> <Bước nhảy>
  • 7. VCVC && BBBB 77 Câu lệnh for - Một số lưu ý Trong câu lệnh for, có thể sẽ không có phần <Bước nhảy> NMLT - Câu lệnh lặp int i; for (i = 0; i < 10; i++) printf(“%dn”, i); for (i = 0; i < 10; ) { printf(“%dn”, i); i++; } <Lệnh><Lệnh> Đ S <Đ/K lặp> <Khởi đầu> <Bước nhảy><Bước nhảy>
  • 8. VCVC && BBBB 88 Câu lệnh for - Một số lưu ý Trong câu lệnh for, có thể sẽ không có phần <Đ/K lặp> NMLT - Câu lệnh lặp int i; for (i = 0; i < 10; i++) printf(“%dn”, i); for (i = 0; ; i++) printf(“%dn”, i); for (i = 0; ; i++) { if (i >= 10) break; printf(“%dn”, i); }
  • 9. VCVC && BBBB 99 Câu lệnh for - Một số lưu ý Lệnh break làm kết thúc câu lệnh. Lệnh continue bỏ qua lần lặp hiện tại. NMLT - Câu lệnh lặp for (i = 0; i < 10; i++) { if (i % 2 == 0) break; printf(“%dn”, i); } for (i = 0; i < 10; i++) { if (i % 2 == 0) continue; printf(“%dn”, i); }
  • 10. VCVC && BBBB 1010 Câu lệnh for - Một số lưu ý Không được thêm ; ngay sau lệnh lệnh for. => Tương đương câu lệnh rỗng. NMLT - Câu lệnh lặp for (i = 0; i < 10; i++); { printf(“%d”, i); printf(“n”); } for (i = 0; i < 10; i++) { }; { printf(“%d”, i); printf(“n”); }
  • 11. VCVC && BBBB 1111 Câu lệnh for - Một số lưu ý Các thành phần <Khởi đầu>, <Đ/K lặp>, <Bước nhảy> cách nhau bằng dấu ; Nếu có nhiều thành phần trong mỗi phần thì được cách nhau bằng dấu , NMLT - Câu lệnh lặp for (int i = 1, j = 2; i + j < 10; i++, j += 2) printf(“%dn”, i + j);
  • 12. VCVC && BBBB 1212 Câu lệnh while NMLT - Câu lệnh lặp <Lệnh> Đ S <Đ/K lặp> while (<Đ/K lặp>) <Lệnh>; Câu lệnh đơn hoặc Câu lệnh phức (kẹp giữa { và }) Biểu thức C bất kỳ, thường là biểu thức quan hệ cho kết quả 0 (sai) và != 0 (đúng)
  • 13. VCVC && BBBB 1313 Câu lệnh while NMLT - Câu lệnh lặp int i = 0; while (i < 10) { printf(“%dn”, i); i++; } for (int i = 0; i < 10; i++) printf(“%dn”, i); int i = 0; for (; i < 10; ) { printf(“%dn”, i); i++; }
  • 14. VCVC && BBBB 1414 Câu lệnh while - Một số lưu ý Câu lệnh while là một câu lệnh đơn và có thể lồng nhau. NMLT - Câu lệnh lặp
  • 15. VCVC && BBBB 1515 Câu lệnh while - Một số lưu ý Câu lệnh while có thể không thực hiện lần nào do điều kiện lặp ngay từ lần đầu đã không thỏa. NMLT - Câu lệnh lặp void main() { int n = 1; while (n > 10) { printf(“%dn”, n); n--; } … }
  • 16. VCVC && BBBB 1616 Câu lệnh While - Một số lưu ý Không được thêm ; ngay sau lệnh lệnh while. NMLT - Câu lệnh lặp int n = 0; while (n < 10); { printf(“%dn”, n); n++; } while (n < 10) { }; { printf(“%dn”, n); n++; }
  • 17. VCVC && BBBB 1717 Câu lệnh while - Một số lưu ý Câu lệnh while có thể bị lặp vô tận (loop) NMLT - Câu lệnh lặp void main() { int n = 1; while (n < 10) { printf(“%d”, n); n--; } n = 1; while (n < 10) printf(“%d”, n); }
  • 18. VCVC && BBBB 1818 Câu lệnh do… while NMLT - Câu lệnh lặp <Lệnh> S Đ <Đ/K lặp> do <Lệnh>; while (<Đ/K lặp>); Câu lệnh đơn hoặc Câu lệnh phức (kẹp giữa { và }) Biểu thức C bất kỳ, thường là biểu thức quan hệ cho kết quả 0 (sai) và != 0 (đúng)
  • 19. VCVC && BBBB 1919 Câu lệnh do… while NMLT - Câu lệnh lặp int i = 0; do { printf(“%dn”, i); i++; } while (i < 10); int i = 0; printf(“%dn”, i); i++; for (; i < 10; ) { printf(“%dn”, i); i++; }
  • 20. VCVC && BBBB 2020 Câu lệnh do… while - Một số lưu ý Câu lệnh do… while là một câu lệnh đơn và có thể lồng nhau. NMLT - Câu lệnh lặp int a = 1, b; do { b = 1; do { printf(“%dn”, a + b); b = b + 2; } while (b < 20); a++; } while (a < 20);
  • 21. VCVC && BBBB 2121 Câu lệnh do… while - Một số lưu ý Câu lệnh do… while sẽ được thực hiện ít nhất 1 lần do điều kiện lặp được kiểm tra ở cuối. NMLT - Câu lệnh lặp void main() { int n; do { printf(“Nhap n: ”); scanf(“%d”, &n); } while (n < 1 || n > 100); }
  • 22. VCVC && BBBB 2222 Câu lệnh do… while - Một số lưu ý Câu lệnh do… while có thể bị lặp vô tận (loop) NMLT - Câu lệnh lặp … int n = 1; do { printf(“%d”, n); n--; } while (n < 10); n = 1; do printf(“%d”, n); while (n < 10); …
  • 23. VCVC && BBBB 2323 for, while, do… while Đều có khả năng lặp lại nhiều hành động. NMLT - Câu lệnh lặp int n = 10; for (int i = 1; i <= n; i++) printf(“%dn”, i); int i = 1; while (i <= n) { printf(“%dn”, i); i++; } int i = 1; do { printf(“%dn”, i); i++; } while (i < n);
  • 24. VCVC && BBBB 2424 for, while, do… while Số lần lặp xác định ngay trong câu lệnh for NMLT - Câu lệnh lặp int n = 10; for (int i = 1; i <= n; i++) …; int i = 1; while (i <= n) { …; } int i = 1; do { …; } while (i > n);
  • 25. VCVC && BBBB 2525 while & do… while while có thể không thực hiện lần nào. do… while sẽ được thực hiện ít nhất 1 lần. NMLT - Câu lệnh lặp int n = 100; while (n < 10) { …; } … do { printf(“Nhap n: ”); scanf(“%d”, &n); } while (n > 10);
  • 26. VCVC && BBBB 2626 Bài tập thực hành 3. Nhập một số nguyên dương n (n > 0). Hãy cho biết: a. Có phải là số đối xứng? Ví dụ: 121, 12321, … b. Có phải là số chính phương? Ví dụ: 4, 9, 16, … c. Có phải là số nguyên tố? Ví dụ: 2, 3, 5, 7, … d. Chữ số lớn nhất và nhỏ nhất? e. Các chữ số có tăng dần hay giảm dần không? NMLT - Câu lệnh lặp
  • 27. VCVC && BBBB 2727 Bài tập thực hành 4. Nhập một số nguyên dương n. Tính: a. S = 1 + 2 + … + n b. S = 12 + 22 + … + n2 c. S = 1 + 1/2 + … + 1/n d. S = 1*2*…*n = n! e. S = 1! + 2! + … + n! 4. Nhập 3 số nguyên a, b và n với a, b < n. Tính tổng các số nguyên dương nhỏ hơn n chia hết cho a nhưng không chia hết cho b. 5. Tính tổng các số nguyên tố nhỏ hơn n (0 < n < 50) NMLT - Câu lệnh lặp
  • 28. VCVC && BBBB 2828 Bài tập thực hành 7. Nhập một số nguyên dương n. Xuất ra số ngược lại. Ví dụ: Nhập 1706  Xuất 6071. 8. Tìm và in lên màn hình tất cả các số nguyên trong phạm vi từ 10 đến 99 sao cho tích của 2 chữ số bằng 2 lần tổng của 2 chữ số đó. 9. Tìm ước số chung lớn nhất của 2 số nguyên dương a và b nhập từ bàn phím. 10.Nhập n. In n số đầu tiên trong dãy Fibonacy. a. a0 = a1 = 1 b. an = an – 1 + an – 2 NMLT - Câu lệnh lặp
  • 29. VCVC && BBBB 2929 Bài tập 3a NMLT - Câu lệnh lặp void main() { int n, sogoc, sodao, donvi; printf(“Nhap n: ”); scanf(“%d”, &n); sogoc = n; sodao = 0; while (sogoc > 0) { donvi = sogoc % 10; sodao = sodao*10 + donvi; sogoc = sogoc / 10; } if (sodao == n) printf(“DX”); else printf(“Khong doi xung”); }
  • 30. VCVC && BBBB 3030 Bài tập 3b NMLT - Câu lệnh lặp #include <math.h> void main() { int n, n_can_nguyen; printf(“Nhap n: ”); scanf(“%d”, &n); n_can_nguyen = int(sqrt(n)); if (n_can_nguyen*n_can_nguyen == n) printf(“%d la so CP.”, n); else printf(“%d khong la so CP.”, n); }
  • 31. VCVC && BBBB 3131 Bài tập 3c NMLT - Câu lệnh lặp void main() { int n, i, souoc; printf(“Nhap n: ”); scanf(“%d”, &n); souoc = 0; for (i = 1; i <= n; i++) if (n % i == 0) souoc++; if (souoc == 2) printf(“%d la so nguyen to”); else printf(“%d ko la so nguyen to”, n); }
  • 32. VCVC && BBBB 3232 Bài tập 3d NMLT - Câu lệnh lặp void main() { int n, min, max, donvi; … min = n % 10; max = min; n = n / 10; while (n>0) { donvi = n % 10; n = n / 10; if (donvi < min) min = donvi; if (donvi > max) max = donvi; } printf(“So NN = %d, So LN = %d”, min, max); }
  • 33. VCVC && BBBB 3333 Bài tập 3e NMLT - Câu lệnh lặp void main() { int n, sotruoc, sosau; … // Nhập n sotruoc = n % 10; do { sosau = sotruoc; n = n / 10; sotruoc = n % 10; } while (n != 0 && sotruoc < sosau); if (sotruoc < sosau) printf(“Cac chu so tang dan”); else printf(“Cac chu so ko tang dan”); }
  • 34. VCVC && BBBB 3434 Bài tập 4a NMLT - Câu lệnh lặp void main() { int n, i, s; printf(“Nhap n: ”); scanf(“%d”, &n); s = 0; for (i = 1; i <= n; i++) s = s + i; printf(“1 + 2 + … + %d = %d”, n, s); }
  • 35. VCVC && BBBB 3535 Bài tập 4b NMLT - Câu lệnh lặp void main() { int n, i, s; printf(“Nhap n: ”); scanf(“%d”, &n); s = 0; for (i = 1; i <= n; i++) s = s + i*i; printf(“1^2 + 2^2 + … + %d^2 = %d”, n, s); }
  • 36. VCVC && BBBB 3636 Bài tập 4c NMLT - Câu lệnh lặp void main() { int n, i; float s; printf(“Nhap n: ”); scanf(“%d”, &n); s = 0; for (i = 1; i <= n; i++) s = s + 1.0/i; printf(“1 + 1/2 + … + 1/%d = %f”, n, s); }
  • 37. VCVC && BBBB 3737 Bài tập 4d NMLT - Câu lệnh lặp void main() { int n, i, s; printf(“Nhap n: ”); scanf(“%d”, &n); s = 1; for (i = 2; i <= n; i++) s = s * i; printf(“%d! = %d”, n, s); }
  • 38. VCVC && BBBB 3838 Bài tập 4e NMLT - Câu lệnh lặp void main() { int n, i, j, igt, s; printf(“Nhap n: ”); scanf(“%d”, &n); s = 0; for (i = 1; i <= n; i++) { igt = 1; for (j = 2; j <= i; j++) igt = igt * j; s = s + igt; } printf(“1! + 2! + … + %d! = %d”, n, s); }
  • 39. VCVC && BBBB 3939 Bài tập 5 NMLT - Câu lệnh lặp void main() { int a, b, n, i, s; do { printf(“Nhap a, b, n: ”); scanf(“%d%d%d”, &a, &b, &n); } while (a >= n || b >= n); s = 0; for (i = 1; i <= n – 1; i++) if (i % a == 0 && i % b != 0) s = s + i; printf(“Tong cac thoa yeu cau la %d”, s); }
  • 40. VCVC && BBBB 4040 Bài tập 6 NMLT - Câu lệnh lặp void main() { int n, i, j, souoc, s; do { printf(“Nhap n: ”); scanf(“%d”, &n); } while (n <= 0 || n >= 50); s = 0; for (i = 2; i <= n – 1; i++) { … // Đếm số ước của i if (souoc == 2) // Là số nguyên tố s = s + i; } printf(“Tong cac so nt < %d la %d”, n, s); }
  • 41. VCVC && BBBB 4141 Bài tập 7 NMLT - Câu lệnh lặp void main() { int n, donvi; printf(“Nhap n: ”); scanf(“%d”, &n); printf(“So dao cua %d la ”, n); while (n > 0) { donvi = n % 10; n = n / 10; printf(“%d”, donvi); } }
  • 42. VCVC && BBBB 4242 Bài tập 8 NMLT - Câu lệnh lặp void main() { int n, i, donvi, chuc; printf(“Cac so thoa yeu cau la: ”); for (i = 10; i <= 99; i++) { donvi = i % 10; chuc = i / 10; if (chuc*donvi == 2*(chuc + donvi)) printf(“%d”, i); } }
  • 43. VCVC && BBBB 4343 Bài tập 9 Ví dụ: a = 12, b = 8 Cách 1:  Cho 1 biến i chạy từ 8 trở về 1, nếu cả a và b đều chia hết cho i thì dừng và i chính là uscln.  8, 7, 6, 5, 4 => USCLN của 12 và 8 là 4. Cách 2:  USCLN của a & b (a khác b), ký hiệu (a, b) là: • (a – b, b) nếu a > b • (a, b – a) nếu b > a  (12, 8) = (4, 8) = (4, 4) = 4 NMLT - Câu lệnh lặp
  • 44. VCVC && BBBB 4444 Bài tập 9 NMLT - Câu lệnh lặp void main() { int a, b, uscln; printf(“Nhap a va b: ”); scanf(“%d%d”, &a, &b); if (a < b) uscln = a; else uscln = b; while (a % uscln != 0 || b % uscln != 0) uscln--; printf(“USCLN cua %d va %d la %d”,a, b, uscln); }
  • 45. VCVC && BBBB 4545 Bài tập 9 NMLT - Câu lệnh lặp void main() { int a, b; printf(“Nhap a va b: ”); scanf(“%d%d”, &a, &b); while (a <> b) { if (a > b) a = a – b; else b = b – a; } printf(“USCLN cua a va b la %d’, a); }
  • 46. VCVC && BBBB 4646 Bài tập 10 Dãy Fibonacy: a0 a1 a2 … an-2 an-1 an  Với a0 = a1 = 1, an = an-1 + an-2 Ví dụ: 1 1 2 3 5 8 13 21 … Xuất n phần tử đầu tiên của dãy Fibonacy  n = 1 => 1, n = 2 => 1 1  n > 2 • Lưu lại 2 phần tử trước nó là a và b • Mỗi lần tính xong cập nhật lại a và b. Nên thêm 2 phần tử ảo đầu tiên là a-2, a-1  1 0 1 1 2 3 5 8 13 21 … NMLT - Câu lệnh lặp
  • 47. VCVC && BBBB 4747 Bài tập 10 NMLT - Câu lệnh lặp void main() { int n, an, an1, an2, i; printf(“Nhap n: ”); scanf(“%d”, &n); an2 = 1; an1 = 0; printf(“%d phan tu dau tien cua day: “, n); for (i = 1; i <= n; i++) { an = an2 + an1; printf(“%d ”, an); an2 = an1; an1 = an; } }
  • 48. VCVC && BBBB 4848 Bài tập S = 1/2 + 1/4 + … + 1/2n S = 1 + 1/3 + 1/5 + … + 1/(2n+1) S = 1/(1x2 ) + 1/(2x3 ) + … + 1/(nxn+1 ) S = 1/2 + 2/3 + … + n/(n+1) S = 1 + 1/(1 + 2) + … + 1/(1 + 2 + … + n) Liệt kê tất cả ước số của số nguyên dương n Tính tổng các ước số của số nguyên dương n Đếm số lượng ước số của số nguyên dương n Tính tổng các ước số chẵn của số nguyên dương n NMLT - Câu lệnh lặp
  • 49. VCVC && BBBB 4949 Nhập một số nguyên có giá trị từ -5 đến 5