Tìm ước chung lớn nhất của 2 số nguyên dương a và b Tin học

Đề bài

Viết chương trình con (làm, thủ tục) tính bội số chung nhỏ nhất của hai số nguyên dương a, b. Hãy cho biết trong trường hợp này viết chương trình con dưới dạng hàm hay thủ tục là thuận tiện hơn. Vì sao?

Lời giải chi tiết

Viết chương trình con (hàm, thủ tục) tính bội số chung nhỏ nhất của hai số nguyên dương a, b.

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:

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.

Khi chạy chương trình, giả sử nhập x= 5, y- 4 thì bội chung nhỏ nhất của X và y là 20. Kết quả chương trình như hình 82 dưới đây:

Tìm ước chung lớn nhất của 2 số nguyên dương a và b Tin học

Như vậy, trong trường hợp này ta viết chương trình con dưới dạng hàm là thuận tiện hơn so với viết chương trình con dưới dạng thủ tục. Vì ít khi chúng ta chỉ tính riêng bội chung nhỏ nhất mà bội chung nhỏ nhất chỉ để phục vụ một việc nào đó tiếp theo. Nếu sử dụng hàm thì ta có thể dùng lời gọi hàm để tham gia vào các biểu thức toán học khác. Còn sử dụng thủ tục thì chúng ta không thể làm được như vậy.

Loigiaihay.com

  • lý thuyết
  • trắc nghiệm
  • hỏi đáp
  • bài tập sgk

Viết chương trình tìm ước chung lớn nhất của 2 số a và b (a,b là các số nhập từ bàn phím)

P/s: Giúp mk với.

Các câu hỏi tương tự

Với giải câu 17.17 trang 69 sbt Tin học lớp 6 bộ sách Kết nối tri thức với cuộc sống được biên soạn lời giải chi tiết sẽ giúp học sinh biết cách làm bài tập môn Tin học 6. Mời các bạn đón xem:

Giải SBT Tin học 6 Bài 17. Chương trình máy tính - Kết nối tri thức

Cây 17.16 trang 69 sbt Tin học 6: Cho sơ đồ khối thuật toán tìm ước chung lớn nhất của hai số a, b như Hình 27:

Tìm ước chung lớn nhất của 2 số nguyên dương a và b Tin học

a) Hãy xác định đầu vào, đầu ra của thuật toán

b) Với a=18, b=24 hãy thực hiện từng bước theo sơ đồ khối thuật toán

c) Em hãy lấy ví dụ với dữ liệu đầu vào khác câu b và chạy thuật toán bằng tay theo sơ đồ khối

d) Hãy viết chương trình Scratch thực hiện thuật toán trên

Trả lời

a) Đầu vào: hai số tự nhiên a, b

Đầu ra: ƯCLN của hai số a, b

b) Với a = 18, b = 24, thực hiện từng bước theo sơ đồ khối ta có:

Bước

Kiểm tra

Giá trị

Đầu ra

a = b

a > b

a mới

b mới

1

Sai

Sai

18

6

2

Sai

Đúng

12

6

3

Sai

Đúng

6

6

4

Đúng

ƯCLN là 6

c) Học sinh tự lấy ví dụ giá trị a, b và lập bảng liệt kê từng bước nhau câu b

d) Chương trình Scratch thực hiện thuật toán tìm ước số chung lớn nhất (Hình 42)

Hình 42

Tìm ước chung lớn nhất của 2 số nguyên dương a và b Tin học

Xem thêm lời giải bài tập Tin học lớp 6 sách Kết nối tri thức với cuộc sống hay, chi tiết khác:

Câu 17.1 trang 63 sbt Tin học 6 - KNTT: Chương trình máy tính là gì...

Program UCLN;

uses crt; var a,b : integer;

begin write ('nhap so a la ');

readln (a);

write ('nhap so b la ');

readln (b);

while a < > b do

if a >b then a := a - b else b := b - a ;

write ( ' UCLN la :' , a );

readln

end.

~~~~~~~~~~~~~~~~~~ Chúc bn học tốt ~~~~~~~~~~~~~~~~~

  • cho a và b được nhập vào từ bàn phím. Viết chương trình in ra các số chia hết cho 2 trong đoạn a và b

    21/09/2022 |   0 Trả lời

  • Trong một đợt đi dã ngoại nhân dịp kỷ niệm ngày thành lập QĐND Việt Nam 22/12, ban tổ chức dự định phát đều các vật dụng gồm áo và mũ cho các thành viên tham gia. Tính xem mỗi người được phát bao nhiêu cái áo, bao nhiêu cái mũ và tính số lượng áo, mũ còn thừa.
    Dữ liệu: Vào từ file văn bản DANGOAI.INP có cấu trúc:

    • Hàng 1: ghi hai số nguyên dương A, M là số áo và mũ (10 ≤ A, M  ≤ 103).
    • Hàng 2: ghi số nguyên dương T là số thành viên tham dự đợt dã ngoại.

    Kết quả: Ghi vào file DANGOAI.OUT có cấu trúc:

    • Hàng 1: lần lượt là số áo, số mũ mỗi thành viên được phát (mỗi số cách nhau một ký tự trắng).
    • Hàng 2: lần lượt là số áo, số mũ còn thừa.

    23/10/2022 |   0 Trả lời

  • 27/10/2022 |   0 Trả lời

  • 30/10/2022 |   1 Trả lời

  • 30/10/2022 |   1 Trả lời

  • 30/10/2022 |   1 Trả lời

  • 30/10/2022 |   1 Trả lời

  • 30/10/2022 |   1 Trả lời

  • Viết chương trình nhập vào hai số nguyên a,b từ bàn phím. In ra hai số ra màn hình trên cùng 1 dòng (khi chạy chương trình nhập a=5, =6 để kiểm tra kết quả).

    31/10/2022 |   0 Trả lời

  • 31/10/2022 |   1 Trả lời

  • 31/10/2022 |   1 Trả lời

  • 31/10/2022 |   1 Trả lời

  • 01/11/2022 |   1 Trả lời

  • viết chương trình nhập vào 2 số a và b từ bàn phím tính tổng, hiệu, thích thương của hai số a và b. tính trung bình cộng của 2 số a và b

    01/11/2022 |   0 Trả lời

  • Viết chương trình tính tổng 2 số nguyên a và b

    01/11/2022 |   0 Trả lời

  • Viết chương trình cho phép tính trung bình cộng của bốn số

    03/11/2022 |   0 Trả lời

  • phân biệt từ khóa và tên trong ngôn ngữ lập trình nêu cấu trúc trung của 1 chương trình

    04/11/2022 |   0 Trả lời

  • A. Khai báo biến

    B. Gán giá trị cho biến

    C. Tính toán với giá trị của biến

    D. Tất cả các ý trên

    06/11/2022 |   0 Trả lời

  • Viết câu lệnh tính diện tích hình chữ nhật với độ dài hai cạnh lần lượt là 5 và 7

    08/11/2022 |   0 Trả lời