Array – Sumar Diagonales

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