Giải SGK Tin học 10 (Cánh diều) Bài 17: Thực hành lập trình giải bài toán trên máy tính

1900.edu.vn xin giới thiệu giải bài tập Tin học lớp 10 Bài 17: Thực hành lập trình giải bài toán trên máy tính 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 17. Mời các bạn đón xem:

Giải Tin học 10 Bài 17: Thực hành lập trình giải bài toán trên máy tính

Bài 1. Cứu nạn

Bài 1 trang 117 Tin học 10: Em hãy mô tả thuật toán cho bài toán Cứu nạn sau đây bằng cách liệt kê các bước hoặc dùng sơ đồ khối.

Bài toán Cứu nạn

Một tàu đánh cá có ngư dân bị tai nạn cần cấp cứu đã gọi điện về cơ sở y tế ở đảo gần nhất cách đó d (hải lí). Để người bị tai nạn được sơ cứu sớm hơn, tàu đánh cá đổi hướng, đi thẳng về phía đảo với vận tóc v1 (hải lí/giờ), đồng thời từ đảo người ta cũng cho một tàu cứu nạn có thiết bị y tế sơ cứu đi theo đường đó tới hướng tàu cá với vận tốc 2 (hải lí/giờ). Em hãy xác định sau bao lâu hai tàu gặp nhau, khi biết dữ liệu d, v1, v2.

Trả lời: 

Vì mỗi giờ, khoảng cách giữa hai tàu giảm đi (v1 + v2) hải lí, vì vậy để hai tàu gặp nhau sẽ cần Tin học 10 Bài 17: Thực hành lập trình giải bài toán trên máy tính | Cánh diều (ảnh 1) giờ.

- Nhập dữ liệu cho v1, v2 và d

- Khoảng thời gian cần tính là Tin học 10 Bài 17: Thực hành lập trình giải bài toán trên máy tính | Cánh diều (ảnh 2) (giờ)

Tin học 10 Bài 17: Thực hành lập trình giải bài toán trên máy tính | Cánh diều (ảnh 3)

Bài 2. Dự trữ vacxin

Bài 2 trang 117 Tin học 10: Với bài toán Dự trữ vacxin sau đây, hãy thực hiện từng bước theo hướng dẫn để có chương trình giải quyết được bài toán này.

Để sẵn sàng triển khai tiêm vacxin cho địa phương có nguy cơ bùng dịch cao, người ta cần dự trữ không ít hơn n liều vacxin. Hiện nay trong kho đang có m liều vacxin. Trong nước có hai cơ sở A và B sản xuất vacxin. Nếu làm việc hết công suất cơ sở A mỗi ngày sản xuất được pa liều, còn cơ sở B sản xuất được pb liều. Em hãy xác định sớm nhất sau bao nhiêu ngày sẽ có đủ n liều vacxin.

Dữ liệu: Đưa vào từ thiết vị vào chuẩn của hệ thống, dòng đầu tiên chứa 2 số nguyên n và m (0 ≤ n, m ≤108), dòng thứ hai chứa 2 số nguyên pa và pb (0 ≤ pa, pb ≤105).

Kết quả: Đưa ra từ thiết bị ra chuẩn của hệ thống một số nguyên là số ngày sớm nhất có đủ vacxin dự trữ theo kế hoạch.

Trả lời:

- Sau mỗi ngày thì số vacxin đã có tăng lên (pa + pb) liều, điều này lặp lại cho đến khi số liều vacxin đã có không nhỏ hơn n.

- Thuật toán:

+ Nhập dữ liệu n, m, pa, pb

+ Khởi tạo giá trị cho biến t = 0

+ Sử dụng vòng lặp while cho biến t chạy cho đến khi m + (pa + pb) * n >=n thì dừng

- Chương trình:

n = int(input("Nhập số liều vacxin cần dự trữ "))

m = int(input("Nhập số liều vacxin đang có trong kho "))

pa = int(input("nhập số liều cơ sở A sản xuất được mỗi ngày "))

pb = int(input("nhập số liều cơ sở B sản xuất được mỗi ngày "))

t = 0

while m + (pa + pb) * t < n:

