Glosario

Random Access Memory o Memoria de Acceso Aleatorio; requiere alimentación de energía en todo momento para permanecer intacta. Dado que toda la memoria de la HP48 es RAM, tan pronto como las baterías se remueven únicamente se tienen unos cuantos minutos antes de que los capacitores se descarguen y la memoria se pierda.

Este foro, solamente es de lectura, para los nuevos foros dirígase a www.adictoshp.org

Traductor de Cantidades Númericas a Letras

26 respuestas [Último envío]
Integró: 10/03/2004
Envíos: 53
MonedasHP: 28
Imagen de Orly
Orly Usuario Desconectado. Visto por última vez 3 años 28 semanas.
Calc: HP49 | ROM:1.19-6
Traductor de Cantidades Númericas a Letras
 
Mié, 27/02/2008 - 13:39

Hola mis queridísimos Amigos AdictosHP!!!!
Les propongo un desafío un poco más complejo. Laughing out loud
El mismo se trata de desarrollar en UserRPL la implementación de un algoritmo que dado un número entero X mayor o igual que cero y menor o igual que 2^32 = 4294967296
(0<= X <= 4294967296)

Traduzca la cantidad númerica representada por X en la cadena de caracteres que corresponda a la pronunciación de las palabras de esa cantidad.

Os pongo un simple ejemplo para que entendais la esencia de éste maravilloso desafío:
Pila antes de ejecutar el programa:

3:
2:
1: 305

Pila después de ejecutar el programa:

3:
2:
1: "TRESCIENTOS CINCO"

Eso es todo mis amigos.
Un gran abrazo a todos y a trabajar se ha dicho. Smile

Orly Wink

"Cuando el entendimiento se enturbia, la fe es el filtro que potabiliza nuestra mente."

Top
Integró: 25/09/2004
Envíos: 500
MonedasHP: 549
Imagen de Jhusel
Jhusel Usuario Desconectado. Visto por última vez 2 años 12 semanas.
Calc: HP49 | ROM:2.10-7 | Calc: HP50 | ROM: 2.15
 
#1
Dom, 02/03/2008 - 13:18

Uyy sinceramente lo veo difícil y a mi parecer va ser un código muy extenso pero veamos si lo logro pues jaja tendria que hacerlo con CASE THEN END


«
 n
«
CASE
n 0 == THEN "CERO" END
n 1 == THEN "UNO" END
n 2 == THEN "DOS" END
.
.
.
.
n 305 == THEN "TRESCIENTOS CINCO" END
.
.
.
.
.
END
»
»

salu2

Top
Integró: 30/08/2006
Envíos: 14
MonedasHP: 0
Imagen de severo
severo Usuario Desconectado. Visto por última vez 6 años 15 semanas.
 
#2
Dom, 02/03/2008 - 13:51

jhusel que gracioso que eres tu si pasas de payaso la cuestion no es esa se supone que se trata de hacerlo corto no ? te imaginas hacer este programa hasta el numero 4294967296 es in menso el programa se llena la memoria de tu hp bueno yo lo veo un poco dificil

[d]Somos fichas de ajedrez en un juego de poder[/d]

Top
Integró: 25/09/2004
Envíos: 500
MonedasHP: 549
Imagen de Jhusel
Jhusel Usuario Desconectado. Visto por última vez 2 años 12 semanas.
Calc: HP49 | ROM:2.10-7 | Calc: HP50 | ROM: 2.15
 
#3
Dom, 02/03/2008 - 18:24

Hola Severo no veo otra solución y es la única que se me vino a la mente Laughing out loud . Alguien tiene un avance pues debería reducirse los limites quizás del 0 al 100 pero igual lo veo extenso.

Salu2

Top
Integró: 10/03/2004
Envíos: 53
MonedasHP: 28
Imagen de Orly
Orly Usuario Desconectado. Visto por última vez 3 años 28 semanas.
Calc: HP49 | ROM:1.19-6
 
#4
Lun, 03/03/2008 - 14:31

Hola Estimados Amigos Jhusel y Severo!

Tiene razón mi amigo Severo, el código fuente del algoritmo debería ser corto, no tendría sentido escribir un programa que fuese más "pesado" que el "peso" del propio resultado o solución.

Amigo Jhusel, con todo respeto, considero tu propuesta de solución a este desafío como una simple broma de amigos.

La verdadera solución va por otro lado.

Les propongo resolver este desafío entre todos. Qué les parece?

