Skip to content

Trang Học trực tuyến

  • Môn Toán

Trang Học trực tuyến

  • Home » 
  • Giải SGK Tin học 11 - Cánh diều

Giải SGK Tin học 11 Bài 6 (Cánh diều): Kiểm thử và sửa lỗi chương trình

By admin 09/09/2023 0

Giải bài tập Tin học lớp 11 Bài 6: Kiểm thử và sửa lỗi chương trình

Khởi động trang 113 Tin học 11: Theo em, tại sao rất ít khi viết chương trình xong có thể chạy được ngay?

Lời giải:

Bởi vì chương trình vừa viết xong còn lỗi và chưa được sửa

3. Một số kinh nghiệm thực hành gỡ lỗi chương trình

Hoạt động trang 114 Tin học 11: Hãy cho một số ví dụ ca kiểm thử:

1. Chương trình giải phương trình bậc hai

2. Chương trình tính đếm (tính tổng, tính trung bình cộng,…) các số dương trong một mảng số thực.

Lời giải:

a) Gợi ý:

Ý tưởng

Dùng một vòng do while để nhập a, b, c nếu a = 0, thì nhập lại.

Chúng ta dùng hàm sqrt() trong thư viện math.h để tính căn delta hoặc tính căn không dùng hàm sqrt()tại đây.

Chúng ta tạo hàm giaiPT trả về kiểu int chính là số nghiệm của phương trình (1).

Chúng ta sẽ đưa tham chiếu 2 biến x1 , x2 vào hàm giaiPT để gán giá trị hai nghiệm.

Nếu pt (1) vô nghiện thì giaiPT sẽ trả về 0 , đồng thời gán x1 = x2 =0 .

Nếu pt (1) có nghiệm kép thì giaiPT sẽ trả về 1 , đồng thời gán x1 = x2 = -b/2a .

Nếu pt (1) có 2 nghiệm thì giaiPT sẽ trả về 2 , gán x1 = (-b+√delta ) / 2a x = (-b-√delta ) / 2a .

b) Gợi ý:

#include

usingnamespacestd;

voidnhap(int&n, inta[]){

for(inti=0;i<n;i++){

cout<<“a[“<<i+1<<“]=”;cin>>a[i];

}

}

voidxuat(intn, inta[]){

for(inti=0;i<n;i++){

cout<<a[i]<<” “;

}

}

inttinhTBCongint(intn, inta[]){

intsum=0,dem=0;

for(inti=0;i<n;i++){

sum+=a[i];dem++;

}

returnsum/n;

}

inttinhTBCongDuong(intn, inta[]){

intsum=0,dem=0;

for(inti=0;i<n;i++){

if(a[i]> 0) {

sum+=a[i];dem++;

}

}

if(dem==0) return0;

returnsum/dem;

}

inttinhTBCongAm(intn, inta[]){

intsum=0,dem=0;

for(inti=0;i<n;i++){

if(a[i]<0){

sum+=a[i];dem++;

}

}

if(dem==0) return0;

returnsum/dem;

}

intmain(){

intn;

inta[100];

do{

cout<<“Nhapn: “; cin>>n;

}while(n<= 0 || n >=100);

nhap(n,a);

cout<<“\n——–XUATMANG—-\n”;

xuat(n,a);

cout<<“Trungbinh cong: “<<tinhTBCongint(n,a)<<“\n\n”;

cout<<“Trungbinh so duong: “<<tinhTBCongDuong(n,a)<<“\n\n”;

cout<<“Trungbinh so am: “<<tinhTBCongAm(n,a)<<“\n\n”;

}

Luyện tập

Luyện tập 1 trang 116 Tin học 11: Có các loại lỗi chương trình nào? Nguyên nhân gây ra loại lỗi đó có thể là gì?

Lời giải:

Lỗi cú pháp

Lỗi thực thi

Lỗi logic

Luyện tập 2 trang 116 Tin học 11: Hãy nêu một vài thói quen lập trình tốt để chương trình ít lỗi và dễ gỡ lỗi

Lời giải:

– Đặt tên biến và hàm rõ ràng và mô tả đúng chức năng của chúng.

– Sử dụng các lời gọi hàm phù hợp để tái sử dụng mã.

– Đặt các phần của mã trong các hàm và lớp để dễ dàng tái sử dụng và kiểm thử.

– Sử dụng các phương thức kiểm thử để đảm bảo rằng chương trình hoạt động đúng và dễ dàng gỡ lỗi khi có lỗi.

– Ghi chú mã một cách rõ ràng để giải thích chức năng và cách sử dụng mã.

– Thường xuyên lưu mã để tránh mất dữ liệu khi xảy ra lỗi.

