Programación General > Pascal

 Ayuda Con La Recursividad

<< < (2/2)

lencho:
tu codigo no esta bien explicau.
No se sabe si quisiste hacer Contar la cantidad de numeros pares en un vector o Sumar todos los digitos pares de un vector.
pero weno, sigue practicando.

aqui esta el Sumar todos los digitos pares de un vector en Visual Basic.


--- Código: Text ---    Private Function SumaPares(ByVal vec() As Integer, ByVal j As Integer) As Integer        Dim suma As Integer        If j = 0 Then            If (vec(j) Mod 2 = 0) Then                suma = vec(j)            Else                suma = 0            End If        Else            suma = SumaPares(vec, j - 1)            If (vec(j) Mod 2 = 0) Then                suma = suma + vec(j)            Else                suma = suma            End If        End If        Return suma    End Function  
BYTE.

lencho:
la logica es la siguiente.

por el caso base., me llega un vector con una sola casilla, verifico si es par devulevo el mismo dato, si no devuelvo 0.
por ELSE, llamo a la funcion recursiva pero enviandole DIMENSION -1 , para que no tome en cuenta la ultima casilla. Cuando termine yo verifico la ultima casilla. Si es par le sumo a lo que me devolvio la funcion recursiva y si no devuevlo lo que me devolvieron a mi.


Espero y te sirva.

BYTE.

Mr. Pascal:
:) Es cierto Lencho ahora que lo veo bien no esta bien explicado, pero lo funcion lo que hace es contabilizar la cantidad de numeros pares que hay en un vector (array)

explicacion:

La funcion recibe como parametros a la variable c que es un contandor inicializado en 0 en el programa principal y tambien recibe a la variable i que es  el indice del vector (array) y entra en la funcion con el tamaño del vector. (por ejemplo si el vector tiene 5 casillas i entraria con 5).
Ahora por que escogi                        
                           if i=0 then
                                        cont:= c      por que al ir comparando si el numero que esta en el vector es impar va ir decrementando i y cada comparacion la va almacenando en el stack  de pascal y el elemento cima del stack seria cont(c, 0), donde c seria la cantidad de impares total.

dejo el programa adjunto para que lo vean
 :hola:

Navegación

[0] Índice de Mensajes

[*] Página Anterior

Ir a la versión completa