[SGK Tin học Lớp 11 Kết nối tri thức] 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 Định hướng khoa học máy tính Kết nối tri thức

Hướng dẫn học bà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 trang 123 SGK Tin học 11 Định hướng khoa học máy tính Kết nối tri thức - Môn Tin học Lớp 11 Lớp 11. Đây là sách giáo khoa nằm trong bộ sách 'SGK Tin học Lớp 11 Kết nối tri thức Lớp 11' được biên soạn theo chương trình đổi mới của Bộ giáo dục. Hi vọng, với cách hướng dẫn cụ thể và giải chi tiết các bé sẽ nắm bài học tốt hơ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?


Phương pháp giải:

Dựa vào kiến thức trong bài 26 kết hợp kiến thức thực tế của bản thân để trả lời câu hỏi.


Lời giải chi tiết:

Lời giải:

Phương pháp làm mịn dần, hay còn gọi là phương pháp giảm dần và chinh phục dần là một trong các cách tiếp cận tổng quát để giải quyết các bài toán cụ thể. Sơ đồ hình cây là một công cụ hữu ích để mô tả phương pháp này.

Sơ đồ hình cây là một biểu đồ hình cây đơn giản, thường được sử dụng để minh họa quá trình giải quyết bài toán bằng phương pháp làm mịn dần. Nó gồm các nút đại diện cho các bài toán con, và các nhánh đại diện cho các bước giải quyết bài toán con đó. Các nhánh này có thể tiếp tục được chia nhỏ cho đến khi không thể chia nhỏ hơn nữa (đạt được điều kiện dừng), sau đó các kết quả của các bài toán con được tổng hợp lại để đưa ra kết quả cuối cùng cho bài toán gốc.


Luyện tập 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.


Phương pháp giải:

Dựa vào hướng dẫn của Nhiệm vụ 1 trang 123, 124 SGK kết hợp kiến thức thực tế của bản thân để trả lời câu hỏi.


Lời giải chi tiết:

Lời giải:

Một ý tưởng khác để kiểm tra xem dãy n số có phải là một hoán vị của dãy số 1, 2, ..., n hay không là sử dụng tính chất đặc biệt của hoán vị. Ta biết rằng một hoán vị của dãy số từ 1 đến n sẽ có các giá trị từ 1 đến n đúng một lần, tức là không có giá trị lặp lại và không có giá trị bỏ sót. Với ý tưởng này, ta có thể thiết kế thuật toán như sau:

-Đọc dãy số vào mảng a gồm n phần tử.

-Kiểm tra độ dài của dãy a có bằng n không. Nếu không bằng n, in ra "KHÔNG" và kết thúc thuật toán.

-Khởi tạo một mảng visited gồm n phần tử, với giá trị ban đầu là False. Mảng visited này sẽ được sử dụng để đánh dấu các số đã xuất hiện trong dãy a.

-Duyệt qua từng phần tử trong dãy a, đồng thời đánh dấu số đó đã xuất hiện trong dãy a bằng cách đặt giá trị True tại vị trí tương ứng trong mảng visited.

-Kiểm tra mảng visited. Nếu một trong các phần tử của visited là False, tức là có giá trị bị bỏ sót trong dãy a, in ra "KHÔNG" và kết thúc thuật toán.

-Sau khi kiểm tra xong mảng visited, in ra "CÓ" nếu không có giá trị nào bị bỏ sót, ngược lại in ra "KHÔNG".

-Thuật toán:

function kiemTraHoanVi(a):

 n = len(a)

 visited = [False] * n

 # Kiểm tra độ dài của dãy a

 if n != len(set(a)):

  return "KHÔNG"

 # Duyệt qua từng phần tử trong dãy a

 for i in a:

  # Nếu số i đã xuất hiện trong dãy a

  if i < 1 or i > n or visited[i-1]:

   return "KHÔNG"

  visited[i-1] = True

 # Kiểm tra mảng visited

 if all(visited):

  return "CÓ"

 else:

  return "KHÔNG"


Luyện tập 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?

Phương pháp giải:

Dựa vào hướng dẫn của Nhiệm vụ 2 trang 125, 126  SGK kết hợp kiến thức thực tế của bản thân để trả lời câu hỏi.


