Giải Tin học 11 Bài 26 (Kết nối tri thức): Phương pháp làm mịn dần trong thiết kế chương trình
Với giải bài tập Tin học 11 Bài 26: Phương pháp làm mịn dần trong thiết kế chương trình sách Kết nối tri thức hay nhất, chi tiết giúp học sinh dễ dàng làm bài tập Tin học 11 Bài 26.
Giải Tin học 11 Bài 26: Phương pháp làm mịn dần trong thiết kế chương trình
Lời 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)
1. Phương pháp thiết kế làm mịn dần
1. Bước này đã thực hiện được công việc gì?
2. Kết quả vừa thực hiện với kết quả của bước trước đó khác nhau như thế nào?
Lời giải:
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.
Lời 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 đó.
Lời giải:
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
2. Thiết kế chương trình bằng phương pháp làm mịn dần
Lời giải:
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
Lời 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
Lời giải:
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.
Luyện tập
Luyện tập 1 trang 122 Tin học 11: Phát biểu sau đúng hay sai?
Lời 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.
Lời giải:
Có 5 cặp nghịch đảo là: (3,2), (3,1), (3,5), (3,4), và (2,1)
Vận dụng
Lời giải:
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
Lời giải:
Để chứng minh tính đúng đắn của thuật toán sắp xếp chèn với các lệnh thay đổi trên, ta cần chứng minh hai điều kiện sau đây:
Điều kiện ban đầu (trước khi bắt đầu vòng lặp): Sau khi thực hiện lệnh j = 1, giá trị của j đang là 1, và dãy con A[0] chỉ gồm một phần tử là A[0] (vì j-1 là 0). Do đó, dãy con này đã được sắp xếp đúng.
Điều kiện duy trì (trong quá trình vòng lặp): Trong mỗi vòng lặp của while, nếu A[j] < A[j-1], ta hoán đổi giá trị của A[j] và A[j-1] bằng lệnh Đổi chỗ A[j] và A[j-1]. Sau đó, ta giảm giá trị của j đi 1 đơn vị bằng lệnh j = j - 1. Lúc này, giá trị của A[j] là giá trị của A[j-1] trước khi hoán đổi, và giá trị của A[j-1] là giá trị của A[j] trước khi hoán đổi. Điều này đồng nghĩa với việc dãy con A[0], A[1], ..., A[j-1] đã được sắp xếp đúng sau mỗi vòng lặp.
Vậy nên, dãy con A[0], A[1], ..., A[j-1] luôn được sắp xếp đúng sau mỗi vòng lặp của while, và dãy con này sẽ không bị thay đổi giá trị trong quá trình hoán đổi. Do đó, tính đúng đắn của thuật toán sắp xếp chèn vẫn được duy trì sau khi thay toàn bộ phần chèn A[i] vào vị trí đúng của dãy con A[0], A[1], ..., A[i-1] bằng các lệnh trên.
Xem thêm lời giải bài tập Tin học lớp 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 27: Thực hành thiết kế chương trình theo phương pháp làm mịn dần
Bài 28: Thiết kế chương trình theo mô đun
Xem thêm các chương trình khác:
- Soạn văn lớp 11 Kết nối tri thức - hay nhất
- Văn mẫu lớp 11 - Kết nối tri thức
- Tóm tắt tác phẩm Ngữ văn 11 – Kết nối tri thức
- Tác giả tác phẩm Ngữ văn 11 - Kết nối tri thức
- Giải SBT Ngữ văn 11 – Kết nối tri thức
- Bố cục tác phẩm Ngữ văn 11 – Kết nối tri thức
- Giải Chuyên đề học tập Ngữ văn 11 – Kết nối tri thức
- Nội dung chính tác phẩm Ngữ văn lớp 11 – Kết nối tri thức
- Soạn văn 11 Kết nối tri thức (ngắn nhất)
- Giải sgk Toán 11 – Kết nối tri thức
- Giải Chuyên đề học tập Toán 11 – Kết nối tri thức
- Lý thuyết Toán 11 - Kết nối tri thức
- Giải sbt Toán 11 – Kết nối tri thức
- Bài tập Tiếng Anh 11 Global success theo Unit có đáp án
- Giải sgk Tiếng Anh 11 – Global success
- Giải sbt Tiếng Anh 11 - Global Success
- Trọn bộ Từ vựng Tiếng Anh 11 Global success đầy đủ nhất
- Ngữ pháp Tiếng Anh 11 Global success
- Giải sgk Vật lí 11 – Kết nối tri thức
- Lý thuyết Vật lí 11 – Kết nối tri thức
- Giải sbt Vật lí 11 – Kết nối tri thức
- Giải Chuyên đề học tập Vật lí 11 – Kết nối tri thức
- Chuyên đề dạy thêm Vật lí 11 cả 3 sách (2024 có đáp án)
- Giải sgk Hóa học 11 – Kết nối tri thức
- Giải Chuyên đề học tập Hóa học 11 – Kết nối tri thức
- Lý thuyết Hóa 11 - Kết nối tri thức
- Giải sbt Hóa học 11 – Kết nối tri thức
- Chuyên đề dạy thêm Hóa 11 cả 3 sách (2024 có đáp án)
- Giải sgk Sinh học 11 – Kết nối tri thức
- Lý thuyết Sinh học 11 – Kết nối tri thức
- Giải Chuyên đề học tập Sinh học 11 – Kết nối tri thức
- Giải sbt Sinh học 11 – Kết nối tri thức
- Giải sgk Giáo dục Kinh tế và Pháp luật 11 – Kết nối tri thức
- Giải Chuyên đề học tập Kinh tế pháp luật 11 – Kết nối tri thức
- Lý thuyết Kinh tế pháp luật 11 – Kết nối tri thức
- Giải sbt Kinh tế pháp luật 11 – Kết nối tri thức
- Giải sgk Lịch sử 11 – Kết nối tri thức
- Giải Chuyên đề học tập Lịch sử 11 – Kết nối tri thức
- Lý thuyết Lịch sử 11 - Kết nối tri thức
- Giải sbt Lịch sử 11 – Kết nối tri thức
- Giải sgk Địa lí 11 – Kết nối tri thức
- Giải Chuyên đề học tập Địa lí 11 – Kết nối tri thức
- Lý thuyết Địa lí 11 - Kết nối tri thức
- Giải sbt Địa lí 11 – Kết nối tri thức
- Giải sgk Công nghệ 11 – Kết nối tri thức
- Lý thuyết Công nghệ 11 - Kết nối tri thức
- Giải sbt Công nghệ 11 – Kết nối tri thức
- Giải sgk Giáo dục quốc phòng an ninh 11 – Kết nối tri thức
- Lý thuyết Giáo dục quốc phòng 11 – Kết nối tri thức
- Giải sbt Giáo dục quốc phòng 11 – Kết nối tri thức
- Giải sgk Hoạt động trải nghiệm 11 – Kết nối tri thức