Giải bài tập sách bài tập (SBT) tin học lớp 10 kết nối tri thức bài 31: Thực hành viết chương trình đơn giản

Giải bài tập sách bài tập (SBT) tin học lớp 10 kết nối tri thức bài 31: Thực hành viết chương trình đơn giản

Trên sách bài tập (SBT) tin học lớp 10 kết nối tri thức, bài 31 là phần thực hành viết chương trình đơn giản. Sách cung cấp đáp án chuẩn và hướng dẫn giải chi tiết cho từng bài tập, giúp học sinh hiểu rõ và nắm vững kiến thức bài học.

Mục tiêu của bài tập này là giúp học sinh thực hành viết chương trình máy tính đơn giản, từ đó củng cố kiến thức về lập trình và thuật toán cơ bản. Việc thực hành này giúp học sinh rèn luyện kỹ năng lập trình, tư duy logic và xử lý vấn đề một cách hiệu quả.

Qua việc giải bài tập trong sách, học sinh sẽ có cơ hội áp dụng kiến thức học được vào thực tế, từ đó nâng cao khả năng giải quyết vấn đề và sáng tạo trong lập trình. Việc nắm vững những kiến thức này sẽ giúp học sinh chuẩn bị tốt hơn cho các bài tập và dự án lớn hơn trong tương lai.

Bài tập và hướng dẫn giải

31.1. Viết chương trình yêu cầu nhập số thực dương a. Chương trình cần kiểm soát lỗi nhập dữ liệu như sau:

Nếu số đã nhập nhỏ hơn hoặc bằng 0 thì thông báo: Nhập sai, số a phải lớn hơn 0. Hãy nhập lại.

Chương trình cần kiểm soát lỗi nhập cho đến khi nào nhập đúng thì thôi.

