Vector
/*vectmat4.cpp*/
#include <iostream.h>
#include <conio.h>
class matrix; // khai báo lớp matrix
class vector{ //khai báo lớp vector
static int n; //số chiều của vector
float *v; // vùng nhớ chứa các toạ độ
public: // khai báo các hàm thành phần công cộng
vector(); // khai báo hàm vector không tham số
vector(float *); // khai báo hàm vector
vector(vector &); //khai báo hàm thiết lạp sao chép
~vector(); //khai báo hàm huỷ bỏ vector không tham số
void display(); // Khai báo và định nghĩa hàm díplay không tham số
static int & Size() {return n;} //
friend vector operator*(matrix &, vector &);
friend class matrix;
};
int vector::n = 0;
vector::vector() {
v= new float [n];
for(i=0;i<n;i++) {
cout<<"Toa do thu "<<i+1<<" : ";
cin>>v[i];
}
}
vector::vector(float *a) {
for(int i =0; i<n; i++)
v[i]=a[i];
}
vector::vector(vector &b){
for(i=0;i<n;i++)
v[i] = b.v[i];
}
vector::~vector(){
delete v;
}
void vector::display() {
for(int i=0;i<n;i++)
cout <<v[i] <<" ";
cout <<"
";
}
class matrix {
static int n;
vector *m;
public:
matrix();
matrix(matrix &);
~matrix();
void display();
static int &Size() {return n;}
friend vector operator*(matrix &, vector &);
};
int matrix::n =0;
matrix::matrix(){
m= new vector [n];
}
matrix::matrix(matrix &b) {
int i,j;
m= new vector[n];
for (i=0; i<n; i++)
for (j=0; j<n; j++)
m[i].v[j]=b.m[i].v[j];
}
matrix::~matrix() {
delete m;
}
void matrix::display() {
for (int i=0; i<n; i++)
m[i].display();
}
vector operator*(matrix &m,vector &v) {
float *a = new float [vector::Size()];
int i,j;
for (i=0; i<matrix::Size(); i++) {
a[i]=0;
for(j=0; j<vector::Size(); j++)
a[i]+=m.m[i].v[j]*v.v[j];
}
return vector(a);
}
void main() {
clrscr();
int size;
cout<<"Kich thuoc cua vector "; cin>>size;
vector::Size() = size;
matrix::Size() = size;
cout<<"Tao mot vector
";
vector v;
cout<<" v=
";
v.display();
cout<<"Tao mot ma tran
";
matrix m;
cout<<" m =
";
m.display();
cout<<"Tich m*v
";
vector u = m*v;/* opertaor*(m,v) */
u.display();
getch();
}
Bạn đang đọc truyện trên: Truyen247.Pro