Giải SGK Tin học 10 (Cánh diều) Bài 10: Chương trình con và thư viện các chương trình con có sẵn

1900.edu.vn xin giới thiệu giải bài tập Tin học lớp 10 Bài 10: Chương trình con và thư viện các chương trình con có sẵn Cánh diều hay nhất, chi tiết giúp học sinh dễ dàng làm bài tập Tin học 10 Bài 10. Mời các bạn đón xem:

Giải Tin học 10 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 trang 86 Tin học 10: Khi giải quyết một bài toán, ta có thể phân chia thành một số bài toán con. Nếu lập trình để máy tính giải quyết một bài toán, em hãy bình luận về ý tưởng: Mỗi đoạn chương trình con giải quyết một bài toán con sẽ được gọi là chương trình con và được đặt tên.

Trả lờ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.

1. Khái niệm chương trình con

Hoạt động 1 trang 86 Tin học 10: Khi giải quyết một bài toán phức tạp, người ta thường phân chia bài toán đó thành một số bài toán con. Em sẽ chia bài toán sau đây thành những bài toán con nào?

Bài toán: Cho ba tam giác có độ dài ba cạnh lần lượt là a, b và c; u, v và w; p, q và r. Độ dài các cạnh đều là số thực cùng đơn vị đo. Em hãy tính diện tích của mỗi tam giác đó và đưa ra diện tích lớn nhất trong các diện tích tính được. Công thức Heron tính diện tích tam giác theo độ dài ba cạnh:

Tin học 10 Bài 10: Chương trình con và thư viện các chương trình con có sẵn | Cánh diều (ảnh 1)

Trả lờ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ố.

3. Chuyển dữ liệu cho hàm thực hiện

Hoạt động 2 trang 88 Tin học 10: Chương trình trong Hình 2 khai báo hàm ptb1(), hàm này giải phương trình bậc nhất một ẩn ax + b = 0. Khi gọi thực hiện, hàm ptb1() yêu cầu nhập các hệ số a, b từ bàn phím, biện luận và giải phương trình rồi đưa ra kết quả.

1) Em hãy soạn thảo chương trình ở Hình 2 đặt tên là “VD_ptb1.py”, sau đó chạy chương trình với các dữ liệu đầu vào như ở Hình 3 và đối chiếu kết quả.

2) Em hãy sửa lại chương trình “VD_ptb1.py” theo các bước trong Bảng 1, đặt tên là “Try_ptb1.py”, chạy thử và trả lời hai câu hỏi sau:

a) Chương trình “Try_ptb1.py” đã truyền trực tiếp hệ số a = 5, b = 4 vào lời gọi hàm ptb1(5, 4) kết quả khi chạy có khác gì với kết quả chạy chương trình ở Hình 2 không?

b) Vì sao trong chương trình “Try_ptb1.py”, thân của hàm không cần những câu lệnh nhập giá trị cho các hệ số a, b?

Tin học 10 Bài 10: Chương trình con và thư viện các chương trình con có sẵn | Cánh diều (ảnh 2)

Trả lờ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()

Tin học 10 Bài 10: Chương trình con và thư viện các chương trình con có sẵn | Cánh diều (ảnh 3)

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)

Tin học 10 Bài 10: Chương trình con và thư viện các chương trình con có sẵn | Cánh diều (ảnh 4)

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.

Luyện tập (trang 90)

Luyện tập 1 trang 90 Tin học 10: Với hàm BSCNN được xây dựng ở chương trình sau đây (Hình 8), trong những dòng lệnh có sử dụng hàm BSCNN, dòng lệnh nào đúng, dòng lệnh nào sai và tại sao?

Tin học 10 Bài 10: Chương trình con và thư viện các chương trình con có sẵn | Cánh diều (ảnh 5)

Trả lờ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)

Luyện tập 2 trang 91 Tin học 10: Chương trình ở Hình 9 xây dựng một hàm tính diện tích một tam giác bằng công thức Heron theo ba cạnh của tam giác. Em hãy hoàn thiện chương trình bằng lời gọi hàm thích hợp để đưa ra màn hình kết quả tính diện tích của tam giác có bằng lời gọi hàm thích hợp để đưa ra màn hình kết quả tính diện tích của tam giác có ba cạnh là 3, 4, 5.

Tin học 10 Bài 10: Chương trình con và thư viện các chương trình con có sẵn | Cánh diều (ảnh 6)

Trả lờ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))

Tin học 10 Bài 10: Chương trình con và thư viện các chương trình con có sẵn | Cánh diều (ảnh 7)

Vận dụng (trang 91)

Vận dụng trang 91 Tin học 10: Sử dụng kết quả của Bài 2 phần Luyện tập, em hãy viết chương trình giải bài toán ở Hoạt động 1.

Trả lờ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)

Tin học 10 Bài 10: Chương trình con và thư viện các chương trình con có sẵn | Cánh diều (ảnh 8)

Câu hỏi tự kiểm tra

Câu hỏi trang 91 Tin học 10: Trong các câu sau đây, những câu nào đúng?

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 chỉ được gọi một lần duy nhất ở chương trình chính.

3) Hàm luôn trả một giá trị qua tên hàm.

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

5) Khai báo hàm trong Python luôn có danh sách tham số.

Trả lời:

Những câu đúng: 1

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.

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

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ố.

Xem thêm các bài giải SGK Tin học lớp 10 Cánh diều hay, chi tiết khác:

Bài 8: Câu lệnh lặp

Bài 9: Thực hành câu lệnh lặp

Bài 11: Thực hành lập trình với hàm và thư viện

Bài 12: Kiểu dữ liệu Xâu ký tự - xử lý xâu ký tự

Bài 13: Thực hành dữ liệu kiểu xâu

Câu hỏi liên quan

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ố.
Xem thêm
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))
Xem thêm
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)
Xem thêm
Những câu đúng: 1 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. 3) Hàm có thể không trả về giá trị nào qua tên hàm. 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ố.
Xem thêm
- 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)
Xem thêm
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.
Xem thêm
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() 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) 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.
Xem thêm
Xem tất cả hỏi đáp với chuyên mục: Chương trình con và thư viện các chương trình con có sẵn
Bình luận (0)

Đăng nhập để có thể bình luận

Chưa có bình luận nào. Bạn hãy là người đầu tiên cho tôi biết ý kiến!