Trả lời: Câu trả lời đầy đủ và chi tiết hơn có thể được viết như sau:```pythonwhile True: try: a =... Xem hướng dẫn giải chi tiết

31.2. Bài toán sắp xếp: Cho trước một dãy số A, viết chương trình sắp xếp dãy số này theo thứ tự tăng dần.

Giả sử chúng ta sẽ áp dụng thuật toán sắp xếp chèn để cài đặt cho chương trình này. Ý tưởng của thuật toán này như sau: Sẽ duyệt từng phần tử của dãy A, tính từ vị trí thứ 2 trở đi. Với mỗi phần tử (giả sử A[k]), sẽ tìm cách chèn phần tử này vào đúng vị trị của dãy con phía trước A[0], A[1]....., A[k-1] sao cho dãy con này được sắp xếp đúng. Sau khi duyệt xong các phần tử của dãy thì dãy gốc đã được sắp xếp xong.

Với mỗi phần tử A[k], việc chèn vào vị trí đúng trong dãy con phía trước được thực hiện bằng một vòng lặp như sau:

j = k - 1

while j > 6 and A[j] > A[j+1]:

        A[j],A[j + 1] = A[j+1],A[j]

        j = j - 1

Đề tìm lỗi chương trình trên chúng ta áp dụng công cụ printline, in các giá trị trung gian. Với mỗi vòng lặp chính (vòng lặp for k in range(1,n)), chúng ta sẽ in ra các giá trị sau: k, A[k] và kết quả dãy A.

Chương trình được viết như sau, sau khi bổ sung các lệnh in phần tử trung gian.

dayA = (5,1,8,4,2]    # Dãy gốc cần sắp xếp

def sap_xep(A):

       n = len(A)

       for k in range(1,n):

             print("vòng",k, "số đang xét:", A[k], end = " ")

             j = k - 1

             while j > 0 and A[j] > A[j+1]:

                     A[j],A[j + 1] = A[j+1],A[j]

                    j = j - 1

             print(A)

print("Dãy gốc:",dayA)

A = dayA.copy()

sap_ xep (A)

print("Dãy đích:",A)

Em hãy viết lại chương trình trên và tiến hành kiểm thử xem chương trình có lỗi không? Nếu có thì tìm ra lỗi và sửa lại cho chương trình chạy đúng.

Trả lời: Để kiểm thử chương trình, bạn có thể sao chép mã chương trình vào một IDE (trình biên dịch và chạy... Xem hướng dẫn giải chi tiết

31.3. Viết chương trình in bảng cửu chương ra màn hình. Yêu cầu bảng cửu chương in ra thành 10 khối bao gồm 2 hàng, 5 cột như sau:

Viết chương trình in bảng cửu chương ra màn hình. Yêu cầu bảng cửu chương in ra thành 10 khối bao gồm 2 hàng, 5 cột như sau

Trả lời: Để giải câu hỏi trên, chúng ta cần thiết lập hàm st(num) và hàm space(k) như đã được mô tả trong... Xem hướng dẫn giải chi tiết

31.4. Cho trước dãy số bất kì A. Em hãy viết chương trình tìm và chỉ ra vị trí đầu tiên của dãy A mà 3 số hạng liên tiếp có giá trị là 1, 2, 3 (có thể tổng quát 3 số bất kì p, q, s). Nếu tìm thấy thì thông báo vị trí tìm thấy, nếu không thì thông báo "không tìm thấy mẫu".

Trả lời: Để viết câu trả lời đầy đủ và chi tiết hơn, ta có thể mô tả cách làm theo các bước sau:Bước 1: Khai... Xem hướng dẫn giải chi tiết

31.5. Em hãy viết chương trình nhập một xâu kí tự bất kì từ bàn phím. Cần sắp xếp lại các chữ số thì dồn sang trái, các chữ cái tiếng Anh thì dồn sang phải xâu, các kí tự khác thì giữ nguyên vị trí.

Trả lời: Để giải bài tập này, ta có thể làm như sau:1. Tạo ba biến s_tr (xâu dùng để lưu tạm các kí tự là số)... Xem hướng dẫn giải chi tiết

31.6. Em hãy viết chương trình nhập số tự nhiên n, sau đó nhập n họ tên đầy đủ học sinh trong lớp. Khi kết thúc sẽ in ra danh sách học sinh với 2 cột, cột 1 là tên, cột 2 là họ đệm của học sinh này.

Trả lời: Câu trả lời chi tiết hơn và đầy đủ hơn cho câu hỏi trên:Để giải quyết bài toán trên, ta sẽ cần sử... Xem hướng dẫn giải chi tiết

31.7. Em hãy viết chương trình nhập hai số tự nhiên Y1, Y2 là số năm, Y2 > Y1. Tính xem trong khoảng thời gian từ năm Y1 đến năm Y2 có bao nhiêu năm nhuận. Áp dụng tính xem trong thế kỉ XXI có bao nhiêu năm nhuận.

Trả lời: Để giải bài toán này, chúng ta sẽ sử dụng hai hàm. 1. Hàm nhuan(year): Hàm này sẽ trả về True nếu... Xem hướng dẫn giải chi tiết

31.8. Gọi ƯCLN(a, b) là hàm ƯCLN của hai số tự nhiên a, b. Dễ thấy ta có ƯCLN(a, b) = ƯCLN(b, a%b) nếu b > 0 và ƯCLN(a, 0) = a. Từ đó hãy viết chương trình nhập hai số a, b và tính ƯCLN của a và b.

Trả lời: Cách làm:- Ta sử dụng vòng lặp while để tính ƯCLN của hai số a, b theo công thức đã cho.- Trong vòng... Xem hướng dẫn giải chi tiết

31.9. Em hãy viết chương trình nhập số tự nhiên n > 1, sau đó in ra tất cả các ước số nguyên tố khác nhau của n theo hàng ngang trên màn hình. Ví dụ:

  • Nếu n = 10 thì in ra 2 5.
  • Nếu n = 12 thì in ra 2 3.
Trả lời: Để giải bài toán trên, ta cần thực hiện các bước sau:1. Nhập số tự nhiên n từ người dùng.2. Khởi tạo... Xem hướng dẫn giải chi tiết

31.10. Bài toán tìm tổng con lớn nhất.

Giả sử một công ty du lịch đã thiết kế một chương trình du lịch cố định đi qua lần lượt n địa điểm. Mỗi khách hàng lại có các đánh giá khác nhau cho mỗi địa điểm này. Giả sử khách hàng tên An đã đánh giá các địa điểm trong chương trình du lịch theo dãy các giá trị:

A[0], A[1], ..., A[n - 1]

Công ty muốn sắp xếp cho khách hàng An đi một phần của chương trình du lịch bằng cách đi theo một dãy con liên tục các địa điểm, ví dụ:

i, i+1,i+2,..., j

Mục đích của việc chọn chương trình cho khách hàng An là làm sao cho tổng giá trị

A[i] + A[i + 1] +... + A[j]           (1)

là lớn nhất có thể.

Cho trước dãy các đánh giá n địa điểm của chương trình du lịch, hãy thiết kế một chương trình du lịch con cho khách hàng sao cho tổng (1) là lớn nhất. Ví dụ nếu dãy các đánh giá là:

1, 7, -5, -9, 3, -1,10, -6, 5

thì chương trình du lịch con đi qua các địa điểm với đánh giá 3, -1, 10 có tổng lớn nhất tức là làm khách hàng hài lòng nhất.

Trả lời: Để giải bài toán này, ta có thể sử dụng phương pháp duyệt từng cặp điểm để tính tổng và so sánh với... Xem hướng dẫn giải chi tiết
0.46768 sec| 2243.602 kb