[ Foro de Pascal ]
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.
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.)