– Sử dụng các công cụ gỡ lỗi để tìm lỗi và sửa lỗi một cách nhanh chóng và dễ dàng hơn.

Tóm lại, các thói quen lập trình tốt có thể giúp giảm thiểu số lỗi trong chương trình và dễ dàng gỡ lỗi nếu có lỗi xảy ra.

Vận dụng

Vận dụng trang 116 Tin học 11: Em hãy liệt kê một số ca kiểm thử cho chương trình:

a) Tìm số x trong một dãy số (đã cho cụ thể).

b) Sắp xếp một dãy số.

Lời giải:

a) Gợi ý

Bước 1: Ta khai báo một mảng tĩnh số nguyên có 100 ô nhớ int a[100].

Bước 2: Ta khai báo số nguyên int n là số lượng phần tử có trong mảng với điều kiện n>1 hoặc n<100 nếu không thỏa mãn thì yêu cầu nhập lại n.

Bước 3: Ta khỏi tạo hàm void Nhap(int a[], int n) dùng để nhập dữ liệu từ bàn phím cho mảng. Trong hàm ta sử dụng vòng for bắt đầu từ int i =0 và kết thúc khi i

Bước 4: Ta khởi tạo hàm void Xuat(int a[], int n) dùng để hiển thị dữ liệu từ mảng ra màn hình. Trong hàm ta sử dụng vòng for bắt đầu từ int i =0 và kết thúc khi i

Bước 5: Ta khởi tạo hàm int TimKiem(int a[], int n) dùng để tìm kiếm phần tử; ta khai báo biến int x là số cần tìm và nhập vào giá trị của x; tiếp theo sử dụng vòng lặp for bắt đầu từ int i =0 và kết thúc khi i

Bước 6: Trong hàm main ta gọi hàm Nhap(a,n), Xuat(a,n) để hiển thị mảng gốc ta gọi thêm hàm TimKiem(a,n) rồi chạy chương trình.

b) Sắp xếp một dãy số giảm dần

#include

int main(){

int a[100];

int n;

printf(“\nNhap so luong phan tu n = “);

do{

scanf(“%d”, &n);

if(n <= 0){

printf(“\nNhap lai n = “);

}

}while(n <= 0);

for(int i = 0; i < n; i++){

printf(“\nNhap a[%d] = “,i);

scanf(“%d”, &a[i]);

}

// Sap xep dung thuat toan sap xep chon

int tg;

for(int i = 0; i < n – 1; i++){

for(int j = i + 1; j < n; j++){

if(a[i] < a[j]){

// Hoan vi 2 so a[i] va a[j]

tg = a[i];

a[i] = a[j];

a[j] = tg;

}

}

}

printf(“\nMang da sap xep la: “);

for(int i = 0; i < n; i++){

printf(“%5d”, a[i]);

}

}

Câu hỏi tự kiểm tra

Câu 1 trang 116 Tin học 11: Tại sao nói kiểm thử chương trình làm tăng độ tin cậy của chương trình nhưng chưa chứng minh được chương trình đã hết lỗi?

Lời giải:

Kiểm thử chương trình là một quá trình quan trọng để đảm bảo rằng chương trình hoạt động đúng như mong đợi và giảm thiểu số lượng lỗi có thể xảy ra trong quá trình sử dụng. Tuy nhiên, kiểm thử không thể đảm bảo rằng chương trình đã hết lỗi vì không thể kiểm thử tất cả các trường hợp có thể xảy ra. Một số lỗi có thể không được phát hiện trong quá trình kiểm thử do thiếu hoặc không đủ các trường hợp kiểm thử, hoặc do các lỗi tràn số, lỗi đồng bộ hóa hoặc các lỗi khác liên quan đến nền tảng phần cứng hoặc môi trường chạy của chương trình.

Vì vậy, kiểm thử là một phần quan trọng của quá trình phát triển phần mềm, tuy nhiên nó không thể đảm bảo rằng chương trình đã hết lỗi và chương trình vẫn cần được kiểm tra và bảo trì sau khi được triển khai.

Câu 2 trang 116 Tin học 11: Nên làm gì mỗi khi nghi ngờ một chức năng nào đó của chương trình chưa chắc đúng như ta mong muốn?

Lời giải:

Khi nghi ngờ một chức năng nào đó của chương trình chưa chắc đúng như ta mong muốn, chúng ta có thể thực hiện một số biện pháp sau:

– Xác định chính xác vấn đề: Ta cần xem xét lại đầu vào, thuật toán và kết quả trả về của chức năng để hiểu rõ hơn về vấn đề.

