Urgebte problema con pila estatica :S

Iniciado por Gerik, 11 Septiembre 2010, 05:54 AM

0 Miembros y 1 Visitante están viendo este tema.

Gerik

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

satu

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
Breakbeat como forma de vida

Gerik

jejeje si no me habia dado cuenta jejeje pero igual ya compilado y funcionando Gracias

satu

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
Breakbeat como forma de vida