Toptailieu biên soạn và giới thiệu giải sách bài tập Tin học 10 trang 51,52,53 Bài 17, 18: Thực hành lập trình giải bài toán trên máy tính Sách bài tập Tin học 10 Cánh diều hay nhất, chi tiết sẽ giúp học sinh dễ dàng làm các bài tập từ đó nâng cao kiến thức và biết cách vận dụng phương pháp giải vào các bài tập trong SBT Tin học 10 Bài 17,18.
SBT Tin học 10 Cánh diều Bài 17, 18: Thực hành lập trình giải bài toán trên máy tính
SBT Tin học 10 trang 50 Kết nối tri thức
Câu F86 trang 50 SBT Tin học 10: Chia kẹo
Em hãy lập trình giải bài toán trên. Trước khi lập trình cần tóm tắt bài toán, xác định thuật toán và cách tổ chức dữ liệu.
Dữ liệu: Nhập vào từ thiết bị vào chuẩn:
- Dòng đầu tiên chứa số nguyên n (1 105).
- Dòng thứ hai chứa n số nguyên a1, a2, …, an (0 104, i = 1, 2, …, n)
Kết quả: Đưa ra thiết bị ra chuẩn hai số nguyên là số lượng kẹo tương ứng với số kẹo mỗi bạn đã ăn và số kẹo mỗi bạn mang về, các số đưa ra trên cùng một dòng.
Ví dụ:
Input |
Output |
9 25 16 11 12 14 0 8 30 21 |
3 18 |
Lời giải:
Tóm tắt bài toán (Mô hình toán học)
Cho:
- Số nguyên n, (1 105) và n số nguyên a1, a2, .., an (0 ≤ ai ≤104, i = 1, 2, .., n).
Yêu cầu:
- Xác định k là số lượng ai lớn hơn 0 và chia hết cho 3.
- Tính tổng (ai – 3)/3 với các ai tìm được.
Thuật toán và cách tổ chức dữ liệu
- Bước 1. Nhập dữ liệu vào (dùng kiểu danh sách cho dãy n số nguyên).
- Bước 2. Chuẩn bị tích luỹ số lượng và tổng: k = 0, s = 0.
- Bước 3. Duyệt với mọi i: Nếu ai > 0 và ai chia hết cho 3 thì tăng k và tích luỹ ai vào s.
- Bước 4. Đưa ra k và (s - 3k)/3.
Tham khảo chương trình sau:
Câu F87 trang 50 SBT Tin học 10: Điểm dừng xe
Em hãy lập trình giải bài toán trên. Trước khi lập trình cần tóm tắt bài toán, xác định thuật toán và cách tổ chức dữ liệu.
Dữ liệu: Nhập vào từ thiết bị vào chuẩn, dòng đầu tiên chứa số nguyên k, dòng thứ hai chứa số nguyên n (1 ≤ k, n ≤ 2×109).
Kết quả: Đưa ra thiết bị ra chuẩn một số nguyên là độ dài đoạn đường cần đi tiếp (tính theo mét).
Ví dụ:
Input |
Output |
800 2 100 |
300 |
Lời giải:
Tóm tắt bài toán (Mô hình toán học)
Cho:
- Các điểm (được đánh dấu) cách đều nhau k mét.
- Điểm đầu có toạ độ là 0.
- Điểm x có toạ độ là n.
Yêu cầu: Xác định khoảng cách gần nhất từ điểm x tới một điểm được đánh dấu.
Thuật toán và cách tổ chức dữ liệu:
- Bước 1. Nhập số nguyên k và n.
- Bước 2. Tính d là khoảng cách từ x tới điểm bên trái của x.
- Bước 3. Tìm min của khoảng cách từ x tới điểm bên trái x và bên phải của x.
- Bước 4. Đưa ra kết quả.
Tham khảo chương trình sau:
SBT Tin học 10 trang 51 Kết nối tri thức
Câu F88 trang 51 SBT Tin học 10: Số bị thiếu
Em hãy lập trình giải bài toán trên. Trước khi lập trình cần tóm tắt bài toán, xác định thuật toán và cách tổ chức dữ liệu.
Dữ liệu: Nhập vào từ thiết bị vào chuẩn, dòng đầu tiên chứa số nguyên n,
( ), dòng thứ 2 chứa n - 1 số nguyên dương a1, a2, …, an thoả mãn các ràng buộc đã nêu, các số cách nhau một dấu cách.
Kết quả: Đưa ra thiết bị ra chuẩn số nguyên còn thiếu.
Ví dụ:
Input |
Output |
5 2 5 1 4 |
3 |
Lời giải:
Tóm tắt bài toán (Mô hình toán học)
Cho: n và n - 1 số nguyên a1, a2, …, an-1 . Trong đó ai ≠ aj, với i ≠ j, với mọi i.
Yêu cầu: Tìm số bị thiếu không vượt quá n.
Thuật toán và cách tổ chức dữ liệu
- Nếu có đầy đủ n số thì tổng các số sẽ là
- Vậy số còn thiếu là:
- Không cần phải dùng dãy để lưu các số nhập vào.
- Các bước của thuật toán:
+ Bước 1. Nhập n.
+ Bước 2. Nhập và tính tổng các ai
+ Bước 3. Đưa ra kết quả.
Tham khảo chương trình sau:
Câu F89 trang 51 SBT Tin học 10: Trung vị
Em hãy lập trình giải bài toán trên. Trước khi lập trình cần tóm tắt bài toán, xác định thuật toán và cách tổ chức dữ liệu. Khi viết xong chương trình thì đề xuất ít nhất thêm hai bộ dữ liệu để kiểm thử chương trình.
Dữ liệu: Nhập vào từ thiết bị vào chuẩn một dòng chứa các phần tử của dãy, các số cách nhau một dấu cách.
Kết quả: Đưa ra thiết bị ra chuẩn giá trị của phần tử trung vị của dãy.
Ví dụ:
Input |
Output |
8 1 6 5 9 2 3 1 7 |
5 |
Lời giải:
Tóm tắt bài toán (Mô hình toán học)
Cho: Dãy A gồm n số nguyên.
Yêu cầu: Đưa ra phân tử trung vị (phần tử nằm ở giữa dãy đã sắp xếp).
Thuật toán và chọn kiểu dữ liệu cho các biến
- Bước 1. Nhập số nguyên n, nhập danh sách A chứa n số nguyên.
- Bước 2. Sắp xếp danh sách A.
- Bước 3. Đưa ra phần tử A [len (A) //2].
Tham khảo chương trình sau:
Ví dụ một số bộ dữ liệu để kiểm thử chương trình:
SBT Tin học 10 trang 52 Kết nối tri thức
Câu F90 trang 52 SBT Tin học 10: Lớp II
Xác định số lượng đối tượng lớp II và cường độ bức xạ Gamma của đối tượng thuộc lớp này.
Em hãy lập trình giải bài toán trên. Trước khi lập trình cần tóm tắt bài toán, xác định thuật toán và cách tổ chức dữ liệu. Khi viết xong chương trình thì đề xuất thêm ít nhất hai bộ dữ liệu để kiểm thử chương trình.
Dữ liệu: Nhập vào từ thiết bị vào chuẩn gồm một dòng chứa các số thực dương g1, g2, …, gn.
Kết quả: Đưa ra thiết bị ra chuẩn trên một dòng, mỗi số cách nhau một dấu cách, số thứ nhất là số nguyên xác định số lượng đối tượng thuộc lớp II, số thứ hai là số thực xác định cường độ bức xạ của lớp II.
Ví dụ:
Input |
Output |
1.5 2.63 1.04 4.12 2.63 4.12 2.63 |
3 2.63 |
Lời giải:
Tóm tắt bài toán (Mô hình toán học)
Cho n số thực dương dương g1, g2, …, gn.
Yêu cầu: tìm giá trị lớn thứ hai của dãy số và số phần tử đạt giá trị này.
Thuật toán 1 và cách tổ chức dữ liệu
- Bước 1. Nhập dữ liệu, lưu theo chỉ số bắt đầu từ 0 (dùng kiểu danh sách để chứa dãy số).
- Bước 2. Sắp xếp dãy số theo thứ tự giảm dần.
- Bước 3. Đếm số phần tử đạt max → k.
- Bước 4. Đếm số phần tử có giá trị đạt gk
- Bước 5. Đưa ra các giá trị tìm được.
Tham khảo chương trình sau:
Nhận xét: Chương trình trên đơn giản nhưng mất nhiều thời gian thực hiện vì phải sắp xếp
Thuật toán 2 và cách tổ chức dữ liệu
- Bước 1. Nhập dữ liệu vào (dùng kiểu danh sách cho dãy số).
- Bước 2. Tìm max của dãy số.
- Bước 3. Xoá các phần tử bằng max.
- Bước 4. Tìm max trong dãy số mới.
- Bước 5. Đưa ra max và số phần tử đạt max.
Tham khảo chương trình sau:
Ví dụ một số bộ dữ liệu để kiểm thử chương trình:
Xem thêm lời giải SBT Tin học 10 Cánh diều hay, chi tiết khác:
Bài 16: Kiểm thử và gỡ lỗi chương trình
Bài 1: Hệ nhị phân và ứng dụng. Thực hành về các phép toán bit và hệ nhị phân
CÔNG TY TNHH ĐẦU TƯ VÀ DỊCH VỤ GIÁO DỤC VIETJACK
- Người đại diện: Nguyễn Thanh Tuyền
- Số giấy chứng nhận đăng ký kinh doanh: 0108307822, ngày cấp: 04/06/2018, nơi cấp: Sở Kế hoạch và Đầu tư thành phố Hà Nội.
2021 © All Rights Reserved.