Đề 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: 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
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: 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ó:
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 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 ~~~~~~~~~~~~~~~~~
|