Bài 10: Chương trình con và thư viện các chương trình con có sẵn

Khởi động (SGK Cánh Diều - Trang 86)

Hướng dẫn giải

Bình luận: Khi lập trình để giải quyết một bài toán có thể chia bài toán đó thành các bài toán con, viết đoạn chương trình giải quyết từng bài toán con và đặt tên cho các đoạn chương trình con đó. Việc làm này sẽ giúp giải bài toán nhanh, gọn, dễ dàng hơn.

(Trả lời bởi Mai Trung Hải Phong)
Thảo luận (1)

Hoạt động 1 (SGK Cánh Diều - Trang 86)

Hướng dẫn giải

Chia bài toán trên thành hai bài toán con:

- Bài toán 1: Tính diện tích tam giác dựa vào công thức Heron

- Bài toán 2: Tìm ra giá trị lớn nhất trong 3 số.

(Trả lời bởi Mai Trung Hải Phong)
Thảo luận (1)

Hoạt động 2 (SGK Cánh Diều - Trang 88)

Hướng dẫn giải

1) 

def ptb1(): #Giải phương trình bậc nhất

a = int(input("a = "))

b = int(input("b = "))

if a!= 0:

print("Phương trình có nghiệm duy nhất: ", -b/a)

elif b == 0:

print("Phương trình có vô số nghiệm")

else:

print("Phương trình vô nghiệm")

ptb1()

loading...

2) 

def ptb1(a, b): #Giải phương trình bậc nhất

if a!= 0:

print("Phương trình có nghiệm duy nhất: ", -b/a)

elif b == 0:

print("Phương trình có vô số nghiệm")

else:

print("Phương trình vô nghiệm")

ptb1(5, 4)

ptb1(0, 0)

ptb1(0, 4)

loading...

a) Kết quả khi chạy giống với kết quả chạy chương trình của Hình 2.

b) Do ta đã truyền trực tiếp giá trị của a và b vào hàm ptb1 nên không cần những câu lệnh nhập giá trị cho các hệ số a, b trong thân hàm.

(Trả lời bởi Mai Trung Hải Phong)
Thảo luận (1)

Luyện tập 1 (SGK Cánh Diều - Trang 90)

Hướng dẫn giải

- Chương trình bị sai ở dòng lệnh: c = a + b + BSCNN()

Lời gọi hàm sai do không truyền vào hai giá trị x, y cho hàm BSCNN()

- Dòng lệnh đúng: print("Bội chung nhỏ nhất: ", BSCNN(a, b)) do đã truyền vào hai giá trị a, b trong lời gọi hàm BSCNN(x, y)

(Trả lời bởi Mai Trung Hải Phong)
Thảo luận (1)

Luyện tập 2 (SGK Cánh Diều - Trang 91)

Hướng dẫn giải

def dientichtg(a, b, c):

p = (a + b + c)/2

s = p * (p - a) * (p - b) * (p - c)

return s**0.5

print("Diện tích tam giác: ", dientichtg(3, 4, 5))

loading...

(Trả lời bởi Mai Trung Hải Phong)
Thảo luận (1)

Vận dụng (SGK Cánh Diều - Trang 91)

Hướng dẫn giải

Chương trình: 

def dientichtg(a, b, c):

p = (a + b + c)/2

s = p * (p - a) * (p - b) * (p - c)

return s**0.5

def timMax(s1, s2, s3):

max = s1

if max < s2: max = s2

if max < s3: max = s3

return max

a, b, c = 3, 4, 5

u, v, w = 4,6, 7

p, q, r = 3.5, 4.5, 6

s1 = dientichtg(a, b, c)

s2 = dientichtg(u, v, w)

s3 = dientichtg(p, q, r)

max = timMax(s1, s2, s3)

print("Diện tích tam giác lớn nhất là: ", max)

loading...

(Trả lời bởi Mai Trung Hải Phong)
Thảo luận (1)

Câu hỏi tự kiểm tra (SGK Cánh Diều - Trang 91)

Hướng dẫn giải

Câu đúng: Ý 1

cụ thể giải thích:

1) Sử dụng chương trình con sẽ làm chương trình dễ hiểu, dễ tìm lỗi hơn.

2) Hàm có thể được gọi nhiều lần duy nhất ở chương trình chính. (Không phải 1 lần)

3) Hàm có thể không trả về giá trị nào qua tên hàm. (Chứ không phải luôn trả)

4) Python cho phép chương trình gọi một hàm do người dùng xây dựng ngoài các hàm sẵn trong các thư viện của Python. 

5) Khai báo hàm trong Python có thể không có tham số. (Không phải luôn có tham số)

(Trả lời bởi GV Nguyễn Trần Thành Đạt)
Thảo luận (1)