Lời giải chi tiết:

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

Vận dụng 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.


Phương pháp giải:

Vận dụng kiến thức trong bài để trả lời câu hỏi.


Lời giải chi tiết:

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)


Vận dụng 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.


Phương pháp giải:

Vận dụng kiến thức trong bài và kiến thức thực tế của bản thân để trả lời câu hỏi.


Lời giải chi tiết:

Quy trình thiết kế theo phương pháp làm mịn dần để kiểm tra xâu kí tự có là đối xứng hay không gồm các bước sau:

Bước 1: Nhận đầu vào là xâu kí tự cần kiểm tra.

Bước 2: Loại bỏ các kí tự không cần thiết, chẳng hạn khoảng trắng và dấu cách, để chuẩn bị cho quá trình kiểm tra.

Bước 3: Chuyển đổi xâu kí tự về dạng chữ thường hoặc dạng chữ hoa (tuỳ thuộc vào yêu cầu của đề bài) để đảm bảo tính nhất quán trong quá trình kiểm tra.

Bước 4: Sử dụng một vòng lặp để so sánh các kí tự ở đầu và cuối xâu kí tự, sau đó di chuyển lần lượt về phía nhau.

Bước 5: Trong quá trình lặp lại, so sánh các kí tự ở hai vị trí tương ứng với nhau. Nếu chúng khác nhau, xâu kí tự không là đối xứng và chương trình dừng lại, trả về kết quả là "Không đối xứng".

Bước 6: Nếu các kí tự ở hai vị trí tương ứng với nhau đều giống nhau, tiếp tục di chuyển các con trỏ về phía nhau và so sánh các kí tự tiếp theo cho đến khi hoàn thành kiểm tra toàn bộ xâu kí tự.

Bước 7: Nếu tất cả các cặp kí tự ở vị trí tương ứng với nhau đều giống nhau, tức là xâu kí tự là đối xứng, chương trình dừng lại và trả về kết quả là "Đối xứng".

Bước 8: Kết thúc chương trình và đưa ra kết quả cuối cùng.

Chương trình:

