SoloCodigo

Programación General => C/C++ => Mensaje iniciado por: athena_rivas en Martes 10 de Julio de 2007, 06:21

Título: Tengo Este Codigo, Pero Tengo Una Duda
Publicado por: athena_rivas en Martes 10 de Julio de 2007, 06:21
HOLA TENGO ESTE CODIGO, NO GENERA ERRORES, PERO LO EJECUTO Y EN LA FUNCION PUSH NO RESPETA LA CONDICION DE :

 if(tope<9)   {

tope++;

pila[tope]=valor;   }

else

cout<<"\nLa pila esta llena!\n";

ME DEJA LLENAR  O INTRODUCIR MAS DE 9 VALORES Y PS NO ME DICE LA PILA ESTA LLENA NO SE EN DONDE ESTA EL ERROR, ESPERO ALGUIEN ME PUEDA AYUDAR GRACIAS...... AKI LES DEJO EL CODIGO COMPLETO!!



Código: Text
  1.  
  2. #include&#60;conio.h&#62;
  3. #include&#60;iostream.h&#62;
  4. #include&#60;stdio.h&#62;
  5.  
  6.  
  7. int tope=-1,valor;
  8. int pila[10];
  9.  
  10. void push(int val);
  11. void pop();
  12.  
  13. void main()
  14.  
  15. {
  16.  
  17. clrscr();
  18.  
  19. int opcion;
  20.  
  21. do
  22.  
  23. {
  24. clrscr();
  25. cout&#60;&#60;&#34;&#092;n&#092;n&#092;tMENU&#092;n&#092;n&#34;;
  26. cout&#60;&#60;&#34;Seleccione una opcion:&#092;n&#34;;
  27. cout&#60;&#60;&#34;1.-Agregar algun elemento&#092;n&#34;;
  28. cout&#60;&#60;&#34;2.-Eliminar algun elemento&#092;n&#34;;
  29. cout&#60;&#60;&#34;3.-Salir del programa&#092;n&#34;;
  30. cout&#60;&#60;&#34;Que opcion deseas??&#092;n&#34;;
  31. cin&#62;&#62;opcion;
  32.  
  33. clrscr();
  34.  
  35. switch(opcion)
  36.  
  37. {
  38.  
  39. case 1:
  40. {
  41. cout&#60;&#60;&#34;&#092;nIntroduce un valor:&#34;;
  42. cin&#62;&#62;valor;
  43.  
  44. push(valor);
  45.  
  46. break;
  47. }
  48. case 2:
  49.  {
  50. pop();
  51.  
  52. break;
  53. }
  54. case 3:
  55. {
  56. cout&#60;&#60;&#34;&#092;nSalir del Programa,Gracias!&#092;n&#34;;
  57.  
  58. break;}
  59.  }
  60. }while(opcion!=3);
  61.  
  62. getch();
  63.  
  64. }
  65.  
  66. void push(val)
  67.  
  68. {
  69.  
  70.   if(tope&#60;9)
  71.  
  72.    {
  73.  
  74. tope++;
  75.  
  76. pila[tope]=valor;
  77.  
  78.    }
  79.  
  80. else
  81.  
  82. cout&#60;&#60;&#34;&#092;nLa pila esta llena!&#092;n&#34;;
  83.  
  84. }
  85.  
  86. void pop()
  87.  
  88. {
  89.  
  90.   if(tope&#62;=0)
  91.   {
  92.  
  93.   pila[tope]=0;
  94.  
  95.   tope--;
  96.  
  97. cout&#60;&#60;&#34;&#092;nHas eliminado una pila!&#092;n&#34;;
  98.   clrscr();
  99.   }
  100.  
  101. else
  102.  
  103. cout&#60;&#60;&#34;La pila esta vacia!&#34;;
  104.  
  105. }
  106.  
  107.  
  108.  
Título: Re: Tengo Este Codigo, Pero Tengo Una Duda
Publicado por: emuller en Miércoles 11 de Julio de 2007, 01:20
Es un código sencillo y parece estar correcto. Te recomiendo (si ya no lo has hecho) que en las funciones push y pop imprimas el valor de "tope" antes de modificar su valor (a modo de debug) para ver si tiene el valor que se supone debería tener.
Título: Re: Tengo Este Codigo, Pero Tengo Una Duda
Publicado por: Mollense en Miércoles 11 de Julio de 2007, 02:20
Estás declarando la función push como
Código: Text
  1. void push(int val);
  2.  
pero la estás implementando como
Código: Text
  1. void push(val)
  2.  
Sin especificar el tipo del parámetro. Luego en la función push estás asignando al vector mediante
Código: Text
  1. pila[tope]=valor;
  2.  
cuando debería ser
Código: Text
  1. pila[tope]=val;
  2.  

El mensaje
Código: Text
  1. cout&#60;&#60;&#34;&#092;nLa pila esta llena!&#092;n&#34;;
  2.  
al igual que los demás, nunca se van a ver porque inmediatamente después de imprimirlos se borra la pantalla.

Un saludo
Título: Re: Tengo Este Codigo, Pero Tengo Una Duda
Publicado por: emuller en Miércoles 11 de Julio de 2007, 04:38
Epa, son verdad esos errores. Parece que tengo que practicar un poco más antes de decir que el código parece correcto   :unsure:  (hace algunos años que no hago nada con c/c++ y he perdido la práctica de ver esas fallas en el código). Lo importante es que Angel_K_ido encontró respuestas.
Título: Re: Tengo Este Codigo, Pero Tengo Una Duda
Publicado por: athena_rivas en Jueves 12 de Julio de 2007, 04:47
GRACIAS POR SUS COMENTARIOS Y AYUDA!!  :D   ASI ME QUEDO EL CODIGO Y FUNCIONO MUY BIEN....  NOS VEMOS Y GRACIAS DE NUEVO :hola:

Código: Text
  1.  
  2.  
  3. #include&#60;conio.h&#62;
  4. #include&#60;iostream.h&#62;
  5. #include&#60;stdio.h&#62;
  6.  
  7.  
  8. int tope=0,valor;
  9. int pila[10];
  10.  
  11. void push(int val);
  12. void pop();
  13.  
  14. void main()
  15.  
  16. {
  17.  
  18. clrscr();
  19.  
  20. int opcion;
  21.  
  22. do
  23.  
  24. {
  25. clrscr();
  26. cout&#60;&#60;&#34;&#092;n&#092;n&#092;tMENU&#092;n&#092;n&#34;;
  27. cout&#60;&#60;&#34;Seleccione una opcion:&#092;n&#34;;
  28. cout&#60;&#60;&#34;1.-Agregar algun elemento&#092;n&#34;;
  29. cout&#60;&#60;&#34;2.-Eliminar algun elemento&#092;n&#34;;
  30. cout&#60;&#60;&#34;3.-Salir del programa&#092;n&#34;;
  31. cout&#60;&#60;&#34;Que opcion deseas??&#092;n&#34;;
  32. cin&#62;&#62;opcion;
  33.  
  34. clrscr();
  35.  
  36. switch(opcion)
  37.  
  38. {
  39.  
  40. case 1:
  41.  
  42. cout&#60;&#60;&#34;&#092;nIntroduce un valor:&#34;;
  43. cin&#62;&#62;valor;
  44.  
  45. push(valor);
  46.  
  47. break;
  48.  
  49. case 2:
  50.  
  51. pop();
  52.  
  53. break;
  54.  
  55. case 3:
  56.  
  57. cout&#60;&#60;&#34;&#092;nSalir del Programa,Gracias!&#092;n&#34;;
  58. cout&#60;&#60;&#34;&#092;nPresione 1 tecla para salir!&#092;n&#34;;
  59.  
  60. break;
  61.  }
  62. }while(opcion!=3);
  63.  
  64. getch();
  65.  
  66. }
  67.  
  68. void push(int val)
  69.  
  70. {
  71.  
  72.   if(tope&#60;9)
  73.  
  74.    {
  75.  
  76. tope++;
  77.  
  78. pila[tope]=val;
  79.  
  80.    }
  81.  
  82. else
  83.       {
  84. cout&#60;&#60;&#34;&#092;nLa pila se a llenado, a introducido mas de 9 valores!&#092;n&#34;;
  85.        getch();
  86.       }
  87.  
  88.  
  89.   }
  90. void pop()
  91.  
  92. {
  93.  
  94.   if(tope&#62;=0)
  95.  
  96.   {
  97.  
  98.   pila[tope]=0;
  99.  
  100.   tope--;
  101.  
  102. cout&#60;&#60;&#34;&#092;nHas eliminado una pila!&#092;n&#34;;
  103. cout&#60;&#60;&#34;&#092;nPresione 1 tecla para regresar al menu!&#092;n&#34;;
  104.  
  105.   }
  106.  
  107. else
  108.  
  109. cout&#60;&#60;&#34;La pila esta vacia!&#34;;
  110. cout&#60;&#60;&#34;&#092;nPresione 1 tecla para regresar al menu!&#092;n&#34;;
  111.     getch();
  112. }
  113.  
  114.  
  115.  
Título: Re: Tengo Este Codigo, Pero Tengo Una Duda
Publicado por: Mollense en Jueves 12 de Julio de 2007, 04:58
Por nada :hola: