• Jueves 7 de Noviembre de 2024, 19:57

Autor Tema:  Tengo Este Codigo, Pero Tengo Una Duda  (Leído 1635 veces)

athena_rivas

  • Nuevo Miembro
  • *
  • Mensajes: 12
    • Ver Perfil
Tengo Este Codigo, Pero Tengo Una Duda
« en: Martes 10 de Julio de 2007, 06:21 »
0
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.  

emuller

  • Miembro MUY activo
  • ***
  • Mensajes: 104
    • Ver Perfil
Re: Tengo Este Codigo, Pero Tengo Una Duda
« Respuesta #1 en: Miércoles 11 de Julio de 2007, 01:20 »
0
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.
Mi deseo: que le otorguen el premio Nobel de la paz al inventor del Copy & Paste. Gracias por evitarme tantas peleas con el tiempo y aumentar la esperanza de vida de mi teclado \":)\"

Mollense

  • Miembro de PLATA
  • *****
  • Mensajes: 1755
  • Nacionalidad: ar
    • Ver Perfil
    • http://solocodigo.com/
Re: Tengo Este Codigo, Pero Tengo Una Duda
« Respuesta #2 en: Miércoles 11 de Julio de 2007, 02:20 »
0
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
"Los que renuncian son más numerosos que los que fracasan" H.F.
"No se cómo sería la III Guerra Mundial, pero la cuarta sería con piedras" A.E.
"Quién no fía no es de fiar..."


...no te quedes mirando.

emuller

  • Miembro MUY activo
  • ***
  • Mensajes: 104
    • Ver Perfil
Re: Tengo Este Codigo, Pero Tengo Una Duda
« Respuesta #3 en: Miércoles 11 de Julio de 2007, 04:38 »
0
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.
Mi deseo: que le otorguen el premio Nobel de la paz al inventor del Copy & Paste. Gracias por evitarme tantas peleas con el tiempo y aumentar la esperanza de vida de mi teclado \":)\"

athena_rivas

  • Nuevo Miembro
  • *
  • Mensajes: 12
    • Ver Perfil
Re: Tengo Este Codigo, Pero Tengo Una Duda
« Respuesta #4 en: Jueves 12 de Julio de 2007, 04:47 »
0
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.  

Mollense

  • Miembro de PLATA
  • *****
  • Mensajes: 1755
  • Nacionalidad: ar
    • Ver Perfil
    • http://solocodigo.com/
Re: Tengo Este Codigo, Pero Tengo Una Duda
« Respuesta #5 en: Jueves 12 de Julio de 2007, 04:58 »
0
Por nada :hola:
"Los que renuncian son más numerosos que los que fracasan" H.F.
"No se cómo sería la III Guerra Mundial, pero la cuarta sería con piedras" A.E.
"Quién no fía no es de fiar..."


...no te quedes mirando.