Trang chủ Lớp 11 SGK Tin học 11 - Kết nối tri thức Chủ đề 6. Kĩ thuật lập trình Bài 29. Thực hành thiết kế chương trình theo mô đun trang 132 Tin học 11 Định hướng khoa học máy tính Kết nối tri thức: Trong nhiệm vụ trên, nếu công thức tính điểm tổng hợp của...

Bài 29. Thực hành thiết kế chương trình theo mô đun trang 132 Tin học 11 Định hướng khoa học máy tính Kết nối tri thức: Trong nhiệm vụ trên, nếu công thức tính điểm tổng hợp của...

Trả lời bài 29. Thực hành thiết kế chương trình theo mô đun trang 132 SGK Tin học 11 Định hướng khoa học máy tính Kết nối tri thức. Trong bài 28, em đã biết tầm quan trọng và ý nghĩa của việc thiết kế chương trình theo mô đun...Trong nhiệm vụ trên, nếu công thức tính điểm tổng hợp của Sea Games thay đổi thì chúng ta có

Câu hỏi:

Khởi động

Trong bài 28, em đã biết tầm quan trọng và ý nghĩa của việc thiết kế chương trình theo mô đun. Mỗi mô đun chính là một chương trình con được xác định khi phân tích thiết kế bài toán lớn. Mỗi mô đun được viết một cách độc lập, có thể sử dụng lại như các thư viện và có thể chia sẻ trong nhóm làm việc. Trong bài tập thực hành này em sẽ được tự mình thiết kế chương trình cho một bài toán hoàn chỉnh theo mô đun.

Hướng dẫn giải :

Dựa vào kiến thức trong bài để trả lời câu hỏi.

Lời giải chi tiết :

Nội dung đang được cập nhật...


Câu hỏi:

Luyện tập 1

Hãy chỉnh sửa lại chương trình trên nêu bổ sung thêm điều kiện sau vào nhiệm vụ: Trong tệp kết quả đầu ra, thứ tự các vận động viên được ghi theo thứ tự giảm dần của điểm đánh giá.

Hướng dẫn giải :

Dựa vào hướng dẫn của Nhiệm vụ trang 132-135 SGK kết hợp kiến thức thực tế của bản thân để trả lời câu hỏi.

Lời giải chi tiết :

def nhapDL(finp):

 f = open(finp)

 A = []

 B = []

 for line in f:

  s = line.split()

  A.append(s[0])

  temp = s[1:len(s)]

  temp = [float(x) for x in temp]

  B.append(temp)

 f.close()

 return A, B

def diem_gk(d):

 diem = sum(d) + d[0] + d[len(d) - 1]

 diem = diem / (len(d) + 2)

 return round(diem, 2)

def xuly(B):

 kq = []

 for i in range(len(B)):

  diem = diem_gk(B[i])

  kq.append(diem)

 return kq

