Bài 26: Phương pháp làm mịn dần trong thiết kế chương trình

Khởi động (SGK Kết nối tri thức với cuộc sống - Trang 118)

Hướng dẫn giải

- Các thuật toán và chương trình mà em đã biết đều là các thuật toán cơ bản trong lập trình và giải quyết các vấn đề thông thường. Các điểm chung của chúng bao gồm: Tính đơn giản, độ phức tạp thấp.

- Theo em, để thiết kế một thuật toán đúng giải một bái toàn cho trước cần trải qua các bước:

1. Xác định bài toán

2. Tìm cấu trúc dữ liệu biểu diễn thuật toán.

3. Tìm Thuật Toán.

4. Lập Trình (Programming)

5. Kiểm thử chương trình (Testing program)

6. Tối ưu chương trình (optimization program)

(Trả lời bởi Thanh An)
Thảo luận (1)

Hoạt động 1 (SGK Kết nối tri thức với cuộc sống - Trang 118)

Hướng dẫn giải

Tham khảo:

Xác định cách thức sắp xếp chèn: Sắp xếp chèn là một thuật toán đơn giản, trong đó từng phần tử của dãy đang xét được chèn vào vị trí đúng của dãy con đã được sắp xếp trước đó. Bước này định nghĩa cách thức sắp xếp chèn, bao gồm quá trình so sánh và di chuyển các phần tử để đưa phần tử mới vào vị trí đúng.

1. Bước này đã định nghĩa cách thức sắp xếp chèn, bao gồm cách thức so sánh và di chuyển các phần tử để đưa phần tử mới vào vị trí đúng của dãy con đã được sắp xếp trước đó.

2. Kết quả của bước này khác với kết quả của bước trước đó về cách thức sắp xếp chèn được định nghĩa và thực hiện. Bước này tập trung vào việc định nghĩa và triển khai thuật toán sắp xếp chèn cụ thể, trong khi bước trước đó có thể là các bước chuẩn bị dữ liệu, định nghĩa bài toán, hoặc thiết kế các thuật toán phụ trợ khác.

(Trả lời bởi Time line)
Thảo luận (1)

Câu hỏi 1 (SGK Kết nối tri thức với cuộc sống - Trang 120)

Hướng dẫn giải

Bước đơn giản nhất của bài toán sắp xếp chèn mà có thể thực hiện ngay bằng các lệnh lập trình là quá trình di chuyển các phần tử để đưa phần tử mới vào vị trí đúng của dãy con đã được sắp xếp trước đó.

tham khảo!

(Trả lời bởi Thanh An)
Thảo luận (1)

Câu hỏi 2 (SGK Kết nối tri thức với cuộc sống - Trang 120)

Hướng dẫn giải

Tham khảo:

Các bước thiết kế như trên cần thay đổi như sau:

def Insertionsort(A):

 n=len(A)

 for i in range(1,n):

  value=A[i]

 j=i-1

 while j>=0 and A[j]<value:

  A[j+1]=A[j]

  j=j-1

 A[j+1]=value

(Trả lời bởi Time line)
Thảo luận (1)

Hoạt động 2 (SGK Kết nối tri thức với cuộc sống - Trang 120)

Hướng dẫn giải

tham khảo!

def nghichdao(A):

 n = len(A)

 count = 0

 for i in range(n-1):

  for j in range(i+1, n):

   if A[i] > A[j]:

    count = count + 1

 return count

(Trả lời bởi Thanh An)
Thảo luận (1)

Câu hỏi 1 (SGK Kết nối tri thức với cuộc sống - Trang 122)

Hướng dẫn giải

Với Bài toán 1 có thể tách các dòng lệnh từ 4 đến 9 thành một hàm con độc lập

(Trả lời bởi Time line)
Thảo luận (1)

Câu hỏi 2 (SGK Kết nối tri thức với cuộc sống - Trang 122)

Hướng dẫn giải

tham khảo!

Bước thực hiện để tìm các cặp phần tử nghịch đảo trong Python có thể được thực hiện theo nhiều cách khác nhau và tùy thuộc vào cách tiếp cận của người lập trình. Giả sử chúng ta đang thực hiện các bước sau để giải quyết bài toán tìm các cặp phần tử nghịch đảo trong Python:

- Tạo một danh sách các số nguyên cần tìm các cặp phần tử nghịch đảo.

- Tạo một danh sách trống để lưu các cặp phần tử nghịch đảo tìm được.

- Duyệt qua từng phần tử trong danh sách các số nguyên, và cho vào một vòng lặp trong đó duyệt qua các phần tử còn lại của danh sách.

- Tại mỗi cặp phần tử được duyệt qua, kiểm tra xem tích của chúng có bằng 1 không. Nếu có, thêm cặp phần tử này vào danh sách chứa các cặp phần tử nghịch đảo.

Một vài thay đổi quan trọng có thể được thực hiện so với cách tiếp cận mặc định này ví dụ như sử dụng thuật toán tìm kiếm nhị phân để tìm các cặp phần tử nghịch đảo thay vì duyệt qua từng phần tử hoặc sử dụng một thư viện bên ngoài như NumPy để thực hiện tính toán và tìm kiếm các cặp phần tử nghịch đảo. Tuy nhiên các bước cơ bản được giới thiệu ở trên vẫn được sử dụng rộng rãi và cung cấp một cách tiếp cận đơn giản và hiệu quả để giải quyết bài toán tìm các cặp phần tử nghịch đảo trong Python.

(Trả lời bởi Thanh An)
Thảo luận (1)

Luyện tập 1 (SGK Kết nối tri thức với cuộc sống - Trang 122)

Hướng dẫn giải

Phát biểu trên là đúng. Khi thiết kế chương trình, việc đầu tiên là hiểu rõ yêu cầu chung của bài toán, xác định đầu vào và đầu ra của bài toán. Việc này giúp định hướng rõ ràng cho quá trình thiết kế, đảm bảo rằng chương trình được xây dựng đúng theo yêu cầu của bài toán và đáp ứng được các yêu cầu của người dùng. Sau đó, mới đi vào chi tiết thiết kế chương trình, bao gồm việc lựa chọn thuật toán, cấu trúc dữ liệu, giao diện người dùng, kiểm tra lỗi, v.v. Việc đúng đắn từ đầu sẽ giúp tiết kiệm thời gian và nguồn lực trong quá trình phát triển chương trình.

(Trả lời bởi Thanh An)
Thảo luận (1)

Luyện tập 2 (SGK Kết nối tri thức với cuộc sống - Trang 122)

Hướng dẫn giải

Có 5 cặp nghịch đảo là: (3,2), (3,1), (3,5), (3,4), và (2,1)

(Trả lời bởi Thanh An)
Thảo luận (1)

Vận dụng 1 (SGK Kết nối tri thức với cuộc sống - Trang 122)

Hướng dẫn giải

THAM KHẢO!

def is_prime(n):

 if n <= 1:

  return "KHÔNG"# Trường hợp n <= 1 không phải số nguyên tố

 elif n <= 3:

  return "CÓ"# Trường hợp n = 2 hoặc n = 3 là số nguyên tố

 elif n % 2 == 0:

  return "KHÔNG"# Trường hợp n chẵn lớn hơn

  (Trả lời bởi Thanh An)
Thảo luận (1)