Pascal/Turbo Pascal - traductor de ingles/español, en pascal

 
Vista:

traductor de ingles/español, en pascal

Publicado por orlando jimenez (2 intervenciones) el 09/11/2011 18:27:37
Hola, soy novato y me dejaron un proyecto muy importante y no se por donde empezar.

se trata de crear un programa en turbo pascal, el cual tradusca una oracion, en ingles a español,
las palabras deben estar previamente declaradas en una lista (son 30 palabras), y cuando ingresas una oracion, se traducira palabra por palabra hasta concluir la oracion.

El problema es que no se me permite usar arreglos(vectores o matrices), tiene que ser a base de funciones y cadenas, y esto limito en gran cantidad mi imaginacion, y no se ocurre la forma de hacerlo...

Agradesco cualquier ayuda, ya que es urgente presentar este protecto y tengo poco tiempo....

Gracias!!
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

traductor de ingles/español, en pascal

Publicado por ramon (2158 intervenciones) el 11/11/2011 19:36:55
const
esp : string =
ing : string = ' los números y palabras en ingles separadas por comodín # ejemplo'
[1palabra#2palabra#3palabra#4palabra# asta las 30]
Su traducción igual cada palabra con el numero que después te serbia de guía
para la búsqueda de la traducción.


Espero esto te ayude sino pasa me las palabras y intentare ayudarte mas
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

traductor de ingles/español, en pascal

Publicado por orlando jimenez (2 intervenciones) el 11/11/2011 23:40:40
Muchas Gracias!!!

Así lo hice y funciono muy bien!!!
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

traductor de español/ingles, en pascal

Publicado por ronald fallas (1 intervención) el 24/03/2012 00:10:38
ocupo ayuda con un traductor de español a ingles no se ni como emprezar no me sale nada es para 30 palabras, si se dijita una cadena o frase no me traduce la palabra y si lo hace la escribe mas d 2 veces y no muestra la frase completa solo una palabra
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

traductor de español/ingles, en pascal

Publicado por ramon (2158 intervenciones) el 24/03/2012 16:22:28
{Espero esto ayude a entender lo que pides si no es así dime donde estas de pascal para ponerlo
mas al nivel que tengas.

program espaing;
uses
crt;
type
espanol = record {como sifuera el diccionario}
letra : char;
esp : string[40]; {base de datos}
ing : string[40];
end;
var
f : file of espanol; {para guardar los datos del diccionario}
tecla : char; {para tomar decisiones}
texto : string[40]; {para entrar la pregunta}
dato : espanol; {para entrada de datos}
t : integer; {contador entradas}
pru : array[1..2] of espanol; {para ordenar}
salir : boolean; {finaliza busqueda}


procedure entrardatos; {creamos el diccionario}
begin
writeln('entre frase en Espa¤ol : ');
readln(dato.esp);
writeln('entre frase en Ingles : ');
readln(dato.ing);
dato.letra := dato.esp[1];
clrscr;
writeln('La Letra Es = ',dato.letra);
writeln('La Frase en Espa¤ol Es = ',dato.esp);
writeln('La Respuesta en Ingles Es = ',dato.ing);
writeln;
writeln('Esta Correcto [S/N]');
repeat
tecla := readkey;
until tecla in['s','S','n','N'];
if tecla in['s','S'] then
begin
assign(f,'Dicciona.dat'); {guardamos los datos}
{$I-} reset(f); {$I+}
if ioresult <> 0 then
begin
rewrite(f);
seek(f,0); {primera entrada}
write(f,dato);
close(f);
end
else
begin
seek(f,filesize(f));
write(f,dato); {nuevas entradas}
close(f);
end;
end;
end;

procedure ordenaesping;
var
hl, il, len : longint;
tempo : espanol;
begin
assign(f,'Dicciona.dat');
{$I-} reset(f); {$I+}
if ioresult <> 0 then
begin
writeln('Archivo < Dicciona.dat > no Encontrado');
halt(1);
end
else
begin
len := filesize(f) - 1;
for il := 0 to len do
begin
seek(f,il);
read(f,pru[1]);
for hl := len downto il do
begin
seek(f,hl);
read(f,pru[2]);
if pru[1].letra > pru[2].letra then
begin
tempo.letra := pru[1].letra;
tempo.esp := pru[1].esp;
tempo.ing := pru[1].ing;
pru[1].letra := pru[2].letra;
pru[1].esp := pru[2].esp;
pru[1].ing := pru[2].ing;
pru[2].letra := tempo.letra;
pru[2].esp := tempo.esp;
pru[2].ing := tempo.ing;
seek(f,il);
write(f,pru[1]);
seek(f,hl);
write(f,pru[2]);
end;
end;
end;
close(f);
end;
end;


procedure leediccionario;
var
led : array[0..29] of espanol; {datos leidos}
long : longint; {longitud archivo}
palabra : string[40];
begin
ordenaesping;
assign(f,'Dicciona.dat'); {guardamos los datos}
{$I-} reset(f); {$I+}
if ioresult <> 0 then
begin
writeln('No Existe Archivo = Dicciona.dat Pulse [Enter]');
readln;
end
else
begin
long := filesize(f) - 1; {tomamos el tama¤o del archivo}
for t := 0 to long do
begin
seek(f,t);
read(f,led[t]);
gotoxy(65,t + 2);write(led[t].esp);
end;
close(f);
salir := false;
t := 0;
gotoxy(2,2);write('Entre Palabra a Buscar Traduccion : ');
gotoxy(38,2);readln(palabra);
repeat
if led[t].esp = palabra then
salir := true
else
t := t + 1;
until (salir = true) or (t > long);
if salir = true then
begin
gotoxy(26,3);write('Traducion : ',led[t].ing);
end
else
begin
gotoxy(2,3);write('Palabra no encontrada');
end;
writeln;
writeln(' Pulse [Enter]');
readln;
end;
end;


procedure menu;
var
tec : char; {tecla menu}
fin : boolean; {final menu}
begin
fin := false;
repeat
clrscr;
gotoxy(10,1);write('*** Menu Principal ***');
gotoxy(10,3);write(' 1 = Entrada Datos');
gotoxy(10,4);write(' 2 = Buscar Traduccion');
gotoxy(10,5);write(' 3 = Salir');
gotoxy(10,7);write('Elija Opcion');
tec := readkey;
clrscr;
case tec of
#49 : entrardatos;
#50 : leediccionario;
#51 : fin := true;
end;
until fin = true;
end;

begin
clrscr;
menu;
end.

{Tienes que crear primero la base de datos o sea:
ejemplo : palabra en español = calavera en ingles = skull; esta seria la entrada de la base de datos luego cuando busques el presentara lo que quieres}
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