Bài 1. Viết một chương trình thực hiện các công việc sau:
- Khai báo dãy a gồm 100 số nguyên và một biến nguyên N
- Nhập giá trị cho N, kiểm tra 0 < N <=100. Nếu không thoả, yêu cầu người sử dụng nhập lại
- Nhập tiếp vào N số nguyên, chứa vào dãy a từ phần tử a[0] đến a[N-1]
- Tính trung bình cộng của N số nguyên vừa nhập và in kết quả ra màn hình.
Bài 2. Viết một chương trình thực hiện các công việc sau:
- Khai báo dãy a gồm 100 số nguyên và hai biến nguyên N,M
- Nhập giá trị cho N, kiểm tra 0 < N <=100. Nếu không thoả, yêu cầu người sử dụng nhập lại
- Nhập tiếp vào N số nguyên, chứa vào dãy a từ phần tử a[0] đến a[N-1]
- Nhập giá trị cho M, kiểm tra 2 <= M <= 5. Nếu không thoả, yêu cầu người sử dụng nhập lại
- Cộng dồn N phần tử đã nhập của dãy a, chứa vào một biến T. Tuy nhiên nếu a[i] chia hết cho M, các phần tử a[i+1], a[i+2], a[i+3],…, a[i+M-1] sẽ không được cộng dồn vào T. Khi a[i] chia hết cho M, không cần kiểm tra các giá trị a[i+1], a[i+2], a[i+3],…, a[i+M-1] có chia hết cho M hay không.
- In giá trị T ra màn hình
Bài 3. Viết một chương trình thực hiện các công việc sau:
- Khai báo dãy a gồm 100 số nguyên và hai biến nguyên N,M
- Nhập giá trị cho N, kiểm tra 0 < N <=100. Nếu không thoả, yêu cầu người sử dụng nhập lại
- Nhập tiếp vào N số nguyên, chứa vào dãy a từ phần tử a[0] đến a[N-1]
- Nhập giá trị cho M, kiểm tra 2 <= M <= 5. Nếu không thoả, yêu cầu người sử dụng nhập lại
- Cộng dồn N phần tử đã nhập của dãy a, chứa vào một biến T. Tuy nhiên nếu a[i] là một số Fibonacci, các phần tử a[i+1], a[i+2], a[i+3],…, a[i+M-1] sẽ được nhân cho M trước khi được cộng dồn vào T. Nếu a[i] là một số Fibonacci, không cần kiểm tra a[i+1], a[i+2], a[i+3],…, a[i+M-1] có phải là số Fibonacci hay không.
- In giá trị T ra màn hình
Bài 4. Viết một chương trình thực hiện các công việc sau:
- Khai báo một cấu trúc POINT gồm hai thành phần là 2 số nguyên x và y
- Khai báo dãy a gồm 10 POINT và một biến nguyên N
- Nhập giá trị cho N, kiểm tra 0 < N <=10. Nếu không thoả, yêu cầu người sử dụng nhập lại
- Nhập tiếp vào N cấu trúc POINT , chứa vào dãy a từ phần tử a[0] đến a[N-1]
- Khởi động một biến tổng T = 0 và một biến fFlag = false
- Sử dụng một vòng lặp có biến đếm i, với giá trị của i thay đổi từ 0 tăng dần đến N-1, thực hiện các công việc sau trong thân vòng lặp:
+ Nếu a[i].x là một số nguyên tố và a[i].y là một số Fibonacci thì gán fFlag = true và kết thúc vòng lặp lập tức
+ Ngược lại, T = T + a[i].x
- Nếu vòng lặp kết thúc với fFlag = true thì tạo một vòng lặp mới với biến đếm j; với giá trị của j thay đổi từ giá trị hiện hành của i giảm dần về 0. Với mỗi bước lặp của vòng lặp, tiếp tục cộng dồn T = T + a[i].y
- In giá trị của T ra màn hình
Bài giải
Bài 1:
#include
#include
int main()
{
int a[100];
int N;
long int sum = 0;
cout << "\nNhap so phan tu cua mang...\n";
do
{
cout << "\nGia tri N trong khoang (0..100] : ";
cin >> N;
}
while (N <= 0 || N > 100);
cout << "\nNhap gia tri cho tung phan tu cua mang...\n";
for(int i = 0; i < N; i++)
{
cout << "\na[" << i << "] = ";
cin >> a[i];
sum += a[i];
}
cout << "\nTrung binh cong cua day so vua nhap = ";
cout << (float)sum/N;
getchar();
return 0;
}
Bài 2:
#include
#include
int main()
{
int a[100];
int N, M;
int i = 0;
long int T = 0;
cout << "\nNhap so phan tu cua mang...\n";
do
{
cout << "\nGia tri N trong khoang (0..100] : ";
cin >> N;
}
while (N <= 0 || N > 100);
cout << "\nNhap gia tri cho tung phan tu cua mang...\n";
for(i = 0; i < N; i++)
{
cout << "\na[" << i << "] = ";
cin >> a[i];
}
cout << "\nNhap so can kiem tra...\n";
do
{
cout << "\nGia tri M trong doan [2..5] : ";
cin >> M;
}
while (M < 2 || M > 5);
i = 0;
do
{
if (a[i] % M == 0)
i = i + (M - 1);
else
T = T + a[i];
i++;
}
while (i < N);
cout << "\nTong co dieu kien cua mang = ";
cout << T;
getchar();
return 0;
}
Bài 3:
#include
#include
int checkFibo(int n)
{
long int Fibo_0, Fibo_1, Fibo_2;
int flag = 0;
if(n < 0) flag = 0;
else if( n == 0 || n == 1) flag = 1;
else
{
flag = 0;
Fibo_0 = 0;
Fibo_1 = 1;
Fibo_2 = Fibo_0 + Fibo_1;
do
{
Fibo_0 = Fibo_1;
Fibo_1 = Fibo_2;
Fibo_2 = Fibo_0 + Fibo_1;
}
while(Fibo_2 < n);
if (Fibo_2 == n) flag = 1;
}
return flag;
}
int main()
{
int a[100];
int N, M;
int i = 0;
long int T = 0;
cout << "\nNhap so phan tu cua mang...\n";
do
{
cout << "\nGia tri N trong khoang (0..100] : ";
cin >> N;
}
while (N <= 0 || N > 100);
cout << "\nNhap gia tri cho tung phan tu cua mang...\n";
for(i = 0; i < N; i++)
{
cout << "\na[" << i << "] = ";
cin >> a[i];
}
cout << "\nNhap so can kiem tra...\n";
do
{
cout << "\nGia tri M trong doan [2..5] : ";
cin >> M;
}
while (M < 2 || M > 5);
i = 0;
do
{
if (checkFibo(a[i]) == 1)
{
for (int j = i; j < i + M; j++)
if (j >= N) break;
else
T = T + M * a[j];
i = i + M;
}
else
{
T = T + a[i];
i++;
}
}
while (i < N);
cout << "\nTong co dieu kien cua mang = ";
cout << T;
getchar();
return 0;
}
Bài 4:
#include
#include
#include
struct POINT
{
int x;
int y;
};
int checkFibo(int n)
{
long int Fibo_0, Fibo_1, Fibo_2;
int flag = 0;
if(n < 0) flag = 0;
else if( n == 0 || n == 1) flag = 1;
else
{
flag = 0;
Fibo_0 = 0;
Fibo_1 = 1;
Fibo_2 = Fibo_0 + Fibo_1;
do
{
Fibo_0 = Fibo_1;
Fibo_1 = Fibo_2;
Fibo_2 = Fibo_0 + Fibo_1;
}
while(Fibo_2 < n);
if (Fibo_2 == n) flag = 1;
}
return flag;
}
int checkPrime(int n)
{
int flag = 1;
if (n < 2) flag = 0;
else
for(int i = 2; i <= sqrt(n); i++)
if (n % i == 0)
{
flag = 0;
break;
}
return flag;
}
int main()
{
int N;
int i, j;
long int T = 0;
bool fFlag = false;
POINT a[10];
cout << "\nNhap so phan tu cua mang...\n";
do
{
cout << "\nGia tri N trong khoang (0..10] : ";
cin >> N;
}
while (N <= 0 || N > 10);
cout << "\nNhap gia tri cho tung phan tu cua mang...\n";
for(i = 0; i < N; i++)
{
cout << "\nNhap x, y cho phan tu thu " << i << "\n";
cout << "\na[" << i << "].x = "; cin >> a[i].x;
cout << "\na[" << i << "].y = "; cin >> a[i].y;
cout << "\n";
}
for(i = 0; i < N; i++)
{
if (checkPrime(a[i].x) == 1 && checkFibo(a[i].y) == 1)
{
fFlag = true;
break;
}
else
T = T + a[i].x;
}
if (fFlag)
{
for(j = i; j >= 0; j--)
{
T = T + a[j].y;
}
}
cout << "\nTong co dieu kien cua mang = ";
cout << T;
getchar();
return 0;
}
Chia sẻ với bạn bè của bạn: |