xác định input output nêu thuật toán cho bài toán sau:
tính tích :P=1*2*3*....*N(với N là số nguyên dương
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;
}
Cho số nguyên dương N và dãy số nguyên a1,a2,…,aN. Tính tổng của các số dương trong dãy số trên. (2đ)
a. Xác định input và output ?
b. Xây dựng thuật toán cho bài toán trên bằng phương pháp liệt kê (hoặc sơ đồ khối)?
c. Mô phỏng thuật toán với ví dụ dưới đây: Với N =
i | ||||||||
ai | 3 | -4 | 6 | -5 | -12 | 7 | 0 | 8 |
Tổng |
Xác định Input, Output và viết thuật toán tính tổng S = 1 2 + 2 2 + 3 2 + . . . . + N 2 (với N nhập từ bàn phím, N là số nguyên dương).
- Xác định bài toán (0,5đ)
Input: Nhập N và dãy a 1 , a 2 , . . . , a n
Output: Đưa ra kết quả tổng S
- Thuật toán (1,75đ):
Bước 1: Nhập N và a 1 , a 2 , . . . , a n
Bước 2: S ← 0; i ← 1
Bước 3: Nếu i >Nthì đưa ra S rồi kết thúc
Bước 4: Nếu ai⟨0 thì S ←S+ a i 2
Bước 5: i ← i + 1 và quay lại Bước 3
Câu 2. Xét bài toán: Cho số nguyên dương N và dãy số A1, A2,…, AN. Hãy đưa ra màn hình các phần tử là số
lẻ 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 bằng cách liệt kê hoặc vẽ sơ đồ khối
#include <bits/stdc++.h>
using namespace std;
long long n,i,x;
int main()
{
cin>>n;
for (i=1; i<=n; i++)
{
cin>>x;
if (x%2!=0) cout<<x<<" ";
}
return 0;
}
Xác định Input và Output cho bài toán sau: Cho số nguyên dương n , tính n3
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
Hãy xác định Input, Output và viết thuật toán cho bài toán sau: Tính tổng S=1+2+3+…+N
Input: dãy số từ 1 đến N
Ouput: Tổng của tất cả số từ 1 đến N
Thuật toán liệt kê:
Bước 1: Nhâp N
Bước 2: i←1; S←0;
Bước 3: Nếu i>N in ra S và kết thúc
Bước 4: S←S+i;
Bước 5: i←i+1; quay lại bước 3
Bài 1:Xác định bài toán và mô tả thuật toán tìm các ước của 1 số nguyên
dương N.
Bài 2: Xác định bài toán và mô tả thuật toán tìm bội chung nhỏ nhất của 2 số
nguyên dương a và b ( BCNN(a,b)).
Bài 3: Hãy chỉ ra Input và Output, mô tả thuật toán của bài toán sau: Tính
tổng các số chẵn trong dãy số nguyên A = {a1, a2, …, an} cho trước
Giúp em với ạ
Câu 1 :
Tham khảo
Y tưởng : xét từng số hạng trong dãy nếu số hạng > 0 thì xếp vào một biến tổng rồi chia cho số hàng đã xếp được
Input : Dãy A gồm N số nguyên a1....aN;
Output : Trung bình cộng của các số dương;
B1 : Nhập N số nguyên a1.... aN;
B2 : TB <--- 0, dem <---- 0, i <---- 1, Tong <--- 0;
B3 : Nếu a[i] > 0 thì Tong <--- TB + a[i];
B4 : dem <--- dem + 1;
B5 : Nếu i > N thì đưa ra màn hình kết quả TB = Tong/Dem rồi kết thúc chương trình;
B 6 : i <--- i + 1 rồi quay lại B3;
Câu 2 :
Tham khảo
Ta nhận thấy rằng, bội số chung nhỏ nhất của hai số nguyên dương a, b có thể được tính theo công thức:
ab/d
trong đó d là ước chung lớn nhất của a và b.
Bởi vậy:
Nên viết hàm để tính bội chung nhỏ nhất của hai số nguyên dương vì chương trình con cần trả ra một giá trị;
- Hàm tính bội chung nhỏ nhất của hai số nguyên dương a, b cần sử dụng hàm tính ước chung lớn nhất của a và b.
- Hàm tính ước chung lớn nhất của hai số nguyên dương a, b:
function ucln (a, b: integer): integer;
var r: integer;
begin
while b>0 do begin
r: = a mod b ,a : = b ; b:= r; end; ucln:= a; and;
- Hàm tính bội chung nhỏ nhất của hai số nguyên dương a, b:
ADVERTISING Video Player is loading.This is a modal window.
The media could not be loaded, either because the server or network failed or because the format is not supported.lunction bcnn(a, b: integer): integer;
begin
bcnn:= a*b div ucln(a, b);
end;
Khi đó, chương trình con tính bội số chung nhỏ nhất của hai số nguyên dương a, b như sau:
program bai4_chuong6;
use crt ;
vai
X y: integer;
function ucln(a, b: integer): integer;
var r: integer;
begin
while b>0 do begin
r:= a mod b; a: = b ,b:= r;
end; ucln:= a;
end;
txnction bcnn(a, b: integer): integer;
begin
bcnn:= a*b div ucln(a, b);
end;
Begin
clrscr;
writeln('Nhap vao hai so can tim BCNN');
write ('x=') , readln(x); write ('y=') , readln(y);
writeln('bcnn cua hai so',x:4,'va',y:4,'la',bcnn(a,b)
readln
End.
Câu 3 : chịu
Cho dãy A gồm N số nguyên : A1,... An Đếm xem có bao nhiêu phần tử dương có trong dãy A A. Xác định Input output của bài toán B. Viết thuật toán C. Mô phỏng với N=10 dãy A gồm 4,-7,-12,9,-13,15,-20,10,-6 Giúp vơiiii
#include <bits/stdc++.h>
using namespace std;
long long x,i,n,dem;
int main()
{
cin>>n;
dem=0;
for (i=1; i<=n; i++)
{
cin>>x;
if (x>0) dem++;
}
cout<<dem;
return 0;
}