que falla? MSGBOX Bad Argument
- Inicie sesión o regístrese para enviar comentarios
Hola a todos he hecho un programa para que me simplifique facilmente unas operaciones basicas y meda error de MSGBOX Bad Argument y no se en que me falla.
El programa es asi
<< HEAD(INFORM(
"TRANSICION AL PERALTE",{{"AL:","INCREMENTO DE L",0.,9.},{"PKP:","PK DEL PUNTO",0.,9.},{"PKTE:","PK DE LA TE",0.,9.}},{3.,0.},{},{})) ->L
<< L(1.)->a
<< L(2.)->B
<< L(3.)->C
<< C-B ->Z
<< Z*2 ->Y
<< Y/A ->P1
<< MSGBOX({"P1: ",+P1})
>>
>>
>>
>>
>>
>>
>>
>>
Si alguien pudiera decirme que es lo que hago mal o en que estoy fallando se lo agradeceria.
- Inicie sesión o regístrese para enviar comentarios
Otros temas de interes
- como hacer una barra de menus ??
- Nueva Calculadora HP?? HP 39gII spécification
- ROM 2.10-7 Spreadsheet & Geometry manuales y biblioteca.
- Ayuda con Raices
- [PROYECTOS] EoEiProEngLib, MathEngProLib, EquatnEngProLib & and HP50GNKLib
- ayuda con integral exponencial
- programa tipo excell que permita introducir formulas en las tablas
- como aprender tantos comandos en SYSTEM?
- [PROYECTO] Universal Font Library for HP50G CAS para recuperar "Hello World" 3 ->GROB de la HP48GX (1994)
No tengo por costumbre programar en algebraico, te falta el comando ->TAG
MSGBOX("SOLUCION"), sólo acepta un elemento, no dos como tú has puesto (revisaré a ver si me sale en algebraico, me falta sacar como se realiza la sentencia INFORM en algebraico).
« IFTE(
INFORM(
"TRANSICION AL PERALTE",
{{"AL " "INCREMENTO DE L" 0. 6. 9.}
{"PKP " "PK DEL PUNTO" 0. 6. 9.}
{"PKTE" "PK DE LA TE" 0. 6. 9.}},
{1.},
{},
{}),
EVAL(« L
« L(1.) A
« L(2.) B
« L(3.) C
« C-B Z
« Z*2 Y
« Y/A P1
« STR(TAG(P1,"P1:")) SOL
« MSGBOX(SOL) »
»
»
»
»
»
»
»
» »),
KILL)
»
En RPN se haría así (Actualizado y comprobado):
«
"TRANSICION AL PERALTE"
{{"AL " "INCREMENTO DE L" 0 6 9 }
{"PKP " "PK DEL PUNTO" 0 6 9 }
{"PKTE" "PK DE LA TE" 0 6 9 }
} {1.} {} {} INFORM -105 SF
IF
THEN EVAL A B C
« C B - Z
« Z 2 * Y
« Y A / P1
« CLLCD "TRANSICION AL PERALTE"
1 DISP P1 "P1" TAG DUP STR MSGBOX »
»
»
»
END
»
= -> = [Cambio derecho]+[0-cero]
NOTA: En RPN hecho en HPUserEdit
Un enlace para profundizar en USER
- Inicie sesión o regístrese para enviar comentarios
hola.
«
"TRANSICION AL PERALTE"
{{"AL:","INCREMENTO DE L",0.,9.}
{"PKP:","PK DEL PUNTO",0.,9.}
{"PKTE:","PK DE LA TE",0.,9.}
} {3.} {} {} INFORM -105 SF
IF
THEN EVAL A B C
« C B - Z
« Z 2 * Y
« Y A / P1
« P1 "P1" TAG DUP STR MSGBOX »
»
»
» END
»
copia y pegalo en HPUserEdit.
le faltaba conpletar la condicional IF.... THEN.... END
con END.
- Inicie sesión o regístrese para enviar comentarios
Hola Patazo87:
Tres cosas:
1. Si te dice que MSGBOX Bad Argument, es porque tienes mal eso: el argumento de la función MSGBOX, colocas una lista y se acepta una cadena (string) , lo que debes colocar es simplemente MSGBOX("P1: "+P1)
2. No ignores el resultado del INFORM. Es buena práctica de programación manejar los posibles casos. ¿Qué sucedería si el usuario presiona CANCEL?
3. Es mejor ir pensando en programar también en modo RPN (aunque al principio HPBasic es más fácil). Mira que en HPBasic, por algo encuentras menos manuales en la red. Además que el salto a SystemRPL es menos traumático si programas bien en UserRPL, sobre todo si comprendes mejor el uso de los comandos de pila y listas, ya que de esta manera de programar los programas son más eficientes.
Salu2.
- Inicie sesión o regístrese para enviar comentarios

Tal vez, ya leiste el manual de programación en algebraico, por si no lo leista:
http://www.hpcalc.org/details.php?id=6204
Lo único que no funciona en modo algebraico es:
InputLine (System RPL)
SOLVER y MSOLVER
CASE THEN END
- Inicie sesión o regístrese para enviar comentarios
No tengo por costumbre programar en algebraico, te falta el comando ->TAG
MSGBOX("SOLUCION"), sólo acepta un elemento, no dos como tú has puesto (revisaré a ver si me sale en algebraico, me falta sacar como se realiza la sentencia INFORM en algebraico).
« IFTE( INFORM( "TRANSICION AL PERALTE", {{"AL " "INCREMENTO DE L" 0. 6. 9.} {"PKP " "PK DEL PUNTO" 0. 6. 9.} {"PKTE" "PK DE LA TE" 0. 6. 9.}}, {1.}, {}, {}), EVAL(« L « L(1.) A « L(2.) B « L(3.) C « C-B Z « Z*2 Y « Y/A P1 « STR(TAG(P1,"P1:")) SOL « MSGBOX(SOL) » » » » » » » » » »), KILL) »
En RPN se haría así (Actualizado y comprobado):
« "TRANSICION AL PERALTE" {{"AL " "INCREMENTO DE L" 0 6 9 } {"PKP " "PK DEL PUNTO" 0 6 9 } {"PKTE" "PK DE LA TE" 0 6 9 } } {1.} {} {} INFORM -105 SF IF THEN EVAL A B C « C B - Z « Z 2 * Y « Y A / P1 « CLLCD "TRANSICION AL PERALTE" 1 DISP P1 "P1" TAG DUP STR MSGBOX » » » » END »
= -> = [Cambio derecho]+[0-cero]
NOTA: En RPN hecho en HPUserEdit
Un enlace para profundizar en USER
hey Zuaritx!:
siempre ofreciendo una posible solución con un nuevo programa!
participe en la última competencia que Erick Rechlin lanzó recientemente encomp.sys.hp48; y gane el honor de un reconocido programador creativo forista del momento!
ó, participe generando retos para el resto de los programadores que estarán en esta interesante competencia que posiblemente será un espectáculo de talento de programación rpl/ml, y que sin duda toda la comunidad forista de estas maravillosas calculadoras hp estará observando!
+detalles [July programming challenge]: http://groups.google.com/group/comp.sys.hp48/browse_thread/thread/c8473b...
- Inicie sesión o regístrese para enviar comentarios













gracias por contestar, has probado lo que me has puesto? porque a mi tanto en rpn como en algebraico me da error STR invalid sintax.
que puede haber fallado?
gracias