t = t + 1

print("Số ngày cần thiết là ", t)

Tin học 10 Bài 17: Thực hành lập trình giải bài toán trên máy tính | Cánh diều (ảnh 4)

Vận dụng (trang 118)

Vận dụng trang 118 Tin học 10: Trong một hoạt động ngoại khóa của lớp, giáo viên chủ nhiệm đã chụp được một số bức ảnh, các bức ảnh được lưu trên máy tính có kích thước tương ứng là d1, d2, …, dn (đơn vị Kb).

Giáo viên dự định ghi một số đĩa CD làm phần thưởng cho học sinh. Đĩa CD mà giáo viên dùng chỉ có thể ghi tối đa W (đơn vị Kb). Vì tất cả các bức ảnh đều rất đẹp và thú vị nên giáo viên muốn lựa chọn các bức ảnh để ghi vào đĩa CD với tiêu chí càng nhiều bức ảnh được ghi vào đĩa CD càng tốt. Giáo viên băn khoăn và muốn biết số lượng tối đa các bức ảnh có thể ghi vào đĩa CD là bao nhiêu.

Em hãy chỉ ra kết quả từng bước thực hiện để có được chương trình nhận dữ liệu vào là các số nguyên W, d1, d2, …, dn và trả về số lượng tối đa các bức ảnh có thể ghi vào đĩa CD.

Trả lời:

W = int(input("Nhập dung lượng tối đa đĩa có thể lưu trữ"))

print("Nhập dung lượng của từng bức tranh")

ds = [int(i) for i in input().split()]

ds.sort()

t = 0

s = 0

for i in range(0, len(ds)):

s = s + ds[i]

if s <= W:

t = t + 1

else:

break

print("Số lượng tối đa các bức ảnh có thể ghi vào đĩa là: ", t)

Tin học 10 Bài 17: Thực hành lập trình giải bài toán trên máy tính | Cánh diều (ảnh 5)

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 15: Thực hành với kiểu dữ liệu danh sách

Bài 16: Kiểm thử và gỡ lỗi chương trình

Bài 18: Lập trình giải quyết bài toán trên máy tính

Bài 1: Nhóm nghề thiết kế và lập trình

Bài 2: Dự án nhỏ: Tìm hiểu về lập trình web, lập trình trò chơi và lập trình cho thiết bị di động

Câu hỏi liên quan

- Sau mỗi ngày thì số vacxin đã có tăng lên (pa + pb) liều, điều này lặp lại cho đến khi số liều vacxin đã có không nhỏ hơn n. - Thuật toán: + Nhập dữ liệu n, m, pa, pb + Khởi tạo giá trị cho biến t = 0 + Sử dụng vòng lặp while cho biến t chạy cho đến khi m + (pa + pb) * n >=n thì dừng - Chương trình: n = int(input("Nhập số liều vacxin cần dự trữ ")) m = int(input("Nhập số liều vacxin đang có trong kho ")) pa = int(input("nhập số liều cơ sở A sản xuất được mỗi ngày ")) pb = int(input("nhập số liều cơ sở B sản xuất được mỗi ngày ")) t = 0 while m + (pa + pb) * t < n: t = t + 1 print("Số ngày cần thiết là ", t)
Xem thêm
Vì mỗi giờ, khoảng cách giữa hai tàu giảm đi (v1 + v2) hải lí, vì vậy để hai tàu gặp nhau sẽ cần  giờ. - Nhập dữ liệu cho v1, v2 và d - Khoảng thời gian cần tính là  (giờ)
Xem thêm
W = int(input("Nhập dung lượng tối đa đĩa có thể lưu trữ")) print("Nhập dung lượng của từng bức tranh") ds = [int(i) for i in input().split()] ds.sort() t = 0 s = 0 for i in range(0, len(ds)): s = s + ds[i] if s <= W: t = t + 1 else: break print("Số lượng tối đa các bức ảnh có thể ghi vào đĩa là: ", t)
Xem thêm
Xem tất cả hỏi đáp với chuyên mục: Thực hành lập trình giải bài toán trên máy tính
Chủ đề:
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!