def ghiDL(fout, A, B):

 f = open(fout, "w”)

 A, B = zip(*sorted(zip(A, B), key=lambda x: x[1], reverse=True))

 for i in range(len(A)):

  print(A[i], B[i], file=f)

 f.close()

finp = "seagames.inp”

fout = "ketqua.out”

DS, Diem = nhapDL(finp)

Kq = xuly(Diem)

ghiDL(fout, DS, Kq)


Câu hỏi:

Luyện tập 2

Trong nhiệm vụ trên, nếu công thức tính điểm tổng hợp của Sea Games thay đổi thì chúng ta có phải sửa lại toàn bộ chương trình hay không? Nếu cần thì chỉ phải sửa mô đun nào? Hàm nào?

Hướng dẫn giải :

Dựa vào hướng dẫn của Nhiệm vụ trang 132-135 SGK kết hợp kiến thức thực tế của bản thân để trả lời câu hỏi.

Lời giải chi tiết :

Nếu công thức tính điểm tổng hợp của Sea Games thay đổi, thì chỉ cần sửa lại hàm diem_gk(d) trong chương trình trên. Hàm diem_gk(d) là hàm tính điểm tổng hợp dựa trên công thức hiện tại đã được định nghĩa trong đoạn mã.

Nếu công thức tính điểm tổng hợp thay đổi, bạn chỉ cần thay đổi logic tính toán trong hàm diem_gk(d) để phản ánh công thức mới. Các phần khác của chương trình không thay đổi, vì chúng sử dụng hàm diem_gk(d) để tính điểm tổng hợp, do đó khi hàm này được sửa, kết quả đầu ra cũng sẽ được cập nhật theo công thức mới.


Câu hỏi:

Vận dụng 1

Cho trước số tự nhiên n, cần in ra trên màn hình dãy n số nguyên tố đầu tiên. Ví dụ nếu n = 5 thì dãy cần in ra sẽ là 2, 3, 5, 7, 11.

Hướng dẫn giải :

Vận dụng kiến thức trong bài để trả lời câu hỏi.

Lời giải chi tiết :

def is_prime(num):

 ”””Kiểm tra xem một số có phải là số nguyên tố hay không.”””

 if num <= 1:

  return False

 for i in range(2, int(num**0.5) + 1):

  if num % i == 0:

   return False

 return True

def print_prime_numbers(n):

 ”””In ra n số nguyên tố đầu tiên.”””

 count = 0

 num = 2

 while count < n:

  if is_prime(num):

   print(num)

   count += 1

  num += 1

# Số nguyên n cần in ra dãy số nguyên tố đầu tiên

n = int(input())

# Gọi hàm in ra dãy số nguyên tố

print_prime_numbers(n)


Câu hỏi:

Vận dụng 2

Trong một kì thi Tin học trẻ, mỗi học sinh sẽ phải làm 3 bài thi. Với mỗi bài, nêu học sinh làm sẽ được ban giám khảo chấm và cho điểm, nếu không làm thì sẽ không tính điểm. Sau khi thi, dữ liệu điểm thi của học sinh sẽ được lưu trong một tệp văn bản và gửi về ban tổ chức. Mẫu một tệp điểm thi có dạng sau:

image

Quy định ghi trong tệp trên như sau:

- Mỗi dòng sẽ bắt đầu bằng số báo danh của thí sinh, tiếp theo là ba giá trị điểm tương ứng với ba bài thì.

- Điểm thi sẽ là một số tự nhiên từ 0 đến 20.

- Nếu học sinh không làm thì bài đó ghi -1.

Em có nhiệm vụ tính toán tổng số điểm thi của các bạn học sinh và đưa dữ liệu ra tệp ketqua.out là danh sách ba bạn có tổng điểm cao nhất được sắp xếp giảm dần từ trên xuống dưới. Khuôn dạng dữ liệu đưa ra bao gồm: số báo danh, các điểm thi từng bài và cuối cùng là tổng điểm cả ba bài.

Ví dụ với dữ liệu trên thì kết quả như sau:

image

Hướng dẫn giải :

Vận dụng kiến thức trong bài kết hợp kiến thức thực tế của bản thân để trả lời câu hỏi.

Lời giải chi tiết :

# Đọc dữ liệu từ tệp điểm thi

with open("diemthi.inp”, "r”) as file:

 data = file.readlines()

# Tạo danh sách lưu thông tin điểm thi của các thí sinh

scores = []

for line in data:

 line = line.strip().split()# Tách dữ liệu trên mỗi dòng thành các từ

 sbd = line[0]# Lấy số báo danh của thí sinh

 diem1 = int(line[1])# Lấy điểm bài 1

 diem2 = int(line[2])# Lấy điểm bài 2

 diem3 = int(line[3])# Lấy điểm bài 3

 tong_diem = diem1 + diem2 + diem3# Tính tổng điểm

 scores.append((sbd, diem1, diem2, diem3, tong_diem))# Thêm thông tin vào danh sách

# Sắp xếp danh sách giảm dần theo tổng điểm

scores.sort(key=lambda x: x[4], reverse=True)

# Ghi kết quả vào tệp ketqua.out

with open("ketqua.out”, "w”) as file:

 for score in scores:

  sbd = score[0]

  diem1 = score[1]

  diem2 = score[2]

  diem3 = score[3]

  tong_diem = score[4]

  file.write(f”{sbd}\t{diem1}\t{diem2}\t{diem3}\t{tong_diem}\n”)

Dụng cụ học tập

Học Tin học cần sách giáo khoa, máy tính, vở ghi chép, bút mực và phần mềm học tập liên quan.

Chia sẻ

Chia sẻ qua Facebook Chia sẻ

Sách Giáo Khoa: Kết nối tri thức với cuộc sống

- Bộ sách Kết nối tri thức với cuộc sống được biên soạn cho tất cả học sinh phổ thông trên mọi miền của đất nước, giúp các em hình thành và phát triển những phẩm chất và năng lực cần có đối với người công dân Việt Nam trong thế kỉ XXI. Với thông điệp “Kết nối tri thức với cuộc sống”, bộ SGK này được biên soạn theo mô hình hiện đại, chú trọng vai trò của kiến thức, nhưng kiến thức cần được “kết nối với cuộc sống”, bảo đảm: 1) phù hợp với người học; 2) cập nhật những thành tựu khoa học hiện đại, phù hợp nền tảng văn hóa và thực tiễn Việt Nam; 3) giúp người học vận dụng để giải quyết những vấn đề của đời sống: đời sống cá nhân và xã hội, đời sống tinh thần (đạo đức, giá trị nhân văn) và vật chất (kĩ năng, nghề nghiệp).

Đọc sách

Bạn có biết?

Tin học là môn khoa học nghiên cứu về quá trình tự động hóa thông tin bằng máy tính. Đây là nền tảng của kỷ nguyên số, mở ra những cơ hội mới trong mọi lĩnh vực từ y học đến truyền thông, và đóng vai trò quan trọng trong phát triển kinh tế và xã hội.

Nguồn : Wikipedia - Bách khoa toàn thư

Tâm sự Lớp 11

Lớp 11 - Năm học quan trọng, bắt đầu hướng đến những mục tiêu sau này. Hãy học tập chăm chỉ và tìm ra đam mê của mình để có những lựa chọn đúng đắn cho tương lai!'

- Học nhưng cũng chú ý sức khỏe nhé!. Chúc các bạn học tập tốt.

Nguồn : Sưu tập

Copyright © 2024 Giai BT SGK