Enunciado
Escribir un procedimiento que dada una matriz de números reales y su dimensión, devuelva un vector en donde la posición i almacene la sumatoria de los elementos de la fila i de la matriz.
Escribir un procedimiento que dada una matriz de números reales y su dimensión, devuelva un vector en donde la posición j almacene la sumatoria de los elementos de la columna j de la matriz.
Código
Python
def AddRows ( m, f, c ):
v = [0]*f
for i in range ( f ):
for j in range ( c ):
v[i] += m[i][j]
return v
def AddCols ( m, f, c ):
v = [0]*c
for j in range ( c ):
for i in range ( f ):
v[j] += m[i][j]
return v
def main():
cant = 3
mat = [ [ 3, 5, 7 ], [ 8, 9, 1 ], [ 3, 5, 9 ] ]
vecf = AddRows( mat, cant, cant )
vecc = AddCols( mat, cant, cant )
print( "Vector suma filas/Add rows vector:" )
for i in vecf:
print( str( i ).rjust( 5 ) )
print( "\n" )
print( "Vector suma columnas/Add Columns vector:" )
for i in vecc:
print( str( i ).rjust( 5 ) )
print( "\n" )
input( "Presionar/Press Enter to exist" )
main()
C++
#include <iostream>
#include <iomanip>
using namespace std ;
#include <conio.h>
void AddRows ( float m[][10], int f, int c, float v[] )
{
int i, j ;
for ( i=0; i<f; i++ )
{
v[i] = 0 ;
for ( j=0; j<c; j++ )
v[i] += m[i][j] ;
}
}
void AddCols ( float m[][10], int f, int c, float v[] )
{
int i, j ;
for ( j=0; j<c; j++ )
{
v[j] = 0 ;
for ( i=0; i<f; i++ )
v[j] += m[i][j] ;
}
}
int main ()
{
int i, j ;
float v1[10], v2[10], m1[10][10] ;
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] ;
cout << endl ;
}
cout << endl << "Vector suma filas/" ;
cout << "Add rows vector: " ;
AddRows( m1, 3, 3, v1 ) ;
for ( i=0; i<3; i++ )
cout << v1[i] << setw(5) ;
cout << endl << "Vector suma columnas/" ;
cout << "Add Columns vector: " ;
AddCols( m1, 3, 3, v2 ) ;
for ( i=0; i<3; i++ )
cout << v2[i] << setw(5) ;
cout << endl ;
cout << "Presionar/Press Enter to exit " ;
getch() ;
return 0 ;
}
Pascal
Program Array03 ;
uses CRT ;
const nmax = 10 ;
type
dim = 1 .. nmax ;
dimf = 1 .. nmax ;
dimc = 1 .. nmax ;
vector = array [ dim ] of real ;
matrix = array [ dimf , dimc ] of real ;
element = real ;
var
n, i, j, c, f : dim ;
m : matrix ;
v : vector ;
Procedure AddRows ( var m: matrix ; f: dimf ; c: dimc ;
var v: vector ) ;
var i : dimf ; j : dimc ;
begin
for i := 1 to f do
begin
v[i] := 0 ;
for j := 1 to c do
v[i] := v[i] + m[i, j]
end
end ;
Procedure AddCols ( var m: matrix ; f: dimf ; c: dimc ;
var v : vector ) ;
var i : dimf ; j : dimc ;
begin
for j := 1 to c do
begin
v[j] := 0 ;
for i := 1 to f do
v[j] := v[j] + m[i, j]
end
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( m[i, j] ) ;
f := n ;
c := n ;
AddRows ( m, f, c, v ) ;
writeln( 'Vector suma filas/Add rows vector:' ) ;
for i := 1 to n do
write( v[i]:10:2 ) ;
writeln ;
AddCols ( m, f, c, v ) ;
write( 'Vector suma columnas/' ) ;
writeln( 'Add Columns vector:' ) ;
for j := 1 to n do
write( v[j]:10:2 ) ;
writeln ;
writeln( 'Presionar/Press Enter to exit' ) ;
readln ;
end.
Diagramas





