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.
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.
Tham khảo:
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 <iostream>
using namespace std;
void nhap(int &n, int a[]){
for(int i=0;i<n;i++){
cout<<"a["<<i+1<<"]= ";cin>>a[i];
}
}
void xuat(int n, int a[]){
for(int i=0;i<n;i++){
cout<<a[i]<<" ";
}
}
int tinhTBCongint (int n, int a[]){
int sum=0, dem=0;
for(int i=0;i<n;i++){
sum+=a[i]; dem++;
}
return sum/n;
}
int tinhTBCongDuong(int n, int a[]){
int sum=0, dem=0;
for(int i=0;i<n;i++){
if(a[i] > 0) {
sum+=a[i]; dem++;
}
}
if(dem==0) return 0;
return sum/dem;
}
int tinhTBCongAm(int n, int a[]){
int sum=0, dem=0;
for(int i=0;i<n;i++){
if(a[i]<0) {
sum+=a[i]; dem++;
}
}
if(dem==0) return 0;
return sum/dem;
}
int main(){
int n;
int a[100];
do{
cout<<"Nhap n: "; cin>>n;
}while(n <= 0 || n >=100);
nhap(n,a);
cout<<"\n--------XUAT MANG----\n";
xuat(n,a);
cout<<"Trung binh cong: "<<tinhTBCongint(n,a)<<"\n\n";
cout<<"Trung binh so duong: "<<tinhTBCongDuong(n,a)<<"\n\n";
cout<<"Trung binh so am: "<<tinhTBCongAm(n,a)<<"\n\n";
}
Bài 1: Hãy viết chương trình con thực hiện các công việc sau trên mảng một chiều:
+ Nhập vào 1 mảng
+ In mảng + Sắp xếp mảng tăng dần
+ Tính tổng các phần tử trong mảng
+ Đếm các phần tử chia hết cho 3 trong mảng
+ Đếm các số âm, dương trong mảng
Bài 2: Viết chương trình con để tính diện tích các hình sau:
- Diện tích hình tam giác theo công thức herrong khi biết độ dài 3 cạnh a, b, c của tam giác. S=sqrt(p*(p-a)*(p-b)*(p-c)) với p=(a+b+c)/2
- Diện tích hình thang khi biết độ dài chiều cao h và 2 cạnh đáy a, b S=(a+b)*h/2 - Diện tích hình vuông khi biết độ dài cạnh.
Bài 3: Viết chương trình giải phương trình bậc 2 sử dụng chương trình con
Viết chương trình nhập vào 1 mảng gồm 10 phần tử hãy:
1. Hiển thị dãy vừa nhập trên 1 hang.
2. Tính tổng các phần tử trong mảng.
3. Tính trung bình cộng các phần tử trong mảng.
4. Tính tổng các số âm và số dương trong mảng.
5. Tính tổng các số chẵn và số lẻ trong mảng.
6. Đếm các số âm, số dương, số chẵn, số lẻ trong mảng.
program bt;
uses crt;
var i, s, sa, sd, sc, sl, da, dd, dc, dl : integer;
a : array[1..50] of integer;
begin
clrscr;
for i:=1 to 10 do begin
write('Nhap phan tu thu ',i,': '); readln(a[i]);
end;
write('Day so vua nhap la: ');
for i:=1 to 10 do write(a[i],', ');
writeln;
s := 0; sa := 0; sd := 0; sc := 0; sl := 0; da := 0; dd := 0; dc := 0; dl := 0;
for i:=1 to 10 do begin
s := s + a[i];
if (a[i] > 0) then begin sd := sd + a[i]; dd := dd + 1 end;
if (a[i] < 0) then begin sa := sa + a[i]; da := da + 1 end;
if (a[i] mod 2 = 0) then begin sc := sc + a[i]; dc := dc + 1; end
else begin sl := sl + a[i]; dl := dl + 1 end;
end;
writeln('Tong cac phan tu trong mang la ',s);
writeln('Trung binh cong cac phan tu trong mang la ',s/10);
writeln('Tong cac so am la ',sa);
writeln('Tong cac so duong la ',sd);
writeln('Tong cac so chan la ',sc);
writeln('Tong cac so le la ',sl);
writeln('So cac so am la ', da);
writeln('So cac so duong la ', dd);
writeln('So cac so chan la ', dc);
writeln('So cac so le la ', dl);
readln
end.
viết chương trình nhập mảng một chiều gồm n phần tử n<=100 kiểu nguyên rồi thực hiện (nhập từ bàn phím hoặc nhập ngẫu nhiên)
a. Đếm số lượng phần tử dương cho kết quả ra màn hình
b. Tính tổng các phần tử dương trong mảng
c. Tính trung bình các phần tử trong mảng
d. Tính trung bình các phần tử dương trong mảng
e. Tìm vị trí đầu tiên cảu phần tử =k với k nhập từ bàn phím
f. Tìm vị trí phần tử =k với k nhập từ bàn phím, nếu có nhiều phần tử =k thì hiển thị ra màn hình tất cả vị trí phần tử =k đó.
g. Đếm số lượng phần tử là nguyên tố trong mảng.
h. Kiểm tra mảng vừa nhập có phải là cấp số cộng hay không?
i. Sắp xếp mảng theo thứ tự tăng dần các phần tử và hiển thị ra màn hình mảng tăng đó
uses crt;
var a:array[1..100]of integer;
i,n,dem,t,tb:integer;
begin
clrscr;
write('Nhap n='); readln(n);
for i:=1 to n do
begin
write('A[',i,']='); readln(a[i]);
end;
dem:=0;
t:=0;
for i:=1 to n do
if a[i]>0 then
begin
dem:=dem+1;
t:=t+a[i];
end;
writeln('So luong phan tu duong la: ',dem);
writeln('Tong cac phan tu duong la: ',t);
writeln('Trung binh cac phan tu duong la: ',t/dem:4:2);
readln;
end.
Chương trình nhập mảng 1 chiều:
1. Đếm số phần tử dương cho kết quả ra màng hình
2.Tính tổng các phần tử dương trong màng hình
3.Tính trung bình các phần tử trong mảng
4.Tính trung bình các phần tử dương trong mảng
5.Tìm vị trí đầu tiên của các phần tử = k và k nhập từ bàn phím
6.Tìm vị trí phần tử K, nếu có nhiều phần tử =k thì hiển thị ra màn hình tất cả vị trí phần tử =k đó
7.Đếm số lượng phần tử là số nguyên tố trong mảng
8.Kiểm tra mảng vừa nhập có phải cấp số nhân hay không
9.Sắp xếp mảng theo thứ tự tăng dần các phần tử và hiển thị ra mảng tăng đó
#include <bits/stdc++.h>
using namespace std;
long long x,i,n,t1,dem,t;
int main()
{
cin>>n;
dem=0;
t=0;
t1=0;
for (i=1; i<=n; i++)
{
cin>>x;
t+=x;
if (x>0)
{
dem++;
t1+=x;
}
}
cout<<"So phan tu duong la: "<<dem<<endl;
cout<<"Tong cac so duong la: "<<t1<<endl;
cout<<"Trung binh cong cua day la: "<<fixed<<setprecision(2)<<(t*1.0)/(n*1.0)<<endl;
cout<<"Trung binh cac so duong la: "<<fixed<<setprecision(2)<<(t1*1.0)/(dem*1.0);
return 0;
}
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 đó.
Test 1:
a=2; b=4
=>-2
Test 2:
a=0; b=0;
=>Vô số nghiệm
1. Viết chương trình nhập vào một mảng các số nguyên. Tìm tổng các số.
2. Viết chương trình nhập vào một mảng các số nguyên. Tính và xuất tổng các số chẵn có trong mảng.
3. Viết chương trình nhập vào một mảng các số nguyên. Tính và xuất tổng các số lẻ có trong mảng.
4. Viết chương trình nhập vào một dãy các số nguyên. Hãy đưa ra màn hình có bao nhiêu số chẳn và bao nhiêu số lẻ trong dãy.
5. Viết chương trình nhập vào một dãy gồm N số nguyên. Cho biết có bao nhiêu số có giá trị chia hết cho 5 và không chia hết cho 3 trong dãy đó. Xuất số lượng đếm được và vị trí các số đó
6. Viết chương trình nhập vào một mảng các số nguyên. Tìm giá trị lớn nhất và vị trí của nó.
7. Viết chương trình nhập vào một mảng các số thực. Tìm giá trị nhỏ nhất và vị trí của nó.
8. Viết chương trình nhập vào một mảng các số nguyên. Sau đó nhập vào một số và tìm xem số ấy có trong mảng hay không, nếu có xuất vị trí.
9. Nhập một dãy số gồm N số nguyên. Tìm tổng bình phương các số(a21+ a22+ a23+… a2N)
10. Viết chương trình nhập vào một dãy số và sắp xếp theo thứ tự giảm dần.
11. Viết chương trình chèn thêm một số nguyên vào vị trí thứ k(k=1, k=5, k=9 hoặc k=N) của mảng số nguyên gồm N phần tử.
12. Viết chương trình xóa một phần tử thứ k (với k là số nguyên và 1<=k<=N. VD k=1, k=5, k=9 hoặc k=N) của mảng số nguyên gồm N phần tử.
Câu 1:
uses crt;
var a:array[1..100]of integer;
i,n,t:integer;
begin
clrscr;
write('Nhap n='); readln(n);
for i:=1 to n do
begin
write('A[',i,']='); readln(a[i]);
end;
t:=0;
for i:=1 to n do
t:=t+a[i];
writeln('Tong cac so trong mang la: ',t);
readln;
end.
Câu 2:
uses crt;
var a:array[1..100]of integer;
i,n,t:integer;
begin
clrscr;
write('Nhap n='); readln(n);
for i:=1 to n do
begin
write('A[',i,']='); readln(a[i]);
end;
t:=0;
for i:=1 to n do
if a[i] mod 2=0 then t:=t+a[i];
writeln('Tong cac so chan la: ',t);
readln;
end.
Viết chương trình vào 1 mảng số nguyên phải thực hiện các công việc: a). Đếm xem có bao nhiêu phần tử dương và phần tử âm trong mảng b). Tính và đưa ra màng hình tổng các số dương và tổng câc số âm
#include <bits/stdc++.h>
using namespace std;
long long x,n,i,dem1,dem2,t1,t2;
int main()
{
cin>>n;
dem1=0;
dem2=0;
t1=0;
t2=0;
for (i=1; i<=n; i++)
{
cin>>x;
if (x>0)
{
dem1++;
t1+=x;
}
if (x<0)
{
dem2++;
t2+=x;
}
}
cout<<dem1<<" "<<dem2<<endl;
cout<<t1<<" "<<t2;
return 0;
}
Viết chương trình sử dụng biến mảng nhập n số nguyên. In ra màn hình dãy số vừa nhập:
a)Đếm số chẵn trong dãy số vừa nhập
b)Tính tổng các số trong dãy
c)Tính tổng các sô chẵn trong dãy
d)Tính trung bình cộng các số chẵn trong dãy
e)Tìm ra số lớn nhất trong dãy và in ra vị trí của số lớn nhất
f)Tìm ra số nhỏ nhất trong dãy và in ra vị trí của số nhỏ nhất
g) Tính trung bình cộng các số trong dãy