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 |
|
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 |
|