Ejercicios Con Matrices

- Mostrar la diagonal principal. ( Solo las matrices cuadradas tienen diagonales).
- Mostrar la diagonal secundaria.
- Mostrar triángulo superior según la diagonal principal – EXCLUYENDO LA DIAGONAL.
- Mostrar triángulo inferior según la diagonal principal – EXCLUYENDO LA DIAGONAL.
- Mostrar triángulo superior según la diagonal principal – INCLUYENDO LA DIAGONAL.
- Mostrar triángulo inferior según la diagonal principal – INCLUYENDO LA DIAGONAL.
- Mostrar triángulo superior según la diagonal secundaria – EXCLUYENDO LA DIAGONAL.
- Mostrar triángulo inferior según la diagonal secundaria – EXCLUYENDO LA DIAGONAL.
- Mostrar triángulo superior según la diagonal secundaria – INCLUYENDO LA DIAGONAL.
- Mostrar triángulo inferior según la diagonal secundaria – INCLUYENDO LA DIAGONAL.
- Mostrar ambos triángulos al mismo tiempo según diagonal principal.
- Mostrar ambos triángulos al mismo tiempo según diagonal secundaria.
- Mostrar cada uno de los siguientes triángulos por separado – EXCLUYENDO LAS DIAGONALES.

- Ídem que el anterior, pero INCLUYENDO LAS DIAGONALES (es decir el triángulo con sus porciones de la diagonal, no toda la diagonal).
- Trasponer la matriz según la diagonal principal.
- Trasponer la matriz según la diagonal secundaria.
- Trasponer la matriz a 90° horizontalmente.
- Trasponer la matriz a 90° verticalmente.
- Trasponer la matriz según el centro.
- ¿Es la matriz simétrica?
- ¿Es la matriz identidad?
- Producto de matrices!! MUY IMPORTANTE
- Dado un i, j > mostrar todos los vecinos de ese i, j (el máximo es hasta 8 vecinos).
- Dado un i, j > mostrar la mayor matriz que tenga a ese i, j de vértice.
- (i, j) Inferior izquierdo.
- (i, j) Inferior derecho.
- (i, j) Superior izquierdo.
- (i, j) Superior derecho.
- Dado un i, j > mostrar la mayor matriz CUADRADA que tenga a ese i, j de vértice.
- Dado un i, j > mostrar la menor matriz que tenga a ese i, j de vértice.
- Dado un i, j > mostrar la menor matriz CUADRADA que tenga a ese i, j de vértice.
- Mostrar la matriz en espiral.
Diagonal Principal:
int main()
{
int mat[4][4]= {{1,2,3,4},{5,6,7,8}, {9,10,11,12},{13,14,15,16}};
int sumaDP = sumDiagonalPrincipal(mat);
printf("La suma de la diagonal principal es: %d \n", sumaDP);
return 0;
}
int sumDiagonalPrincipal(int mat[][4])
{
int sumaDP=0;
for (int i=0; i<=3; i++)
sumaDP += mat[i][i];
return sumaDP;
}
Diagonal Principal para que acepte otras matrices que no sean 4 x 4
int sumDiagonalPrincipal(int cols, int mat[][cols]);
int main()
{
int mat[4][4]= {{1,2,3,4},{5,6,7,8}, {9,10,11,12},{13,14,15,16}};
int sumaDP = sumDiagonalPrincipal(4,mat);
printf("La suma de la diagonal principal es: %d \n", sumaDP);
return 0;
}
int sumDiagonalPrincipal(int cols, int mat[][cols])
{
int sumaDP=0;
for (int i=0; i<cols; i++)
sumaDP += mat[i][i];
return sumaDP;
}
Triangulo Inferior sin diagonal principal
int sumarTriangInf(int cols, int mat[][cols])
{
int sum = 0;
for (int i=1 ; i< cols; i++)
for(int j=0;j<i;j++)
sum+= mat[i][j];
return sum;
}
Triangulo Superior sin diagonal principal
int sumarTriangSup(int cols, int mat[][cols])
{
int sum = 0;
for (int i=0 ; i< cols-1; i++)
for(int j=i+1 ;j< cols;j++)
sum+= mat[i][j];
return sum;
}
Diagonal Secundaria
Debo buscar alguna forma en que se relacionan i y j. La idea es realizarlo con un solo for.

int sumarDiagSec(int cols, int mat[][cols])
{
int sum = 0;
for (int i=0 ; i< cols; i++)
sum+= mat[i][cols-1-i];
return sum;
}
Suma triangulo Superior Respecto de la Diagonal Secundaria


int sumTriangSuperRespectoDiagSec(int cols, int mat[][cols])
{
int suma=0;
for (int i=0; i<cols; i++)
for(int j=0; j<cols-1-i; j++)
suma += mat[i][j];
return suma;
}