[ Foro de Pascal ]

Problema pilas

02-May-2016 20:15
Invitado (Fran)
1 Respuestas

como podria hacer que el siguiente programa funcione sin poner un valor a limite(4), ya que si no tiene da error, pero no se como hacerlo funcionar estando vacia.


Program Pilas;

Uses Estructu;

Var
LIMITE,DADA,MAYORES,MENORES:Pila;

Begin
ReadPila(DADA);
InicPila(LIMITE,'4');            
InicPila(MENORES,'');
InicPila(MAYORES,'');
While not PilaVacia(DADA) Do
 If Tope(DADA)>=Tope(LIMITE) Then
   Apilar(MAYORES,Desapilar(DADA))
 Else
   Apilar(MENORES,Desapilar(DADA));
WritePila(MAYORES);
WritePila(MENORES);
end.


08-May-2016 16:40
Nacho Cabanes (+84)

Por un parte, no entiendo qué pretendes hacer con "InicPila(LIMITE,'4');". Parece que incialice la pila y guarde un primer valor en ella. Si vas a comparar con el valor que haya en "Tope(LIMITE)" haciendo "if Tope(DADA)>=Tope(LIMITE)", obviamente tendrás que estar inicializado para que se pueda usar ese valor como comparación. Lo que no tengo tan claro es que ese valor de comparación deba ser un "4", ni que se deba comparar como texto puro, en vez de mirar su valor numérico.

Por otra parte, esta pregunta estaba duplicada. Me he tomado la libertad de borrar la consulta redundante.






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)