Bài giảng điện tử môn Tin học 10 sách Kết nối tri thức với cuộc sống bao gồm đầy đủ các tiết học trong cả năm 2022 2023 được thiết kế dưới dạng file trình chiếu PowerPoint. Qua đó, giúp thầy cô tham khảo, có thêm nhiều kinh nghiệm để soạn giáo án PowerPoint môn Tin học lớp 10 cho học sinh của mình theo chương trình mới. Giáo án PowerPoint Tin học 10 sách Kết nối tri thức được biên soạn theo phân phối chương trình học trong SGK. Bao gồm các thông tin, hình ảnh được sắp xếp theo trật tự logic nhằm cung cấp cho người học kiến thức và kỹ năng nhất định, sẽ làm tăng tính sinh động của buổi học, từ đó giúp người học có thể tiếp thu kiến thức một cách dễ dàng và linh hoạt hơn.
BÀI 30 KIỂM THỬ VÀ GỠ LỖI CHƯƠNG TRÌNH Bài học trước em biết khái niệm lỗi ngoại lệ chạy chương trình Python Tuy nhiên, chương trình chạy khơng có lỗi ngoại lệ (chương trình khơng bị dừng) khơng có nghĩa chương trình khơng có lỗi Thậm chí "lỗi" khơng tường minh (các lỗi gọi bug) khó phát khó sửa Theo em, làm để kiểm tra (test) gỡ lỗi (debug) chương trình? Mơi trường lập trình có cơng cụ hỗ trợ việc khơng? MỘT VÀI PHƯƠNG PHÁP KIỂM THỬ CHƯƠNG TRÌNH Có nhiều phương pháp cơng cụ khác để kiểm thử chương trình Các cơng cụ khơng có mục đích tìm lỗi (hay bug) chương trình mà cịn có tác dụng phịng ngừa ngăn chặn lỗi phát sinh tiếp tương lai a) Quan sát mã lỗi Runtime bắt lỗi ngoại lệ Nếu chương trình có lỗi Runtime (tức chạy bị dừng lại), cần quan sát mã lỗi (mã lỗi ngoại lệ) để kiểm tra vị trí dịng lệnh sinh lỗi Từ phân tích, tìm sửa lỗi b) Kiểm thử chương trình với liệu test Chương trình cần thử với số liệu test gồm đầu vào tiêu biểu phụ thuộc đặc thù toán kết đầu biết trước Các test có đầu vào theo tiêu chí khác độ lớn tính đa dạng liệu Cần ý số điểm sau: - Cần có nhiều test (theo tiêu chí khác độ lớn, tính đa dạng liệu ) - Cần có test ngẫu nhiên Việc sinh ngẫu nhiên liệu đầu vào miền xác định chương trình làm tăng khả tìm lỗi có - Cần có test liệu vùng biên Ví dụ liệu đầu vào cặp (x, y) xác định miền ≤ x, y ≤ Khi cần kiểm tra chương trình với liệu biên (0; 0) (0, 1) (1; 0) (1; 1) Thực tế cho thấy thường phát sinh lỗi vùng biên lân cận biên Một ví dụ khác liệu biên cần tìm test với n giá trị ( , …, ) lớn (vùng cận biên lớn) c) In thông số trung gian Bổ sung vào dòng lệnh print() để in biến trung gian, qua kiểm tra quy trình hay thuật tốn viết có khơng Giả sử chương trình có đầu vào (x1, x2, …, xn), đầu (a1, a2, …, am) có sử dụng biến trung gian (y1, y2, …, yk) Khi với test đầu vào, bổ sung vào dịng lệnh chương trình để in giá trị trung gian: (x1, x2, …, xn), (y1, y2, …, yk), (a1, a2, …, am) Thông qua giá trị trung gian trình thực chương trình, kết cuối có lỗi dễ tìm lỗi d) Sử dụng cơng cụ break point (điểm dừng) Công cụ break point cho phép tạo “điểm dừng” bên chương trình Khi chạy, chương trình tạm dừng lại “điểm dừng” cho phép người kiểm thử quan sát thơng tin khác bên chương trình, qua kiểm tra tính đắn chương trình Trên thực tế sử dụng phương pháp điểm dừng thường kết hợp với phương pháp in giá trị trung gian hiệu để kiểm thử chương trình Một số ghi nhớ: Sử dụng công cụ in biến trung gian Sử dụng công cụ sinh liệu test Sử dụng công cụ điểm dừng phần mềm soạn thảo lập trình Quan sát mã lỗi chương trình phát sinh 2 VÍ DỤ MINH HỌA Xét ví dụ sau: Nhập từ bàn phím hai số tự nhiên m, n, tính ƯCLN hai số Gọi gcd (m, n) ƯCLN hai số tự nhiên m, n Thuật toán toán dựa toán sau: (1) gcd(m, m) = m (2) Nếu n > m gcd(m, n) = gcd(m, n - m) (3) Nếu n < m gcd(m, n) = gcd(m - n, n) Phần chương trình vịng lặp while, vòng lặp kết thúc m = n Chương trình sau: Chúng ta tiến hành kiểm thử chương trình Cần tập trung kiểm tra kĩ khối lệnh lệnh lặp while Cách 1: In giá trị trung gian để kiểm soát chương trình Bổ sung biến k hai lệnh print() vào chương trình mơ tả sau: Cách 2: Sử dụng công cụ tạo điểm dừng phần mềm soạn thảo lập trình Thiết lập điểm dừng dịng chương trình sau Đây vị trí bắt đầu chuẩn bị vào vòng lặp Khi chạy chương trình dừng lại trước vịng lặp, ghi lại giá trị m, n vào bảng bảng sau Khi kết thúc hết vòng lặp kết chương trình giá trị m Vòng lặpp m n Kết quảt 20 4 16 16 12 Kết quảt thúc vòng lặpp 4 Cả hai cách để kiểm soát lỗi in giá trị trung gian thiết lập điểm dừng hiệu LUYỆN TẬP Chương trình em chạy phát sinh lỗi ngoại lệ ZeroDivisionError Đó lỗi em xử lý lỗi nào? Chương trình sau có lỗi khơng? Nếu có tìm sửa lỗi m = input ( “ Nhập số tự nhiên m: “) n = input ( “ Nhập số tự nhiên n: “) print ( “ Tổng hai số nhập là:” ,m+n) Chương trình sau có chức xếp dãy số cho trước Hãy kiểm tra xem chương trình có lỗi khơng? Nếu có tìm sửa lỗi A = [10, 1, 5, 2, 8, 0, 4] for i in range ( len(A)-1): j=i while j > and A[ j ] < A[ j – 1]: A[ j ], A[ j – 1] = A[ j – 1], A[ j ] j=j–1 print(A) Để kiểm thử chương trình, việc kiểm tra thơng qua liệu test có bảo đảm tìm hết lỗi chương trình hay khơng? Vì sao? BÀI TẬP - Em soạn thảo thực bước chương trình hình sau BÀI TẬP Câu 1: Em nêu vài lỗi thuộc nhóm lỗi cú pháp vài lỗi thuộc nhóm lỗi ngữ nghĩa Câu 2: Tại phải tạo nhiều liệu vào khác để kiểm thử chương trình? Câu 3: Có nhóm liệu khác cần tạo để kiểm thử chương trình? Câu 4: Có thể xem giá trị biến sau thực câu lệnh đâu? ... lỗi thuộc nhóm lỗi cú pháp vài lỗi thuộc nhóm lỗi ngữ nghĩa Câu 2: Tại phải tạo nhiều liệu vào khác để kiểm thử chương trình? Câu 3: Có nhóm liệu khác cần tạo để kiểm thử chương trình? Câu 4:.. .Bài học trước em biết khái niệm lỗi ngoại lệ chạy chương trình Python Tuy nhiên, chương trình chạy khơng có lỗi ngoại lệ (chương trình khơng bị dừng) khơng có nghĩa chương trình khơng có lỗi. .. tạo “điểm dừng” bên chương trình Khi chạy, chương trình tạm dừng lại “điểm dừng” cho phép người kiểm thử quan sát thơng tin khác bên chương trình, qua kiểm tra tính đắn chương trình Trên thực tế