Có một chương trình giải bài toán:“Nhập từ bàn phím hai số thực a và b. Hãy tìm nghiệm của phương trình ax + b = 0”Em hãy nêu một vài bộ dữ liệu kiểm thử để kiểm định tính đúng đắn của chương trình đó.
Ở lớp 10, em đã học một số phương pháp kiểm thử chương trình. Em hãy thảo luận với các bạn về các phương pháp kiểm thử sau, nêu ý nghĩa của chúng trong việc đánh giá độ tin cậy và chứng minh tính đúng của chương trình:
1.Tạo các bộ dữ liệu kiểm thử (test) để kiểm tra dữ liệu đầu ra có chính xác hay không.
2.Thiết lập điểm dừng hoặc cho chương trình chạy theo từng lệnh để kiểm tra và tìm ra lỗi (bug) của chương trình.
3.Thực hiện in dữ liệu trung gian trong quá trình kiểm thử để tìm ra lỗi của chương trình (nếu có).
THAM KHẢO!
1.Tạo các bộ dữ liệu kiểm thử để kiểm tra dữ liệu đầu ra: Phương pháp này giúp đánh giá tính chính xác của dữ liệu đầu ra của chương trình. Bằng cách tạo ra các bộ dữ liệu kiểm thử đa dạng và phong phú, ta có thể đảm bảo rằng chương trình hoạt động đúng trên nhiều trường hợp khác nhau, từ đó đánh giá được độ tin cậy của chương trình. Nếu chương trình không đáp ứng được kết quả mong đợi trên các bộ dữ liệu kiểm thử, ta có thể suy ra rằng chương trình chưa hoạt động chính xác hoặc có thể chứa các lỗi còn chưa được phát hiện.
2.Thiết lập điểm dừng hoặc kiểm tra từng lệnh của chương trình: Phương pháp này giúp kiểm tra từng bước thực thi của chương trình, từ đó giúp tìm ra các lỗi hoặc bug của chương trình. Bằng cách dừng chương trình ở các điểm kiểm tra hoặc theo dõi từng lệnh, ta có thể kiểm tra giá trị của các biến, xác nhận tính đúng đắn của các phép tính, kiểm tra điều kiện của các câu lệnh rẽ nhánh, v.v. Nếu phát hiện lỗi trong quá trình này, ta có thể xác định nguyên nhân và sửa chữa chúng.
3.Thực hiện in dữ liệu trung gian trong quá trình kiểm thử: Phương pháp này giúp theo dõi dữ liệu giữa các bước trong quá trình kiểm thử. Bằng cách in ra dữ liệu trung gian, ta có thể xác nhận tính đúng đắn của các giá trị được sử dụng trong chương trình, theo dõi dòng dữ liệu từ đầu vào đến đầu ra của chương trình, từ đó giúp phát hiện và sửa chữa lỗi nếu có. Điều này giúp đảm bảo tính đúng đắn của kết quả của chương trình trong quá trình kiểm thử.
Thực hành theo các yêu cầu sau:
a) Tạo chương trình ở Hình 4.
b) Chạy thử chương trình với các bộ dữ liệu thử em đã đề xuất ở hoạt động làm của Mục 1 để phát hiện lỗi chương trình.
c) Thực hiện gỡ lỗi để chương trình tính đúng nghiệm của phương trình ax + b = 0 với mọi cặp số a, b.
a) Học sinh tự thực hiện tạo chương trình như Hình 4.
b) Chạy thử với bộ dữ liệu thử: a = 0, b = 2 và a = 0, b = 0.
c) Gỡ lỗi:
Tạo chương trình ở Hình 7. Thực hiện kiểm thử, gỡ lỗi để chương trình đưa ra đúng tổng của 10 số được nhập từ bàn phím.
- Học sinh tự thực hiện tạo chương trình như sau và tiến hành kiểm thử.
- Gỡ lỗi: Chuyển lệnh gán giá trị ban đầu S = 0 ra khỏi điều kiện lặp.
Hãy xây dựng các bộ dữ liệu kiểm thử đề tìm lỗi cho chương trình tính n! với n là một số nguyên dương nhập từ bàn phím.
n=int(input(“nhập số n:”))
if n>0:
giaithua=1
for i in range(1,n+1):
giaithua = giaithua*i
print(n,”giai thừa bằng:”,giaithua)
Dưới đây là một số bộ dữ liệu kiểm thử đề tìm lỗi cho chương trình tính n!:
Số nguyên dương: n = 5 Kết quả mong đợi: 5! = 120
Số nguyên âm: n = -3 Kết quả mong đợi: Lỗi - Số nguyên dương được yêu cầu
Số 0: n = 0 Kết quả mong đợi: Lỗi - Số nguyên dương được yêu cầu
Số nguyên lớn: n = 10 Kết quả mong đợi: 10! = 3628800
Số chẵn: n = 6 Kết quả mong đợi: 6! = 720
Số lẻ: n = 7 Kết quả mong đợi: 7! = 5040
Số nguyên tối đa: n = 12 Kết quả mong đợi: 12! = 479001600
Số nguyên tối thiểu: n = 1 Kết quả mong đợi: 1! = 1
Số nguyên dương lớn nhất: n = 999 Kết quả mong đợi: Kết quả chưa đúng do số quá lớn vượt quá giới hạn của kiểu dữ liệu int
Số nhập không phải số nguyên: n = "abc" Kết quả mong đợi: Lỗi - Số nguyên dương được yêu cầu
Những bộ dữ liệu này giúp kiểm thử chương trình với các trường hợp đặc biệt và tiềm ẩn lỗi, như số âm, số 0, số nguyên tối đa, số nhập không phải số nguyên, giúp đảm bảo tính đúng đắn và hoạt động ổn định của chương trình tính n!.
tham khảo!
Mn giải giúp e vs ạ
Sửa 4 lỗi trong chương trình dưới đây để có một chương trình hoàn thiện giải quyết bài toán : Cho 3 cạnh của tam giac là số thực a,b, c nhập vào từ bàn phím, kiểm tra xem tam giác đã cho có phải tam giác đều không? (2đ) Program kiemtra; Uses crt; var a,b,c: integer; Begin write(' Moi nhap 3 canh cua mot tam giac a, b, c: '); Readln(a;b;c); If a=b=c then Writeln( 'Day la 3 canh cua tam giac deu’); Else writeln(' Day khong phai canh cua tam giac deu'); readln; End. Lỗi 1: var a,b,c: integer; Sửa lỗi 1: ___________________________________ Lỗi 2: readln(a;b;c); Sửa lỗi 2: _____________________________________ Lỗi 3: If a=b=c then Sửa lỗi 3: ______________________________________ Lỗi 4: Writeln( 'Day la 3 canh cua tam giac deu'); Sửa lỗi 4 ________________________
Giả sử đã có một chương trình tính tổng N số nguyên dương đầu tiên với N nhập vào từ bàn phím. Em hãy cho biết không nên chọn giá trị nào trong những phương án dưới đây để làm dữ liệu kiểm thử
Một số nguyên lớn hơn 1000
Số -5
Số 25
Một số nguyên N nhỏ hơn 10
giả sử viết chương trình nhập một số tự nhiên từ bàn phím và in ra màn hình kết quả số đã nhập là số chẵn hay lẻ , chẳng hạn "5 là số lẻ ","8 là số chẵn" a) hãy mô tả các bước của thuật toán để giải quyết bài toán trên b) viết chương trình bằng ngôn ngữ lập trình pascal dựa trên thuật toán đã mô tả c) khởi động phần mền free pascal , soạn thảo, lưu, dịch, chạy chương trình dẫ viết ở câu 2 bằng bộ dữ liệu cụ thể
Để viết chương trình giải phương trình bậc nhất có dạng: ax + b = 0 (a#0), em cần phải thực hiện lệnh nhập vào từ bàn phím các biến nào sau đây:
A. readln(a, b, x);
B. readln(a, b);
C. readln(a,x);
D. readln(b, x);
Hãy xác định bài toán , mô tả thuật toán và viết chương trình nhập vào một dãy số nguyên với n phần tử ( n được nhập từ bàn phím ) , tìm giá trị nhỏ nhất và tích của dãy số đó
uses crt;
var a:array[1..100]of integer;
i,n,nn,s:integer;
begin
clrscr;
readln(n);
for i:=1 to n do readln(a[i]);
nn:=a[1];
s:=1;
for i:=1 to n do
begin
if nn>a[i] then nn:=a[i];
s:=s*a[i];
end;
writeln(nn);
writeln(s);
readln;
end.