Documente Academic
Documente Profesional
Documente Cultură
Matricile
Matricile
Tablouri bidimensionale(matrici)
Problema 1. S se elaboreze un program care citete de la tastatur dou
matrici cu componente ntregi i realizeaz produsul lor. S se verifice, de
asemenea, dac este satisfcut condiia ca s se poat realiza produsul
acelor matrici.
#include<iostream>
using namespace std;
void main(void){
int a[10][10],b[10][10],c[10][10],i,j,k,m,n1,n2,p;
cout<<"Introduceti dimensiunile celor doua matrici si elementele
lor"<<endl;
cout<<"Matricea A : "<<endl;
cout<<"numarul de linii : ";cin>>m;
cout<<"numarul de coloane : ";cin>>n1;
for(i=0;i<m;i++)
for(j=0;j<n1;j++){
cout<<"a["<<i+1<<","<<j+1<<"]=";
cin>>a[i][j];
}
cout<<"Matricea B : "<<endl;
do{
cout<<"numarul de linii : ";
cin>>n2;
} while(n2!=n1);
cout<<"numarul de coloane : ";cin>>p;
for(i=0;i<n2;i++)
for(j=0;j<p;j++){
cout<<"b["<<i+1<<","<<j+1<<"]=";
cin>>b[i][j];
}
for(i=0;i<m;i++)
for(j=0;j<p;j++)
c[i][j]=0;
for(i=0;i<m;i++)
for(j=0;j<p;j++)
for(k=0;k<n1;k++)
c[i][j]+=a[i][k]*b[k][j];
cout<<"Matricea produs este :"<<endl;
for(i=0;i<m;i++){
for(j=0;j<p;j++)
cout<<c[i][j]<<" ";
cout<<endl;
}
cout<<endl;
}
Problema 2. S se scrie un program care calculeaz minimul i maximul
dintr-o matrice cu m linii i n coloane, ale crei elemente sunt citite de
la tastatur.
#include <iostream>
using namespace std;
void main(void){
int n,m,min,i,j,max,a[30][30];
cout<<"Dati dimensiunile matricii"<<endl;
cout<<"Dati numarul de linii : ";cin>>n;
cout<<"Dati numarul de coloane : ";cin>>m;
for(i=0;i<n;i++)
for(j=0;j<m;j++){
cout<<"a["<<i+1<<","<<j+1<<"]= ";
cin>>a[i][j];
}
min=a[0][0];max=a[0][0];
for(j=0;j<m;j++){
if(a[0][j]<min) min=a[0][j];
if(a[0][j]>max) max=a[0][j];
}
for(i=1;i<n;i++)
for(j=0;j<m;j++){
if(a[i][j]<min) min=a[i][j];
if(a[i][j]>max) max=a[i][j];
}
cout<<"Elementul minim din matrice este "<<min<<endl;
cout<<"Elementul maxim din matrice este "<<max<<endl;
}
Problema 3. S se scrie un program prin care se citete de la tastatur o
matrice cu componentele numere ntregi i afieaza transpusa sa.
#include <iostream>
using namespace std;
void main(void){
int n,m,i,j,a[30][30];
cout<<"Dati dimensiunile matricii "<<endl;
cout<<"Dati numarul de linii : ";cin>>n;
cout<<"Dati numarul de coloane : ";cin>>m;
for(i=0;i<n;i++)
for(j=0;j<m;j++){
cout<<"a["<<i+1<<","<<j+1<<"]= ";
cin>>a[i][j];}
cout<<"----------------------"<<endl;
cout<<"Elementele matricii A sunt: "<<endl;
for(i=0;i<n;i++){
for(j=0;j<m;j++)
cout<<a[i][j]<<" ";
cout<<endl;
}
cout<<"----------------------"<<endl;
cout<<"Elementele matricii transpuse sunt: "<<endl;
for(j=0;j<m;j++){
for(i=0;i<n;i++)
cout<<a[i][j]<<" ";
cout<<endl;
}
}
#include <iostream>
using namespace std;
void main(void){
int a[30][30],n,m,i,j,suma=0;
cout<<"Dati numarul de linii n = ";cin>>n;
cout<<"Dati numarul de coloane m = ";cin>>m;
for(i=0;i<n;i++)
for(j=0;j<m;j++){
cout<<"a["<<i+1<<","<<j+1<<"]=";
cin>>a[i][j];
}
cout<<"----------------------"<<endl;
cout<<"Matricea A este"<<endl;
for(i=0;i<n;i++){
for(j=0;j<m;j++)
cout<<a[i][j]<<" ";
cout<<endl;
}
cout<<"----------------------"<<endl;
for(i=0;i<m;i++){
suma+=a[0][i];
suma+=a[n-1][i];
}
for(i=1;i<n-1;i++){
suma+=a[i][0];
suma+=a[i][n-1];
}
cout<<"Suma elementelor de pe marginea matricii este : "<<suma<<endl;
}
Problema 7. Se consider o matrice tip n*m, cu componentele numere ntregi.
S se determine maximul fiecrei coloane i minimul fiecrei linii.
#include<iostream>
using namespace std;
void main(){
int a[30][30],min,max,n,m,i,j;
cout<<"Dati numarul de linii n = ";cin>>n;
cout<<"Dati numarul de coloane m = ";cin>>m;
for(i=0;i<n;i++)
for(j=0;j<m;j++){
cout<<"a["<<i+1<<","<<j+1<<"]=";
cin>>a[i][j];
}
cout<<"----------------------"<<endl;
cout<<"Matricea A este"<<endl;
for(i=0;i<n;i++){
for(j=0;j<m;j++)
cout<<a[i][j]<<" ";
cout<<endl;
}
cout<<"----------------------"<<endl;
cout<<"Minimurile pe linie sunt : ";
for(i=0;i<n;i++){
min=a[i][0];
for(j=1;j<m;j++)
if(a[i][j]<min)
min=a[i][j];
cout<<min<<" ";
}
cout<<endl;
cout<<"Maximurile pe coloane sunt : ";
for(j=0;j<m;j++){
max=a[0][j];
for(i=1;i<n;i++)
if(a[i][j]>max)
max=a[i][j];
cout<<max<<" ";
}
cout<<endl;
}
else
}
p*=A[i][i];
cout<<"Matricea este triunghiulara. Determinantul este :
"<<p<<endl;
cout<<"Matricea nu este triunghiulara."<<endl;
b=1;
for(i=2;i<=k;i++)
b*=i;
c=1;
i=2;
while(i<=(n-k)) {
c*=i;
i++;
}
Cnk=a/(b*c);
cout<<"Combinari de "<<n<<" luate cate "<<k<<" : "<<Cnk<<endl;