– Lặp lại thao tác để kiểm tra: Ta nên lặp lại thao tác đó nhiều lần để kiểm tra xem vấn đề có lặp lại không. Nếu vấn đề xuất hiện một cách định kỳ, ta có thể tìm ra nguyên nhân và khắc phục nó.

– Kiểm tra lại mã: Ta cần kiểm tra lại mã của chương trình, đảm bảo không có lỗi cú pháp hoặc sai sót nào trong quá trình viết code.

– Sử dụng công cụ gỡ lỗi: Ta nên sử dụng các công cụ gỡ lỗi để tìm ra nguyên nhân vấn đề.

– Tìm kiếm sự trợ giúp từ người có chuyên môn: Nếu không tìm ra được nguyên nhân, ta có thể hỏi người khác, ví dụ như các thành viên khác trong nhóm phát triển chương trình hoặc tìm kiếm hỗ trợ từ các diễn đàn trực tuyến.

– Tìm kiếm tài liệu: Ta có thể tìm kiếm trong tài liệu của chương trình hoặc thư viện liên quan để tìm ra lời giải cho vấn đề.

Xem thêm bài giải SGK Tin học lớp 11 Cánh diều hay, chi tiết khác:

Bài 5: Đánh giá thuật toán

Bài 6: Kiểm thử và sửa lỗi chương trình

Bài 7: Lập trình giải bài toán tìm kiếm

Bài 8: Lập trình một số thuật toán sắp xếp

Bài 9: Lập trình thuật toán sắp xếp nhanh

Share
facebookShare on FacebooktwitterShare on TwitteremailShare on Email
Post navigation
Previous post

Giải SGK Giáo dục Quốc phòng 11 Bài 10 (Kết nối tri thức): Kĩ thuật sử dụng lựu đạn

Next post

Giải SGK Tin học 11 Bài 7 (Cánh diều): Lập trình giải bài toán tìm kiếm

Bài liên quan:

Giải SGK Tin học 11 Bài 1 (Cánh diều): Bên trong máy tính

Giải SGK Tin học 11 Bài 2 (Cánh diều): Khám thế thế giới qua thiết bị số thông minh

Giải SGK Tin học 11 Bài 3 (Cánh diều): Khái quát về hệ điều hành

Giải SGK Tin học 11 Bài 4 (Cánh diều): Thực hành với các thiết bị số

Giải SGK Tin học 11 Bài 5 (Cánh diều): Phần mềm ứng dụng và dịch vụ phần mềm

Giải SGK Tin học 11 Bài 1 (Cánh diều): Lưu trữ trực tuyến

Giải SGK Tin học 11 Bài 2 (Cánh diều): Thực hành một số tính năng hữu ích của máy tìm kiếm

Giải SGK Tin học 11 Bài 3 (Cánh diều): Thực hành một số tính năng nâng cao của mạng xã hội

Leave a Comment Hủy

