Tải bản chuẩn giáo án chuyên đề học tập Khoa học máy tính 11 bộ sách mới cánh diều CĐ 1 Bài 3: Thực hành thiết kế thuật toán đệ quy (P1). giáo án soạn ch1 t1ết, hướng dẫn học sinh hoạt động để tìm tò1, khám phá ra k1ến thức mới, vận dụng chúng vào v1ệc giải quyết các vấn đề của học tập và của thực tiễn cuộc sống. Mờ1 thầy cô kéo xuống tham khảo
Rõ nét về file powerpoint trình chiếu. => Xem thêm
Ngày soạn: .../.../...
Ngày dạy: .../.../...
(2 tiết)
Sau bài học này, HS sẽ:
Năng lực chung:
Năng lực riêng:
Bước 1: Chuyển giao nhiệm vụ:
Bước 2: Thực hiện nhiệm vụ:
Bước 3: Báo cáo, thảo luận:
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.
Hoạt động 1: Bài toán 1. Tìm ước số chung lớn nhất
- 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.
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:
* 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:
* 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
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----------------------------
Nâng cấp lên tài khoản VIP để tải tài liệu và dùng thêm được nhiều tiện ích khác
Tải bản chuẩn giáo án chuyên đề Khoa học máy tính 11 Cánh diều, giáo án chuyên đề học tập Khoa học máy tính 11 Cánh diều CĐ 1 Bài 3: Thực hành thiết kế, soạn giáo án chuyên đề Khoa học máy tính 11 cánh diều CĐ 1 Bài 3: Thực hành thiết kế