Bài 5. Từ bài toán đến chương trình

H24

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 ạ

H24
24 tháng 11 2021 lúc 7:23

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.partner logo 

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

 

 

 

Bình luận (0)

Các câu hỏi tương tự
NC
Xem chi tiết
HT
Xem chi tiết
BT
Xem chi tiết
YN
Xem chi tiết
Y3
Xem chi tiết
C
Xem chi tiết
TH
Xem chi tiết
LA
Xem chi tiết
NN
Xem chi tiết