Mục lục

  1. Giải SGK Tin học 11 Bài 1 (Cánh diều): Bên trong máy tính
  2. Giải SGK Tin học 11 Bài 2 (Cánh diều): Khám thế thế giới qua thiết bị số thông minh
  3. Giải SGK Tin học 11 Bài 3 (Cánh diều): Khái quát về hệ điều hành
  4. Giải SGK Tin học 11 Bài 4 (Cánh diều): Thực hành với các thiết bị số
  5. Giải SGK Tin học 11 Bài 5 (Cánh diều): Phần mềm ứng dụng và dịch vụ phần mềm
  6. Giải SGK Tin học 11 Bài 1 (Cánh diều): Lưu trữ trực tuyến
  7. Giải SGK Tin học 11 Bài 2 (Cánh diều): Thực hành một số tính năng hữu ích của máy tìm kiếm
  8. Giải SGK Tin học 11 Bài 3 (Cánh diều): Thực hành một số tính năng nâng cao của mạng xã hội
  9. Giải SGK Tin học 11 Bài 4 (Cánh diều): Thực hành một số tính năng hữu ích của dịch vụ thư điện tử
  10. Giải SGK Tin học 11 (Cánh diều) Phòng tránh lừa đảo và ứng xử văn hoá trên mạng
  11. Giải SGK Tin học 11 Bài 1 (Cánh diều): Bài toán quản lý và cơ sở dữ liệu
  12. Giải SGK Tin học 11 Bài 2 (Cánh diều): Bảng và khoá chính trong cơ sở dữ liệu quan hệ
  13. Giải SGK Tin học 11 Bài 3 (Cánh diều): Quan hệ giữa các bảng và khoá ngoài trong CSDL quan hệ
  14. Giải SGK Tin học 11 Bài 4 (Cánh diều): Các biểu mẫu cho xem và cập nhập CSDL
  15. Giải SGK Tin học 11 Bài 5 (Cánh diều): Truy vấn trong cơ sở dữ liệu quan hệ
  16. Giải SGK Tin học 11 Bài 6 (Cánh diều): Truy vấn trong cơ sở dữ liệu quan hệ (tiếp theo)
  17. Giải SGK Tin học 11 Bài 7 (Cánh diều): Các loại kiến trúc của hệ CSDL
  18. Giải SGK Tin học 11 Bài 8 (Cánh diều): Bảo vệ sự an toàn của hệ CSDL và bảo mật thông tin trong CSDL
  19. Giải SGK Tin học 11 (Cánh diều) Nghề quản trị cơ sở dữ liệu
  20. Giải SGK Tin học 11 Bài 1 (Cánh diều): Kiểu mảng và cấu trúc mảng
  21. Giải SGK Tin học 11 Bài 2 (Cánh diều): Mảng hai chiều
  22. Giải SGK Tin học 11 Bài 3 (Cánh diều): Thực hành về tệp, mảng và danh sách
  23. Giải SGK Tin học 11 Bài 4 (Cánh diều): Làm mịn dần từng bước từ thuật toán đến chương trình máy tính
  24. Giải SGK Tin học 11 Bài 5 (Cánh diều): Đánh giá thuật toán
  25. Giải SGK Tin học 11 Bài 7 (Cánh diều): Lập trình giải bài toán tìm kiếm
  26. Giải SGK Tin học 11 Bài 8 (Cánh diều): Lập trình một số thuật toán sắp xếp
  27. Giải SGK Tin học 11 Bài 9 (Cánh diều): Lập trình thuật toán sắp xếp nhanh
  28. Giải SGK Tin học 11 Bài 10 (Cánh diều): Thiết kế chương trình từ trên xuống và phương pháp mô đun hoá
  29. Giải SGK Tin học 11 Bài 11 (Cánh diều): Thực hành thiết kế và lập trình theo mo đun
  30. Giải SGK Tin học 11 Bài 12 (Cánh diều): Thực hành thiết kế và lập trình theo mo đun (tiếp theo)
  31. Giải SGK Tin học 11 Bài 13 (Cánh diều): Thực hành thiết kế và lập trình theo mo đun (tiếp theo)
  32. Giải SGK Tin học 11 Bài 14 (Cánh diều): Thực hành về thư viện các hàm tự định nghĩa
  33. Giải SGK Tin học 11 Bài 15 (Cánh diều): Cấu trúc dữ liệu danh sách liên kết và ứng dụng
  34. Giải SGK Tin học 11 Bài 1 (Cánh diều): Một số thao tác chỉnh sửa ảnh và hỗ trợ chỉnh sửa ảnh trong phần mềm GIMP
  35. Giải SGK Tin học 11 Bài 2 (Cánh diều): Tẩy xoá ảnh trong GIMP
  36. Giải SGK Tin học 11 Bài 3 (Cánh diều): Tạo ảnh động trong GIMP
  37. Giải SGK Tin học 11 Bài 4 (Cánh diều): Giới thiệu phần mềm làm video Animiz
  38. Giải SGK Tin học 11 Bài 5 (Cánh diều): Chỉnh sửa video trên Animiz
  39. Giải SGK Tin học 11 Bài 6 (Cánh diều): Làm phim hoạt hình trên Animiz
  40. Giải SGK Tin học 11 Bài 7 (Cánh diều): Thực hành tổng hợp
  41. Giải SGK Tin học 11 Bài 1 (Cánh diều): Làm quen với Microsoft Access
  42. Giải SGK Tin học 11 Bài 2 (Cánh diều): Tạo bảng trong cơ sở dữ liệu
  43. Giải SGK Tin học 11 Bài 3 (Cánh diều): Liên kết các bảng trong cơ sở dữ liệu
  44. Giải SGK Tin học 11 Bài 4 (Cánh diều): Tạo và sử dụng biểu mẫu
  45. Giải SGK Tin học 11 Bài 5 (Cánh diều): Thiết kế truy vấn
  46. Giải SGK Tin học 11 Bài 6 (Cánh diều): Tạo báo cáo đơn giản
  47. Giải SGK Tin học 11 Bài 7 (Cánh diều): Chỉnh sửa các thành phần giao diện
  48. Giải SGK Tin học 11 Bài 8 (Cánh diều): Hoàn tất ứng dụng

Copyright © 2025 Trang Học trực tuyến
  • Sach toan
  • Giới thiệu
  • LOP 12
  • Liên hệ
  • Sitemap
  • Chính sách
Back to Top
Menu
  • Môn Toán