Code:
#include<stdio.h>
#include<math.h>
#include<iostream.h>
#include<conio.h>
#include<stdlib.h>
#define max 20
float A[max],B[max],E[max];int n,m;
//void Xem(float *C,int n1);
class DATHUC {
public :
void Nhap (float *C,int n1);
void Xem (float *C,int n1);
float TinhGT (float *C,int n1,float x);
void Tong (float *H,float *C,int n,float *D,int m);
void Hieu (float *H,float *C,int n,float *D,int m);
void Tich (float *E,float *A,int n,float *B,int m);
void Daoham1 (float *C,int n1);
};
DATHUC d;
//2.Ham Nhap Du lieu
void DATHUC :: Nhap(float *C,int n1)
{
int i;float t;FILE *f;
f=fopen("input.txt","w");
for(i=0;i<=n1;i++)
{
printf("a[%d]=",i);
scanf("%f",&t);
C[i]=t;
fprintf(f,"%f",C[i]);
}
fclose(f);
d.Xem(C,n1);
}
//3.Ham xem du lieu tren File
void DATHUC:: Xem(float *C,int n1)
{
cout<<"\n Bac da thuc : "<<n1;
int i;
cout<<"\n";
for(i=0;i<n1;i++)
{
cout<<" "<<C[i]<<"*X^"<<i<<" +";
}
cout<<" "<<C[n1]<<"*X^"<<n1;
//getch();
}
//4.Ham tinh gia tri cua bieu thuc
float DATHUC :: TinhGT(float *C, int n1,float x)
{
int i;float GT=0,ss;
// cout<<"\n Nhap gia tri cua X : ";cin>>x;
for(i=0;i<=n1;i++)
{ ss=pow(x,i);
GT=GT+(float)C[i]*ss;
}
return (GT);
}
//5. Ham tinh tong 2 da thuc
void DATHUC :: Tong(float *H,float *C,int n,float *D, int m)
{
int i,k,j;
if(n>m)
{
k=n;
for(i=0;i<=m;i++)
{
H[i]=C[i]+D[i];
}
for(i=m+1;i<=n;i++)
H[i]=C[i];
}
else
{
k=m;
for(i=0;i<=n;i++)
{
H[i]=C[i]+D[i];
}
for(i=n+1;i<=m;i++)
H[i]=D[i];
}
d.Xem(H,k);
}
//6.Hieu 2 da thuc
void DATHUC :: Hieu(float*H,float *C,int n,float *D, int m)
{ int k,i,j;
if(n>m)
{
k=n;
for(i=0;i<=m;i++)
{
H[i]=C[i]-D[i];
}
for(i=m+1;i<=n;i++)
H[i]=C[i];
}
else
{
k=m;
for(i=0;i<=n;i++)
{
H[i]=C[i]-D[i];
}
for(i=n+1;i<=m;i++)
H[i]=-D[i];
}
d.Xem(H,k);
}
//8. tich 2 da thuc
void DATHUC :: Tich(float *E,float*A, int n,float*B, int m)
{
int i,j,j1,i1,k;
k=n+m;
for(j1=0;j1<=k;j1++)
{
E[k]=0;
}
for(i1=0;i1<=k;i1++)
{
for(i=0;i<=n;i++)
{
for(j=0;j<=m;j++)
{
if(i+j==i1)
{
E[i1]=E[i1]+A[i]*B[j];
}
}
}
}
d.Xem(E,k);
}
//10. Tinh dao ham cap 1
void DATHUC :: Daoham1(float*C,int n1)
{
int i,j;
//cout<<"\n Bac cua ket qua : "<<(n1-1);
for(i=1;i<=n1;i++)
{
C[i-1]=C[i]*i;
}
d.Xem(C,n1-1);
}
// Chuong trinh chinh
void main()
{ int chucnang;
float x,x1;
textmode(C80);
textcolor(YELLOW);
textbackground(BLUE);
window(1,1,80,25);
do
{
clrscr();
clrscr();
cout<<"\n Tap thao tac voi DA THUC";
cout<<"\n ---------------------";
cout<<"\n1. Nhap da thuc A,B";
cout<<"\n2. Xem da thuc .";
cout<<"\n3. Tinh Gia tri bieu thuc .";
cout<<"\n4. Tinh tong hai da thuc .";
cout<<"\n5. Hieu hai da thuc A - B ";
cout<<"\n6. Hieu hai da thuc B - A ";
cout<<"\n7.Tich hai da thuc .";
cout<<"\n8. Dao ham da thuc .";
cout <<"\n0.Tro ve MEMU ch¡nh ";
//cout<<"\n0. Thoat";
cout<<"\n Lua chon chuc nang :";
cin>>chucnang;
switch(chucnang)
{
case 1:
cout<<"\n Nhap vao bac da thuc A, n= ";cin>>n;d.Nhap(A,n);
cout<<"\n================================";
cout<<"\n Nhap vao bac da thuc B, m= ";cin>>m;d.Nhap(B,m); getch();break;
case 2:
cout<<"\n Da thuc A : ";d.Xem(A,n);
cout<<"\n Da thuc B : ";d.Xem(B,m);getch();break;
case 3:
cout<<"\n Nhap gia tri cua x = ";
cin>>x;
float s1=d.TinhGT(A,n,x);
cout<<"\n Da thuc A : ";d.Xem(A,n);
cout<<"\n Ket qua A(Xo)="<<s1;
cout<<"\n Nhap gia tri cua x = ";
cin>>x1;
float s2=d.TinhGT(B,m,x1);
cout<<"\n Da thuc B : ";d.Xem(B,m);
cout<<"\n Ket qua B(Xo)="<<s2;getch();break;
case 4:
cout<<"\n Da thuc A : ";d.Xem(A,n);
cout<<"\n Da thuc B : ";d.Xem(B,n);
cout<<"\nDa thuc tong:\n==========================" ;
d.Tong(E,A,n,B,m);getch();break;
case 5:
cout<<"\n Da thuc A : ";d.Xem(A,n);
cout<<"\n Da thuc B : ";d.Xem(B,n);
cout<<"\nDa thuc hieu A-B:\n=========================";
d.Hieu(E,A,n,B,m);getch();break;
case 6:
cout<<"\n Da thuc A : ";d.Xem(A,n);
cout<<"\n Da thuc B : ";d.Xem(B,n);
cout<<"\nDa thuc hieu B-A:\\========================" ;
d.Hieu(E,B,m,A,n);getch();break;
case 7:
cout<<"\n Da thuc A : ";d.Xem(A,n);
cout<<"\n Da thuc B : ";d.Xem(B,n);
cout<<"\n Da thuc tich A*B:\n=========================";
d.Tich(E,A,n,B,m);getch();break;
case 8:
cout<<"\n Da thuc A : ";d.Xem(A,n);
printf("\nDao ham cua Da thuc A");
d.Daoham1(A,n);
//cout<<"\n Da thuc B : ";d.Xem(B,n);
//printf("\nDao ham cua Da thuc B") ;
//d.Daoham1(B,m);
getch();break;
}
}while(chucnang!=0);
}