Tải bản đầy đủ (.doc) (9 trang)

Bài tập đáp án câu 7đ C++

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (106.05 KB, 9 trang )

#include <stdio.h>
#include <conio.h>
#include <math.h>
#define N 50
float A[N][N];

1. Nhập dữ liệu cho các phần tử của mảng A
void CauA()
{ int i, j;
float tam;
printf("Nhap du lieu cho cac phan tu cua mang A:");
for (i = 0; i < N; i++)
for (j = 0; j < N; j++)
{
printf("Nhap A[%d][%d]= ",i,j); scanf("%f", &tam);
A[i][j] = tam;
}
}

Lập dưới dạng các hàm
2. Tính tổng S1 gồm các phần tử ở hai cột 3 và 10

void CauB()
{ int i;
float S1;
S1 = 0;
for (i = 0; i < N; i++)
S1 += A[i][3] + A[i][10];
printf("Tong cac phan tu o hai cot 3 va 10 la %8.2f",S1);
}


Lập dưới dạng các hàm
3. Tính tổng bình phương các phần tử nằm trên đường chéo phụ
9

void CauC()
{ int i;
float S = 0;
for (i = 0; i < N; i++)
S += A[i][N-1-i]* A[i][N-1-i];
printf("Tong binh phuong cac phan tu nam tren duong cheo
phu la %8.2f",S);
}

Lập dưới dạng các hàm
4. Tìm phần tử nhỏ nhất của mỗt dòng và đặt chúng vào vị trí cuối của dòng
đó
void CauD()
{ int i, j, MinPos;
float MinRow;
for (i = 0; i < N; i++)
{
MinRow = A[i][0]; MinPos = 0;
for (j = 0; j < N; j++)
if (MinRow > A[i][j])
{
MinRow = A[i][j];
MinPos = j;
}
A[i][MinPos]= A[i][N-1];
A[i][N-1]= MinRow;

}
}

Lập dưới dạng các hàm
void main()
{
CauA();
CauB();
CauC(); CauD();


getch();
}

Câu
10

Ý

#include
#include
#include
#include

<iostream.h>
<conio.h>
<iomanip.h>
<math.h>

Nội dung


1. Xây dựng cấu trúc dữ liệu phù hợp để biểu diễn ma trận, nhập ma trận
struct Matrix
{ int n;
float A[20][20];
} X,Y;
void Input(Matrix &X);
Matrix operator+(Matrix X, Matrix Y);
Matrix operator-(Matrix X, Matrix Y);
Matrix operator*(Matrix X, Matrix Y);
void Input(Matrix &X)
{
int i,j;
for (i=0; ifor (j=0; j{
cout<<"A["<cin>>X.A[i][j];
}
}

Lập dưới dạng các hàm
2. Cộng hai ma trận
Matrix operator+(Matrix X, Matrix Y)
{
Matrix temp;
int i,j;
for (i=0; ifor (j=0; jtemp.A[i][j]= X.A[i][j]+Y.A[i][j];

temp.n = X.n;
return temp;
}

Lập dưới dạng các hàm
3. Trừ hai ma trận
Matrix operator-(Matrix X, Matrix Y)
{
Matrix temp;
int i,j;
for (i=0; ifor (j=0; jtemp.A[i][j]= X.A[i][j]-Y.A[i][j];
temp.n = X.n;
return temp;
}

Lập dưới dạng các hàm
4. Nhân hai ma trận
Matrix operator*(Matrix X, Matrix Y)
{
Matrix temp;
int i,j,k;
for (i=0; ifor (j=0 j{
temp.A[i][j]= 0.0;


for (k=0; k

temp.A[i][j]+= X.A[i][k]*Y.A[k][j];
}
temp.n = X.n;
return temp;
}

Lập dưới dạng các hàm
main()
{
clrscr();
Matrix M1, M2, M3;
cout<<"Nhap cap ma tran:"; cin>>X.n;
Y.n = X.n;
Input(X);
Input(Y);
M1= X+Y;
M2= X-Y; M3=
X*Y; getch();
}

Câu

Ý

Nội dung

#include <iostream.h>
#include <conio.h>
#include <math.h>


1. Xây dựng cấu trúc dữ liệu biểu diễn đa thức, nhập đa thức
struct Term
{ int n;
float a[20];
} f2,f3,f4,g,h;

11

void
Input(Term &t);
Term
operator-(Term t);
Term
operator-(Term t1, Term t2);
Term
operator*(Term t1, Term t2);
void Input(Term &t)
{
int i;
cout<<"Nhap bac cua da thuc:"; cin>>t.n;
cout<<"Nhap cac he so cua da thuc:";
for (i=0; i<=t.n; i++)
{
cout<<"He so bac "<cin>>t.a[i];
}
}

Lập dưới dạng các hàm
2. Đảo dấu một đa thức

Term operator-(Term t)
{
Term temp;
int i;
temp.n= t.n;
for (i=0; i<=temp.n; i++)
temp.a[i]= -t.a[i];
return temp;
}

Lập dưới dạng các hàm
3. Trừ hai đa thức
Term operator-(Term t1, Term t2)


{
Term temp;
int k,i;
k= t1.n>t2.n?t1.n:t2.n;
for (i=0; i<=k; i++)
if (i<=t1.n && i<=t2.n)
temp.a[i]= t1.a[i] - t2.a[i];
else
if (i<=t1.n)
temp.a[i]= t1.a[i];
else
temp.a[i]= t2.a[i];
i= k;
while (i>0 && temp.a[i]==0.0) --i;
temp.n= i;

return temp;
}

Lập dưới dạng các hàm
4. Nhân hai đa thức
Term operator*(Term t1, Term t2)
{
Term temp; int
k,i,j;
temp.n= t1.n+t2.n;
k= temp.n;
for (i=0; i<=k; i++)
temp.a[i]= 0;
for (i=0; i<=t1.n; i++)
for (j=0; j<=t2.n; j++)
temp.a[i+j]+= t1.a[i]*t2.a[j];
return temp;
}

Lập dưới dạng các hàm
main()
{ clrscr();
Input(g);
Input(h); f3 =
g-h;
f4 = g*h;
f2 = (-g);
getch();

}


Câu
12

Ý

#include <iostream.h>
#include <conio.h>
#include <math.h>

Nội dung

1. Xây dựng cấu trúc dữ liệu biểu diễn đa thức, nhập đa thức
struct Term
{ int n;
float a[20];
} f2,f4,g,h;
void Input(Term &t);
Term operator+(Term t1, Term t2);
Term operator*(Term t1, Term t2);
float gt(Term t, float x);
void Input(Term &t)
{
int i;
cout<<"Nhap bac cua da thuc:"; cin>>t.n;
cout<<"Nhap cac he so cua da thuc:";


for (i=0; i<=t.n; i++)
{

cout<<"He so bac "<cin>>t.a[i];
}
}

Lập dưới dạng các hàm
2. Tính giá trị của đa thức tại một giá trị x = x0, x0 nhập từ bàn phím.
float gt(Term t, float x)
{
float temp, expx;
int i;
temp= 0; expx= 1;
for (i=t.n; i>=0; i--)
{
temp+= t.a[i]*expx;
expx*= x;
}
return temp;
}

Lập dưới dạng các hàm
3. Cộng hai đa thức
Term operator+(Term t1, Term t2)
{
Term temp;
int k,i;
k= t1.n>t2.n?t1.n:t2.n;
for (i=0; i<=k; i++)
if (i<=t1.n && i<=t2.n)
temp.a[i]= t1.a[i]+t2.a[i];

else
if (i<=t1.n)
temp.a[i]= t1.a[i];
else
temp.a[i]= t2.a[i];
i= k;
while (i>0 && temp.a[i]==0.0) --i;
temp.n= i;
return temp;
}

Lập dưới dạng các hàm
4. Nhân hai đa thức
Term operator*(Term t1, Term t2)
{
Term temp;
int k,i,j;
temp.n= t1.n+t2.n;
k= temp.n;
for (i=0; i<=k; i++)
temp.a[i]= 0;
for (i=0; i<=t1.n; i++)
for (j=0; j<=t2.n; j++)
temp.a[i+j]+= t1.a[i]*t2.a[j];
return temp;
}

Lập dưới dạng các hàm
main()
{ float x0;

clrscr();
Input(g);
Input(h);
f2= g+h;


f4= g*h;
cout<<"Nhap x0="; cin>>x0;
cout<<"Gia tri ham g tai x=x0 la:"<getch();
}

Nội dung
Câu
13

Ý

#include <iostream.h>
#include <conio.h>
#include <math.h>

1. Xây dựng cấu trúc dữ liệu biểu diễn phân số, nhập phân số
struct PS
{ int x, y;
} p1, p2, a, b;
void Input(PS &a)
{
cout<<"Nhap phan so x/y:\n";
cout<<"x="; cin>>a.x;

cout<<"y="; cin>>a.y;
}
PS Rutgon(PS a);
PS operator+(PS a, PS b); PS
operator/(PS a, PS b);

Lập dưới dạng các hàm
2. Rút gọn một phân số
int UCLN(int a, int b)
{
int tg;
do
if (a>=b)
{
tg= a;
a= b;
b= tg-a;
}
else
b= b-a;
while (b!=0);
return tg;
}
PS Rutgon(PS a)
{ PS temp;
temp.x= a.x/UCLN(a.x,a.y);
temp.y= a.y/UCLN(a.x,a.y);
return temp;
}


Lập dưới dạng các hàm
3. Cộng hai phân số
PS operator+(PS a, PS b)
{
PS temp;
temp.x= a.x*b.y+a.y*b.x;
temp.y= a.y*b.y;
temp= Rutgon(temp);
return temp;
}

Lập dưới dạng các hàm
4. Chia hai phân số
PS operator/(PS a, PS b)
{
PS temp;
temp.x= a.x*b.y;
temp.y= a.y*b.x;


temp= Rutgon(temp);
return temp;
}

Lập dưới dạng các hàm
main()
{
clrscr();
Input(a);
Input(b);

p1= a+b;
p2= a/b;
getch();
}

Câu
14

Ý

#include <iostream.h>
#include <conio.h>
#include <math.h>

Nội dung

1. Xây dựng cấu trúc dữ liệu biểu diễn phân số, nhập phân số
struct PS
{ int x, y;
} p2, p3, a, b;
void Input(PS &a);
{
cout<<"Nhap phan so x/y:\n";
cout<<"x="; cin>>a.x;
cout<<"y="; cin>>a.y;
}
PS Rutgon(PS a);
PS operator-(PS a, PS b); PS
operator*(PS a, PS b);


Lập dưới dạng các hàm
2. Rút gọn một phân số
int UCLN(int a, int b)
{
int tg;
do
if (a>=b)
{
tg= a;
a= b;
b= tg-a;
}
else
b= b-a;
while (b!=0);
return tg;
}
PS Rutgon(PS a)
{ PS temp;
temp.x= a.x/UCLN(a.x,a.y);
temp.y= a.y/UCLN(a.x,a.y);
return temp;
}

Lập dưới dạng các hàm
3. Trừ hai phân số
PS operator-(PS a, PS b)
{
PS temp;
temp.x= a.x*b.y-a.y*b.x;

temp.y= a.y*b.y;
temp= Rutgon(temp);


return temp;
}

Lập dưới dạng các hàm
4. Nhân hai phân số
PS operator*(PS a, PS b)
{
PS temp;
temp.x= a.x*b.x;
temp.y= a.y*b.y;
temp= Rutgon(temp);
return temp;
}

Lập dưới dạng các hàm
main()
{
clrscr();
Input(a);
Input(b);
p2= a-b;
p3= a*b;
getch();
}

Câu

15

Ý

Nội dung

#include
#include
#include
#include
#include

<stdio.h>
<conio.h>
<math.h>
<stream.h>


1. Viết hàm nhập, in ra số phức
typedef struct
{ float phanthuc;
float phanao;
} sophuc;
sophuc Nhap(float a, float b);
void Inra(sophuc a);
sophuc operator + (sophuc a, sophuc b);
sophuc operator / (sophuc a, sophuc b);
sophuc Tinh(sophuc a, sophuc b)
sophuc Nhap(float thuc,float ao)
{ sophuc tg;

tg.phanthuc=thuc;
tg.phanao=ao;
return tg;
}
void Inra(sophuc a)
{
if (a.phanao >= 0)
cout<<"\n\n"<else
cout<<"\n\n"<}

Lập dưới dạng các hàm
2. Thực hiện toán tử cộng (+)
sophuc operator +(sophuc a, sophuc b)
{ sophuc tg;
tg.phanthuc = a.phanthuc + b.phanthuc;
tg.phanao = a.phanao + b.phanao;
return tg;
}


Lập dưới dạng các hàm
3. Thực hiện toán tử chia (/)
sophuc operator / (sophuc a, sophuc b)
{ sophuc tg;
if ((b.phanthuc == 0)&&(b.phanao == 0))
{ cout<<"\nKhong chia duoc";
getch();
exit(1);

}
tg.phanthuc=(a.phanthuc*b.phanthuc+a.phanao*b.phanao)/(b
.phanthuc*b.phanthuc+b.phanao*b.phanao);
tg.phanao = (b.phanthuc*a.phanaoa.phanthuc*b.phanao)/(b.phanthuc*b.phanthuc+b.phanao*b.phanao)
;
return tg;
}

Lập dưới dạng các hàm
4. Áp dụng, hãy tính giá trị của biểu thức c = (a + b) / a, với a, b là các số phức.
sophuc Tinh(sophuc a, sophuc b)
{ sophuc c;
c = (a + b) / a;
return c;
}

Lập dưới dạng các hàm
main()
{ sophuc a,b,c, d, e;
clrscr();
float x1,y1,x2,y2;
cout<<"\nNhap so phuc thu 1\n";
cout<<"\nNhap phan thuc = "; cin>>x1;
cout<<"\nNhap phan ao = "; cin>>y1;
cout<<"\nNhap so phuc thu 2\n";
cout<<"\nNhap phan thuc = "; cin>>x2;
cout<<"\nNhap phan ao = "; cin>>y2;
a = Nhap(x1,y1);
b = Nhap(x2,y2);
d = a + b;

e = a / b;
c = (a+b)/b;
Inra(a);
Inra(b);
Inra(d);
Inra(e);
cout<<"\nBieu thuc C la:";
Inra(c);
getch();
return 0;
}



×