elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Como proteger una cartera - billetera de Bitcoin


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  ayuda moda en pilas
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: ayuda moda en pilas  (Leído 1,654 veces)
fR3Kmy

Desconectado Desconectado

Mensajes: 1


Ver Perfil
ayuda moda en pilas
« en: 13 Diciembre 2011, 02:01 am »

Hola amigos de elhacker.net he estado ene ste foro desde buuu muchos años (cuando se descargaban hackers para msn hace como 7 años) bueno tengo la siguiente duda
tengo mi código de PILA y tengo de todo push pop vacio tope pero tengo problemas con LA MODA ya que al implementar la moda solo me reconose si los números que se repiten son los del comienzo aquí va el código en cuestión...
DEV C++

    #include <iostream.h>
    class Pila{
    private:
    public:
    int Tope;
    int of;

    void ValorTope(){
    Tope=-1;
    }

    bool Vacia(){
    bool v;
    if(Tope==-1){
    v=true;
    }
    else{
    v=false;
    }
    return v;
    }

    void Push(int x, int P[100]){
    if(Tope==99){
    cout<<"la Pila esta llena"<<endl;
    }
    P[Tope+1]=x;
    Tope=Tope+1;
    }

    void Pop(){
    if (Tope==-1){
    cout<<"la Pila esta Vacia"<<endl;
    }
    else{
    Tope=Tope-1;
    }
   }

    void Anula(){
    Tope=-1;
    cout<<"Se ha anulado la pila";
    }

   void Muestra(int P[100]){
      int i;
  for(i=0;i<=Tope;i++){
            cout<<P<<endl; }
   }

    int MuestraTope(int P[100]){
    return P[Tope];
    }

void Moda(int P[100]){
   int i,j,c,pos,Aux[100],Cnt[100],mayor=0,Noperaciones=0;

   for(i=0;i<Tope;i=i+1){  // Saca copia del arreglo
      Aux=P;
   }
   for(i=0;i<=Tope;i=i+1){
      c=1;
      for(j=i+1;j<=Tope;j=j+1){
         if(Aux==Aux[j]){//compara el numero con los demas
            c=c+1;   
         }
      }
     Noperaciones++;
      Cnt=c;
      if(mayor<c){
         mayor=c;//se le asigna el mayor valor repeticiones
      }
   }
   c=0;
   for(i=0;i<=Tope;i=i+1){//busca si el valor repetido es unico
      if(Cnt==mayor){
         pos=i;
         c=c+1;   
      }
   }
   if(c==1){
      cout<<" La moda es:"<<P[pos]<<endl;
   }else{
      cout<<" No tiene moda"<<endl;
   }
       cout<<"Numero de Operaciones: "<<Noperaciones<<endl;
}
    };

    void Menu(){
    cout<<"   Opciones pila P "<<endl;
    cout<<"\n";
    cout<<"  1   VACIA(P) "<<endl;
    cout<<"  2   PUSH(x,P) "<<endl;
    cout<<"  3   ANULA(L) "<<endl;
    cout<<"  4   POP(P) "<<endl;
    cout<<"  5   MuestraPila(P) "<<endl;
    cout<<"  6   TOPE(P) "<<endl;
   cout<<"  7   MODA(P)"<<endl;
    cout<<"\n";
   
    }
    int main(){
    Pila pila1;
    Pila pilaaux;
    Pila pilaaux2;
    int P[100];
    int x;
    pila1.ValorTope();
    pilaaux.ValorTope();
    pilaaux2.ValorTope();
    int opcion;
    while(true){
    Menu();
    cout<<"Elija una opcion: ";
    cin>>opcion;
    cout<<endl;
    switch(opcion){     
    case 1:{
    if(pila1.Vacia()==true){
    cout<<"la pila esta vacia"<<"\n"<<endl;
    }
    else{
    cout<<"la pila no esta vacia"<<"\n"<<endl;
    }
}
    break;   
    case 2:{
    cout<<"Que elemento desea ingresar a la pila: ";
    cin>>x;
    pila1.Push(x,P);
    cout<<endl;
}
    system("PAUSE");
    break;
    case 3:{
      if(pila1.Vacia()==true){
    cout<<"La Pila esta vacia\n"<<endl;
    }
    else{
      pila1.Anula();
      cout<<endl;
   }
   cout<<endl;
}
    system("PAUSE");
    break;
    case 4:{
    if(pila1.Vacia()==true){
    cout<<"La Pila esta vacia\n"<<endl;
    }
    else{
    pila1.Pop();
    }
}
    system("PAUSE");
    break;
    case 5:{
    if(pila1.Vacia()==true){
    cout<<"La pila esta vacia\n"<<endl;
    }
    else{
      pila1.Muestra(P);
      
    }
}
    system("PAUSE");
    break;   
    case 6:{
    if(pila1.Vacia()==true){
    cout<<"La Pila esta vacia\n"<<endl;
    }
    else{
    cout<<"El tope es "<<pila1.MuestraTope(P)<<endl;
    }
}
    system("PAUSE");
    break;
   case 7:{
      if(pila1.Vacia()==true){
    cout<<"La Pila esta vacia\n"<<endl;
    }
    else{
      pila1.Moda(P);
      cout<<endl;
   }
}
    system("PAUSE");
      break;
   
    }
   }
   }

de ante mano muchas gracias
si llegue a romper alguna regla del sub-foro díganme y con gusto lo arreglare
recibo cualquier tipo de sugerencia ya que se que serán constructivas.
   


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Programa que calcula el promedio y la moda. duda con la moda
Programación C/C++
noobc 1 5,324 Último mensaje 27 Mayo 2010, 02:24 am
por h0oke
Ayuda con Pilas y Colas
Programación Visual Basic
[Decoded] 5 8,608 Último mensaje 30 Agosto 2010, 15:06 pm
por goldarg
Ayuda con Pilas y Colas
Programación C/C++
HeavyPsychedelic 1 3,593 Último mensaje 26 Octubre 2010, 18:57 pm
por Littlehorse
ayuda con las pilas dinamicas
Programación C/C++
BalthierKs 1 2,801 Último mensaje 25 Abril 2012, 00:36 am
por david_BS
ayuda con software swing pilas
Java
jimytron 0 2,213 Último mensaje 30 Abril 2012, 18:58 pm
por jimytron
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines