• Jueves 18 de Abril de 2024, 16:28

Autor Tema:  [c++/recursividad] Programadores!!  (Leído 12171 veces)

RockWing

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
[c++/recursividad] Programadores!!
« en: Martes 15 de Abril de 2008, 09:02 »
0
Hola! Cómo están? Les comento que tengo unos inconvenientes para realizar un Ejercicio de Programación en C++ sobre Recursividad. Ya he intentado lo más que pude pero no he obtenido resultados. El Ejercicio dice: "Cargar un Vector con N Elementos Enteros y Calcular el Promedio de sus Elementos en Forma Recursiva".

Aquí les muestro un Ejemplo de una Función Recursiva que Calcula la Suma de sus Elementos en un Vector (así se guían más o menos cómo es la estructura):

int suma (int vec[],int tam)
{
if (tam==0)
return (vec[0]);
return (vec[tam]+suma (vec,tam-1));
}
//VEC es el Vector // TAM es el Tamaño (Vector).

Aquí les muestro un Ejemplo de una Función Recursiva que Calcula el Producto de los Elementos de la Diagonal Principal en una Matriz:

int producto (int mat[10][10],int tam)
{
if (tam==0)
return (mat[0][0]);
return (mat[tam][tam]*producto (mat,tam-1));
}
// MAT es la Matriz // TAM es el Tamaño (Matriz).

Por favor, necesito su ayuda para resolver ese ejercicio. Hay que Calcular el Promedio de los Elementos en Forma Recursiva dentro de un Vector de N Elementos. Espero que me puedan ayudar. Muchas gracias. Saludos!!

ProfesorX

  • Moderador
  • ******
  • Mensajes: 796
  • Nacionalidad: mx
    • Ver Perfil
Re: [c++/recursividad] Programadores!!
« Respuesta #1 en: Martes 15 de Abril de 2008, 19:33 »
0
Si ya tienes la funcion de suma recursiva, solo tienes que dividir la suma entre el numero de elementos, la suma es lo unico (en este caso) que se puede hacer recursivamente para resolver el problema, no hay otra forma de hacerlo, pues el dividir de manera recursiva, te daria un resultado diferente al promedio.

Saludos :hola:

NOTA:
==================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
==================================================================

Elforious

  • Miembro activo
  • **
  • Mensajes: 44
    • Ver Perfil
Re: [c++/recursividad] Programadores!!
« Respuesta #2 en: Jueves 17 de Abril de 2008, 14:51 »
0
Lo que yo haría, suponiendo que ya tengo cargado al vector, sería:

Código: Text
  1.  
  2. void Calcular_Promedio_Recursivo( int Vector[], int Pos_Cargadas,
  3.                                                     int &Suma, int &Pos_Actual)
  4. {
  5.          if(Pos_Actual > Pos_Cargadas)
  6.          {
  7.                  int Promedio = Suma / (Pos_Cargadas-1);
  8.                  printf("%d", Promedio);
  9.          }
  10.          else
  11.          {
  12.                   Suma = Suma + Vector[Pos_Actual];
  13.                   Pos_Actual++;
  14.                   Calcular_Promedio_Recursivo( Vector,
  15.                                                               Pos_Cargadas,Suma,Pos_Actual);
  16.          }
  17. }
  18.  
  19.  

No lo prové por que lo hice a la rápida....

Espero haber ayudado.

thamen

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
Re: [c++/recursividad] Programadores!!
« Respuesta #3 en: Domingo 11 de Octubre de 2009, 00:45 »
0
Te necesito... Calc Calcula la suma de N elementos de un vector x donde (x y N) deben ser los parametros de dicho macro en c++.