C/C++, Visual Basic это пока знаю только эти языки программирования...
вчера делал лабу по ООП другу
Код:
#include<iostream.h>
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
#include<conio.h>
#include<mem.h>
#include<time.h>
template <class T>
class Tvector
{
private:
unsigned int sz;
T *X;
public:
Tvector():X(NULL), sz(0){};
Tvector(unsigned int n_sz);
Tvector(Tvector<T>& vec);
~Tvector(){delete []X;cout<<"Deleted_v \n";};
void create(unsigned int n_sz){ sz=n_sz; X = new T[sz]; };
unsigned int GetSize(){ return sz;};
friend ostream& operator << (ostream& out,Tvector<T>& vec);
friend void Get_U(Tvector<T>& X);
T& operator[](unsigned int i ) {return *(X+i);};
};
//////////////////
template <class T>
Tvector<T>::Tvector(unsigned int n_sz):sz(n_sz)
{
int i;
X = new T[sz];
cout<<"CREATED |\n";
}
template <class T>
Tvector<T>::Tvector(Tvector<T>& vec)
{
int i;
if(*X!=NULL) delete []X;
X = new T [sz=vec.sz];
memcpy(X,vec.X,sz*sizeof(T));
}
template <class T>
ostream& operator << (ostream& out,Tvector<T>& vec)
{
int i;
for(i=0;i<vec.sz;i++)
{
out.setf(ios::showpoint);
out.width(9);
out.precision(3);
out<<*(vec.X+i)<<" ";
}
out<<endl;
return out;
}
template <class T>
void Get_U(Tvector<T>& X)
{
unsigned int j;
T P=1;
for (j=0;j<X.sz-1;j++)
{
///////////////////////////////////////////////
cout<<P<<"\n";
P*=1/(fabs(X[j]+1))+X[j+1];
}
cout.setf(ios::showpoint);
cout.width(9);
cout.precision(3);
cout<<"Proizvedenie = "<<P<<endl;
}
//////////////////
template <class T>
class Tmatrix
{
private:
unsigned int m,n,imax;
Tvector<T> *mtr;
public:
Tmatrix():n(0),m(0),imax(0),mtr(NULL){};
Tmatrix(Tmatrix<T>& obj);
Tmatrix(unsigned int new_m,unsigned int new_n);
~Tmatrix(){delete []mtr;cout<<"Deleted_mtr"<<endl;};
friend ostream& operator << (ostream& out,Tmatrix<T>& obj);
unsigned int Get_m(){ return m;};
unsigned int Get_n(){ return n;};
void fill_the_matrix();
friend void process(Tmatrix<T>& obj);
friend void SortTvector(Tmatrix<T>& obj,Tvector<T>& X);
void view();
//
};
template <class T>
Tmatrix<T>::Tmatrix(unsigned int new_m,unsigned int new_n):m(new_m),n(new_n)
{
int i;
mtr = new Tvector<T>[m];
for(i=0;i<m;i++)
(*(mtr+i)).create(n);
cout<<"Created "<<endl;
}
template <class T>
ostream& operator << (ostream& out,Tmatrix<T>& obj)
{
int i;
for(i=0;i<obj.m;i++)
out<<obj.mtr[i]<<" ";
out<<endl;
return out;
}
template <class T>
void Tmatrix<T>::fill_the_matrix()
{
unsigned int i,j,k=1;
for(i=0;i<m;i++)
{
k*=i+1;
for(j=0;j<n;j++) ////////////////////////////////////////////////////
//(*(mtr+i))[j]=random(11);
(*(mtr+i))[j]=(i+pow((j-2),2)/pow(i,2))*(fabs(j-1.2)*(pow(2,i-1)));
}
}
template <class T>
void process(Tmatrix<T>& obj)
{
unsigned int i,j;
T max,sts=0;
max=0.00001;
for(i=0;i<obj.m;i++)
{
for (j=0;j<obj.n;j++)
sts+=(*(obj.mtr+i))[j];
if(sts>max)
{
max=sts;//cout<<sts<<" "<<i<<" ."<<endl;
obj.imax = i;
}
sts=0;
}
cout<<" Vector X nesort :"<<obj.imax<<endl;
}
template <class T>
void SortTvector(Tmatrix<T>& obj,Tvector<T>& X)
{
unsigned int k=1,j,i;
T cache=0;
i=obj.imax;
while (k!=0)
{
k=0;
for(j=0;j<obj.n-1;j++)
{
if((*(obj.mtr+i))[j] > (*(obj.mtr+i))[j+1])
{
cache=(*(obj.mtr+i))[j];
(*(obj.mtr+i))[j]= (*(obj.mtr+i))[j+1];
(*(obj.mtr+i))[j+1]= cache ;
k=1;
}
}
}
for(j=0;j<obj.n;j++)
X[j]=(*(obj.mtr+i))[j] ;
cout<<(*(obj.mtr+i));
cout<<"...::: Vector X :::..."<<endl;
cout<<X;
cout<<endl;
}
/**/
template <class T>
Tmatrix<T>::Tmatrix(Tmatrix<T>& obj)
{
int i,m=0;
if(mtr!=NULL) delete []mtr;
m=obj.m;
mtr=new Tvector<T>[m];
memcpy(mtr,obj.mtr,m*sizeof(Tvector<T>));
cout<<"Using copy constructor!"<<endl;
};
int main(void)
{
unsigned int m=0,n=0;
clrscr();
while( (m!=6) && (m!=8) && (m!=10))
{
cout<<"Enter the matrix size 8,6,10:";
cin>>m;
}
//////////////////
n=m;
Tmatrix<double> A(m,n);
Tvector<double> X(n);
B.fill_the_matrix();
cout<<A<<endl;
Tmatrix<double> B(A);
cout<<B<<endl;
process(B);
SortTvector(B,X);
Get_U(X);
getch();
return 0;
}
int main(void)
{
unsigned int m=0,n=0;
clrscr();
while( (m!=6) && (m!=8) && (m!=10))
{
cout<<"Enter the matrix size 8,6,10:";
cin>>m;
}
//////////////////
n=m;
Tmatrix<float> A(m,n);
Tvector<float> X(n);
B.fill_the_matrix();
cout<<A<<endl;
Tmatrix<float> B(A);
cout<<B<<endl;
process(B);
SortTvector(B,X);
Get_U(X);
getch();
return 0;
}
Социальные закладки