Giải bài tập SGK Tin học 11 Bài tập và thực hành số 8
Để giúp các em học thật tốt bộ môn Tin học 11 nói chung cũng như nắm thật vững kiến thức Chương 6 nói riêng. eLib xin giới thiệu đến các em học sinh lớp 11 tài liệu giải bài tập và thực hành số 8 trang 117 với nộng dung cụ thể chi tiết bám, bám sát chương trình SGK hiện hành. Tài liệu bao gồm 4 câu hỏi có đáp án và hướng dẫn giải cụ thể, chi tiết nhằm giúp các em có thể tham khảo và so sánh với đáp án trả lời của mình, từ đó đánh giá được năng lực của bản thân để có kế hoạch ôn tập hiệu quả. eLib hi vọng đây là tài liệu hữu ích giúp các em ôn tập hiệu quả. Mời các em cùng tham khảo.
Mục lục nội dung
1. Giải bài 1 trang 117 SGK Tin học 11
Hãy nêu sự giống nhau và khác nhau giữa thủ tục và hàm.
Phương pháp giải
Từ nội dung chính được trình bày ở bài 17 trang 91 SGK môn Tin học 11 để phân tích và đưa ra câu trả lời.
Hướng dẫn giải
Sự giống nhau và khác nhau giữa thủ tục và hàm:
- Giống nhau: Cả thủ tục và hàm đều là chương trình con, cấu trúc giống như một chương trình trừ dòng đầu tiên và kết thúc bằng END; (thay vì END.). Cả thủ tục và hàm có thể chứa các tham số (tham số giá trị và tham số biến), cùng tuân theo quy định về khai báo và sử dụng các loại tham số này.
- Khác nhau: Việc thực hiện hàm luôn trả về giá trị kết quả thuộc kiểu xác định và giá trị đó được gán cho tên hàm.
Lời gọi hàm có thể làm tham gia vào biểu thức khác như một toán hạng.
Ví dụ: a:=unln(5,6)+1
2. Giải bài 2 trang 117 SGK Tin học 11
Chương trình con có thể không có tham số được không? Cho ví dụ.
Phương pháp giải
Dựa vào các kiến thức đã được học và nội dung chính được trình bày ở mục 1 trang 91 SGK môn Tin học 11 để phân tích và trả lời.
Hướng dẫn giải
Chương trình con có thể không có tham số.
Ví dụ 1:
procedure Ve_Hcn;
begin
writeln('* ******');
writeln (' * * ');
writeln('* ******');
end;
Ví dụ 2: Thủ tục không có tham số:
Procedure vietgidi();
Begin
Writeln('Viet mot cai gi do');
End;
Ví dụ 3: Hàm không có tham số
Function Traveso():integer;
Begin
Traveso:=3;
End;
3. Giải bài 3 trang 117 SGK Tin học 11
Hãy cho ví dụ chương trình con có nhiều hơn một kết quả ra.
Phương pháp giải
Từ các kiến thức đã được học và nội dung chính được trình bày ở mục 2 trang 94, 95 SGK môn Tin học 11 để trả lời.
Hướng dẫn giải
Ví dụ chương trình con có nhiều hơn một kết quả ra:
a)
Procedure Hoan_đoi(var X, ỵ: integer);
var TG: integer;
begin
TG:= X; x:= y; y:= TG;
end;
b)
Procedure Hoan_đoi(x: integer; var y: integer);
var TG: integer;
begin
TG:= x;
X: = y , y:= TG;
end;
4. Giải bài 4 trang 117 SGK Tin học 11
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?
Phương pháp giải
Từ nội dung chính được trình bày ở mục 1 trang 96 SGK môn Tin học 11 để phân tích và trả lời.
Hướng dẫn giải
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 ;
var 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.
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.
Tham khảo thêm