Sách bài tập Tin học 11 Bài 27: Thực hành thiết kế chương trình theo phương pháp làm mịn dần
Với bài toán trên, một người thiết kế đã phác thảo các bước thực hiện như sau: 1) Thiết lập hàm lap(x) tính số lần lặp của phần tử x trong A.
2) Thiết lập dãy B, các phần tử của B là số lần lặp tương ứng của các phần tử của A.
3) Tính giá trị max của B, từ đó tìm ra phần tử tương ứng của A.
Em hãy chi tiết hoá các bước trên, từ đó tìm ra lời giải của bài toán.
Lời giải:
1) Tìm tất cả các cặp chỉ số (i, j) của danh sách A với i < j.
2) Với mỗi cặp chỉ số (i, j) đã tìm được trong bước trên, nếu A[i] > A[j] thì đổi chỗ hai phần tử này.
Em hãy chi tiết hoá các công việc trên, từ đó tìm ra lời giải của bài toán.
Lời giải:
Cho trước dãy số A, viết chương trình kiểm tra xem dãy A có phải là đơn điệu tăng hay không. Dãy A được gọi là đơn điệu tăng nếu thoả mãn:
A[0] SA[1] S... SA[n-1].
Lời giải:
Có thể thiết kế bài toán trên theo phương pháp làm mịn dần theo các bước như sau:
Cho trước dãy số A bất kì. Cần thiết lập dãy số B có tính chất sau: Các phần tử của B sẽ khác nhau từng đôi một và mỗi số của B đều có thể phân tích thành tổng của hai số lấy từ dãy A.
Lời giải:
Có thể thiết kế bài toán trên theo phương pháp làm mịn dần theo các bước như sau:
1) Thiết lập dãy B rỗng.
2) Duyệt trên tất cả các cặp chỉ số (i, j) của dãy A.
3) Kiểm tra nếu A[i] + Alil chưa có trong B thì bổ sung giá trị này vào B.
4) Kết thúc và trả về dãy B.
Kết quả việc chi tiết hoá các công việc trên có thể như chương trình sau.
Cho trước hai xâu kí tự s1 và s2. Tìm xâu s dài nhất sao cho xâu s đồng thời là phần đầu (prefix) của cả hai xâu s1 và s2.
Lời giải:
Có thể thiết kế bài toán trên theo phương pháp làm mịn dần theo các bước như sau:
1) Thiết lập xâu rỗng s.
2) Duyệt đồng thời theo các kí tự của s1 và s2 từ trái sang phải, cho đến khi kết thúc một trong 2 xâu s1, s2 và dừng khi gặp vị trí khác nhau giữa hai xâu. Trong quá trình duyệt, duyệt tới đâu thì nối với s tới đó.
3) Khi kết thúc duyệt thì dừng chương trình, trả về xâu s.
Kết quả việc chi tiết hoá các công việc trên có thể như chương trình sau:
Lời giải:
Lời giải:
Xem thêm các bài giải SBT Tin học 11 Kết nối tri thức hay, chi tiết khác:
Bài 25: Thực hành xác định độ phức tạp thời gian thuật toán
Bài 26: Phương pháp làm mịn dần trong thiết kế chương trình
Bài 28: Thiết kế chương trình theo mô đun