PDA

Ver la versión completa : transformar numeros en letras



rower
27-10-2006, 00:26
Buenas, aquí estoy tratando de empezar un programa, en mi clase nos dieron un trabajo en el cual tenemos que hacer un programa que haga lo siguiente:
se ingresa un número (por ejemplo 230), y la salida debe ser el número, pero en letras, es decir: doscientos treinta.
No estoy queriendo que me digan la solución ni mucho menos, pero si la forma de encarar el ejercicio, ya que no estoy encontrando una forma factible, sé que tengo que poner reglas generales para algunos números, y partir de ahí, ir combinando, pero no se me ocurre como empezar, me faltaría un empujoncito ;) , el programa tengo que hacerlo en SMALLTALK, pero lo que estoy necesitando es una forma de empezar el ejercicio, no necesariamente con la sintaxis de smalltalk.
muchas gracias

SxR
27-10-2006, 01:05
Simple, usa tablas, y listo, es el método mejor y más sencillo, primero divides el númro en 3, 4 o los dígitos que sean y luego identificas con arrays y arrays de arrays:

Ejemplo para números de 3 dígitos:

Array de las centenas: Cien, Doscientos, Trescientos, Cuatrocientos, Quinientos...

Array de las decenas: **1**, Veinti, Treinta y, Cuarenta y, Cincuenta y...
Array de **1**: Once, Doce, Trece, Catorce, Quince, Dieci,

Array de las unidades: Uno, Dos, Tres...

Y con esto, una vez te introduzcan el número haces lo siguiente:

349:
3> Centenas, vas al array de las centenas 3ª posición: 'Trescientos'
4> Decenas, vas al array de las decenas 4ª posicición: 'Cuarenta y'
9> Unidades posición 9ª: 'Nueve'

Por tanto 'Trescientos cuarenta y nueve'.

Nota1: He puesto 'Cuarenta y' y no 'Cuarenta' pq hay centenas como 'Quinientos' que te pueden complicar tontamente.
Nota2: Si las decenas fuesen '1', entonces analizas las unidades, y en función de si son '1','2'.... usas la pos 1ª, 2ª del subarray y desechas el string de las unidades genérico, es decir, en lugar de poner 'Diez' (que sería el caso que las unidades fuesen '0') tendrías que poner 'Doce' y no 'Diez y Dos'.

rower
27-10-2006, 01:21
que bien che, la verdad no se me había ocurrido, había pensado otras formas que complicaban mucho el desarrollo
muchísimas gracias, te agradezco por haberte preocupado y tomado el tiempo en responderme