[ Foro de Pascal ]
no se porque me dice runtime error al correr el programa, esto es lo que trataba de hacer :Dada la variable entera Posición, eliminar de la pila Secuencia el elemento que se
encuentre en dicha posición.
program eliminar;
uses estructu;
var
SECUENCIA:pila;
POSICION:Integer;
procedure ELIMINARPOSICION(var COPIA:Pila; UBICACION:Integer);
var
DESCARTE,AUX:Pila;
POZI:Integer;
begin
POZI:=0;
While not pilavacia(COPIA) Do
if UBICACION<>POZI Then begin
Apilar(AUX,Desapilar(COPIA));
POZI:= POZI + 1;
end
else begin
Apilar(DESCARTE,Desapilar(COPIA));
end;
While not Pilavacia(AUX) do
apilar(COPIA,Desapilar(AUX));
end;
begin
ReadPila(SECUENCIA);
Write('Introduzca la posicion(numero) que quiera eliminar de la pila secuencia:');
Readln(POSICION);
ELIMINARPOSICION(SECUENCIA,POSICION);
WritePila(SECUENCIA);
END.
No se puede probar el programa porque faltan procedimientos. Aun así, un "runtime error" (ayudaría saber el mensaje correspondiente o su número) se puede deber a que desbordes el array, mirando más allá de su último elemento o antes del primero.
(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.)