Hãy xác định bài toán và viết thuật toán giải bài toán tính tổng các phần tử của dãy số A = { a 1 , a 2 , . . . , a n } cho trước.
t bài toán: Cho số nguyên dương N và dãy số A1, A2,…, AN . Đếm các phần tử dương có trong dãy
a. Hãy xác định Input, Output của bài toán.
b. Hãy mô tả thuật toán giải quyết bài toán trên
#include <bits/stdc++.h>
using namespace std;
long long n,i,x,dem;
int main()
{
cin>>n;
dem=0;
for (i=1; i<=n; i++)
{
cin>>x;
if (x>0) dem++;
}
cout<<dem;
return 0;
}
Hãy xác định input và output của bài toán và trình bày thuật toán để giải bài toán Cho dãy A gồm N số nguyên A … .AN - 1
a ) Hãy tính tổng của tất cả các số trong dãy
b ) Hãy đếm tất cả các số chẵn trong dãy .
c ) Hãy số lớn nhất trong dãy . d ) Hãy sắp xếp các số trong dãy thành dãy tăng
a:
#include <bits/stdc++.h>
using namespace std;
long long n,x,i,t;
int main()
{
cin>>n;
t=0;
for (i=1; i<=n; i++)
{
cin>>x;
t=t+x;
}
cout<<t;
return 0;
}
Cho dãy A gồm N số nguyên a1,a2 ,…aN. Hãy cho biết tổng tất cả các số trong dãy A và giá trị trung bình cộng của các số trong dãy A?
Hãy xác định bài toán và mô tả thuật toán giải các bài toán
#include <bits/stdc++.h>
using namespace std;
double x,t;
int n,i;
int main()
{
cin>>n;
t=0;
for (i=1; i<=n; i++)
{
cin>>x;
t=t+x;
}
cout<<"tong cac so la:"<<fixed<<setprecision(2)<<t<<endl;
cout<<"trung binh la:"<<fixed<<setprecision(2)<<t/(n*1.0);
return 0;
}
Bài 1. Bài toán và thuật toán (xác định bài toán, viết thuật toán): Cho dãy gồm N số nguyên a1,...,aN. a) Tính tổng các số hạng có giá trị chẵn/lẻ có trong dãy. b) Tính tổng các số hạng có vị trí chẵn/lẻ có trong dãy. c) Đếm các số hạng có giá trị chẵn/lẻ/bằng K có trong dãy.
Hãy mô tả thuật toán giải bài toán tính tổng các phần tử của dãy số A= {a1, a2,..., an} cho trước.
Bước 1: Gán giá trị cho 2 và biến SUM= 0 và i=0.
Bước 2: Do i=0<100 nên chuyển tới bước 3. Nếu i>100 thì chuyển tới bước 4.
Bước 3:Tăng giá trị i thêm 1 và giá trị của SUM bằng SUM+i.
Bước 4: Thông báo giái trị SUM, thuật toán kết thúc.
Kết quả thực hiện thuật toán Sum = 5050.
Bước 1: Gán giá trị cho 2 và biến SUM= 0 và i=0.
Bước 2: Do i=0<100 nên chuyển tới bước 3. Nếu i>100 thì chuyển tới bước 4.
Bước 3:Tăng giá trị i thêm 1 và giá trị của SUM bằng SUM+i.
Bước 4: Thông báo giái trị SUM, thuật toán kết thúc.
Kết quả thực hiện thuật toán Sum = 5050.
Viết thuật toán giải bài toán: Cho số nguyên dương N và dãy số A có N phần tử A1, A2, …, AN. Hãy tính trung bình cộng các số lẻ trong dãy A.
#include <bits/stdc++.h>
using namespace std;
long long n,i,x,t,dem;
int main()
{
cin>>n;
dem=0;
t=0;
for (i=1; i<=n; i++)
{
cin>>x;
if (x%2!=0)
{
dem++;
t=t+x;
}
}
double s=t*1.0/dem*1.0;
cout<<fixed<<setprecision(2)<<s;
return 0;
}
Thuật toán liệt kê:
Bước 1: Nhập n và dãy A1,A2,..,An
Bước 2: TB←0; i←1; d←0;
Bước 3: Nếu i>n thì in ra TB/d và kết thúc
Bước 4: Nếu Ai mod 2=1 thì TB←TB+Ai và d←d+1;
Bước 5: i←i+1, quay lại bước 3
a)
Input: Dãy n số nguyên
Output: Đếm xem trong dãy đó có bao nhiêu số nguyên dương
b)
Bước 1: Nhập n và nhập dãy số
Bước 2: dem←0; i←1;
Bước 3: Nếu a[i]>0 thì dem←dem+1;
Bước 4: i←i+1;
Bước 5: Nếu i<=n thì quay lại bước 3
Bước 6: Xuất dem
Bước 7: Kết thúc
Input: Số nguyên N và dãy a1,a2,...,aN
Output: Số số nguyên có trong dãy
Thuật toán:
- Bước 1: Nhập N và dãy a1,a2,...,aN
- Bước 2: d←0; i←1;
- Bước 3: Nếu i>N thì in ra có d số dương trong dãy và kết thúc
- Bước 4: Nếu ai > 0 thì d←d+1;
- Bước 5: i←i+1, quay lại bước 3
Câu 1. : Cho một dãy số. Tính tổng các số dương, tổng các số âm.
a. Xác định bài toán.
b. Viết thuật toán tính tổng các số dương, tổng các số âm.
c. Mô tả hoạt động của thuật toán. Cho biết kết quả của bài toán.
Dữ liệu thử: Dãy số | - 45 | 10 | 0 | - 15 | 48 | 23 | 50 |
a) Xác định bài toán
-Input: Dãy n số
-Output: Tổng các số dương, tổng các số âm
b) Mô tả thuật toán
-Bước 1: Nhập n và nhập dãy số
-Bước 2: t1←0; t2←0; i←1;
-Bước 3: Nếu a[i]>0 thì t1←t1+a[i]
nếu a[i]<0 thì t2←t2+a[i];
-Bước 4: i←i+1;
-Bước 5: Nếu i<=n thì quay lại bước 3
-Bước 6: Xuất t1,t2
-Bước 7: Kết thúc