Programación General > Pascal
Ayuda Con La Recursividad
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
[*] Página Anterior
Ir a la versión completa