Código:
Procedure SinonimosE(ArbolE:Arbol);
{ SOLICITA EL INGRESO DE LA PALABRA Y MUESTRA SUS SINONIMOS }
var
p:string;
Pos:Arbol;
begin
p:=' ';
clrscr;
writeln('Ingrese la palabra que desea buscar sinonimos en ESPANOL : ');
read(p);
Pos:= Posicion(ArbolE,p);
if ( Pos = nil ) then
begin
clrscr;
gotoxy(25,13);
write('LA PALABRA INGRESADA NO EXISTE');
readkey;
end
else
MostrarSin(Pos);
end; Este procedimiento hace que, dada una palabra ingresada por el usuario, devuelve la posicion de esa palabra en un arbol binario, y luego recorre una lista circular Mostrando todos los que son sinonimos de esa palabra, el código anda perfecto, no es ese mi problema, por eso no adjunto el procedimienot MostrarSin. Sino que lo que me pasa es cuando lo llamo desde el menu, y realizo la primer consulta, todo bien. El problema viene cuando despues de esa consulta me devuelve al menu principal y elijo de nuevo esa opcion, y me tira el mensaje "LA PALABRA INGRESADA NO EXISTE". Lo mas lindo que no llego a ingresar nada, es como si se salteara el read. Ese problema ya lo habia tenido ayer en otro procedimiento y lo solucione inicializando la variable p, como hice en este, pero no se soluciona. De todas formas, no es logico que el valor de la variable p me quede guardado en memoria ya que es local al procedimiento, por eso no se que hacer. Si alguno encuentra algo que puede estar haciendo que me pase eso, le agradeceria que me diga. Muchisimas gracias.