

Bài 23. Kiểm thử và đánh giá chương trình trang 73 SBT Tin học 11 Kết nối tri thức với cuộc sống>
Mệnh đề sau có đúng không? Muốn chứng minh một chương trình chạy đúng chỉ cần thực hiện thật nhiều việc kiểm thử (test). Nếu kiểm tra trên tất cả các bộ dữ liệu kiểm thử đều đúng thì chương trình đúng.
Tổng hợp đề thi giữa kì 2 lớp 11 tất cả các môn - Kết nối tri thức
Toán - Văn - Anh - Lí - Hóa - Sinh
23.1
Mệnh đề sau có đúng không?
Muốn chứng minh một chương trình chạy đúng chỉ cần thực hiện thật nhiều việc kiểm thử (test). Nếu kiểm tra trên tất cả các bộ dữ liệu kiểm thử đều đúng thì chương trình đúng.
Lời giải chi tiết:
Mệnh đề trên là không đúng.
23.2
Giả sử một chương trình đã được kiểm tra chạy chính xác với hơn 1000 lần test. Mệnh đề nào sau đây là đúng?
A. Chương trình đó hoàn toàn chính xác.
B. Chương trình đó chắc là sai ít đúng nhiều.
C. Chương trình đó có độ tin cậy cao.
D. Chưa thể nói gì được về chương trình đó.
Lời giải chi tiết:
Đáp án đúng là: C. Chương trình đó có độ tin cậy cao.
23.3
Để chứng minh một thuật toán là đúng cần phải làm gì? Chọn phương án đúng nhất trong các phương án sau:
A. Cần tiến hành kiểm thử chương trình cài đặt thuật toán, kiểm thử càng nhiều càng tốt.
B. Cần cài đặt thuật toán trên càng nhiều ngôn ngữ lập trình càng tốt.
C. Cần chạy thử chương trình cài đặt thuật toán xem thời gian chạy có nhanh hay không.
D. Cần chứng minh bằng toán học chặt chẽ tính đúng của thuật toán.
Lời giải chi tiết:
Đáp án đúng là: D. Cần chứng minh bằng toán học chặt chẽ tính đúng của thuật toán.
23.4
Cùng một chương trình, với hai bộ dữ liệu đầu vào khác nhau (cùng kích thước) thì thời gian chạy chương trình với hai bộ dữ liệu này sẽ giống nhau hay khác nhau?
Lời giải chi tiết:
Thời gian chạy chương trình có thể giống nhau và cũng có thể khác nhau.
23.5
Với thuật toán sắp xếp chèn (trong sách giáo khoa), cùng kích thước n, thì bộ dữ liệu kiểm thử nào cho thời gian chạy:
a) Nhanh nhất?
b) Chậm nhất?
Lời giải chi tiết:
a) Bộ dữ liệu là dãy đã sắp xếp đúng.
b) Bộ dữ liệu là dãy đã sắp xếp nhưng theo thứ tự ngược lại.
23.6
Trong các bài toán sau, kích thước đầu vào của bài toán là gì, được tính như thế nào?
a) Bài toán sắp xếp dãy số A theo thứ tự tăng dần.
b) Bài toán tính tổng 1+ 2 + ... + n với n là số tự nhiên cho trước.
c) Bài toán tính gcd(a,b) – ước chung lớn nhất của hai số tự nhiên cho trước a, b.
Lời giải chi tiết:
a) chiều dài dãy A;
b) Só n.
c) Số maximum trong 2 số a, b.
23.7
Viết chương trình thực hiện các việc sau:
– Nhập dãy số A từ bàn phím.
– Thực hiện các thuật toán sắp xếp chèn, sắp xếp chọn, sắp xếp nổi bọt trên dãy A.
– Tính thời gian chạy của từng thuật toán trên đối với dãy A, kết quả đưa ra màn hình.
Lời giải chi tiết:
23.8
Hàm sau tạo một dãy số nguyên có n phần tử và các giá trị nằm ngẫu nhiên trong phạm vi [a, b].
1 def sinh_day(n,a,b):
2 from random import randint
3 A = [randint(a, b) for i in range(n)]
4 return A
Em hãy viết chương trình tạo dãy A như trên với độ dài n và thực hiện các thuật toán sắp xếp chèn, sắp xếp chọn, sắp xếp nổi bọt trên dãy A. Sau đó tính thời gian chạy của các thuật toán này. Ghi lại bảng kết quả với các giá trị của n = 100, 1000, 10 000, 100 000.
Lời giải chi tiết:
23.9
Viết chương trình tạo dãy A có n phần tử với giá trị ngẫu nhiên. Sau đó tính thời gian chạy của lệnh sắp xếp A.sort() của Python và so sánh thời gian này với các thời gian chạy của các
Lời giải chi tiết:
Thời gian chạy sắp xếp theo phương thức sort() nhanh hơn hẳn ba thuật toán sắp xếp đã biết.
Ví dụ với n = 10000, kết quả tính toán có thể như sau (tính theo giây).
1 Sắp xếp chèn: 10.774742800943896
2 Sắp xếp chọn: 10.29863730903126
3 Sắp xếp nổi bọt: 20.886252708118348
4 Sắp xếp Python: 0.0012119000311948998
Thời gian chạy sắp xếp theo phương thức sort() nhanh hơn hẳn ba thuật toán sắp xếp đã biết.
Ví dụ với n = 10000, kết quả tính toán có thể như sau (tính theo giây).
1 Sắp xếp chèn: 10.774742800943896
2 Sắp xếp chọn: 10.29863730903126
3 Sắp xếp nổi bọt: 20.886252708118348
4 Sắp xếp Python: 0.0012119000311948998


