Ayuda con programa que convierte entradas en texto en su valor numérico

La verdad tengo un programa que hacer peor no tengo idea de como desarrollarlo .
Se trata de un programa el cual las entradas de valores sen números especificados en letra
ejemplo: trecientos veinticinco
y la salida debe ser : 325
se que lo puedo hacer con código ascii pero no tengo idea de como desarrollarlo..
Porque son números de 3 dígitos del 100 al 999
¿Podrían ayudarme por favor?

1 Respuesta

Respuesta
1
Bueno lo que tienes que hacer es un analizador léxico de la palabra que ingresa
por ejemplo, todos los números del 1 al 100 constan de una palabra
UNO DOS TRES CUATRO CINCO VEINTISÉIS CINCUENTAYCUATRO
como puedes fijarte, hay indicadores en la palabra que te pueden decir de que numero se trata
en primer lugar, al final de esas palabras (hasta hora hablamos del 1 al 100)
Está escrita la segunda cifra, a excepción del ONCE, DOCE TRECE CATORCE QUINCE
a partir del dieciséis puedes ver que al final esta escrito seri, siete, ocho, nueve, en el 32 esta al final escrito el dos, entonces has un análisis de las ultimas letras hasta que encuentres una coincidencia con tus palabras ya reservadas, osea UNO DOS TRES CUATRO CINCO SEIS -... NUEVE.
Osea que si yo te escribo treintaynueve tu programa detecta el nueve y entonces ya sabe cual es la 2da cifra dle numero a imprimir en pantalla.
Entonces ahora solo te falta analizar las otras letras que quedan. Tienen que tener sentido por lo tanto si se trata del 39 las primeras letras tienen que ser TREINTAY
y todos los números desde el 31 al 39 empiezan con TREINTAY
puedes hacerlo entonces de cualquiera de las dos formas, por el inicio de la palabra o por el final.
Entonces se generaliza, para cualquier palabra que encuentres a excepción del ONCE, DOCE TRECE, CATORCE QUINCE DIEZ VEINTE etc, tendrás que hacer un análisis partido de la palabra.
Bien eso es para la palabra que indica las 2 cifras ultimas, si quieres los 146 149 145
te das cuenta que solo se agrega una nueva palabra al inicio
CIENTO CUARENTAYNUEVE, entonces si detectas la palabra CIENTO, significa que tienes que agregar un uno adelante de tu numero, y lo imprimirás después de detectar los siguientes números, en este caso 49.
¿Alguna duda?

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas