Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- class Vectori_de_vectori;
- class Vector
- {
- int dim;
- int *v;
- friend class Vectori_de_vectori;
- public:
- Vector()
- {
- dim = 0;
- v = new int[0];
- }
- Vector(int dimensiune,int nr)
- {
- dim = dimensiune;
- v = new int[dim + 1];
- for(int i = 0; i < dimensiune; i++)
- v[i] = nr;
- }
- Vector(Vector &x)
- {
- dim = x.dim;
- v = new int [dim + 1];
- for(int i = 0; i < dim; i++)
- v[i] = x.v[i];
- }
- ~Vector()
- {
- dim = 0;
- delete[] v;
- }
- int actualizeazaComponente(int numarElemente,int element)
- {
- delete[] v;
- dim = numarElemente;
- v = new int [dim + 1];
- for(int i = 0; i < dim; i++)
- v[i] = element;
- return 0;
- }
- Vector& operator=(Vector &x);
- int suma(Vector&);
- void max_si_poz(Vector&);
- void sortare(Vector&);
- int operator*(Vector &y)
- {
- int produs = 0;
- for (int i = 0; i < this->dim; i++)
- produs = produs + this->v[i] * y.v[i];
- return produs;
- }
- friend istream& operator>>(istream &t,Vector &x);
- friend ostream& operator<<(ostream &r,Vector &x);
- };
- istream& operator>>(istream & t,Vector &x)
- {
- t >> x.dim;
- for(int i = 0; i < x.dim; i++)
- t >> x.v[i];
- return t;
- }
- ostream& operator<<(ostream& r,Vector &x)
- {
- r << x.dim;
- r << endl;
- for(int i = 0; i < x.dim; i++)
- r << x.v[i] << " ";
- return r;
- }
- Vector& Vector::operator=(Vector &x)
- {
- if(this != &x)
- {
- delete[] v;
- dim = x.dim;
- v = new int [dim + 1];
- for(int i = 0; i < dim; i++)
- v[i] = x.v[i];
- }
- return *this;
- }
- int Vector::suma(Vector &x)
- {
- int s = 0;
- for(int i = 0; i < x.dim; i++)
- s = s + x.v[i];
- return s;
- }
- void Vector::max_si_poz(Vector &x)
- {
- int max = 0,poz = 0;
- for(int i = 0; i < x.dim; i++)
- if(x.v[i] > max)
- {
- max = x.v[i];
- poz = i;
- }
- cout << max << " " << poz;
- }
- void Vector::sortare(Vector &x)
- {
- int aux;
- for(int i = 0; i < x.dim - 1; i++)
- for(int j = i + 1; j < x.dim; j++)
- if(x.v[i] > x.v[j])
- {
- aux = x.v[i];
- x.v[i] = x.v[j];
- x.v[j] = aux;
- }
- }
- class Vectori_de_vectori
- {
- int dim1;
- Vector *v1;
- public:
- Vectori_de_vectori()
- {
- dim1 = 0;
- v1=new Vector[0];
- }
- Vectori_de_vectori(int numar,int componenta)
- {
- dim1 = numar;
- v1 = new Vector[dim1 + 1];
- for(int i = 0; i < dim1; i++)
- {
- v1[i].v = new int[1];
- v1[i].v[0] = componenta;
- }
- }
- Vectori_de_vectori(Vectori_de_vectori &x)
- {
- dim1 = x.dim1;
- v1 = new Vector [dim1 + 1];
- for(int i=0; i < dim1; i++)
- for(int j=0; j < x.v1[i].dim; j++)
- v1[i].v[j]=x.v1[i].v[j];
- }
- ~Vectori_de_vectori()
- {
- dim1 = 0;
- delete[] v1;
- }
- void creare_matrice(Vectori_de_vectori&);
- friend istream& operator>>(istream &t,Vectori_de_vectori &x);
- friend ostream& operator<<(ostream &r,Vectori_de_vectori &x);
- Vectori_de_vectori& operator+(Vectori_de_vectori&);
- };
- void Vectori_de_vectori::creare_matrice(Vectori_de_vectori &x)
- {
- int maxim = 0,**matrice;
- for(int i = 0; i < x.dim1; i++)
- if(maxim < x.v1[i].dim)
- maxim = x.v1[i].dim;
- matrice= new int*[x.dim1 + 1];
- for(int i = 0; i < x.dim1; i++)
- matrice[i] = new int[maxim+1];
- for(int i = 0; i < x.dim1; i++)
- for(int j = 0; j < x.dim1; j++)
- matrice[i][j]=0;
- for(int i = 0; i < x.dim1; i++)
- for(int j = 0; j < x.v1[i].dim; j++)
- matrice[i][j]=x.v1[i].v[j];
- for(int i = 0; i < x.dim1; i++)
- {
- for(int j = 0; j < x.v1[i].dim; j++)
- cout<<x.v1[i].v[j]<<" ";
- cout<<endl;
- }
- }
- istream& operator>>(istream & t,Vectori_de_vectori &x)
- {
- t >> x.dim1;
- for(int i = 0; i < x.dim1; i++)
- t >> x.v1[i];
- return t;
- }
- ostream& operator<<(ostream& r,Vectori_de_vectori &x)
- {
- r << x.dim1;
- r << endl;
- for(int i = 0; i < x.dim1; i++)
- r << x.v1[i] << " ";
- return r;
- }
- Vectori_de_vectori& Vectori_de_vectori::operator+(Vectori_de_vectori & x)
- {
- int maxim1=0,maxim2=0,maxim,maxlin;
- for(int i = 0; i < x.dim1; i++)
- if(maxim1 < x.v1[i].dim)
- maxim1 = x.v1[i].dim;
- for(int i = 0; i < this.dim1; i++)
- if(maxim2 < this.v1[i].dim)
- maxim2 = this.v1[i].dim;
- maxim=max(maxim1,maxim2);
- maxlin=max(x.dim1,this.dim1);
- Vectori_de_vectori suma_matrice;
- suma_matrice.dim1=maxlin;
- }
- int maxim = 0,**matrice;
- for(int i = 0; i < x.dim1; i++)
- if(maxim < x.v1[i].dim)
- maxim = x.v1[i].dim;
- matrice= new int*[x.dim1 + 1];
- for(int i = 0; i < x.dim1; i++)
- matrice[i] = new int[maxim+1];
- for(int i = 0; i < x.dim1; i++)
- for(int j = 0; j < x.dim1; j++)
- matrice[i][j]=0;
- for(int i = 0; i < x.dim1; i++)
- for(int j = 0; j < x.v1[i].dim; j++)
- matrice[i][j]=x.v1[i].v[j];
- int main()
- {
- Vector v;
- Vector v2(2,3);
- cout << v2 << '\n';
- cout << v << '\n';
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement