Test Foro de elhacker.net SMF 2.1

Programación => Programación C/C++ => Mensaje iniciado por: Gerik en 11 Septiembre 2010, 05:54 AM

Título: Urgebte problema con pila estatica :S
Publicado por: Gerik en 11 Septiembre 2010, 05:54 AM
lo tenia en estatica se me dio por hacerlo a memoria dinamica y grabe encima ahora no encuentro el error, si alguien lo ve por fa ayudaaa es urgenteeeeeee
Código (cpp) [Seleccionar]
#include <iostream>
#include <conio>
#include <stdlib>
#define tama1 10
#define tama2 8
#define tama3 6
class Pila
     {public:
      int tope,y;
      int pila1[tama1];
      Pila(){tope=-1;
             y=0;}
      mostrar()
         {for(int i=0;i<tama1;i++)
                  {cout<<"\tPila1["<<i<<"]="<<pila1[i]<<endl;}}
      insertar(int a)
        {tope++;
         if(tope==tama1)
            {cout<<"\t\t\nPila llena "<<endl;
             tope--;}
         else {pila1[tope]=a;}
         }
      int sacar()
          {if(tope==-1)
           cout<<"\t\t\nPila Vacia ";
           else{
                y=pila1[tope];
                pila1[tope]=0;
                tope--;
                return y;
                cout<<"\n\tElemento Eliminado "; }
          }};
class Pil
     {public:
      int tope2,z;
      int pila2[tama2];
      Pil(){tope2=-1;}
       mostrar()
         {for(int i=0; i<tama2;i++)
                  {cout<<"\tPila2["<<i<<"]="<<pila2[i]<<endl;}}
       insertar(int a)
        {tope2++;
         if(tope2==tama2)
            {cout<<"\t\t\nPila llena "<<endl;
             tope2--;}
         else {pila2[tope2]=a;}
         }
       int sacar()
          {if(tope2==-1)
           cout<<"\t\t\nPila Vacia ";
           else{z=pila2[tope2];
                pila2[tope2]=0;
                tope2--;
                return z;
                cout<<"\n\tElemento Eliminado "; }
          }};
class Pi
     {public:
      int tope3;
      int pila3[tama3];
      Pi(int z)
          {tope3=-1;}
       mostrar()
         {for(int i=0; i<tama3;i++)
                  {cout<<"\tPila3["<<i<<"]="<<pila3[i]<<endl;}}
       insertar(int a)
        {tope3++;
         if(tope3==tama3)
            {cout<<"\t\t\nPila llena "<<endl;
             tope3--;}
         else {pila3[tope3]=a;}
         }
       int sacar()
          {if(tope3==-1)
           cout<<"\t\t\nPila Vacia ";
           else{pila3[tope3]=0;
                tope3--;
                cout<<"\n\tElemento Eliminado "; }
          }};
int main()
     {int x=0;
     Pila ob();
     Pil o();
     Pi obj();
     cout<<"\n\nInsercion de Elementos a la Pila1\n";
     randomize();
     while(x<tama1)
       {ob.insertar(random(10));
        x++;}
     ob.mostrar();
     getch();
     for(int i=0;i<tama2;i++)
         {o.insertar(ob.sacar());}
     o.mostrar();
     for(int i=0;i<tama3;i++)
         {obj.insertar(o.sacar());}
     obj.mostrar();
     getch();
     return 0;
     }


EI: juntando mensajes.

ya lo encontre jejeje el rpoblema eran los parentesis en los objetos del amin y el objeto de pi recibia parametro pero ya
Título: Re: Urgebte problema con pila estatica :S
Publicado por: satu en 11 Septiembre 2010, 07:06 AM
Hola

Mirando por encima he visto otro error. En la función "sacar" de la clase "Pila" tienes puesto
Código (cpp) [Seleccionar]

return y;
cout<<"\n\tElemento Eliminado";

procura poner todas las sentencias delante del return si quieres que se ejecuten
Código (cpp) [Seleccionar]

cout<<"\n\tElemento Eliminado";
return y;

porque después del return sale de la función. Ahora mismo no estoy en condiciones de ver todo el código, luego si me acuerdo le echo un ojo.

Saludos
Título: Re: Urgebte problema con pila estatica :S
Publicado por: Gerik en 12 Septiembre 2010, 03:39 AM
jejeje si no me habia dado cuenta jejeje pero igual ya compilado y funcionando Gracias
Título: Re: Urgebte problema con pila estatica :S
Publicado por: satu en 12 Septiembre 2010, 09:00 AM
Hola

El problema es ese, que compila y funciona bien, pero esas sentencias no se ejecutan, es un fallo de novato jejeje, ten más ojo la próxima vez  ;)

Saludos