Ver Mensaje Individual
  #5 (permalink)  
Antiguo 23/01/2009, 22:05
Avatar de cesmichael
cesmichael
 
Fecha de Ingreso: julio-2008
Mensajes: 207
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Cómo hago esta función?

Bueno creo que esta es la respuesta

En primer lugar he considerado que los 6 o varios numeros (10 en el programa) estan alamcenados en el vector. Si es uqe tu no estas trabajando asi te recomiendo que lo hagas.

Bueno supongamos que tengamos esta serie de 10 numeros:

1 2 3 4 5 6 7 8 9 10

Lo que el programa hace es encontrar todas las series de 5 numeros correlativos que puedan haber. Es decir el program encontrara estas series:

1 2 3 4 5
2 3 4 5 6
3 4 5 6 7
4 5 6 7 8
5 6 7 8 9
6 7 8 9 10

En total el programa encuentra 6 series. Yo pienso que esto lo que buscas. ahora si lo que quieres es encontrar series disjuntas (que no tenga elementos en comun) la situación es mucho más fácil. En todo caso el programa tendria que encontrar las siguientes series:

1 2 3 4 5
6 7 8 9 10

Un total de dos series. Pero mi program hace el enfoque mas difícil, poruqe pense que ese era el que tu necesitabas. Bueno de todas formas trate de ayudar si es que no pude resolver tu problemas. Creo que mdificando alguans cosas podras realizar el programa de acuerdo al segundo enfoque.

Bueno aca dejo el codigo

Código:
#include <iostream.h>
#include <stdlib.h>
#include <stdio.h>
#define N 10

void Llenar(int V[N]);
void Mostrar(int V[N]);
void Funcion_Corr(int V[N]);

int main()
{
 int Serie[N];
 //Llena el vector
 Llenar(Serie);
 //Muestra el vector
 Mostrar(Serie);
 //Muestar el numero de series correlativos de 5 numeros
 //encontradas en el vector
 Funcion_Corr(Serie);

      system("PAUSE");
      return 0;
}

void Llenar(int V[N])
{
 int i=0;
 cout<<"\tIntrodusca los elementos: \n\n";
 while(i<N)
 {
  cout<<"\tNumero["<<i+1<<"]: ";
  cin>>V[i];
  i++;
 }
}

void Mostrar(int V[N])
{
 cout<<"\n\tSERIE\n\n";
 for(int i=0;i<N;i++)
 {
  cout<<V[i]<<" ";
 }
}

//Detecta una serie de 5 numeros correlativos
void Funcion_Corr(int V[N])
{
 int i=0;
 int contN=1, contS=0;
 while(i<N)
 {
  if(contN<5)
  {
   if(V[i+1]==(V[i]+1))
   {
    //si detecta numeros correlativos aumenta el contador de numero en 1
    contN++;
   }
   else{
    //Sino el contador lo pone en cero
    //no importa si ya esta en cero o el contador tien otro valor
    //Es para volver a buscar la serie de 5 numeros
    contN=1;
   }
  }
  else{
   //si el contador llega a 5
   contS++;//aumenta en 1 el numero de series encontradas
   contN--;//vuelve a disminuir el contador para encontrar otra serie
   i--;//disminuye el contador para volver a comparar el ultimo numero de la ultima serie encontrada
  }
  i++;
 }
 cout<<"\nTotal de series de 5 numeros: "<<contS<<endl;
}