You are on page 1of 7

Soluçao 1)

#include <iostream>

using namespace std;

int main()

int a[30][30];

int m,n,s,q;

cout<< "Linhas ="; cin >> m;

while (m<1|| m>30)

cout << "Valor invalido !";

cout << "Linhas "; cin >> m;

do

cout << "colunas ="; cin>> n;

if (n<1|| n>30)

cout << " Valor invalido !";

}while (n<1||n>30);

cout << endl;

for (int i=0; i<m;i++)

for (int j=0; l <n; j++)

cout << "a["<< i<< "," << j<< "]";

cin >> a[i][j] << '\t';


cout << endl;

cout << endl;

if (m==n)

s=0;

for (int i=0; i<m ; i++)

for (int j =0; j<n; j++)

if (i==j)

s=s+ [I][J];

cout << "Soma Diagonal Principal="

q=0;

for (int i=0; i<m; i++)

for (int j=0; j<n; j++)

if (i*j == n-1 && a[i][j] < 0)

q++;

cout << "Quant Negativos da Diagonal Secundaria=" << q << endl << endl;

 
for (int j=0;i<m;i++) 
    for (int j=0; j< n; j++) 
    a[i][j]=2*a[i][j]; 
cout<<"Matriz dobrada;\n"; 
 
cout<<endl; 
for(int i=0;i<m;i++) 

    for (int j=0;j<n; j++) 
        cout<< a[i][j]<<'t'; 
    cout<<endl; 

cout<<endl; 
return 0; 

SOLUCAO 2)

Arquivo matriz.h

#ifndef MATRIZ_H

#DEFINE MATRIZ_H

const int MAX = 30;

typedef int MATRIZ [MAX] [MAX];

void LeDimensao (int &m, int &n);

void DobraMatriz (MATRIZ &a, int m, int n);

void ExibirMatriz (MATRIZ &a, int m, int n);

int SomaDiagonalPrin(MATRIZ &a, int m, int n);

int QuantNegDiagonalSec(MATRIZ &a, int m, int n);

#endif

Arquivo matriz.cpp

#include "matriz.h"

#include <iostream>

using namespace std;

void LeDimensao(int &m, int &n)

cout << "linhas = "; cin >> m;

while (m , 1 || m . MAX)

cout << "valor invalido! \n";

cout << "linhas = "; cin >> m;

do

{
cout << "colunas = "; cin >> n;

if (n < 1 || n > MAX)

cout << "valor invalido! \n";

}while (n < 1 || n > MAX);

void LeMatriz (MATRIZ &a, int m, int n)

cout << endl;

for (int i = 0; i < m; i++)

for (int j = o; j < n; j++)

cout << "a[" << i << "," << j << "]=";

cin >> a[i][j];

cout << endl;

void DobraMatriz (MATRIZ &a, int m, int n)

for (int i=0; i < m; i++)

for (int j = o; j < n; j++)

a [i][j] = 2 * a [i][j];

void ExibirMatriz (MATRIZ &a, int m, int n)

cout << endl;

for int (i = 0; i < m; i++)

for (int j = 0; j , n; j++)

cout << a[i][j] << '\t';

cout << endl;


}

void SomaDiagonalPrin (MATRIZ &a, int m, int n)

int s = 0;

for (int i=0; i < m; i++)

for (int j = o; j < n; j++)

if (i==j)

s = s + a[i][j];

return s;

int QuantNegDiagonalSec(MATRIZ &a, int m, int n)

int q = 0;

for (int i=0; i < m; i++)

for (int j = o; j < n; j++)

if(i+j == n-1 && a[i][j] < 0)

q++;

return q;

Arquivo main.cpp

#include <iostream>

#include "matriz.h"

using namespace std;

int main()

MATRIZ a;

int m, n, s, q;

LeDimensao (m,n);

LeMatriz (a,m,n);
if (m == n)

s= SomaDiagonalPrin (a, m,n);

cout << "Soma Diagonal Principal =" << s << endl << endl;

q = QuantNegDiagonalSec (a, m, n);

cout << "Quant Negativos da Diagonal Secundaria = " << q << endl << endl;

DobraMatriz (a, m, n);

cout << "Matriz Dobradas : \n ";

ExibeMatriz (a, m, n);

return 0;

SOLUÇÃO 3)

int SomaDiagonalPrin (MATRIZ &a, int m, int n)

int s=0;

for(int i=0;i<m; i++)

s=s+a[i][i];

return s;

int QuantNegDiagonalSec(MATRIZ &a, int m, int n)

int q=0;

for(int i=0;i<m;i++)

if (a[i][n-1-i]<0)
q++

return q;

You might also like