Bài 31: Thực hành thiết lập thư viện chương trình

Chủ đề 6. Kĩ thuật lập trình – Bài 31: Thực hành thiết lập thư viện chương trình – sách bài tập trang 86 lớp 11 Khoa học máy tính – Kết Nối Tri Thức, mời các em tham khảo cùng Bumbii.

Chủ đề 6. Kĩ thuật lập trình – Bài 31: Thực hành thiết lập thư viện chương trình

Câu 31.1

Tệp thư viện trong Python có phần mở rộng là:

A. lib.

B. pym.

C. module.

D. py.

Trả lời:

Đáp án D. py. là phần mở rộng của tệp thư viện trong Python.

Câu 31.2

Câu lệnh nào trong Python dùng để import tất cả các hàm của thư viện tên lib?

A. from lib import *.

B. from lib import all.

C. from lib include *

D. from lib inlcude all.

Trả lời:

Đáp án A. from lib import * là câu lệnh dùng để import tất cả các hàm của thư viện tên lib trong Python.

Câu 31.3

Câu nào sau đây là sai về thư viện trong Python?

A. Không thể để hai mô đun cùng tên trong cùng một thư viện.

B. Không thể có hai mô đun cùng tên kể cả khi chúng nằm trong hai (tệp) thư viện khác nhau.

C. Gói (package) là một thư mục gồm các tập thư viện.

D. Không cần biên dịch thư viện trước khi sử dụng.

Trả lời:

Đáp án B sai về thư viện trong Python, có thể có hai mô đun cùng tên trong hai thư viện khác nhau mà không gặp lỗi.

Câu 31.4

Năm dương lịch nhuận là năm chia hết cho 4 nhưng không chia hết cho 100 hoặc là năm chia hết cho 400. Trong một năm thì các tháng 1, 3, 5, 7, 8, 10, 12 có 31 ngày, tháng 2 có 28 ngày nếu là năm thường hoặc 29 ngày vào năm nhuận, các tháng còn lại có 30 ngày. Hãy viết thư viện calendar.py gồm hai y hàm isLeap Year(y) để kiểm tra năm y có nhuận hay không và hàm getDaysin-Month(m, y) để tính số ngày của tháng y năm m. Sau đó, viết chương trình sử dụng thư viện trên, hỏi người dùng nhập vào tháng, năm và thông báo là năm nhuận hay không và số ngày trong tháng đó.

Trả lời:

Tệp thư viện calendar.py có thể như sau:

def isLeap(y):
    if y % 4 == 0:
        if y % 100 == 0:
            if y % 400 == 0:
                return True  # Chia hết cho 400 --> năm nhuận
            else:
                return False
        else:
            return True  # Chia hết cho 4 nhưng không chia hết cho 100 --> năm nhuận
    else:
        return False

def getDaysInMonth(m, y):
    if m in [1, 3, 5, 7, 8, 10, 12]:
        return 31
    elif m == 2:
        if isLeap(y):
            return 29  # Tháng 2 trong năm nhuận có 29 ngày
        else:
            return 28  # Tháng 2 trong năm không nhuận có 28 ngày
    else:
        return 30  # Các tháng còn lại có 30 ngày

Chương trình chính main.py đặt cùng thư mục với tệp calendar.py như sau:

from calendar import *
y = int(input("Hãy nhập năm: "))
m = int(input("Hãy nhập tháng: "))

if isLeap(y):
    print("Năm ", y, "nhuận")
else:
    print("Năm ", y, "không nhuận")
print("Tháng ", m,"năm ", y, "có ", getDaysInMonth(m, y))

Câu 31.5

Xây dựng thư viện triangle.py gồm các hàm tiện ích để in ra chu vi và toạ độ trọng tâm của tam giác. Các hàm đó nhận đầu vào là một mảng hai chiều ba dòng hai cột trong đó mỗi dòng là toạ độ x, y của một đỉnh tam giác.

Trả lời:

Tệp thư viện triangle.py có thể như sau:

import math
def computrPerimeter(points): #Hàm tính chu vi
    perimeter = 0
    for i in range(3): #lặp qua các đỉnh
        length = math.sqrt(pow(points[i][0] - points[i-1][0], 2) + pow(points[i][1] - points[i-1][1], 2))
        perimeter += length
    print("Chu vi tam giác là: ", perimeter)

def getCenter(points): #Hàm tìm trọng tâm
    x = 0
    y = 0
    for i in range(3): #lặp qua các đỉnh
        x += points[i][0]
        y += points[i][1]
    print("Trọng tâm của tam giác: ("(",x/3,",",y/3,")")

Câu 31.6*

Bổ sung vào thư viện cong_thuc_ly.pyNhiệm vụ 2 trong sách giáo khoa hàm tinhTienDien (U, R, h, g) trong đó U là hiệu điện thế tính theo Vôn, R là điện trở của thiết bị đo theo Q, h là thời gian chạy theo giờ, g là đơn giá (đồng/KWh). Hãy sử dụng thư viện này để lập chương trình tính số tiền cần thanh toán khi sử dụng điện khi biết đủ các tham số trên. Sau đó, kiểm thử chương trình với U = 220 V, R = 48.4 Q, h = 3 giờ, g = 2 000 đồng/kWh thì giá trị cần tính ra là 6000 đồng.

Trả lời:

Hàm tinhTienDien trong tệp cong_thuc_ly.py như sau:

def tinhTienDien(U, R, h, g):
    if R > 0:
        P = U*U/R/1000 #vì đơn giá tính theo kWh nên tính công suất theo KW
        return P*h*g
    else:
        return 0

Chương trình chính như sau:

from cong_thuc_ly import tinhTienDien

U = int(input("Hãy nhập hiệu điện thể U(Vôn): "))
R = int(input("Hãy nhập giá trị điện trở R(Ôm): "))
h = float(input("Hãy nhập thời gian chạy h(giờ): "))
g = float(input("Hãy nhập đơn giá điện VNĐ/kwh: ")) 
print("Tiền điện phải trả: ", tinhTienDien(U, R, h, g), "VND")

Xem các bài giải khác: Giải Sách Bài Tập Lớp 11 Khoa Học Máy Tính Kết Nối Tri Thức Với Cuộc Sống

Thông tin liên hệ & mạng xã hội:
Website: https://bumbii.com/
Facebook: https://www.facebook.com/bumbiiapp
Pinterest: https://www.pinterest.com/bumbiitech

0 0 đánh giá
Article Rating
Theo dõi
Thông báo của
guest

0 Bình luận
Phản hồi nội tuyến
Xem tất cả bình luận
0
Cùng chia sẻ bình luận của bạn nào!x