def kiem_tra_doi_xung(xau):

 # Loại bỏ các kí tự không cần thiết và chuyển đổi xâu về dạng chữ thường

 xau = xau.replace(" ", "").lower()

 n = len(xau)

 # Sử dụng vòng lặp để kiểm tra từ đầu và cuối xâu kí tự

 for i in range(n // 2):

  if xau[i] != xau[n - i - 1]:

   return "Không đối xứng"

 return "Đối xứng"

Giải bài tập những môn khác

Môn Ngữ văn Lớp 11

  • Bài tập trắc nghiệm Văn Lớp 11 Cánh diều
  • Bài tập trắc nghiệm Văn Lớp 11 Cánh diều
  • Bài tập trắc nghiệm Văn Lớp 11 Chân trời sáng tạo
  • Bài tập trắc nghiệm Văn Lớp 11 Kết nối tri thức
  • Bài tập trắc nghiệm Văn Lớp 11 Chân trời sáng tạo
  • Bài tập trắc nghiệm Văn Lớp 11 Kết nối tri thức
  • Chuyên đề học tập Văn Lớp 11 Cánh diều
  • Chuyên đề học tập Văn Lớp 11 Chân trời sáng tạo
  • Chuyên đề học tập Văn Lớp 11 Kết nối tri thức
  • Đề thi, đề kiểm tra Văn Lớp 11 Kết nối tri thức
  • Đề thi, đề kiểm tra Văn Lớp 11 Chân trời sáng tạo
  • Đề thi, đề kiểm tra Văn Lớp 11 Cánh diều
  • Lý thuyết ngữ văn lớp 11
  • SBT Văn Lớp 11 Cánh diều
  • SBT Văn Lớp 11 Kết nối tri thức
  • SBT Văn Lớp 11 Chân trời sáng tạo
  • Soạn văn Lớp 11 Cánh Diều - chi tiết
  • Soạn văn Lớp 11 Cánh Diều - siêu ngắn
  • Soạn văn Lớp 11 Chân trời sáng tạo - chi tiết
  • Soạn văn Lớp 11 Kết nối tri thức siêu ngắn
  • Soạn văn Lớp 11 Cánh diều
  • Soạn văn Lớp 11 Cánh diều siêu ngắn
  • Soạn văn Lớp 11 Chân trời sáng tạo - siêu ngắn
  • Soạn văn Lớp 11 Chân trời sáng tạo siêu ngắn
  • Soạn văn Lớp 11 Kết nối tri thức - chi tiết
  • Soạn văn Lớp 11 Kết nối tri thức - siêu ngắn
  • Soạn văn Lớp 11 Chân trời sáng tạo
  • Soạn văn Lớp 11 Kết nối tri thức
  • Tác giả tác phẩm lớp 11
  • Tóm tắt, bố cục Văn Lớp 11 Kết nối tri thức
  • Tóm tắt, bố cục Văn Lớp 11 Chân trời sáng tạo
  • Tóm tắt, bố cục Văn Lớp 11 Cánh diều
  • Văn mẫu Lớp 11 Cánh diều
  • Văn mẫu Lớp 11 Kết nối tri thức
  • Văn mẫu Lớp 11 Chân trời sáng tạo
  • Môn Vật lí Lớp 11

    Môn Tiếng Anh Lớp 11

  • Bài tập trắc nghiệm Tiếng Anh Lớp 11 iLearn Smart World
  • Bài tập trắc nghiệm Tiếng Anh Lớp 11 iLearn Smart World
  • Bài tập trắc nghiệm Tiếng Anh Lớp 11 Friends Global
  • Bài tập trắc nghiệm Tiếng Anh Lớp 11 Global Success
  • Bài tập trắc nghiệm Tiếng Anh Lớp 11 Friends Global
  • Bài tập trắc nghiệm Tiếng Anh Lớp 11 Global Success
  • Đề thi, đề kiểm tra Tiếng Anh Lớp 11 iLearn Smart World
  • Đề thi, đề kiểm tra Tiếng Anh Lớp 11 friends Global
  • Đề thi, đề kiểm tra Tiếng Anh Lớp 11 Global Success
  • Đề thi, đề kiểm tra Tiếng Anh Lớp 11 Bright
  • Đề thi, đề kiểm tra Tiếng Anh Lớp 11 English Discovery
  • Lý Thuyết Tiếng Anh Lớp 11
  • SBT Tiếng Anh Lớp 11 Friends Global - Chân trời sáng tạo
  • SBT Tiếng anh Lớp 11 Bright
  • SBT Tiếng anh Lớp 11 Friends Global
  • SBT Tiếng Anh Lớp 11 iLearn Smart World
  • SBT Tiếng anh Lớp 11 iLearn Smart World
  • SBT Tiếng Anh Lớp 11 Bright
  • SBT Tiếng anh Lớp 11 English Discovery
  • SBT Tiếng Anh Lớp 11 English Discovery - Cánh buồm
  • SBT Tiếng anh Lớp 11 Global Success
  • SBT Tiếng Anh 11 Lớp 11 Global Success - Kết nối tri thức
  • SGK Tiếng Anh Lớp 11 Global Success
  • SGK Tiếng Anh 11 Lớp 11 Friends Global
  • SGK Tiếng Anh 11 Lớp 11 Bright
  • SGK Tiếng Anh 11 Lớp 11 English Discovery
  • SGK Tiếng Anh 11 Lớp 11 iLearn Smart World
  • Tiếng Anh Lớp 11 Global Success
  • Tiếng Anh Lớp 11 iLearn Smart Wolrd
  • Tiếng Anh Lớp 11 Friends Global
  • Tiếng Anh Lớp 11 English Discovery
  • Tiếng Anh Lớp 11 Bright
  • Môn Hóa học Lớp 11

    Môn Sinh học Lớp 11

    Tài liệu tin học

    Tài liệu Lớp 1

    Tài liệu Lớp 2

    Tài liệu Lớp 3

    Tài liệu Lớp 4

    Tài liệu Lớp 5

    Trò chơi Powerpoint

    Sáng kiến kinh nghiệm