Cómo es más complicado que el resto de los minidesafíos que se plantearon anteriormente, tratemos de esbozar alguna solución "seria" (no se aceptan las bromas) y sobre ella ir haciendo continuas mejoras u optimizaciones para ver si logramos llegar, entre todos, al verdadero código buscado.

Vamos mis estimados Amigos AdictosHP, a mover las neuronas!

Saludos!

Orly Wink

"Cuando el entendimiento se enturbia, la fe es el filtro que potabiliza nuestra mente."

Top
Integró: 23/02/2008
Envíos: 173
MonedasHP: 4
Imagen de Martin89
Martin89 Usuario Desconectado. Visto por última vez 3 años 14 semanas.
 
#5
Mar, 14/10/2008 - 23:53

Una vez en clase de programación estructurada hicimos uno para números romanos,
Por lo que veo el tema es viejo, así que como no hay prisa quizás cuando acaben mis exámenes le echemos galleta jajaja

Saludos

=================================================================
http://www.hpmartin.net84.net/ Cool
=================================================================

Top
Integró: 19/07/2006
Envíos: 86
MonedasHP: 22
Imagen de Alecor
Alecor Usuario Desconectado. Visto por última vez 2 años 45 semanas.
Calc: HP49 | ROM:HP48-G REVISION #2.10-7
 
#6
Lun, 20/10/2008 - 17:36

Solo hemos recibido la propuesta de Edwin alguien se le mide a realizarlo de otra manera??

Haz parte del cambio zeitgeistcolombia.com, la revolución es ahora!!

Follow me: http://twitter.com/surwriter

Top
Integró: 05/06/2003
Envíos: 343
MonedasHP: 186
Imagen de GkEnte
GkEnte Usuario Desconectado. Visto por última vez 3 años 46 semanas.
Calc: HP50 | ROM:pasé por aquí, pero ya lo pasado pasado.
 
#7
Lun, 20/10/2008 - 22:24

Ingrese la cantidad:


www.gaak.org
- Gaak -

n/a
Top
Integró: 26/12/2007
Envíos: 629
MonedasHP: 595
Imagen de Dani_
Dani_ Usuario Desconectado. Visto por última vez 2 años 23 semanas.
Calc: HP50 | ROM:2.09
 
#8
Lun, 20/10/2008 - 23:54

No podía ser otro que Gaak... Smile

Si bien no es para las HP, lo probé y funciona muy bien.

Ingeniero. Usuario de HP 50g.

Top
Integró: 10/03/2004
Envíos: 53
MonedasHP: 28
Imagen de Orly
Orly Usuario Desconectado. Visto por última vez 3 años 28 semanas.
Calc: HP49 | ROM:1.19-6
 
#9
Sáb, 27/06/2009 - 12:57

.Todavía no hay ninguna solución en UserRPL?

Orly Wink

"Cuando el entendimiento se enturbia, la fe es el filtro que potabiliza nuestra mente."

Top
Integró: 30/05/2009
Envíos: 359
MonedasHP: 711
Imagen de woddo
woddo Usuario Desconectado. Visto por última vez 1 año 50 semanas.
Calc: HP50 | ROM:2.15
 
#10
Sáb, 27/06/2009 - 13:27

Veo que este tema es antiguo.

No veo la solución de Edwin pero a mi se me ocurre descomponer el numero en unidades, decenas, centenas, unidades de mil, etc. y asociarle a cada descomposición el nombre respectivo.

Bien, trabajeré en esto.

Top
Integró: 31/08/2008
Envíos: 55
MonedasHP: 0
Imagen de sx_viruta
sx_viruta Usuario Desconectado. Visto por última vez 5 años 10 semanas.
 
#11
Dom, 28/06/2009 - 10:04

yo creo que si haaa , me diste una idea amigo , si descomponiendo en unidades podria ser el camino probare por mi lado tambien

SX_VIRUTA

Top
Integró: 20/05/2003
Envíos: 220
MonedasHP: 236
Imagen de Edwin
Edwin Usuario Desconectado. Visto por última vez 2 años 11 semanas.
Calc: HP48G/GX
 
#12
Dom, 28/06/2009 - 15:19

Envío nuevamente la propuesta que había hecho. No se porque me lo habían borrado.
conversor

La cuestión en la vida no es saber mucho, sino olvidarse de poco.

Top
Integró: 13/12/2004
Envíos: 158
MonedasHP: 82
Imagen de Roman
Roman Usuario Desconectado. Visto por última vez 2 años 17 semanas.
Calc: HP49 | ROM:2.10-7
 
#13
Dom, 28/06/2009 - 21:39