- Bài 24. Đánh giá độ phức tạp thời gian thuật toán trang 75 SBT Tin học 11 Kết nối tri thức với cuộc sống
- Bài 25. Thực hành xác định độ phức tạp thời gian thuật toán trang 77 SBT Tin học 11 Kết nối tri thức với cuộc sống
- Bài 26. Phương pháp làm mịn dần trong thiết kế chương trình trang 79 SBT Tin học 11 Kết nối tri thức với cuộc sống
- Bài 22. Thực hành bài toán sắp xếp trang 70 SBT Tin học 11 Kết nối tri thức với cuộc sống
- Bài 21. Các thuật toán sắp xếp đơn giản trang 69 SBT Tin học 11 Kết nối tri thức với cuộc sống
>> Xem thêm
Các bài khác cùng chuyên mục
- Bài 30. Biên tập phim trang 80 SBT Tin học 11 Kết nối tri thức với cuộc sống
- Bài 29. Khám phá phần mềm làm phim trang 76 SBT Tin học 11 Kết nối tri thức với cuộc sống
- Bài 28. Tạo ảnh động trang 76 SBT Tin học 11 Kết nối tri thức với cuộc sống
- Bài 27. Công cụ vẽ và một số ứng dụng trang 75 SBT Tin học 11 Kết nối tri thức với cuộc sống
- Bài 26. Phương pháp làm mịn dần trong thiết kế chương trình trang 79 SBT Tin học 11 Kết nối tri thức với cuộc sống
- Bài 30. Biên tập phim trang 80 SBT Tin học 11 Kết nối tri thức với cuộc sống
- Bài 29. Khám phá phần mềm làm phim trang 76 SBT Tin học 11 Kết nối tri thức với cuộc sống
- Bài 28. Tạo ảnh động trang 76 SBT Tin học 11 Kết nối tri thức với cuộc sống
- Bài 27. Công cụ vẽ và một số ứng dụng trang 75 SBT Tin học 11 Kết nối tri thức với cuộc sống
- Bài 26. Phương pháp làm mịn dần trong thiết kế chương trình trang 79 SBT Tin học 11 Kết nối tri thức với cuộc sống