Mihai Sprinceana
Un forum de programare cu de toate. Va astept sa va inscrieti si sa deveniti moderatori. Oricine este binevenit aici sa se inscrie si sa aiba acces la informatie free! Fiecare este liber sa adauge proiecte programe free etc. Ajutati acest forum sa devina o comunitate puternica unde fiecare invata de la fiecare! Tot ce trebuie sa faceti este sa va inregistrati si fiecare contributie se poate dovedi utila in timp! Forumul este free informatia free dk aveti timp liber ajutati si pe ceilalti si invatati si voi in acelasi timp! Haideti sa facem ceva pt.a ne ajuta intre noi! Cititi regulament postare forum inainte de a posta!
Lista Forumurilor Pe Tematici
Mihai Sprinceana | Inregistrare | Login

POZE MIHAI SPRINCEANA

Nu sunteti logat.
Nou pe simpatie:
deiutza20
Femeie
21 ani
Bacau
cauta Barbat
21 - 44 ani
Mihai Sprinceana / C++ / POO- Clasa matrice (problema importanta data la examenul POO)!!!! Moderat de Alric2rei, Conan, cosmy, fireratbat, profu.info, sade5000
Autor
Mesaj Pagini: 1
Conan
Moderator

Inregistrat: acum 17 ani
Postari: 198
/*Definiti clasa matrice in care avem 2 constructori(constructor implicit,
constructor cu parametru) si efectuarea de operatii cu matrici
(suma a 2 matrici,produsul a 2 matrici,transpusa unei matrice)*/

#include<conio.h>
#include<iostream.h>
#define MAX 15

//definirea clasei
class matrice
{int mat[20][20],linii,coloane;
  public:
  matrice();
  matrice(int,int);
  void citire();
  void afisare();
  void suma(matrice  a,matrice b);
  void produs(matrice a,matrice b);
  void transpusa();
  //vom folosi redefinirea operatorilor*/
  //friend matrice operator+(matrice a, matrice b);
  friend matrice operator *(matrice a, matrice b);
};

//definire constructor implicit
matrice::matrice()
{
linii=0;
coloane=0;
}

//definire constructor cu parametru
matrice::matrice(int lin,int col)
{linii=lin;
coloane=col;
}

void matrice::citire()
{int i,j;
cout<<"\nNr de linii: "<<linii;
cout<<"\nNr de coloane: "<<coloane;
for(i=0;i<linii;i++)
for(j=0;j<coloane;j++)
   {cout<<"a["<<i<<"]["<<j<<"]"<<"=";
    cin>>mat[i][j];
   }
}

void matrice::afisare()
{int i,j;
cout<<"Elementele matricei sunt:\n";
for(i=0;i<linii;i++)
  {for(j=0;j<coloane;j++)
    cout<<mat[i][j]<<" ";
    cout<<"\n";
  }
}

void matrice::suma(matrice a,matrice b)
{int s,i,j;
s=0;
for(i=0;i<linii;i++)
for(j=0;i<coloane;j++)
{s=s+a.mat[i][j]+b.mat[i][j];
}
cout<<"Suma elementelor celor 2 matrici este "<<s;
}
//e mai putin importanta suma elementelor a doua matrici, se cere mai degraba suma a doua matrici
/*
consideram ca matricile au acelasi nr de linii si acelasi nr de coloane
matrice c;
c.linii=a.linii;
c.coloane=a.coloane;
for(i=0;i<c.linii;i++)
for(j=0;j<c.coloane;j++)
c.mat[i][j]=a.mat[i][j]+b.mat[i][j];
c.afisare();
}
*/
void matrice::produs(matrice a,matrice b)
{int p,j,i;
//consideram ca matricile au acelasi nr de linii si acelasi nr de coloane
p=1;
for(i=0;i<a.linii;i++)
for(j=0;i<a.coloane;j++)
p=p*a.mat[i][j]*b.mat[i][j];

cout<<"Produsul elementelor celor 2 matrici este "<<p;
//aceeasi observatie...importanta este matricea produs, nu produsul elementelor
}
//a[nXm],b[mXp],c[nXp]
matrice operator*(matrice a, matrice b)
{matrice c;
int i,j,k;
c.linii=a.linii;
c.coloane=b.coloane;
for(i=0;i<c.linii;i++)
  for(j=0;j<c.coloane;j++)
  { c.mat[i][j]=0;
  for(k=0;k<a.coloane;k++)
  c.mat[i][j]=c.mat[i][j]+a.mat[i][k]*b.mat[k][j];
  }
  return c;
}

void matrice::transpusa()
{int i,j;
matrice at;
at.linii=coloane;
at.coloane=linii;
for(i=0;i<linii;i++)
for(j=0;j<coloane;j++)
   at.mat[i][j]=mat[j][i];
   at.afisare();
}

void main()
{
clrscr();
matrice s1(3,2),s2(2,3),s3;
s1.citire();
s2.citire();
s3=s1*s2;
s3.afisare();
s1.transpusa();
getch();
}


pus acum 16 ani
   
Pagini: 1  

Mergi la