Giải Vận dụng 1 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 (trang 123) – SGK Tin học 11 Kết nối tri thức. Hướng dẫn: Vận dụng kiến thức trong bài để trả lời câu hỏi.
Câu hỏi/Đề bài:
Cho dãy số A = A[0], A[1]. …. A[n — 1]. Thiết kế và viết chương trình kiểm tra trong dãy A có hai phân tử nào trùng nhau hay không. Cần đưa ra câu trả lời là “có” hay “không”. Yêu cầu đưa ra quy trình thiết kế theo phương pháp làm mịn dần.
Hướng dẫn:
Vận dụng kiến thức trong bài để trả lời câu hỏi.
Lời giải:
Bước 1: Xác định đầu vào và đầu ra của chương trình.
Đầu vào: Dãy số A gồm n phần tử (A[0], A[1], …, A[n-1]).
Đầu ra: Một câu trả lời là “có” nếu trong dãy A có hai phần tử trùng nhau, hoặc “không” nếu không có.
Bước 2: Xác định giải thuật kiểm tra trùng nhau.
Giải thuật đơn giản nhất là duyệt qua từng phần tử của dãy A, so sánh nó với các phần tử trước đó trong dãy để tìm kiếm phần tử trùng nhau.
Bước 3: Thiết kế mã nguồn chương trình.
Sử dụng một vòng lặp for để duyệt qua từng phần tử của dãy A từ đầu đến cuối.
Trong mỗi lần lặp, so sánh phần tử hiện tại (A[i]) với các phần tử trước đó (A[0], A[1], …, A[i-1]) để kiểm tra xem có phần tử trùng nhau hay không.
Nếu tìm thấy phần tử trùng nhau, đưa ra kết quả là “có” và kết thúc chương trình.
Nếu không tìm thấy phần tử trùng nhau sau khi đã duyệt qua toàn bộ dãy A, đưa ra kết quả là “không”.
def check_duplicate(A):
for i in range(len(A)):
for j in range(i + 1, len(A)):
if A[i] == A[j]:
return “có”
return “không”
# Đầu vào: Dãy số A
A = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
# Gọi hàm để kiểm tra
result = check_duplicate(A)
# Đầu ra: Kết quả kiểm tra
print(result)