Suma de las diagonales inferiores

De Ejercicios

Enunciado

Implementa una función a la que se le de cómo parámetro de entrada una matriz cuadrada y dos enteros f y c (menores o iguales a la dimensión de la matriz) que representan un número de fila y columna respectivamente. La función ha de devolver la suma de los elementos que quedan debajo de las diagonales que se cruzan en la posición (f, c).

Ejemplos:

f=2 y c=2 

   3 1 2 7 4
   4 2 7 0 0
   1 6 1 4 0
   2 0 3 1 9
   6 1 3 1 2

Suma=22
f=3 y c=4

   3 1 2 7 4
   4 2 7 0 0
   1 6 1 4 0
   2 0 3 1 9
   6 1 3 1 2

Suma=7

Soluciones

Programa en Matlab

function suma=Diagonales(m,f,c)
%Parámetros de Entrada: 
%  m: matriz de números
%  f, c: indican una posición de fila y columna dentro de la matriz
%      (menores o iguales a la dimensión de la matriz y mayores que 0) 
%Parámetros de Salida:
%  suma: suma de los elementos que quedan debajo de las
%      diagonales que se cruzan en la posición (f, c).
 
[fil,col]=size(m);
suma=m(f,c); % el primer elemento es el que hay en la posición dada
 
% el resto de elementos están en las siguientes filas y en el rango de
% columnas una más a la izquierda y derecha en cada paso de fila
inicio=c;
fin=c;
for x=f+1:fil 
    if (inicio>1) % no salir del rango de la matriz por la izquierda 
        inicio=inicio-1;
    end
    if (fin<col) % no salir del rango de la matriz por la derecha 
        fin=fin+1;
    end
    for y=inicio:fin % se suman los elementos de la fila
        suma=suma+m(x,y) 
    end
end
Tipos de soluciones