Giáo án môn Tin học lớp 10 sách Kết nối tri thức: Bài 29 được biên soạn với mục tiêu nhằm giúp học sinh nhận biết và phân biệt một số loại lỗi chương trình; nắm được một só lỗi ngoại lệ thường gặp; rèn kỹ năng phát hiện lỗi và sửa lỗi; thực hành lập trình và kiểm tra khả năng sinh lỗi khi chạy chương trình;... Mời các bạn cùng tham khảo!
BÀI 29: NHẬN BIẾT LỖI CHƯƠNG TRÌNH Mơn học: Tin Học; Lớp: 10 Thời gian thực hiện: tiết I MỤC TIÊU Kiến thức: ● Biết phân biệt số loại lỗi chương trình ● Biết vài lỗi ngoại lệ thường gặp Kỹ năng: - Năng lực tự chủ tự học - Năng lực giao tiếp hợp tác - Năng lực sáng tạo giải vấn đề Phẩm chất: Nghiêm túc, tập trung, tích cực chủ động II THIẾT BỊ DẠY HỌC VÀ HỌC LIỆU Sgk, Sbt, giáo án III TIẾN TRÌNH DẠY HỌC HOẠT ĐỘNG KHỞI ĐỘNG (MỞ ĐẦU) - Mục tiêu: Tạo hứng thú học tập cho học sinh - Nội dung: Hs dựa vào hiểu biết để trả lời câu hỏi - Sản phẩm: Từ yêu cầu Hs vận dụng kiến thức để trả lời câu hỏi GV đưa - Tổ chức thực hiện: GV giới thiệu dẫn dắt vào Một số chương trình hồn chỉnh mơ tả hình 29.1 Tiếp nhận liệu đầu vào, xử lí theo yêu cầu toán đưa kết theo yêu cầu Theo em chương trình bị lỗi lỗi đâu? HÌNH THÀNH KIẾN THỨC MỚI Hoạt động 1: Nhận biết phân biệt số loại lỗi chương trình - Mục Tiêu: + Nhận biết phân biệt số loại lỗi chương trình - Nội dung: HS quan sát SGK để tìm hiểu nội dung kiến thức theo yêu cầu GV - Sản phẩm: Hs hồn thành tìm hiều kiến thức - Tổ chức thực hiện: Hoạt động giáo viên Sản phẩm dự kiến học sinh NHẬN BIẾT LỖI CHƯƠNG TRÌNH * Bước 1: Chuyển giao Trường hợp 1: Người lập trình viết sai cú pháp lệnh, chương nhiệm vụ: trình dừng lại thông báo lỗi cú pháp GV: Quan sát trường hợp >>> While true print(“Hello”) chương trình gặp lỗi sau, SyntaxError: Invallid syntax từ nhận biết phân biệt Trường hợp 2: Người dùng nhập liệu sai, chương trình số loại lỗi chương thông báo lỗi nhập liệu không khn dạng trình >>> n = int( input(“Nhập số ngun n: “)) Nhập số nguyên n: 1.5 * Bước 2: Thực nhiệm Traceback (most recent call last): vụ: File “”, line 1, in + HS: Suy nghĩ, tham khảo N= int( input(“Nhập số nguyên n: “)) sgk trả lời câu hỏi Trường hợp 3: Chương trình thơng báo lỗi số vượt + GV: quan sát trợ giúp giới hạn cho phép cặp Kế hoạch dạy mơn Tin học 10 – Chương trình sách KNTT Hoạt động giáo viên học sinh A = [1, 3, 10, 0] * Bước 3: Báo cáo, thảo for i in range(5): luận: print(A[i], end = “ “) + HS: Lắng nghe, ghi chú, Khi chạy chương trình báo lỗi HS phát 10 Traceback (most recent call last): biểu lại tính chất File "C:\Python\Array_b1.py", line 3, in + Các nhóm nhận xét, bổ print (A[1],end") sung cho IndexError: list index out of range * Bước 4: Kết luận, nhận Trường hợp Chương trình thực bình thường định: GV xác hóa kết khơng với u cầu tốn Đây lỗi lơgic gọi học sinh nhắc lại kiến bên chương trình thức # Tính tổng ba số ngun dương >>> s = >>> for i in range (3): s=s+i >>> print(s) Chương trình cho kết mà kết + + = Lí hàm range(3) trả lại vùng giá trị 0, 1, Câu hỏi 1, 2, Khi gõ sai cú pháp lệnh, chương trình dừng lại Giải thích: - Với trường hợp 1, chương trình dừng thơng báo lỗi báo lỗi, lỗi loại gì? Syntax Error (lỗi cú pháp) Bái toán yêu cầu xếp - Với trường hợp 2, người dùng nhập liệu sai, hàm dãy số ban đầu thành dãy tăng int() thực được, chương trình dừng lại báo dần Giả sử dãy số ban đầu lỗi Mã lỗi ValueError Đây lỗi Runtime (lỗi [3, 1, 8, 10, 0] Kết thu thực hiện) hay gọi lỗi ngoại lệ (Exceptions dãy [1, 3, 8, 10, 0] Chương trình có lỗi khơng? error) - Với trường hợp 3, chương trình phát lỗi số vượt Nếu có lỗi thuộc loại q giới hạn dịng Chương trình dừng báo lỗi Mã gì? lỗi IndexError Đây lỗi Runtime - Với trường hợp 4, chương trình khơng cịn lỗi Runtime, kết đưa sai Khơng có mã lỗi trả lại Đây lỗi ngữ nghĩa lỗi lơgic bên chương trình Kết luận: + Tổng thể phân biệt lỗi chương trình Python làm ba loại Lỗi có lệnh viết sai cú pháp sai cấu trúc ngôn ngữ Python quy định Chương trình dừng thơng báo lỗi Syntax Error Lỗi thực lệnh chương trình Chương trình dừng lại thông báo mã lỗi Lỗi gọi lỗi ngoại lệ (Exceptions Error), mã lỗi trả lại gọi mã lỗi ngoại lệ Chương trình chạy khơng lỗi ngoại lệ, kết đưa sai khơng xác Đây lỗi lơgic bên chương trình Sản phẩm dự kiến Kế hoạch dạy môn Tin học 10 – Chương trình sách KNTT Sản phẩm dự kiến Hoạt động giáo viên học sinh + Với loại lỗi trên, cách xử lí kiểm sốt lỗi khác Hoạt động 2: Tìm hiểu Một số lỗi ngoại lệ thường gặp a) Mục tiêu: Nắm só lỗi ngoại lệ thường gặp b) Nội dung: HS quan sát SGK để tìm hiểu nội dung kiến thức theo yêu cầu GV c) Sản phẩm: HS hồn thành tìm hiểu kiến thức d) Tổ chức thực hiện: Hoạt động giáo viên học Sản phẩm dự kiến sinh MỘT SỐ LỖI NGOẠI LỆ THƯỜNG GẶP * Bước 1: Chuyển giao nhiệm vụ: Chúng ta biết, gặp lỗi ngoại lệ, chương trình Python dừng lại, báo lỗi Một vấn đề GV: Đọc, thảo luận để nhận biết đưa kiểm soát lỗi làm để phát số lỗi ngoại lệ thường gặp lỗi, xử lý lỗi chương trình khơng bị dừng lại chương trình Python thực HS: Thảo luận, trả lời Mã lỗi ngoại Mô tả lỗi HS: Lấy ví dụ thực tế lệ ZeroDivisionE Lỗi xảy lệnh thực * Bước 2: Thực nhiệm vụ: rror phép chia cho giá trị Lỗi xảy lệnh cố gắng truy IndexError + HS: Suy nghĩ, tham khảo sgk trả lời cập phần tử danh sách câu hỏi số vượt giới hạn + GV: quan sát trợ giúp cặp Lỗi xảy chương trình NameError muốn tìm tên khơng * Bước 3: Báo cáo, thảo luận: thấy Ví dụ lệnh gọi hàm khơng có hàm + HS: Lắng nghe, ghi chú, HS Lỗi kiểu liệu Một số ví dụ phát lỗi loại này: biểu lại tính chất - Lệnh truy cập phần từ + Các nhóm nhận xét, bổ sung cho TypeError danh sách số không số nguyên - Lệnh tính biểu thức số * Bước 4: Kết luận, nhận định: GV lại có tốn hạng khơng phải xác hóa gọi học sinh nhắc số lại kiến thức Lỗi liên quan đến giá trị đối Câu hỏi tượng Hãy nêu mã lỗi ngoại lệ lệnh Lỗi thực lệnh chuyển ValueError sau xảy lỗi đổi kiểu liệu, đổi số hàm a) A[1.5] có giá trị mà hàm khơng hỗ trợ b) int("abc") Ví dụ thực lệnh c) "10"*3.5 int("1.55") sinh lỗi loại d) 12 + x(10) Lỗi dòng lệnh thụt vào IndentationErr không thẳng hàng không or vị trí SyntaxError Lỗi cú pháp Hoạt động 3: Thực hành a) Mục tiêu: Rèn kỹ phát lỗi sửa lỗi Kế hoạch dạy môn Tin học 10 – Chương trình sách KNTT b) Nội dung: HS quan sát SGK để tìm hiểu nội dung kiến thức theo yêu cầu GV c) Sản phẩm: HS hoàn thành tìm hiểu kiến thức d) Tổ chức thực hiện: Hoạt động giáo viên học Sản phẩm dự kiến sinh THỰC HÀNH * Bước 1: Chuyển giao nhiệm vụ: Lập trình kiểm tra khả sinh lỗi chạy chương trình GV: Nhiệm vụ Viết chương trình nhập số nguyên m, n từ bàn phím, cách dấu cách Chương trình đưa HS: Thảo luận, trả lời tổng, hiệu, thương hai số nhập HS: Lấy ví dụ thực tế Hướng dẫn Chương trình khối lệnh nhập từ bàn phím hai số nguyên m, n Các số nhập * Bước 2: Thực nhiệm vụ: lệnh input(), kết xâu kí tự Xâu tách thành danh sách xâu lệnh split() + HS: Suy nghĩ, tham khảo sgk trả lời Kết thu chuyển đổi thành hai số m, n câu hỏi lệnh int( ) Nhập chương trình sau kiểm tra khả + GV: quan sát trợ giúp cặp sinh lỗi chạy chương trình * Bước 3: Báo cáo, thảo luận: Gợi ý Các khả sinh lỗi chương trình: - Các số m, n nhập vào không số nguyên - Giữa hai số m, n khơng có dấu cách - Số n nhập vào số Nhiệm vụ Viết chương trình nhập số tự nhiên n nhập n số nguyên đưa vào danh sách số A Sau nhập xong in danh sách A hình Hướng dẫn Nhập chương trình sau kiểm tra khả sinh lỗi chạy chương trình + HS: Lắng nghe, ghi chú, HS phát biểu lại tính chất + Các nhóm nhận xét, bổ sung cho * Bước 4: Kết luận, nhận định: GV xác hóa gọi học sinh nhắc lại kiến thức Câu hỏi Hãy nêu mã lỗi ngoại lệ lệnh sau xảy lỗi a) A[1.5] b) int("abc") c) "10"*3.5 d) 12 + x(10) Gợi ý Các khả sinh lỗi chương trình: - Số n nhập khơng số nguyên - Mỗi số hạng danh sách nhập vào không số nguyên HOẠT ĐỘNG LUYỆN TẬP a Mục tiêu: Củng cố, luyện tập kiến thức vừa học b Nội dung: HS đọc SGK làm tập c Sản phẩm: Bài làm học sinh, kĩ giải nhiệm vụ học tập d Tổ chức thực hiện: Câu Các lệnh sau có sinh lỗi chương trình khơng? Nếu có mã lỗi gì? a) >>> A = [1, 3, 5, 10, 0] >>> for k in range(1, len(A) + 1): Kế hoạch dạy mơn Tin học 10 – Chương trình sách KNTT print(A[k]) b) >>> s1, s2 = “101010”, 101010 >>> s = s1 + s2 Câu Đề tính giá trị trung gbình danh sách số A, người lập trình dùng lệnh sau để tính: gttb = sum(A)/len(A) lệnh sinh lỗi nggoại lệ khơng? Nếu có lỗi gì? HOẠT ĐỘNG VẬN DỤNG a Mục tiêu: Vận dụng kiến thức vừa học vấn đề học tập thực tiễn b Nội dung: c Sản phẩm: HS vận dụng kiến thức vào giải nhiệm vụ đặt d Tổ chức thực hiện: Gv đưa câu hỏi nhà: Câu Giả sử em yêu cầu viết chương trình nhập số tự nhiên n từ bàn phím, kết đưa danh sách ước số thực n, tính khơng tính n Hãy viết chương trình kiểm tra khả sinh lỗi thực chương trình Câu Em viết chương trình nhỏ để chạy sinh mã lỗi NameError Hướng dẫn học sinh tự học: - Hướng dẫn học cũ: - Hướng dẫn chuẩn bị mới: Kế hoạch dạy môn Tin học 10 – Chương trình sách KNTT ... lỗi gì? a) >>> A = [1, 3, 5, 10, 0] >>> for k in range(1, len(A) + 1): Kế hoạch dạy mơn Tin học 10 – Chương trình sách KNTT print(A[k]) b) >>> s1, s2 = ? ?101 010? ??, 101 010 >>> s = s1 + s2 Câu Đề tính... khơng lỗi ngoại lệ, kết đưa sai khơng xác Đây lỗi lơgic bên chương trình Sản phẩm dự kiến Kế hoạch dạy môn Tin học 10 – Chương trình sách KNTT Sản phẩm dự kiến Hoạt động giáo viên học sinh + Với loại... mã lỗi NameError Hướng dẫn học sinh tự học: - Hướng dẫn học cũ: - Hướng dẫn chuẩn bị mới: Kế hoạch dạy môn Tin học 10 – Chương trình sách KNTT