Estimado Edwin su solucion es muy buena, el algoritmo que uso era el que tenia en mente, de pronto se pueda mejorar pero para mi esta bien. Lo que me asombra es que siempr eres el primero en dar respuesta, yo voy viendo el post y mientras lei los comentarios pensaba como hacerlo hasta que llegue a tu respuesta la probe y me parece bien jhejejejejej

Salu2

Top
Integró: 05/06/2003
Envíos: 343
MonedasHP: 186
Imagen de GkEnte
GkEnte Usuario Desconectado. Visto por última vez 3 años 46 semanas.
Calc: HP50 | ROM:pasé por aquí, pero ya lo pasado pasado.
 
#14
Lun, 29/06/2009 - 01:27

Edwin, su comentario antiguo como el de muchos usuarios se vieron afectados cuando el sitio tuvo un problema en la base de datos, es por eso que no aparecen muchos comentarios, los que datan de esas fechas.

Recuerdo también que se perdieron todos los primeros comentarios de CalculadorasHP.org

Saludos.
- Gaak -

n/a
Top
Integró: 30/05/2009
Envíos: 359
MonedasHP: 711
Imagen de woddo
woddo Usuario Desconectado. Visto por última vez 1 año 50 semanas.
Calc: HP50 | ROM:2.15
 
#15
Mar, 30/06/2009 - 18:55

Bien Edwin también ya tenía algo muy parecido a tu codigo pero trabajando con string y a puros HEAD y TAIL formando el numero, en vez de los IP y FP que tu usas, pero en el fondo trabajan muy parecido. Me a costado terminarlo, estoy algo fuera de práctica en esto de la programación.

Que mal que se hallan perido los temas antiguos, siempre se hallan cosas interesantes en estos.

Top
Integró: 16/08/2009
Envíos: 7
MonedasHP: 0
Imagen de CarlosDM
CarlosDM Usuario Desconectado. Visto por última vez 3 años 13 semanas.
Calc: HP50
 
#16
Dom, 16/08/2009 - 03:01

Hola soy nuevo aqui y nuevo en el uso de estas calculadoras, pero todo esto me parece emocionante y propongo esta solucion.

Que tal convertir a una cadena de caracteres el número. Luego contamos el número de dígitos presentes y vamos formanndo el nombre del numero contando desde unidades, decenas, centenas, etc, en forma regresiva. Entonces el programa solo tendria que almacenar los nombres de las cifras "uno", "dos", "tres", etc, y los de "cien", "mil", "diez mil", etc.
Asi un numero tiene la forma
d1 d2 d2 d3 d4 ... dn Siendo las "d" los digitos.
Si el numero es de tres digitos es del orden de las centenas, entonces
el programa tendría que comprobar que digito es el primero de izquierda a derecha y unir la cadena correspondiente. Por ejemplo
305
Como son tres digitos es del orden de las centenas
Entonces el programa empieza desde las centenas hacia atrás revisando cada digito.
Prueba el primer dígito y comprueba que es un tres, entonces une la cadena "tres" con la cadena "cientos". Si en algun momento hay un cero no hace nada y continua, pero disminuyendo el orden siendo el siguiente (en este caso decenas) un orden menor. Lo hace asi hasta llegar a las unidades.
En cada paso el programa solo une las cadenas correspondientes al orden del digito con las correspondientes al nombre del dígito.

Bueno esa es toda mi propuesta. Si aquí hay algun ingeniero en sistemas, informática o similar seguro propondrá algo mejor, pero al menos es un comienzo.
Bueno nos vemos.

Top
Integró: 10/03/2004
Envíos: 53
MonedasHP: 28
Imagen de Orly
Orly Usuario Desconectado. Visto por última vez 3 años 28 semanas.
Calc: HP49 | ROM:1.19-6
 
#17
Mar, 05/10/2010 - 11:07

Hola queridos Amigos AdictosHP!!!!

La solución del amigo Edwin es una primera aproximación pero muy limitada, puesto que si queremos traducir un número entero muy grande como el siguiente "15936535897932384626433832795" su traducción sería "quince mil novecientos treinta y seis cuatrillones quinientos treinta y cinco mil ochocientos noventa y siete trillones novecientos treinta y dos mil trescientos ochenta y cuatro billones seiscientos veintiséis mil cuatrocientos treinta y tres millones ochocientos treinta y dos mil setecientos noventa y cinco"

Y precisamente en esos casos de números enteros grandes falla el algoritmo de el Amigo Edwin...

