Pascal/Turbo Pascal - Ayuda con diccionario

   
Vista:

Ayuda con diccionario

Publicado por Juan (83 intervenciones) el 08/10/2007 06:18:49
Que tal Diego, como andas, espero que bien. Mira, se me dió por hacer un diccionario con un registro compuesto por a) Palabra b)Definición. La cosa es que lo compile todo bien, pero al momento de ingresar la opción de lo que quiero hacer( agregar palabra, modificar definición, buscar definición o salir), me aparece runtime error. Te agradecería mucho si me podes decir cual es el problema, un saludo y gracias de nuevo. Aca te dejo el código:

Program Diccionario;

Type

Str=String;

RegPalabra=Record

Palabra,definicion:str;

end;

ArchPalabra=file of RegPalabra;


Function BusBin(var Arch:ArchPalabra;Palabra:str):longint;

var pos:longint;

RPalabra:RegPalabra;

Pri,ult,med:word;

Begin

Pri:=0;

Ult:=filesize(Arch)-1;

Pos:=-1;

while ((pri<=ult) and (pos=-1)) do

med:=(pri+ult) div 2;

seek(arch,med);

read(arch,RPalabra);

if Palabra=RPalabra.Palabra then

pos:=med

else

begin

if palabra<Rpalabra.Palabra then

ult:=med-1

else

pri:=med+1

end

end;


Procedure Abrir(var Arch:ArchPalabra);

Begin

Assign(Arch,'Diccionario.dat');

{$i-}

reset(Arch);

{$i-}

If ioresult<>0 then

rewrite(Arch)

else

reset(Arch)

end;

Procedure Agregar_Definicion(var Arch:ArchPalabra);

var RPalabra:RegPalabra;

palabra:str;

Begin

writeln('Introduzca la palabra que desea agregar: ');

readln(upcase(palabra));

if (BusBin(Arch,palabra)<>-1) then

writeln('La palabra ya se encuentra agregada en el diccionario.')

else

begin

seek(Arch,FileSize(Arch));

writeln('Introduzca la definici¢n de dicha palabra: ');

readln(upcase(RPalabra.Definicion));

write(arch,RPalabra)

end

end;

Procedure Modificar_Definicion(var Arch:ArchPalabra);

var RPalabra:RegPalabra;

pos:longint;

Begin

reset(Arch);

writeln('Introduzca la palabra que quiere modificar');

readln(upcase(RPalabra.Palabra));

pos:=BusBin(Arch,Rpalabra.Palabra);

if (pos<>-1) then

begin

seek(Arch,pos);

writeln('Introduzca la nueva definici¢n para esa palabra');

readln(Rpalabra.definicion);

write(Arch,Rpalabra)

end

else

writeln('Error: La palabra que intenta modificar no existe en el diccionario')

end;


Procedure Buscar_Definicion(var Arch:ArchPalabra);

var RPalabra:RegPalabra;

Palabra:str;

pos:longint;

Begin

writeln('Introduzca la palabra que desea buscar');

readln(Palabra);

pos:=BusBin(Arch,Palabra);

seek(Arch,pos);

read(Arch,RPalabra);

writeln('Palabra: ',RPalabra.Palabra);

writeln('Definici¢n: ',RPalabra.Definicion)

end;

Procedure Inicio(var Arch:ArchPalabra);

var opcion:byte;

Begin

writeln('Diccionario de la Real academia espa¤ola');

repeat

writeln('Indique con el n£mero correspondiente que tipo de operaci¢n desea realizar');

writeln('1-Agregar palabra');

writeln('2-Modificar la definici¢n de una palabra existente');

writeln('3-Buscar definici¢n');

writeln('4-Salir');

readln(opcion);

case opcion of

1:Agregar_definicion(Arch);

2:Modificar_definicion(Arch);

3:Buscar_definicion(Arch)

end

until opcion=4;

end;

var

Arch:ArchPalabra;

Begin

Inicio(Arch)

end.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Ayuda con diccionario

Publicado por Diego Romero (997 intervenciones) el 08/10/2007 09:12:34
Me gustaría que tengas un poco de respeto por el resto de los foritas y dejes de dirigirme mensajes personales.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda con diccionario

Publicado por juan (83 intervenciones) el 08/10/2007 18:00:10
mil disculpas, no estaba enterado que estaba prohibido, no va a volver a suceder.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda con diccionario

Publicado por juan (83 intervenciones) el 08/10/2007 18:01:20
aunque no se que hice mal, creo que no le falte el respeto a nadie, solo tenía esa duda.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda con diccionario

Publicado por Diego Romero (997 intervenciones) el 09/10/2007 00:55:21
Es una falta de respeto para el resto de los foristas que solo busques mi ayuda, como si los demás no fueran capaces de ofrecértela.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda con diccionario

Publicado por juan (83 intervenciones) el 09/10/2007 02:39:44
Te pido MIL DISCULPAS. Pense que era tu foro este, por eso me dirigía a tu persona, podrías aceptar las disculpas? no sabía, bue si todavía queres contestar mi pregunta te agradecería
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:turbo pascal definicion

Publicado por carlos (1 intervención) el 15/10/2007 16:25:34
por favor nesecito una definicion extra del turbo pascal
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar