Giáo án chuyên đề Tin học 11 Khoa học máy tính cánh diều chuyên đề 1 Bài 3: Thực hành thiết kế thuật toán đệ quy (P1)

Giáo án giảng dạy theo bộ sách chuyên đề học tập Tin học 11 khoa học máy tính bộ sách cánh diều chuyên đề 1 Bài 3: Thực hành thiết kế thuật toán đệ quy (P1). Bộ giáo án giúp giáo viên hướng dẫn học sinh mở rộng kiến thức, phát triển năng lực, nâng cao khả năng định hướng nghệ nghiệp cho các em sau này. Thao tác tải về rất đơn giản, tài liệu file word có thể chỉnh sửa dễ dàng, mời quý thầy cô tham khảo bài demo.

Xem toàn bộ: Giáo án chuyên đề Tin học 11 Khoa học máy tính cánh diều đủ cả năm

Ngày soạn: .../.../...

Ngày dạy: .../.../...

BÀI 3. THỰC HÀNH THIẾT KẾ THUẬT TOÁN ĐỆ QUY

(2 tiết)

  1. MỤC TIÊU
  2. Kiến thức

Sau bài học này, HS sẽ:

  • Viết và thực hiện được một vài chương trình cài đặt thuật toán đệ quy.
  • Nhận biết được lỗi lặp vô hạn khi cài đặt thuật toán đệ quy.
  1. Năng lực

Năng lực chung:

  • Năng lực giao tiếp và hợp tác: biết chủ động trong giao tiếp, tự tin phát biểu ý kiến của bản thân về chương trình cài đặt thuật toán đệ quy, lỗi lặp vô hạn khi cài đặt thuật toán đệ quy.
  • Năng lực tự chủ và tự học: Xác định được nhiệm vụ học tập Chuyên đề môn Tin học 11 – Khoa học máy tính qua việc tìm hiểu về chương trình cài đặt thuật toán đệ quy.
  • Năng lực giải quyết vấn đề và sáng tạo: Vận dụng các kiến thức giải quyết được các lỗi lặp lại vô hạn khi cài đặt thuật toán đệ quy.

Năng lực riêng:

  • Năng lực giải quyết vấn đề với sự hỗ trợ của công nghệ thông tin và truyền thông: Viết và thực hiện được một vài chương trình cài đặt thuật toán đệ quy; Nhận biết được lỗi lặp vô hạn khi cài đặt thuật toán đệ quy.
  1. Phẩm chất
  • Chăm chỉ: có ý thức đánh giá điểm mạnh, điểm yếu của bản thân, thuận lợi, khó khăn trong học tập để xây dựng kế hoạch học tập; tích cực tìm tòi và sáng tạo trong học tập, có ý chí vượt qua khó khăn để đạt kết quả tốt trong học tập.
  • Trách nhiệm: tích cực, tự giác và nghiêm túc rèn luyện, tu dưỡng đạo đức; sẵn sàng chịu trách nhiệm về lời nói và hành động của bản thân.
  1. THIẾT BỊ DẠY HỌC
  2. Đối với giáo viên
  • Giáo án, sách CĐHT, SGV Tin học 11 – Khoa học máy tính bộ Cánh diều.
  • Máy tính cá nhân có cài đặt phần mềm mô phỏng thuật toán, máy chiếu, màn hình chiếu.
  1. Đối với học sinh
  • SHS, sách CĐHT Tin học 11 – Khoa học máy tính bộ Cánh diều.
  • Tư liệu có liên quan đến nội dung bài học và dụng cụ học tập.
  • TIẾN TRÌNH DẠY HỌC
  1. HOẠT ĐỘNG KHỞI ĐỘNG (MỞ ĐẦU)
  2. Mục tiêu: Ôn lại bài cũ, dẫn dắt đưa ra vấn đề để học sinh suy nghĩ khơi gợi hứng thú học tập.
  3. Nội dung: HS trả lời câu hỏi mở đầu có nội dung liên quan đến bài học.
  4. Sản phẩm: Gợi ý câu trả lời của HS.
  5. Tổ chức thực hiện:

Bước 1: Chuyển giao nhiệm vụ:

  • GV yêu cầu HS trả lời câu hỏi ôn lại bài cũ: Nêu đặc điểm của hàm đệ quy.

Bước 2: Thực hiện nhiệm vụ:

  • HS nhớ lại kiến thức bài học trước để có câu trả lời cho các câu hỏi.

Bước 3: Báo cáo, thảo luận:

  • Các học sinh xung phong phát biểu trả lời.

Bước 4: Kết luận và nhận xét:

- Gợi ý đáp án:

Đặc điểm của hàm đệ quy:

+ Trong hàm có một hoặc nhiều lệnh gọi đến chính nó.

+ Mỗi lần gọi đệ quy thì kích thước của bài toán được thu nhỏ hơn so với lần gọi trước. Khi đạt được trường hợp cơ sở thì chương trình không cần gọi đệ quy.

  • GV nhận xét, đánh giá và dẫn vào bài: Chương trình cài đặt thuật toán đệ quy được thực hiện như thế nào? Làm sao để nhận biết được lỗi lặp lại vô hạn khi cài đặt thuật toán đệ quy? Chúng ta cùng nhau đi tìm hiểu bài học ngày hôm nay: Bài 3. Thực hành thiết kế thuật toán đệ quy.
  1. HÌNH THÀNH KIẾN THỨC MỚI

Hoạt động 1: Bài toán 1. Tìm ước số chung lớn nhất

  1. Mục tiêu: Viết và thực hiện được một vài chương trình cài đặt thuật toán đệ quy.
  2. Nội dung: HS hoạt động động độc lập thực hiện các nhiệm vụ:

- Nhiệm vụ 1. Chạy chương trình: HS cài đặt và chạy trên máy chương trình đã cho với một số dữ liệu đầu vào (x, y) khác nhau.

- Nhiệm vụ 2. Viết hàm đệ quy: HS viết hàm đệ quy UCLN1 (x, y) theo công thức đã cho.

- Nhiệm vụ 3. Trả lời câu hỏi: HS chạy chương trình, trả lời câu hỏi và nhận xét kết quả thu được.

  1. Sản phẩm: Chạy được chương trình thuật toán đệ quy.
  2. Tổ chức thực hiện

HĐ CỦA GV VÀ HS

SẢN PHẨM DỰ KIẾN

Bước 1: Chuyển giao nhiệm vụ

* Nhiệm vụ 1. Chạy chương trình

- GV yêu cầu HS cài đặt và chạy trên máy chương trình đã cho với một số dữ liệu đầu vào (x, y) khác nhau:

x

y

27

156

15

105

318

742

 

* Nhiệm vụ 2: Viết hàm đệ quy

- GV yêu cầu HS viết hàm đệ quy UCLN (x, y) theo công thức đã cho:

Với r là số dư trong phép chia x cho y.

 

 

 

 

 

 

- Sau đó, GV yêu cầu HS chạy chương trình gọi hàm UCLN1 vừa viết được cho các bộ dữ liệu đầu vào (x,y) ở nhiệm vụ 1.

* Nhiệm vụ 3. Trả lời câu hỏi

- GV yêu cầu HS trả lời câu hỏi c trang 17 sách CĐHT: Em hãy chạy chương trình câu a) và b) với hai bộ dữ liệu

+ x = 5, y = 0

+ x = 0, y = 5

Sau đó, nhận xét kết quả thu được.

Bước 2: Thực hiện nhiệm vụ

- Ở các nhiệm vụ, HS đọc sách CĐHT, chạy chương trình và trả lời câu hỏi.

Bước 3: Báo cáo, thảo luận

- HS báo cáo kết quả chạy chương trình và trả lời câu hỏi nhiệm vụ.

Bước 4: Kết luận, nhận định

- GV nhận xét kết quả chạy chương trình và trả lời câu hỏi của HS.

- GV tổng quát lại kiến thức trọng tâm và lưu ý HS những lỗi sai.

Bài toán 1. Tìm ước số chung lớn nhất

* Nhiệm vụ 1. Chạy chương trình

Kết quả chạy chương trình với các dữ liệu đầu vào (x, y) khác nhau:

Dữ liệu vào

Kết quả

x

y

UCLN

27

156

3

15

105

15

318

742

106

 * Nhiệm vụ 2: Viết hàm đệ quy

def UCLN1(x,y):

    if (y==0): #Trường hợp cơ sở

        return x

    else:      #Gọi đệ quy

        r = x%y

        return UCLN1(y, r)

 

x = int(input("Nhập số tự nhiên x = "))

y = int(input("Nhập số tự nhiên y = "))

print("UCLN = ", UCLN(x,y))

- Kết quả: tương tự nhiệm vụ 1.

 

 

 

* Nhiệm vụ 3. Trả lời câu hỏi

Kết luận:

- Cả hai hàm đã cho đều được dùng để tính UCLN của hai số tự nhiên x, y.

- Hàm UCLN ở câu a chỉ chạy được với điều kiện y khác 0.

Nếu vẫn cố tình nhập giá trị 0 cho y, chương trình khi chạy sẽ báo lỗi phép tính chia số tự nhiên cho 0 ("ZeroDivisionError: integer division or modulo by zero") ở dòng lệnh r = x%y.

 

Hoạt động 2: Bài toán 2. Nhận biết lỗi lặp lại vô hạn khi cài đặt đệ quy

  1. Mục tiêu: Nhận biết được lỗi lặp vô hạn khi cài đặt thuật toán đệ quy.
  2. Nội dung: HS hoạt động độc lập, đọc sách CĐHT, quan sát Hình 2 và trả lời câu hỏi.
  3. Sản phẩm: Hướng dẫn trả lời bài toán nhận biết lỗi lặp vô hạn.
  4. Tổ chức thực hiện:

HĐ CỦA GV VÀ HS

SẢN PHẨM DỰ KIẾN

Bước 1: Chuyển giao nhiệm vụ

- GV yêu cầu HS đọc Bài toán 2 trang 17 sách CĐHT, quan sát Hình 2 và thực hiện các nhiệm vụ sau:

+ Câu a. HS lên bảng vẽ lại quá trình product (8)được thực thi thông qua các câu lệnh gọi đệ quy.

 

 

 

 

 

 

 

 

 

 

 

 

 

+ Câu b. HS cài đặt lại chương trình đã cho và chạy chương trình để biết được Python sẽ thông báo lỗi gì khi gọi product (8).

Chú ý: Theo tham số mặc định của Python, số lần tối đa một hàm đệ quy có thể tự gọi đến chính nó là 1000. Nếu muốn thay đổi, ta có thể dùng hàm sys.setrecursionlimit().

Ví dụ:

Import sys

Print(sys.setrecursionlimit(2000))

→ Sẽ thực hiện nâng số lần gọi đệ quy tối đa thành 2000.

+ Câu c. HS sửa lại câu lệnh print ('KQ= ',product (8)) thành print ('KQ= ',product (9)), chạy lại chương trình và trả lời kết quả.

+ Câu d. HS dựa vào kiến thức vừa tìm hiểu, trả lời câu hỏi: Theo em, tại sao Python lại thông báo lỗi khi chương trình thực thi product (8), nhưng lại không báo lỗi khi chương trình thực thi product (9)?

Bước 2: Thực hiện nhiệm vụ

- HS tìm hiểu thông tin sách CĐHT, quan sát hình, chạy chương trình và trả lời câu hỏi.

Bước 3: Báo cáo, thảo luận

- HS giơ tay phát biểu trả lời câu hỏi.

- Các HS nhận xét, bổ sung.

Bước 4: Kết luận, nhận định

- GV nhận xét kết quả trả lời của HS.

- GV tổng quát lại kiến thức trọng tâm và yêu cầu HS hoàn thành ghi chép đầy đủ vào vở.

Bài toán 2. Nhận biết lỗi lặp vô hạn khi cài đặt đệ quy

- Hướng dẫn trả lời câu hỏi trang 17:

a)

 

          
   
 
   
 
   
 
  
 
   

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


Lặp vô hạn: gọi product(-4), product(-6), product(-8)…

b) Thông báo lỗi là:

"line 2, in product

  If (n==1):

RecursionError: maximum recursion depth exceeded in comparison".

 

 

 

 

 

 

 

 

 

c) KQ = 945.

 

 

 

d) Lỗi Python thông báo khi gọi product (8) là do Python hạn chế số lần tối đa một hàm đệ quy có thể tự gọi đến chính nó.

⇨     Kết luận:

Trong quá trình thực thi một hàm đệ quy mà bước cơ sở không bao giờ được thực hiện thì hàm đệ quy sẽ bị lặp vô hạn, không bao giờ dừng.

---------------------------Còn tiếp----------------------------

Trên chỉ là 1 phần của giáo án. Giáo án khi tải về có đầy đủ nội dung của bài. Đủ nội dung của học kì I + học kì II

MỘT VÀI THÔNG TIN

  • Giáo án bản word, dễ dàng chỉnh sửa nếu muốn
  • Font chữ: Time New Roman, trình bày rõ ràng, khoa học.
  • Giáo án có đủ các chuyên đề, đủ cả năm

PHÍ GIÁO ÁN:

  • Phí giáo án: 350k

=> Khi đặt, nhận đủ giáo án cả năm ngay và luôn

CÁCH ĐẶT: 

  • Bước 1: gửi phí vào tk: 10711017 - Chu Văn Trí - Ngân hàng ACB (QR)
  • Bước 2: Nhắn tin tới Zalo Fidutech - nhấn vào đây để thông báo và nhận giáo án

=> Khi đặt, sẽ nhận giáo án ngay và luôn. Tặng kèm phiếu trắc nghiệm + đề kiểm tra ma trận

Xem toàn bộ: Giáo án chuyên đề Tin học 11 Khoa học máy tính cánh diều đủ cả năm

Xem thêm các bài khác

GIÁO ÁN CHUYÊN ĐỀ 1. THỰC HÀNH THIẾT KẾ THUẬT TOÁN THEO KĨ THUẬT ĐỆ QUY

GIÁO ÁN CHUYÊN ĐỀ 2. THỰC HÀNH THIẾT KẾ THUẬT TOÁN THEO KĨ THUẬT CHIA ĐỂ TRỊ

GIÁO ÁN CHUYÊN ĐỀ 3. THỰC HÀNH THIẾT KẾ THUẬT TOÁN THEO KĨ THUẬT DUYỆT

Chat hỗ trợ
Chat ngay