Estoy trabajando desde hace tiempo en un algoritmo optimizado para solucionar satisfactoriamente este valioso desafío muy antiguo de traducción de cantidades numéricas a letras. Dentro de poco subiré mi aporte, pero les voy adelantando que requieren tres programas y la entrada es un objeto string que representa el número a traducir.

Hasta la próxima mis queridos Amigos AdictosHP!!!!

Saludos a todos.

Orly Wink

"Cuando el entendimiento se enturbia, la fe es el filtro que potabiliza nuestra mente."

Top
Integró: 10/03/2004
Envíos: 53
MonedasHP: 28
Imagen de Orly
Orly Usuario Desconectado. Visto por última vez 3 años 28 semanas.
Calc: HP49 | ROM:1.19-6
 
#18
Vie, 08/10/2010 - 06:46

Amigo Zuaritx tienes razón que la solución del Amigo Edwin cumple perfectamente los requisitos iniciales propuestos y que lo que yo propuse anteriormente es una generalización del desafío inicial.

También tienes razón que se puede realizar en un único programa una determinada tarea, pero también es cierto que el famoso dicho de "DIVIDE Y VENCERAS" es muy reconocido y aplicable en el mundo de la programación.

A mi se me ocurrió desarrollar este desafío utilizando este principio rector, si vos no lo deseas utilizar, puedes hacer como gustes.

No me parece correcto considerar a lo números enteros negativos, puesto que la traducción a letras sería idéntica que para el mismo número entero positivo, salvo el signo "MENOS".

Propongo que para este desafío de traducción de cantidades numéricas a letras se consideren los números desde el cero en adelante.

También es importante que la cadena de traducción esté perfectamente traducida, con la longitud exacta, sin ningún espacio en blanco de más ni de menos.

Saludos cordiales para todos mis queridos Amigos AdictosHP!!!!

Orly Wink

"Cuando el entendimiento se enturbia, la fe es el filtro que potabiliza nuestra mente."

Top
Integró: 02/10/2008
Envíos: 362
MonedasHP: 509
Imagen de dariof
dariof Usuario Desconectado. Visto por última vez 2 años 26 semanas.
Calc: HP48II | ROM:1.23
 
#19
Jue, 16/12/2010 - 04:16

El comentario es viejo. Ademas un numerote tal como 2 ^ 32 no tiene sentido decirlo con palabras, se pasa de los billones, por esos es que exite la notacion cientifica

Y Dios dijo hagase la
E CURL H t DERIV uo NEG * =
H CURL E t DERIV eo * =

Y se hizo la:
Phy LAPL Phy 't' DERIV v SQ INV * 0 =
E H OR Phy =

Top
Integró: 05/06/2003
Envíos: 343
MonedasHP: 186
Imagen de GkEnte
GkEnte Usuario Desconectado. Visto por última vez 3 años 46 semanas.
Calc: HP50 | ROM:pasé por aquí, pero ya lo pasado pasado.
 
#20
Jue, 16/12/2010 - 13:23

Bueno, he modificado mi post anterior.. Bienvenidos los comentarios..


Ingrese la cantidad:


www.gaak.org
- Gaak -

n/a
Top
Integró: 02/10/2008
Envíos: 362
MonedasHP: 509
Imagen de dariof
dariof Usuario Desconectado. Visto por última vez 2 años 26 semanas.
Calc: HP48II | ROM:1.23
 
#21
Vie, 17/12/2010 - 00:02

Retiro lo que dije de un numero muy grande. El programa de Gaak es increible, eso demuestra que es un super genio, me inclino frente el.

Y Dios dijo hagase la
E CURL H t DERIV uo NEG * =
H CURL E t DERIV eo * =

Y se hizo la:
Phy LAPL Phy 't' DERIV v SQ INV * 0 =
E H OR Phy =

Top
Integró: 10/03/2004
Envíos: 53
MonedasHP: 28
Imagen de Orly
Orly Usuario Desconectado. Visto por última vez 3 años 28 semanas.
Calc: HP49 | ROM:1.19-6
 
#22
Mar, 25/01/2011 - 18:40

Mis sinceras felicitaciones estimado amigo Gaak... tu solución cumple los requisitos del problema... pero el amigo Edwin fue el único que lo plasmó en código USER-RPL, cuál fue la idea original de este desafío... no valen soluciones con otros lenguajes de programación que no sea USER-RPL.

Saludos para todos mis queridos amigos AdictosHP!!!

Orly Wink

"Cuando el entendimiento se enturbia, la fe es el filtro que potabiliza nuestra mente."

