Enunciado
Escribir una función que sume la diagonal principal de una matriz.
Escribir una función que sume la diagonal secundaria de una matriz.
Código
Python
def AddDiagonalP( n, mat ):
s=0
for i in range ( n ):
s += mat [ i ][ i ] ;
return s
def AddDiagonalS( n, mat ):
s=0
for i in range ( n ):
s += mat [ i ][ n-i-1 ]
return s
def main():
a = [ [ 1, 6, 5 ], [ 4, 9, 6 ], [ 7, 2, 9 ] ]
print("Columnas / columns", end="")
for j in range (3):
print(str(j).rjust(10), end="")
print("\n")
for i in range (3):
print("Fila / rows: ",str(i).rjust(4), end="")
for j in range (3):
print(str(a[i][j]).rjust(10), end="")
print("\n")
print( "\n\nSuma Diagonal ppal/", end="" )
print( "Main Diagonal Sum: ", AddDiagonalP( 3,a ) )
print( "Suma Diagonal sec/", end="" )
print( "Secondary Diagonal Sum: ", end="" )
print( AddDiagonalS( 3,a ) )
input( "Presionar/Press Enter to exist " )
main()
C++
#include <iostream>
#include <iomanip>
using namespace std ;
#include <conio.h>
float AddDiagonalP ( int n, float mat[][10] )
{
int i ;
float s=0 ;
for ( i=0 ; i<n ; i++ )
s += mat [ i ][ i ] ;
return s ;
}
float AddDiagonalS ( int n, float mat[][10] )
{
int i ;
float s=0 ;
for ( i=0 ; i<n ; i++ )
s += mat [ i ][ n-i-1 ] ;
return s ;
}
int main ()
{
int i, j ;
float m1[10][10], sumadp, sumads ;
cout << "Ingresar matriz de 3x3/Enter 3x3 matrix:" ;
cout << endl ;
for(i=0; i<3; i++)
{
for(j=0; j<3; j++)
cin >> m1[i][j] ;
printf("\n") ;
}
cout << endl ;
for(i=0; i<3; i++)
{
cout << endl ;
for(j=0; j<3; j++)
cout << setw(5) << m1[i][j] ;
}
cout << endl << endl << "Suma Diagonal Ppal/" ;
cout << "Main Diagonal Sum: " ;
cout << AddDiagonalP( 3,m1 ) ;
cout << endl << "Suma Diagonal Sec/" ;
cout << "Secondary Diagonal Sum: " ;
cout << AddDiagonalS( 3,m1 ) ;
cout << endl ;
cout << "Presionar/Press Enter to exit " ;
getch() ;
return 0 ;
}
Pascal
Program Array05 ;
uses CRT ;
const nmax = 10 ;
type
dim = 1 .. nmax ;
matrix = array [ dim , dim ] of real ;
element = real ;
var
i, j, n : dim ;
a : matrix ;
function AddDiagonalP ( n: dim;
var mat: matrix ): element ;
var
i: integer ;
s: element ;
begin
s := 0 ;
for i := 1 to n do
s += mat [ i ][ i ] ;
AddDiagonalP := s ;
end ;
function AddDiagonalS ( n: dim;
var mat: matrix ): element ;
var
i: integer ;
s: element ;
begin
s := 0 ;
for i := 1 to n do
s += mat [ i ][ n-i+1 ] ;
AddDiagonalS := s ;
end ;
begin
ClrScr ;
write( 'Ingresar/Enter dimension ( max 10 ): ' ) ;
readln( n ) ;
writeln( 'Ingresar elementos/Enter elements: ' ) ;
for i := 1 to n do
for j := 1 to n do
readln( a[i,j] ) ;
for i := 1 to n do
begin
for j := 1 to n do
write( a[i,j]:15:2 ) ;
writeln
end ;
writeln ;
write( 'Suma Diagonal Ppal/Main Diagonal Sum: ' ) ;
writeln( AddDiagonalP( n,a ):5:2 ) ;
write( 'Suma Diagonal Sec/' ) ;
write( 'Secondary Diagonal Sum: ' ) ;
writeln( AddDiagonalS( n,a ):5:2 ) ;
writeln ;
writeln( 'Presionar/Press Enter to exit' ) ;
readln ;
end.
Diagramas





