Vector

Màu nền
Font chữ
Font size
Chiều cao dòng

/*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: Truyen2U.Pro