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 nhập câu hỏi của bạn vào đây, nếu là tài khoản VIP, bạn sẽ được ưu tiên trả lời.
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";
}
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.
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.
#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;
}
Test 1:
a=2; b=4
=>-2
Test 2:
a=0; b=0;
=>Vô số nghiệm
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.
#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;
}
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";
}