-
03-01-2010, 08:02 AM #1Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Gửi bởi nammae
nhờ bạn coi dùm mình bài này được không !
#include <iostream.h>
#include <conio.h>
#include <math.h>
class DT{
private:
double *a;
int n;
public:
DT( int n1 = 0 ){
this->n = n1;
if( this->n == 0 )
this->a = NULL;
else{
this->a = new double[n + 1];
for( int i = 0; i < ( n + 1 ); ++i )
a[i] = 0;
}
}
~DT(){
this->n = 0;
delete []this->a;
}
DT( const DT &d ){
this->n = d.n;
this->a = new double[d.n + 1];
for( int i = 0; i < n; i++ ){
a[i] = d.a[i];
}
}
friend ostream& operator<<( ostream& os, const DT &d );
friend istream& operator>>( istream& is, DT &d );
DT operator-();
DT operator+( const DT &d2 );
DT operator*( const DT &d2 );
DT operator-( const DT &d2 );
double operator^( const double &x );
double operator[]( int i ){
return a[i];
}
};
ostream& operator<<( ostream& os, const DT &d ){
int i;
os<<"-Cac he so ( tu ao ): ";
for( i = 0; i <= d.n; ++i ){
os<<d.a[i]<<" ";
}
return os;
}
istream& operator>>( istream& is, DT &d ){
if( d.a != NULL )
delete []d.a;
cout<<"-Bac cua da thuc: ";
cin>>d.n;
d.a = new double[d.n + 1];
cout<<"Nhap he so da thuc:
";
for( int i = 0; i <= d.n; ++i ){
cout<<"He so bac "<< i<<" = ";
is>>d.a[i];
}
return is;
}
DT DT:perator-(){
int x;
x = this->n;
DT p( x );
for( int i = 0; i <= x; ++i ){
p.a[i] = -a[i];
}
return p;
}
DT DT:perator+( const DT &d2 ){
int i, k;
k = n > d2.n ? n : d2.n;
DT d( k );
for( i = 0; i <= k; ++i ){
if( i <= n && i <= d2.n )
d.a[i] = a[i] + d2.a[i];
else if( i <= n )
d.a[i] = a[i];
else
d.a[i] = d2.a[i];
}
return d;
}
DT DT:perator-( const DT &d2 ){
int i, k;
k = n > d2.n ? n : d2.n;
DT d( k );
for( i = 0; i <= k; ++i ){
if( i <= n && i <= d2.n )
d.a[i] = a[i] - d2.a[i];
else if( i <= n )
d.a[i] = a[i];
else
d.a[i] = -d2.a[i];
}
return d;
}
DT DT:perator*( const DT &d2 ){
int k, i, j;
k = n + d2.n;
DT d( k );
for( i = 0; i <= k; ++i ){
d.a[i] = 0;
}
for( i = 0; i <= n; ++i )
for( j = 0; j <= d2.n; j++ )
d.a[i+j] += a[i]*d2.a[j];
return d;
}
double DT:perator^( const double &x ){
double s = 0.0, t = 1.0;
for( int i = 0; i <= n; ++i ){
s += a[i] * t;
t *= x;
}
return s;
}
int main(){
DT g;
double fx, x;
x = 2.0;
cout<<"
Nhap da thuc G :";
cin>>g;
cout<<"
Da thuc G :"<<g;
DT h;
cout<<"
Nhap da thuc H :";
cin>>h;
cout<<"
Da thuc H :"<<h;
DT f1;
f1 = -(g);
cout<<"
Da thuc F1 :"<<f1;
fx = g^x;
cout<<"
Gia tri da thuc g khi x = 2.0 : "<<fx;
getch();
return 0;
}
View more random threads:
- Code không sai nhưng kết quả sai không hiểu tại sao
- Sắp xếp bằng phương pháp chèn trưc tiếp!!!
- chỉ nhập được mã số
- Quản lý phòng lab
- Xóa kí tự "e" xuất hiện trong chuỗi??
- Giải thuật song song cho bài toán quy hoạch động và quay lui
- thật sự không biết sai ở đâu!
- viết chương trình in lá cờ nước Mỹ
- bài tập sắp thi
- Chuyển code Merge Sort sang dùng class. Giúp em!
-
03-01-2010, 04:20 PM #2Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Gửi bởi nammae
-
03-01-2010, 07:13 PM #3Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
ma trận trên C++ | Cộng 2 ma trận và in ra kết quả không đúng?
Mình nhập ma trận vào và xuất ra thì bình thường, còn công hai ma trận vào rồi xuất ra thì không ra kết quả !. Mong các bạn giúp đỡ !
code :
Mã:#include <iostream.h> #include <conio.h> template < class T > class Matrix{ private: T **matrix; int m, n; public: Matrix( int m1 = 0, int n1 = 0 ){ m = m1, n = n1; if( m == 0 || n == 0 ) matrix = NULL; else{ matrix = new T*[m]; for( int i = 0; i < m; ++i ) matrix[i] = new T[n]; } } ~Matrix(){ if( matrix != NULL ){ for( int i = 0; i < m; ++i ) delete []matrix[i]; delete []matrix; } } void getDataMatrix(){ cout<<"Nhap gia tri matran : "<<endl; for( int i = 0; i < m; ++i ) for( int j = 0; j< n; ++j ){ cout<<"matrix["<<i<<" "<<j<<"] = "; cin>>matrix[i][j]; } } void displayMatrix(){ cout<<"Matran : "<<endl; for( int i = 0; i < m; ++i ) for( int j = 0; j < n; ++j ){ cout<<matrix[i][j]<<" "; if( j == n - 1 ) cout<<endl; } } //friend istream& operator( istream& is, Matrix& m1 ) friend ostream& operator<<( ostream& os, const Matrix& m1 ){ cout<<"Matrix :"<<endl; for( int i = 0; i < m1.m; ++i ) for( int j = 0; j < m1.n; ++j ){ os<<m1.matrix[i][j]<<" "; if( j == m1.n - 1 ) cout<<endl; } return os; } void operator=( const Matrix& m1 ){ if( matrix != NULL ){ for( int i = 0; i < m; ++i ) delete []matrix[i]; delete []matrix; } else{ m = m1.m, n = m1.n; matrix = new T*[m]; for( int i = 0; i < m; ++i ){ matrix[i] = new T[n]; for( int j = 0; j < n; ++j ) matrix[i][j] = m1.matrix[i][j]; } } } Matrix( const Matrix& m1 ){ m = m1.m, n = m1.n; matrix = new T*[m]; for( int i = 0; i < m; ++i ){ matrix[i] = new T[n]; for( int j = 0; j < n; ++j ) matrix[i][j] = m1.matrix[i][j]; } } Matrix plusTwoMatrix( const Matrix& m1, const Matrix& m2 ){ if( m1.m != m2.m && m1.n != m2.n ){ cout<<"Khong thuc duoc phep cong, ket qua xuat la -1"<<endl; return -1; } else{ int x, y, i, j; x = m2.m; y = m2.n; Matrix m3( x, y ); for( i = 0; i < x; ++i ){ for( j = 0; j < y; ++j ) m3.matrix[i][j] = m1.matrix[i][j] + m2.matrix[i][j]; } /*cout<<"Matran : "<<endl; for( i = 0; i < x; ++i ) for( j = 0; j < y; ++j ){ cout<<m3.matrix[i][j]<<" "; if( j == y - 1 ) cout<<endl; }*/ return m3; } } }; int main(){ Matrix<int> m1( 2, 2 ); m1.getDataMatrix(); m1.displayMatrix(); cout<<" Display matrix m1 again:"<<m1<<endl; Matrix<int> m2( 2, 2 ); m2.getDataMatrix(); m2.displayMatrix(); Matrix<int> m4; cout<<"Cong hai ma tran m1 va m2 : "<<endl; m4.plusTwoMatrix( m1, m2 ); m4.displayMatrix(); cout<<" Display matrix m4 again :"<<m4<<endl; getch(); return 0; }
-
03-01-2010, 07:51 PM #4Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Trong hàm main():
Mã:m4.plusTwoMatrix( m1, m2 );
Mã:m4 = m4.plusTwoMatrix( m1, m2 );
Thông qua phân tích dữ liệu Google từ 86 quốc gia, mới đây, một công ty tại Anh đã công bố bảng xếp hạng kích tấc "cậu nhỏ" của các nước trên thế giới. Kết quả, hầu hết các nước xếp ở nhóm đầu của...
"Chim" của chàng trai Việt thuộc...