Documente Academic
Documente Profesional
Documente Cultură
Rezolvari
1) Se cere sa se implementeze conceptul de vector bidimensional. În acest sens vom spune ca
vectorul bidimensional este un sistem ordonat de 2 numere reale. Asupra vectorilor vom
defini urmatoarele operatii:
- operatii de atribuire de valori în elementele vectorului
- suma a doi vectori;
- diferenta a doi vectori;
- produsul dintre un vector si un scalar;
- negativarea unui vector;
- produsul scalar a doi vectori;
- afisarea componentelor vectorului sub forma unei perechi de elemente.
class vb
{
float e1,e2; //elementele vectorului
public:
//constructor de initializare cu parametri
vb(float, float);
//rescrierea constructorului implicit de initializare
vb(){}
//suma a doi vectori: r=vb1+vb2
vb operator+(vb);
//negativarea unui vector: r=-vb
vb operator-();
//diferenta a doi vectori: r=vb1-vb2
vb operator-(vb);
//produsul dintre un vector si un numar: r=vb*a
vb operator*(int);
//produsul dintre un numar si un vector oarecare: r=a*vb
friend vb operator*(int, vb);
//produsul scalar a 2 vectori r=(vb1,vb2)
double operator*(vb);
//citirea unui vector
void citire(char*);
//afisarea unui vector
void afisare(char*);
};
void main()
{
vb a;
a.citire("a");
a.afisare("a");
cout<<"Elementele vectorului <b> le vom introduce direct la
initializare.";
vb b(2.5,1);
b.afisare("b");
vb c;
c=a+b;
c.afisare("a+b");
c=a-b;
c.afisare("a-b");
c=3*a+4*b;
c.afisare("3*a+4*b");
c=a*2-b*4;
c.afisare("a*2-b*4");
c=-a-b;
c.afisare("-a-b");
cout<<"\nProdusul cartezian: "<<a*b<<endl;
int g;
cin >>g;
}
class matrice
{
int n; //nr. de linii, respectiv coloane, matricea fiind patratica
int m[10][10];
public:
matrice();
void creare(int x, char* s);
matrice operator +(matrice a); //adunarea adoua matrice
matrice operator -(matrice a); //diferenta a doua matrice
matrice operator ~(); //transpusa unei matrice
void afisare(char* s);
};
inline matrice::matrice()
{
n=0;
}
matrice matrice::operator ~ ()
{
matrice temp;
for(int i=0;i<n;i++)
for(int j=0;j<n;j++)
temp.m[i][j]=m[j][i];
temp.n=n;
return temp;
}
void main()
{
matrice a,b,t,s,d;
int x;
cout<<"Introduceti dimensiunea celor doua matrici: ";
cin>>x;
a.creare(x,"A");
b.creare(x,"B");
cout<<endl;
a.afisare("A");
b.afisare("B");
s=a+b;
s.afisare("A+B");
d=a-b;
d.afisare("A-B");
t=~a;
t.afisare("~A");
int g;
cin >>g;
}