You are on page 1of 14

11 12 13 14 15

21 22 23 24 25

31 32 33 34 35

41 42 43 44 45

///strucura generala program matrici


#include <iostream>

using namespace std;

int main()
{
int a[31][31],n,m,i,j,b[31][31], c[31][31],aux,s,nc;
///citire matrice
cin>>n>>m;
for(i=1;i<=n;i++) ///parcurgem liniile
for(j=1;j<=m;j++) ///parcurgere coloane
cin>>a[i][j];
///majoritatea prelucrarilor pp parcurgerea matricii
///pe linii de sus in jos si de la dreapta la stanga
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
{
///suma cifre a[i][j]
aux=a[i][j];
s=0; nc=0;
while(aux!=0)
{
s=s+aux%10;
nc++;
aux=aux/10;
}
b[i][j]=s;
c[i][j]=nc;

}
///afisare matrice "de nota 10"
cout<<"MAtricea sumelor"<<endl;
for(i=1;i<=n;i++)
{
for(j=1;j<=m;j++)
cout<<b[i][j]<<" ";
cout<<endl;
}
cout<<"Matrice nr de cifre"<<endl;
for(i=1;i<=n;i++)
{
for(j=1;j<=m;j++)
cout<<c[i][j]<<" ";
cout<<endl;
}
return 0;
}

//// Prelucrare pe linie

