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.

Vận dụng

Câu hỏi 1. 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.

Bài Làm:

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)

Xem thêm Bài tập & Lời giải

Trong: Giải Tin học 11 định hướng KHMT Kết nối 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

Khởi động

Phương pháp làm mịn dần là một trong các cách tiếp cận tổng quát khi giải quyết các bài toán cụ thể. Em có thể sử dụng sơ đồ hình cây để mô tả phương pháp này không?

Xem lời giải

Luyện tập

Câu hỏi 1. Thiết kế thuật toán cho nhiệm vụ 1 với ý tưởng khác như sau: Dãy A là một hoán vị của dãy các số từ 1 đến n khi và chỉ khi dãy A có độ dài n và mọi số i từ 1 đến n đều nằm trong A.

Xem lời giải

Câu hỏi 2. Trong Nhiệm vụ 2, nếu dãy A đã được sắp xếp theo thứ tự tăng dần thì có thể cải tiến thuật toán tốt hơn được không?

Xem lời giải

Vận dụng

Câu hỏi 1. 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.

Xem lời giải

Câu hỏi 2. Xâu kí tự được gọi là đối xứng nêu thay đổi thứ tự ngược lại các kí tự của xâu thì vẫn nhận được dãy ban đầu. Ví dụ xâu “abcdcba" là đối xứng, còn xâu “1011” không là đối xứng. Thiết kế và viết chương trình kiểm tra một xâu kí tự cho trước có là đối xứng 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.

Xem lời giải

Xem thêm các bài Giải tin học 11 định hướng Khoa học máy tính kết nối tri thức, hay khác:

Xem thêm các bài Giải tin học 11 định hướng Khoa học máy tính kết nối tri thức được biên soạn cho Học kì 1 & Học kì 2 theo mẫu chuẩn của Bộ Giáo dục theo sát chương trình Lớp 11 giúp bạn học tốt hơn.

Lớp 11 | Để học tốt Lớp 11 | Giải bài tập Lớp 11

Giải bài tập SGK, SBT, VBT và Trắc nghiệm các môn học Lớp 11, dưới đây là mục lục các bài giải bài tập sách giáo khoa và Đề thi chi tiết với câu hỏi bài tập, đề kiểm tra 15 phút, 45 phút (1 tiết), đề thi học kì 1 và 2 (đề kiểm tra học kì 1 và 2) các môn trong chương trình Lớp 11 giúp bạn học tốt hơn.