Top
Integró: 02/10/2008
Envíos: 362
MonedasHP: 509
Imagen de dariof
dariof Usuario Desconectado. Visto por última vez 2 años 26 semanas.
Calc: HP48II | ROM:1.23
 
#23
Mar, 25/01/2011 - 22:50

Nsiquiera el sistem, creo que un problema asi es mejor tratarlo en system, para que seamas rapido el proceso para la maquina

Y Dios dijo hagase la
E CURL H t DERIV uo NEG * =
H CURL E t DERIV eo * =

Y se hizo la:
Phy LAPL Phy 't' DERIV v SQ INV * 0 =
E H OR Phy =

Top
Integró: 10/03/2004
Envíos: 53
MonedasHP: 28
Imagen de Orly
Orly Usuario Desconectado. Visto por última vez 3 años 28 semanas.
Calc: HP49 | ROM:1.19-6
 
#24
Jue, 19/05/2011 - 12:23

Hola a todos mis queridos amigos AdictosHP!!!...

Por fin llegó el día... uff.. después de tanto trabajo puede ver la luz mi aporte que les tenía pendiente en este maravilloso desafío, que como creador del mismo, aprovecho tambien la oportunidad para agradecerles a todos mis querdidos amigos AdictosHP que realizaron sus valiosos aportes.

Bueno, sin más, ahora mismo procedo a explicarles mi solución:

Buscando en la web, encontré que existen 2 formas de traducción de un número entero en las letras de su número cardinal: formato corto y formato largo.

Yo utilice el formato largo, puesto que es el que se utiliza en Argentina y creo que en el resto de Latinoamérica también.

Cómo es un programa bastante complejo para realizarlo en único objeto programa (<< >>) en UserRPL, decidí usar la siempre valiosa técnica de "divide y vencerás" y por esa razón la solución de este desafío de traducción de cantidades numéricas a letras tiene 3 objetos programa llamados TN (Traducción de Número), TP (Traducción de Periodo) y TC (Traducción de Clase).

El programa TC es recursivo y traduce a letras 1 Clase (grupo de 3 dígitos decimales por ej. "287").
El programa TP no es recursivo y traduce a letras 1 Periodo (grupo de 6 dígitos decimales por ej. "167287". La relación es -> 1 Periodo = 2 Clases)
El programa TN no es recursivo y traduce a letras 1 Número entero (grupos de N periodos por ej. "23167287")

Luego de esta pequeña introducción, procedo a presentarles la solución:

Programa TC (Programa Base)

Código Programa TC

Programa TP (Programa que usa TC)

Código Programa TP

Programa TN (Programa Principal que usa TP)

Código Programa TN

Código Fuente Completo

Espero que les haya gustado la solución y los animo a seguir contribuyendo en este magnífico portal de Calculadoras HP.

Saludos para todos mis queridos amigos AdictosHP!!!! Laughing out loud

Orly Wink

"Cuando el entendimiento se enturbia, la fe es el filtro que potabiliza nuestra mente."

Top
Integró: 31/07/2010
Envíos: 489
MonedasHP: 776
Imagen de CompSystems
CompSystems Usuario Desconectado. Visto por última vez 2 años 11 semanas.
Calc: HP50 | ROM:2.15
 
#25
Sáb, 19/03/2011 - 14:48

Por favor Orly puedes incluir el código en formato de HPuserEdit, de esta manera puedo probarlo en el emu48, sin necesidad de enviarlo a la HP50g

EXTRA
Attend HHC 2012, the annual HP calculator conference, in Nashville, TN, USA, September 22-23

http://hhuc.us/2012/

Top
Integró: 10/03/2004
Envíos: 53
MonedasHP: 28
Imagen de Orly
Orly Usuario Desconectado. Visto por última vez 3 años 28 semanas.
Calc: HP49 | ROM:1.19-6
 
#26
Dom, 20/03/2011 - 14:09

Hola amigo AdictoHP CompSystems!!!

No hace faltan los archivos del código fuente en formato HPUser Edit para probar la solución del desafío en el emulador puesto que en el archivo comprimido que comparto (link de Código Fuente Completo) se encuentran los 3 archivos binarios (TC.hp, TP.hp y TN.hp) que pueden ser cargardos directamente en el emulador mediante la opción "Load Object".

Saludos cordiales para todos mis queridos amigos AdictosHP!!!!...

Orly Wink

"Cuando el entendimiento se enturbia, la fe es el filtro que potabiliza nuestra mente."

Top

Twitter