Professional Documents
Culture Documents
Biểu thức 1
S
Điều kiện
Biểu thức 2
Lưu ý:
Biểu thức 1, điều kiện, biểu thức 2 có thể có hoặc không nhưng bắt buộc phải có 2 dấu ;, nếu
không có điều kiện thì mặc định là điều kiện có giá trị true.
Ví dụ 1:
Chương trình sau sẽ đưa ra màn hình các số tự nhiên liên tiếp từ 1 đến 10:
#include <bits/stdc++.h>
using namespace std;
int main()
{
int i;
for (i=1;i<=10;i=i+1)
cout<<i<<" ";
}
Lưu ý:
- Ta có thể khai báo biến i ngay trong biểu thức 1 như sau:
for (int i=1;i<=10;i=i+1)
cout<<i<<" ";
- Lệnh gán i = i+1 thường được viết tắt là i++ hoặc ++i;
Ví dụ 2:
Chương trình sau sẽ đưa ra màn hình các số tự nhiên chẵn liên tiếp giảm dần từ 20 về 2:
#include <bits/stdc++.h>
using namespace std;
int main()
{
for (int i=20;i>=210;i--)
cout<<i<<" ";
}
2. Cấu trúc lặp while
Cấu trúc chung:
while (<điều kiện>)
câu lệnh hoặc khối lệnh;
Trong đó:
- Điều kiện: là một biểu thức cho giá trị logic (true hoặc false), nếu điều kiện cho giá trị true thì
câu lệnh hoặc khối lệnh; sẽ được thực hiện, nếu cho giá trị false thì vòng lặp kết thúc.
- Câu lệnh hoặc khối lệnh: được thực thi nếu điều kiện cho giá trị là true, sau mỗi lần thực thi
thì điều kiện lại được kiểm tra và quá trình lặp tiếp tục.
S
Điều kiện
Ví dụ 1:
Chương trình đưa ra màn hình các số tự nhiên liên tiếp từ 1 đến 10:
#include <bits/stdc++.h>
using namespace std;
int main()
{
int i =1;
while (i<=10)
{
cout<<i<<" ";
i++;
}
}
Ví dụ 2:
Chương trình đưa ra màn hình các số tự nhiên chẵn liên tiếp giảm dần từ 20 về 2:
#include <bits/stdc++.h>
using namespace std;
int main()
{
int i =20;
while (i>=2)
{
cout<<i<<" ";
i-=2;
}
}
3. Cấu trúc lặp do … while
Cấu trúc chung:
do
câu lệnh hoặc khối lệnh;
while (<điều kiện>);
Trong đó:
- Câu lệnh hoặc khối lệnh: được thực thi trước khi điều kiện được kiểm tra giá trị.
- Điều kiện: là một biểu thức cho giá trị logic (true hoặc false), nếu điều kiện cho giá trị true thì
câu lệnh hoặc khối lệnh; sẽ tiếp tục được thực hiện, nếu cho giá trị false thì vòng lặp kết thúc.
Sơ đồ khối thể hiện cấu trúc lặp do…while:
Đ S
Điều kiện
Ví dụ 1:
Chương trình đưa ra màn hình các số tự nhiên liên tiếp từ 1 đến 10:
#include <bits/stdc++.h>
using namespace std;
int main()
{
int i =1;
do
{
cout<<i<<" ";
i++;
}
while (i<=10);
}
Ví dụ 2:
Chương trình đưa ra màn hình các số tự nhiên chẵn liên tiếp giảm dần từ 20 về 2:
#include <bits/stdc++.h>
using namespace std;
int main()
{
int i =20;
do
{
cout<<i<<" ";
i-=2;
}
while (i>=2);
}
4. Lệnh break
Sử dụng lệnh break để ta có thể thoát khỏi vòng lặp ngay lập tức mà không cần biết điều kiện kết
thúc đã thỏa mãn chưa. Lệnh này hữu ích khi chúng ta muốn vòng lặp kết thúc giữa chừng thay vì kết
thúc bình thường.
Ví dụ:
Chương trình sau đưa ra các số tự nhiên liên tiếp bắt đầu từ số n, cho đến khi gặp một số là bội của
m thì thôi (n,m được nhập từ bàn phím):
#include <bits/stdc++.h>
using namespace std;
int main()
{
int n,m;
cin >>n>>m;
for (int i=n; ;i=i+1)
{
cout<<i<<" ";
if (i % m==0) break;
}
}
Hoặc sử dụng cấu trúc lặp while như sau:
#include <bits/stdc++.h>
using namespace std;
int main()
{
int n,m;
cin >>n>>m;
int i=n;
while (true)
{
cout<<i<<" ";
if (i % m==0) break;
i++;
}
}
5. Lệnh continue
Lệnh continue làm cho chương trình bỏ qua phần còn lại của khối lệnh để nhảy sang lần lặp tiếp
theo. Ví dụ sau đây đưa ra các số tự nhiên từ 1 đến 10 nhưng bỏ qua số 5:
#include <bits/stdc++.h>
using namespace std;
int main()
{
for (int i=1; i<=10; i=i+1)
{
if (i ==5) continue;
cout<<i<<" ";
}
}
Bài 1. Viết chương trình nhập vào từ file “bai1.inp” ba số nguyên a, b, c. Tìm và thông báo số bé nhất,
lớn nhất của ba số trên, kết quả đưa ra file “bai1.out” theo quy cách số bé nhất rồi đến số lớn nhất, hai
số cách nhau 1 dấu cách.
Bài 2. Nhập 3 số a, b, c bất kì từ file “bai2.inp”. Hãy kiểm tra xem ba số đó có thể là độ dài ba cạnh
của một tam giác hay không? Nếu có thì đó là tam giác nhọn, vuông hay tù? Kết quả đưa ra file
“bai2.out”, nếu là tam giác thì ghi số 1, tiếp theo nếu là tam giác nhọn thì ghi số 1, vuông thì ghi số 2,
tù thì ghi số 3. Nếu không phải tam giác thì ghi 1 số -1.
Bài 3. Viết chương trình giải bất phương trình ax + b > 0 với a, b là hai số thực được nhập từ bàn
phím.
Bài 4. Viết chương trình giải phương trình bậc hai: ax2 + bx + c = 0 với a!=0. Các hệ số a, b, c nhập từ
file “bai4.inp”, kết quả ghi ra file “bai4.out” các nghiệm của phương trình, đưa ra dòng chữ NO
SOLUTION nếu phương trình vô nghiệm.
Bài 5. Viết chương trình nhập từ file “bai5.inp” số tự nhiên N, hãy đưa ra file “bai5.out” giá trị N!.
Bài 6. Viết chương trình đọc từ file “bai6.inp” số tự nhiên N (N<1018). Yêu cầu đưa ra file “bai6.out”
tổng các chữ số của N.
Bài 7. Nhập số tự nhiên n từ file “bai7.inp”. Hãy tính các giá trị sau:
a) 1+ + +…+
b) (1+ ) * (1+ ) *(1+ )*…*(1+ )
Kết quả ghi ra file “bai7.out”.
Bài 8. Viết chương trình đọc từ file “bai8.inp” số tự nhiên N (N<106). Yêu cầu đưa ra file “bai6.out”
số các số nguyên tố không lớn hơn N.
Bài 9. Viết chương trình đọc từ file “bai9.inp” số N ở dạng nhị phân (N không quá 10 chữ số). Yêu cầu
chuyển đổi số N sang dạng thập phân, kết quả đưa ra file “bai9.out”.
Bài 10. Viết chương trình đọc từ file “bai10.inp” 2 số tự nhiên N và M (N,M <=109). Yêu cầu đưa ra
file “bai10.out” ước số chung lớn nhất và bội số chung nhỏ nhất của 2 số N và M.
Bài 11. Hai số tự nhiên a và b gọi là số bạn bè nếu tổng các ước của a (trừ 1 và chính nó) bằng b hoặc
ngược lại. Viết chương trình đọc 2 số a, b từ file “bai11.inp”, hãy kiểm tra xem a, b có phải là số bạn
bè không? Nếu đúng thì đưa ra số 1, sai thì đưa ra số -1, kết quả ghi ra file “bai11.out”.
Bài 12. Số hoàn hảo là số có tính chất tổng các ước của nó (trừ nó ra) bằng chính nó, ví dụ 6 là số hoàn
hảo vì 6 = 1+2+3, với 1, 2, 3 là ước của 6. Hãy viết chương trình đọc từ file “bai12.inp” số N, ghi ra
file “bai12.out” tất cả các số hoàn hảo trong phạm vi từ 1 đến N.