Giáo án ppt KHMT 11 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

Giáo án điện tử Tin học khoa học máy tính 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. Bài giảng được thiết kế hiện đại, sáng tạo, sinh động với đầy đủ nội dung, hình ảnh,… giúp học sinh có hứng thú học tập tiếp thu hiệu quả hơn. Giáo viên tải về có thể sử dụng luôn để giảng dạy.

Nội dung chi tiết

... Còn nữa ...

NHIỆT LIỆT CHAgrave;O ĐOacute;N CẢ LỚP ĐẾN VỚI BAgrave;I HỌC MỚI!

KHỞI ĐỘNG

Phương phaacute;p lagrave;m mịn dần lagrave; một trong caacute;c caacute;ch tiếp cận tổng quaacute;t khi giải quyết caacute;c bagrave;i toaacute;n cụ thể. Em coacute; thể sử dụng sơ đồ cacirc;y để mocirc; tả phương phaacute;p nagrave;y khocirc;ng?

BAgrave;I 27: THỰC HAgrave;NH THIẾT KẾ CHƯƠNG TRIgrave;NH THEO PHƯƠNG PHAacute;P LAgrave;M MỊN DẦN

NHIỆM VỤ THỰC HAgrave;NH

NHIỆM VỤ 1: KIỂM TRA HOAacute;N VỊ

Hoạt động nhoacute;m từ 2 - 4 HS

Bagrave;i toaacute;n. Cho trước một datilde;y n số, caacute;c số được kiacute; hiệu A[0], A[1],..., A[n-1]. Cần thiết kế chương trigrave;nh kiểm tra xem datilde;y trecirc;n coacute; phải lagrave; một hoaacute;n vị của datilde;y số 1, 2,hellip;, n hay khocirc;ng. Chương trigrave;nh cần thocirc;ng baacute;o kết quả lagrave; COacute; hoặc KHOcirc;NG.

  1. a) Tigrave;m hiểu bagrave;i toaacute;n

Cho trước datilde;y số A gồm n phần tử, cần kiểm tra xem A coacute; phải lagrave; một hoaacute;n vị của datilde;y số 1, 2,..., n hay khocirc;ng.

  1. b) Thiết kế theo phương phaacute;p lagrave;m mịn dần

Bước 1. Thiết lập yacute; tưởng thiết kế ban đầu

Bước 2. Sắp xếp datilde;y A

Bước 3. Với datilde;y A đatilde; được sắp xếp, kiểm tra A coacute; phải lagrave; datilde;y [1, 2, hellip;, n]?

  1. c) Chương trigrave;nh hoagrave;n chỉnh

def sapxep(A):

for i in range(len(A)):

j = i

while j > 0 and A[j] < A[j-1]:

A[j],A[j-1] = A[j-1],A[j]

j = j ndash; 1

def kt_hoanvi(A):

sapxep(A)

kq = True

for i in range(len(A)):

if A[i] != i+1:

kq = False

break

return kq

#Chương trigrave;nh chiacute;nh

A = [2,1,9,10,8,6,5,2,3,1]

if kt_hoanvi(A):

print("COacute;")

else:

print("KHOcirc;NG")

NHIỆM VỤ 2: ĐẾM SỐ LẦN LẶP

Thiết kế vagrave; việc chương trigrave;nh trigrave;nh theo phương phaacute;p lagrave;m mịn dần cho bagrave;i toaacute;n sau:

Cho trước datilde;y số A[0], A[1], ...A[n-1]. Cần tiacute;nh được mỗi giaacute; trị của caacute;c phần tử của datilde;y trecirc;n được lặp lại bao nhiecirc;u lần trong datilde;y đoacute;. Kết quả cần được đưa ra datilde;y B. Như vậy datilde;y B sẽ coacute; yacute; nghĩa như sau B[k] = số lần lặp của phần tử A[k] trong datilde;y A. Viacute; dụ nếu A = [2, 1, 1, 3, 5, 10, 2, 5] thigrave; B = [2, 2, 2, 1, 2, 1, 2, 2].

  1. a) Tigrave;m hiểu bagrave;i toaacute;n

Cho trước datilde;y số A coacute; n phần tử. Cần tạo ra một datilde;y mới lagrave; số caacute;c lần lặp của caacute;c phần tử tương ứng trong A.

  1. b) Thiết kế theo phương phaacute;p lagrave;m mịn dần

Bước 1. Thiết lập yacute; tưởng thiết kế ban đầu

Thiết lập datilde;y B rỗng

for i in range(len(A)):

Tiacute;nh số lần lặp của A[i] trong datilde;y A

Bổ sung giaacute; trị nagrave;y vagrave;o datilde;y B

Trả về datilde;y B

Bước 2. Thiết lập datilde;y B rỗng

Thực hiện bằng lệnh B = [].

Bước 3. Tiacute;nh số lần lặp của A[i] trong datilde;y A.

Thực hiện thocirc;ng qua lời gọi hagrave;m lap(x,A) tiacute;nh số lần lặp của một giaacute; trị bất kigrave; trong datilde;y A:

def lap(x,A):

S = 0

for a in A:

if a == x:

S = S + 1

return S

Bước 4. Bổ sung số lần lặp vagrave;o datilde;y B

Tổng hợp kết quả của caacute;c bước trecirc;n, đoạn chương trigrave;nh hoagrave;n chỉnh đatilde; necirc;u ở bước 1 như sau:

B = []

for i in range(len(A)):

B.append(lap(A[i],A))

return B

Bước 5. Trả về datilde;y B cần tigrave;m của bagrave;i toaacute;n

Thiết lập hagrave;m tinh_lap(A) mocirc; tả đoạn chương trigrave;nh đatilde; necirc;u trong Bước 4.

def tinh_lap(A):

B = []

for a in A:

B.append(lap(a,A))

return B

  1. c) Chương trigrave;nh hoagrave;n chỉnh