for(i=1;i<=n;i++)
{
///1. initializari ex. s=0

///2. parcurgerea pe coloane a linie i


for(j=1;j<=m;j++)
{
////.......ce se cere pentru linie
}

///3. afisare rezultate obtinute sau salvarea rezultatelor

Atentie!!!

i - indice de linie j – indice de coloana

 Salvarea rezultatelor pe linie se va face pe coloana 0 a[i][0]

m=3; n=4
0 1 2 3 4 n+1
0

1 1 2 3 4 10

2 0 1 0 1 2

3 4 2 1 3 10

m+1 5 5 4 8 44

365/54
#include <iostream>

using namespace std;

int main()
{
int a[31][31],n,m,i,j,mini,maxi=-999999;
///citire matrice
cin>>m>>n;
for(i=1;i<=m;i++)
for(j=1;j<=n;j++)
cin>>a[i][j];
///prelucrare pe linii
for(i=1;i<=m;i++)
{
///initializari ex. s=0
s=0;

///parcurgerea pe coloane a linie i


for(j=1;j<=n;j++)
{
s=s+a[i][j];
}

///afisare rezultate obtinute sau salvarea rezultatelor


if(maxi<s) maxi=s;
a[i][0]=s;

///pentru afisarea liniilor cu sama maxima


for(i=1;i<=m;i++)
if(a[i][0]==maxi)
cout<<i<<" ";

return 0;
}
366/54
#include <iostream>

using namespace std;


int a[31][31],n,m,i,j;
int main()
{

///citire matrice
cin>>m>>n;
for(i=1;i<=m;i++)
for(j=1;j<=n;j++)
cin>>a[i][j];

for(i=1;i<=m;i++)
for(j=1;j<=n;j++)
{
a[i][n+1]=a[i][n+1]+a[i][j];
a[m+1][j]=a[m+1][j]+a[i][j];
a[m+1][n+1]=a[m+1][n+1]+a[i][j];
}

for(i=1;i<=m+1;i++)
{
for(j=1;j<=n+1;j++)
cout<<a[i][j]<<" ";
cout<<endl;
}

return 0;
}

368/54
#include <iostream>

using namespace std;


int a[31][31],n,m,i,j,s,k;
int main()
{

///citire matrice
cin>>m>>n;
for(i=1;i<=m;i++)
for(j=1;j<=n;j++)
cin>>a[i][j];

for(i=1;i<=m;i++)
{
s=0;
for(j=1;j<=n;j++)
{
s=s+a[i][j];
}
a[i][0]=s;

}
///vom face perechi de linii
for(i=1;i<=m;i++)
for(k=i+1;k<=m;k++)
if(a[i][0]==a[k][0])
cout<<"("<<i<<","<<k<<"),";

return 0;
}

369/55
#include <iostream>

using namespace std;


int a[31][31],n,m,i,j,s,k;
int main()
{

///citire matrice
cin>>m>>n;
for(i=1;i<=m;i++)
for(j=1;j<=n;j++)
cin>>a[i][j];

for(i=1;i<=m;i++)
{
s=0;
for(j=1;j<=n;j++)
{
s=s+a[i][j];
}
a[i][0]=s;

for(i=1;i<=m;i++)
if(a[i][0]!=0)
{
cout<<"("<<i;
for(k=i+1;k<=m;k++)
if(a[i][0]==a[k][0])
{cout<<","<<k;
a[k][0]=0;
}
cout<<"),";
}

return 0;
}
371/55
#include <iostream>

using namespace std;


int a[31][31],n,m,i,j,x, gasit;
int main()
{

///citire matrice
cin>>m>>n>>x;
for(i=1;i<=m;i++)
for(j=1;j<=n;j++)
cin>>a[i][j];

for(i=1;i<=m;i++)
{
gasit=0;
for(j=1;j<=n;j++)
{
if(a[i][j]==x)
gasit=1;
}
if(gasit==1) cout<<i<<" ";
}

return 0;
}

Stergerea unei linii k

11 12 13 14 15

21 22 23 24 25
k=2
31 32 33 34 35
k+1
41 42 43 44 45 m

for ( i=k+1; i<=m; i++)


for( j=1; j<=n;j++)
a[i-1][j]=a[i][j];
m=m-1;

Stergerea coloanei k

for ( j=k+1; j<=n; j++)


for( i=1; i<=m;i++)
a[i][j-1]=a[i][j];
n=n-1;

390.
#include <iostream>

using namespace std;

int main()
{
int a[31][31],m,n,i,j,mini,lmin,cmin;
cin>>m>>n;
for(i=1; i<=m; i++)
for(j=1; j<=n; j++)
cin>>a[i][j];
///detrmin mini si linia/coloana pe care se gaseste
mini=a[1][1];
lmin=1;
cmin=1;
for(i=1; i<=m; i++)
for(j=1; j<=n; j++)
if(mini>a[i][j])
{
mini=a[i][j];
lmin=i;
cmin=j;
}
///stergem linia lmin
for(i=lmin+1; i<=m; i++)
for(j=1; j<=n; j++)
a[i-1][j]=a[i][j];
m=m-1;
///stergem coloana cmin

for(j=cmin+1; j<=n; j++)


for(i=1; i<=m; i++)
a[i][j-1]=a[i][j];
n=n-1;
///afisarea de nota 10

for(i=1; i<=m; i++)


{
for(j=1; j<=n; j++)
cout<<a[i][j]<<" ";
cout<<endl;
}
return 0;
}

396.
#include <iostream>

using namespace std;

int main()
{
int a[31][31],m,n,i,j,x,s,k;
cin>>m>>n>>x;
for(i=1; i<=m; i++)
for(j=1; j<=n; j++)
cin>>a[i][j];
///parcurg pe coloane
for(j=1;j<=n;j++)
{
///determin suma elem de pe col j
s=0;
for(i=1;i<=m;i++)
s=s+a[i][j];
///verific conditia de stergere
if(s<x)
{
///sterg coloana j
for(k=j+1;k<=n;k++)
for(i=1;i<=m;i++)
a[i][k-1]=a[i][k];
n=n-1; j--;
}
}
///afisarea de nota 10
for(i=1; i<=m; i++)
{
for(j=1; j<=n; j++)
cout<<a[i][j]<<" ";
cout<<endl;
}
return 0;
}

394.

1 2 3 4 5 6 j=1
1 2 3 4 5 6 j=2
1 3 4 5 6 j=3
1 3 5 6 j=4
135

#include <iostream>

using namespace std;

int main()
{
int a[31][31],m,n,i,j,k;
cin>>m>>n;
for(i=1; i<=m; i++)
for(j=1; j<=n; j++)
cin>>a[i][j];
///parcurg pe coloane
for(j=2;j<=n;j++)
{
for(k=j+1;k<=n;k++)
for(i=1;i<=m;i++)
a[i][k-1]=a[i][k];
n=n-1;

}
///afisarea de nota 10

for(i=1; i<=m; i++)


{
for(j=1; j<=n; j++)
cout<<a[i][j]<<" ";
cout<<endl;
}
return 0;
}
395.
#include <iostream>

using namespace std;

int main()
{
int a[31][31],m,n,i,j,x,s,k;
cin>>m>>n>>x;
for(i=1; i<=m; i++)
for(j=1; j<=n; j++)
cin>>a[i][j];
///parcurg pe coloane
for(j=1;j<=n;j++)
{
///determin daca coloana j contine nr negative = numaram elem negative
s=0;
for(i=1;i<=m;i++)
if(a[i][j]<0)
s++;
///verific conditia de stergere
if(s!=0)
{
///sterg coloana j
for(k=j+1;k<=n;k++)
for(i=1;i<=m;i++)
a[i][k-1]=a[i][k];
n=n-1; j--;
}
}
///afisarea de nota 10

for(i=1; i<=m; i++)


{
for(j=1; j<=n; j++)
cout<<a[i][j]<<" ";
cout<<endl;
}
return 0;
}
397.
#include <iostream>

using namespace std;

int main()
{
int a[31][31],m,n,i,j,x,s,k;
cin>>m>>n;
for(i=1; i<=m; i++)
for(j=1; j<=n; j++)
cin>>a[i][j];
///parcurg pe coloane
for(j=1;j<=n;j++)
{
///determin daca coloana j contine doar numere dint-o cifra
s=0;
for(i=1;i<=m;i++)
if(a[i][j]>=0&&a[i][j]<=9)
s++;
///verific conditia de stergere
if(s==m)
{
///sterg coloana j
for(k=j+1;k<=n;k++)
for(i=1;i<=m;i++)
a[i][k-1]=a[i][k];
n=n-1; j--;
}
}
///afisarea de nota 10

for(i=1; i<=m; i++)


{
for(j=1; j<=n; j++)
cout<<a[i][j]<<" ";
cout<<endl;
}
return 0;
}
389.
#include <iostream>

using namespace std;

int main()
{
int a[31][31],m,n,i,j,x,s,k;
cin>>m>>n;
for(i=1; i<=m; i++)
for(j=1; j<=n; j++)
cin>>a[i][j];
///parcurg pe linii
for(i=1;i<=m;i++)
{
///determin daca linia i contine 0
s=0;
for(j=1;j<=n;j++)
if(a[i][j]==0)
s++;
///verific conditia de stergere
if(s!=0)
{
///sterg linia i
for(k=i+1;k<=m;k++)
for(j=1;j<=n;j++)
a[k-1][j]=a[k][j];
m=m-1; i--;
}
}
///afisarea de nota 10

for(i=1; i<=m; i++)


{
for(j=1; j<=n; j++)
cout<<a[i][j]<<" ";
cout<<endl;
}
return 0;
}
392.
#include <iostream>

using namespace std;

int main()
{
int a[31][31],m,n,i,j,ok,k,t;
cin>>m>>n;
for(i=1; i<=m; i++)
for(j=1; j<=n; j++)
cin>>a[i][j];
///parcurg pe linii
for(i=1; i<=m; i++)
{
///pentru linia i detremin liile care sunt egale cu ea
for(t=i+1; t<=m; t++)
{
ok=1;
for(j=1; j<=n; j++)
if(a[i][j]!=a[t][j])
ok=0;
///verific conditia de stergere
if(ok==1) ///liniile i si t sunt identice si voi sterge linia t
{
///sterg linia t
for(k=t+1; k<=m; k++)
for(j=1; j<=n; j++)
a[k-1][j]=a[k][j];
m=m-1;
t--;
}
}
}
///afisarea de nota 10

for(i=1; i<=m; i++)


{
for(j=1; j<=n; j++)
cout<<a[i][j]<<" ";
cout<<endl;
}
return 0;
}

Parcurgerea pe cadranul exterior


Linia 1 a[1][j] unde j=1…n
Coloana n a[i][n] unde i =2 …. m
Linia m a[m][j] unde j=n-1 …..1
Coloana 1 a[i][1] unde i=m-1…..2

for(j=1;j<=n;j++)
cout<<a[1][j]<<” “;
for(i=2;i<=m;i++)
cout<<a[i][n]<<” “;
for(j=n-1;j>=1;j--)
cout<<a[m][j]<< “ “;
for(i=m-1;i>=2;i--)
cout<<a[i][1]<<” “;

Parcurgerea tuturor cadranelor

If(m%2==0)
nr=m/2;
else nr=m/2+1;

for(k=1;k<=nr;k++)
{
for(j=1;j<=n;j++)
cout<<a[k][j]<<” “;
for(i=2;i<=m;i++)
cout<<a[i][n-k+1]<<” “;
for(j=n-1;j>=1;j--)
cout<<a[m-k+1][j]<< “ “;
for(i=m-1;i>=2;i--)
cout<<a[i][k]<<” “;
}

420.
#include <iostream>

using namespace std;

int main()
{
int a[31][31],n,i,j,prim,d;
cin>>n;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
cin>>a[i][j];
///a
cout<<"Diagonala principala: ";
for(i=1;i<=n;i++)
cout<<a[i][i]<<" ";
cout<<endl;
///b
cout<<"Diagonala secundara: ";
for(i=1;i<=n;i++)
cout<<a[i][n-i+1]<<" ";
cout<<endl;
///c
cout<<"Diagonala principala in sens invers: ";
for(i=n;i>=1;i--)
cout<<a[i][i]<<" ";
cout<<endl;
cout<<"Diagonala secundara in sens invers: ";
for(i=n;i>=1;i--)
cout<<a[i][n-i+1]<<" ";
cout<<endl;
///d
cout<<"Numere prime de pe diagonala principala: ";
for(i=1;i<=n;i++)
{
prim=1;
for(d=2;d<=a[i][i]/2;d++)
if(a[i][i]%2==0)
prim=0;
if(prim==1)
cout<<a[i][i]<<" ";
}
///e
int maxi=a[1][1];
for(i=1;i<=n;i++)
{
if(maxi<a[i][i]) maxi=a[i][i];
if(maxi<a[i][n-i+1]) maxi=a[i][n-i+1];
}
cout<<"Maxi de pe ambele diag: "<<maxi<<endl;
///f
int x,y;
for(i=1;i<=n;i++)
{
x=a[i][i]; y=a[i][n-i+1];
///cmmdc prin scaderi repetate
while(x!=y)
if(x>y) x=x-y;
else y=y-x;
cout<<x<<" ";

}
return 0;
}
424.
#include <iostream>

using namespace std;

int main()
{
int a[31][31],n,i,j,aux;
cin>>n;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
cin>>a[i][j];

for(i=1;i<=n;i++)
{
aux=a[i][i];
a[i][i]=a[i][n-i+1];
a[i][n-i+1]=aux;
}
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
cout<<a[i][j]<<" ";
cout<<endl;
}
return 0;
}

425.

#include <iostream>

using namespace std;

int main()
{
int a[31][31],n,i,j,s1=0,s2=0;
cin>>n;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
cin>>a[i][j];
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
{
if(j>i) s1=s1+a[i][j];
if(j<i) s2=s2+a[i][j];
}
if(s1>s2) cout<<s1;
else cout<<s2;
return 0;
}

You might also like