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

 

 


Tema destacado:


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Mostrar el mayor valor de una pila
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Mostrar el mayor valor de una pila  (Leído 4,839 veces)
Mar90_13

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Mostrar el mayor valor de una pila
« en: 28 Julio 2022, 02:25 am »

¿Cómo logro que el programa me arroja el valor más grande?

Código
  1. int PILA[12], cima=-1; //Declaración de variables, y definición de dimensión de datos
  2.  
  3. //FUNCIONES
  4. void ingresar(){
  5. if(cima<11){ //Si la pila no está llena se pieden ingresar datos
  6. cout<<"Ingrese el dato deseado: "<<endl<<"->";
  7. cin>>PILA[cima+1];
  8. cima++;
  9. cout<<"Dato introducido a la PILA"<<endl<<endl;
  10. system("Pause");
  11. }
  12. else{
  13. cout<<"PILA llena, no se pueden ingresar mas datos"<<endl<<endl;
  14. system("Pause");
  15. }
  16. }
  17.  
  18. void pilallena(){
  19. if(cima>-1){
  20. cout<<"Los datos almacenados en la PILA son: "<<endl<<endl;
  21. cout<<"\t [ ";
  22. for(int x=cima;x>-1;x--){
  23. cout<<PILA[x]<<" , ";
  24. }
  25. cout<<"END]";
  26. ; system("Pause");
  27. }
  28. else{
  29. cout<<"La PILA esta vacia"<<endl<<endl;
  30. system("Pause");
  31. }
  32. }
  33.  
  34. void mayor(){
  35.  
  36. cout<<mayor<<"\n es el numero mayor de la PILA"<<endl<<endl;
  37. system("Pause");
  38. }
  39. }
  40.  
  41. }

MOD: El código debe ir entre etiquetas de Código GeSHi


« Última modificación: 31 Julio 2022, 12:16 pm por K-YreX » En línea

dario01dr

Desconectado Desconectado

Mensajes: 17


Ver Perfil
Re: Mostrar el mayor valor de una pila
« Respuesta #1 en: 28 Julio 2022, 03:25 am »

Hola C++ ya tiene pilas establecidas, lee algo de stack en C++ busca en google, se te hara mas facil.
Salu2.


En línea

dijsktra

Desconectado Desconectado

Mensajes: 110


Mr Edsger Dijsktra (Tribute to)


Ver Perfil
Re: Mostrar el mayor valor de una pila
« Respuesta #2 en: 12 Agosto 2022, 17:02 pm »

A ver, aprecio dos errores en tu programa.

En primer lugar, propiamente no estás implementando una pila. Es cierto que parece que la simulas con un vector y un indice al ultimo elemento ( por cierto, es más natural marcar cuantos elementos tiene la pila), pero no das ninguna rutina de abstracción y el programador puede acceder al tipo emulador (vector e indice) con total libertad. Queda a tu elección el rigor con que lo quieras tratar.

 En el mundo Python por ejemplo, ya nadie implementaria un tipo para pila, todo el mundo usa las listas directamente, como tu sugieres.

Si escoges la implementación hecha en la librer'ia estadard, esta es tu rutina.


Código
  1. #include <stack>
  2. #include <iostream>
  3. #include <cassert>
  4. #include <algorithm> // using max function.
  5.  
  6. int compute_max(const std::stack<int> &s)
  7. {
  8.    assert(s.size() > 0);
  9.    std::stack<int> copy(s);
  10.    int M = copy.top();
  11.    copy.pop();
  12.    while (!empty(copy))
  13.    {
  14.        M = std::max(M,copy.top());
  15.        copy.pop();
  16.    }
  17.    return M;
  18. }
  19.  

Observa que el problema est'a solo definido si como m'inimo tienes un elemento en la pila, y observa como debemos hacer una copia de la pila original, para no modificiarla.

Código
  1. int main(int argc, char const *argv[])
  2. {
  3.    std::stack<int>  s ;
  4.    int N;
  5.    for( ; std::cin >> N ;)
  6.       s.push(N);
  7.    int M = compute_max(s);
  8.    std::cout << M;
  9.    return 0;
  10. }


Para experimentar interactivamente con el programa,,,


Código:
34  -1 45 67
^Z
67
En línea

Si la depuración es el proceso de eliminar fallos en el software, entonces programar debe ser el proceso de ponerlos dentro. (Edsger Dijsktra)
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
mayor pila
Programación C/C++
karmi 1 4,900 Último mensaje 19 Octubre 2010, 15:19 pm
por DanyKadiz
Mayor valor de un vector en C
Programación C/C++
estudiante_1 7 5,584 Último mensaje 27 Julio 2015, 11:18 am
por estudiante_1
Error al dar valor mayor de 1 en el programa
Programación C/C++
Antoniio 4 2,525 Último mensaje 15 Septiembre 2015, 05:46 am
por Antoniio
Código para mostrar el mayor Nro en una Pila : Duda
Programación C/C++
snoopty 5 5,888 Último mensaje 19 Noviembre 2021, 10:13 am
por Eternal Idol
Código para mostrar el MENOR Nro en una Pila : Duda
Programación C/C++
snoopty 4 4,452 Último mensaje 25 Noviembre 2021, 08:33 am
por Eternal Idol
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines