Giải sách bài tập Tin học lớp 10 Bài 8, 9 Câu lệnh lặp thực hành câu lệnh lặp Cánh diều Giải SBT Tin học 10 trang 31 Câu F35 trang 31 SBT Tin 10 In ra các số lẻ Viết chương trình nhập vào số nguyên n[.]
Giải sách tập Tin học lớp 10 Bài 8, 9: Câu lệnh lặp thực hành câu lệnh lặp - Cánh diều Giải SBT Tin học 10 trang 31 Câu F35 trang 31 SBT Tin 10: In số lẻ Viết chương trình nhập vào số nguyên n in số nguyên dương lẻ không lớn n theo thứ tự tăng dần Trả lời: Bài có nhiều cách viết vịng lặp Cách 1: Sử dụng vòng lặp while: Khởi tạo x = số nguyên dương lẻ nhỏ nhất, x ≤ n ta in x sau tăng x lên đơn vị Tham khảo chương trình sau: Cách 2: Sử dụng vòng lặp for: Dãy số lẻ cần in × + 1, × + 1, × + 1, , k × 2+ 1, k giá trị số nguyên lớn thoả mãn: k × + 1≤ n, tức Tham khảo k=[n−12] chương trình sau: Cách 3: Sử dụng vòng lặp for sửa lại khai báo range ( ) để bước giá trị số in tăng lên đơn vị Tham khảo chương trình sau: Câu F36 trang 31 SBT Tin 10: In số chẵn Viết chương trình nhập vào số nguyên n in số nguyên dương chẵn không lớn n theo thứ tự giảm dần Trả lời: Tương tự F35, có nhiều cách viết vịng lặp Số ngun dương chẵn lớn không vượt n hiệu n với số dư phép chia n cho Số nguyên dương chẵn nhỏ số Cách 1: Sử dụng vòng lặp whi1e: Khởi tạo x = n -n % x > ta in x sau giảm x đơn vị Tham khảo chương trình sau: Cách 2: Sử dụng vịng lặp for Tham khảo chương trình sau: Cách 3: Ta sử dụng vịng lặp for sửa lại khai báo range để bước giá trị số in giảm đơn vị Tham khảo chương trình sau: Câu F37 trang 31 SBT Tin 10: In tổng số chia hết cho chia hết cho Với n nhập từ bàn phím, viết chương trình đưa hình tổng số tự nhiên nhỏ n chia hết cho chia hết cho Trả lời: Tham khảo chương trình sau: Câu F38 trang 31 SBT Tin 10: In tổng số chia hết cho Viết chương trình đưa hình tổng số nguyên chia hết cho không đồng thời chia hết cho phạm vi số nguyên từ m đến n-1 Ngừng tính tổng nhận tổng lớn b cho trước Các số nguyên m, n, b nhập vào từ bàn phím với m < n Trả lời: Tham khảo chương trình sau: Một số ví dụ kết chạy chương trình Giải SBT Tin học 10 trang 32 Câu F39 trang 32 SBT Tin 10: Đọc hiểu chương trình Virus X có khả lây nhiễm mạnh, sau ngày số lượng người nhiễm tăng lên gấp đôi Cụ thể, ngày hôm có p người bị nhiễm sang ngày có 2p người bị nhiễm Chương trình sau cho nhập vào số lượng người bị nhiễm đưa sau ngày số lượng người bị nhiễm vượt triệu người Em hồn thiện câu lệnh cịn khuyết để nhận chương trình Trả lời: Tham khảo chương trình sau: Câu F40 trang 32 SBT Tin 10: Tìm lỗi cho cấu trúc lặp Chương trình hình bên nhập vào hai số thực dương a, b với a < b tính tổng tất số ngun khơng nhỏ a khơng lớn b Tuy nhiên, chương trình có lỗi Chạy chương trình với a = 1,1 b = 3,9 để thấy lỗi chương trình Em tìm sửa lỗi để nhận chương trình Trả lời: Tham khảo chương trình sau: Chú ý: range (m, n) dùng để khởi tạo dãy số nguyên từ m đến n - (với m < n) Câu F41 trang 32 SBT Tin 10: Tổng chữ số Viết chương trình nhập vào số nguyên dương n in tổng chữ số biểu diễn thập phân n Trả lời: Thuật tốn áp dụng cho “tách” chữ số n, với chữ số tách ra, ta cộng dồn vào biến S Cụ thể là: - Khởi tạo S = - Lặp n chữ số - Lấy chữ số hàng đơn vị n, gọi d - Đặt S = S + d - Loại bỏ chữ số hàng đơn vị n Một số vấn đề kĩ thuật cần làm rõ: - Để lấy chữ số hàng đơn vị d n ta dùng phép tính d = n % 10 - Để loại bỏ chữ số hàng đơn vị n ta gán n //= 10 Với quy tắc tính vậy, điều kiện “n cịn chữ số” viết thành n == Bởi n cịn chữ số phép gán n = n // 10 cho n == Tham khảo chương trình sau: Câu F42 trang 32 SBT Tin 10: Tính giai thừa Viết chương trình nhập vào số nguyên dương n in giá trị giai thừa n Trả lời: Giai thừa n (kí hiệu n!) tích số nguyên dương từ tới n Ta định nghĩa quy nạp sau: Lưu ý: 0! = 1, quy ước hàm giai thừa Để tính n!, ta khởi tạo biến số nguyên F = ứng với giá trị 0! Sau với i từ tới n, ta nhân F lên i lần (F= F*i) Tham khảo chương trình sau: Câu F43 trang 32 SBT Tin 10: Tìm ước chung lớn Viết chương trình nhập vào hai số tự nhiên a, b không đồng thời in ước số chung lớn a, b Trả lời: Ước chung lớn (GCD — Greatest Common Divisor) khái niệm quan trọng số học nhiều lĩnh vực khác Mục đích tốn tìm số nguyên Z lớn đồng thời ước số a b Một cách tiếp cận đơn giản b > ta thử tất giá trị số nguyên d = b, b - 1, b - 2, , dừng lại gặp số nguyên d ước số a b Còn tất nhiên b == 0, ước số chung lớn a b a Phương pháp có hiệu suất Một phương pháp khác hiệu thuật toán Euclid (được nhà toán học người Hy Lạp đưa vào khoảng kỉ III trước cơng ngun) Thuật tốn Euclid sau: Lặp b ≠ + Tính r số dư phép chia a cho b + Thay cặp số (a, b) cặp số (b, r) - Kết thúc: Giá trị a sau vòng lặp ước chung lớn hai số ban đầu Tham khảo chương trình sau: Câu F44 trang 32 SBT Tin 10: Liệt kê ước số Viết chương trình nhập vào số nguyên dương n in tất ước số n Trả lời: Cách 1: Một giải pháp đơn giản thử giá trị số nguyên d từ l tới n, gặp giá trị ước số n in giá trị d Tham khảo chương trình sau: Ví dụ: Input Output 60 10 12 15 20 30 60 Cách 2: Cách làm chậm gặp giá trị n lớn (chẳng hạn n = 109) Một cải tiến nhỏ dựa vào nhận xét: Ngoại trừ ước d = n, tất ước số khác n khơng vượt q , ta n2 cần thử d phạm vi [1, n2] riêng ước d = n in sau Mặc dù tốc độ chương trình cải thiện gấp đơi, phương pháp chậm Cách 3: Dựa vào nhận xét: Nếu d ước số n “ d n , chắn có số nhỏ d n ước số n” Trong hai ước số d n Vì ta cần thử d phạm vi [1; n ], tìm thấy ước số d n phạm vi này, ta in d in ước Lưu ý: Trường hợp d = n d n (n số phương), ta in ước để tránh trùng lặp d Tham khảo chương trình sau: ... lời: Tham khảo chương trình sau: Một số ví dụ kết chạy chương trình Giải SBT Tin học 10 trang 32 Câu F39 trang 32 SBT Tin 10: Đọc hiểu chương trình Virus X có khả lây nhiễm mạnh, sau ngày số... Tham khảo chương trình sau: Câu F44 trang 32 SBT Tin 10: Liệt kê ước số Viết chương trình nhập vào số nguyên dương n in tất ước số n Trả lời: Cách 1: Một giải pháp đơn giản thử giá trị số nguyên... khai báo range để bước giá trị số in giảm đơn vị Tham khảo chương trình sau: Câu F37 trang 31 SBT Tin 10: In tổng số chia hết cho chia hết cho Với n nhập từ bàn phím, viết chương trình đưa hình