Giáo án điện tử chuyên đề Khoa học máy tính 11 cánh diều Bài 3: Thực hành thiết kế thuật toán đệ quy
Tải giáo án điện tử Chuyên đề học tập Tin học 11 - Khoa học máy tính (cánh diều) Bài 3: Thực hành thiết kế thuật toán đệ quy. Bộ giáo án chuyên đề được thiết kế sinh động, đẹp mắt. Thao tác tải về đơn giản, dễ dàng sử dụng và chỉnh sửa. Thầy, cô kéo xuống để xem chi tiết.
Xem: => Giáo án tin học 11 theo định hướng khoa học máy tính cánh diều
Click vào ảnh dưới đây để xem 1 phần giáo án rõ nét












Xem toàn bộ: Giáo án điện tử chuyên đề Tin học 11 - Khoa học máy tính Cánh diều
CHÀO MỪNG CÁC EM ĐẾN VỚI BÀI HỌC NGÀY HÔM NAY!
KHỞI ĐỘNG
Nhớ lại kiến thức ở bài học cũ và trả lời câu hỏi: Nêu đặc điểm của hàm đệ quy.
ĐẶ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
BÀI 3: THỰC HÀNH THIẾT KẾ THUẬT TOÁN ĐỆ QUY
BÀI TOÁN 1
Tìm số ước chung lớn nhất
Nhiệm vụ 1: Chạy chương trình
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 |
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
- Viết hàm đệ quy UCLN (x, y) theo công thức đã cho:
1 def UCLN1(x,y): 2 if (y==0): #Trường hợp cơ sở 3 return x 4 else: #Gọi đệ quy 5 r = x%y 6 return UCLN1(y, r) 7 8 x = int(input("Nhập số tự nhiên x = ")) 9 y = int(input("Nhập số tự nhiên y = ")) 10 print("UCLN = ", UCLN(x,y)) |
Hàm đệ quy
Nhiệm vụ 3: Trả lời câu hỏi
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
Em hãy nhận xét kết quả thu được.
- 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 cố nhập giá trị 0 cho y chương trình sẽ báo lỗi, ("ZeroDivisionError: integer division or modulo by zero") ở dòng lệnh r = x%y.
KẾT LUẬN
BÀI TOÁN 2
Nhận biết lỗi lặp vô hạn khi cài đặt đệ quy
Em hãy thực hiện các yêu cầu sau:
- Đọc hàm đệ quy product(n) ở Hình 2 và cho biết kết quả thu được khi thực thi lời gọi hàm product(8).
- Chạy chương trình ở Hình 2 và cho biết Python thông báo lỗi như thế nào.
- Sửa chương trình ở Hình 2 như sau: Thay thế câu lệnh cuối cùng print(‘KQ = ‘, product(8)) thành print(‘KQ = ‘, product(9)) và cho biết kết quả khi chạy chương trình.
- 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)?
Gợi ý: Kiểm tra xem trong quá trình thực hiện product(8) có lần gọi đệ quy nào đến được trường hợp cơ sở if(n==1) hay không.
a
product(8):
return 8 * product(6)
product(6):
return 6 * product(4)
product(4):
return 4 * product(2)
product(2):
return 2 * product(0)
product(0):
return 0 * product(-2)
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
Kết quả:
KQ = 945
d
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ó.
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.
KẾT LUẬN
BÀI TOÁN 3
Xác định ý nghĩa của hàm đệ quy cho trước
Nhiệm vụ:
- Cho biết ý nghĩa của hàm abs và phép toán // là gì?
- Em hãy chạy chương trình ở Hình 3 và cho biết hàm đệ quy mystery(n) với đầu vào n là số nguyên được dung để giải quyết bài toán nào.
a
Hàm abs (x): trả về giá trị tuyệt đối của số x.
Phép toán //: x // y trả về một số nguyên là số nguyên lớn nhất nhỏ hơn hoặc bằng kết quả của phép chia x cho y.
Ví dụ: 5 // 3 = 1,4 // 3 = 1.
b
Hàm mystery (n) dùng để đếm số lượng chữ số có trong số nguyên n.
LUYỆN TẬP
Câu 1: Số lần tối đa một hàm đệ quy có thể tự gọi đến chính nó là
A. 100
B. 1000
C. 2000
D. 10000
B. 1000
Câu 2: Nếu muốn thay đổi số lần tối đa một hàm đệ quy có thể tự gọi chính nó ta dùng hàm
--------------- 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
Hệ thống có đầy đủ các tài liệu:
- Giáo án word (350k)
- Giáo án Powerpoint (400k)
- Trắc nghiệm theo cấu trúc mới (200k)
- Đề thi cấu trúc mới: ma trận, đáp án, thang điểm..(200k)
- Phiếu trắc nghiệm câu trả lời ngắn (200k)
- Trắc nghiệm đúng sai (250k)
- Lý thuyết bài học và kiến thức trọng tâm (200k)
- File word giải bài tập sgk (150k)
- Phiếu bài tập để học sinh luyện kiến thức (200k)
Nâng cấp lên VIP đê tải tất cả ở tài liệu trên
- Phí nâng cấp VIP: 800k
=> Chỉ gửi 450k. Tải về dùng thực tế. Nếu hài lòng, 1 ngày sau mới gửi phí còn lại
Cách nâng cấp:
- Bước 1: Chuyển phí vào STK: 1214136868686 - cty Fidutech - MB(QR)
- Bước 2: Nhắn tin tới Zalo Fidutech - nhấn vào đây để thông báo và nhận tài liệu
Xem toàn bộ: Giáo án điện tử chuyên đề Tin học 11 - Khoa học máy tính Cánh diều
ĐẦY ĐỦ GIÁO ÁN CÁC BỘ SÁCH KHÁC
GIÁO ÁN WORD LỚP 11 CÁNH DIỀU
GIÁO ÁN POWERPOINT LỚP 11 CÁNH DIỀU
GIÁO ÁN CHUYÊN ĐỀ LỚP 11 CÁNH DIỀU
Giáo án chuyên đề Công nghệ cơ khí 11 cánh diều đủ cả năm
Giáo án chuyên đề Tin học 11 Khoa học máy tính cánh diều đủ cả năm
Giáo án chuyên đề Tin học 11 Tin học ứng dụng cánh diều đủ cả năm
Giáo án chuyên đề Âm nhạc 11 cánh diều đủ cả năm
Giáo án chuyên đề Kinh tế pháp luật 11 cánh diều đủ cả năm
GIÁO ÁN DẠY THÊM LỚP 11 CÁNH DIỀU
Giáo án dạy thêm toán 11 cánh diều đủ cả năm
Giáo án dạy thêm ngữ văn 11 cánh diều đủ cả năm
CÁCH ĐẶT MUA:
Liên hệ Zalo: Fidutech - nhấn vào đây