HonradosHP
¿Quieres reaccionar a este mensaje? Regístrate en el foro con unos pocos clics o inicia sesión para continuar.

Ayuda con un programa comparador de numeros

2 participantes

Ir abajo

Ayuda con un programa comparador de numeros Empty Ayuda con un programa comparador de numeros

Mensaje  XTIAN1963 Vie Ago 21, 2009 10:10 am

Estimados programadores,

Tengo el siguiente programa basico para hacer una comparacion entre
dos numeros. Sucede que cuando lo corro en el emu usando HPuseredit
me manda un mensaje de error : THEN error bad argument type.

creo que el error puede estar en el uso de los comparadores >, <, ==, etc
pero no se como arreglarlo. Despues de IF he probado
las dos formas de escribir el comparativo :

algebraico 'A < B'
y RPN A B <

y en ambos casos me manda el error.

Por su atencion y ayuda gracias., Mas abajo el programa.

Xtian1963.

«
"COMPARADOR"
{
{ "A =" "VALOR 1" 0 }
{ "B =" "VALOR 2" 0 }
}
{ 2 4 }
{ }
{ }
INFORM

-> A B

«
IF 'A < B'

THEN
CLLCD
"VERDADERO:" 1 DISP 0 WAIT CLEAR

ELSE
CLLCD
"FALSO:" 1 DISP 0 WAIT CLEAR
»
END
{ A B } PURGE
»
XTIAN1963
XTIAN1963
Baby HP
Baby HP

Cantidad de envíos : 7
Localización : Chile
Calculadora : HP 50g
ROM : No lo sé todavía

Volver arriba Ir abajo

Ayuda con un programa comparador de numeros Empty Re: Ayuda con un programa comparador de numeros

Mensaje  Jose Leonardo Ortiz Vie Ago 21, 2009 4:15 pm

Hola amigo XTIAN1963.

Tu programa funcionará correctamente con este código:

Código:
«
"COMPARADOR"
{
{ "A =" "VALOR 1" 0 }
{ "B =" "VALOR 2" 0 }
}
{ 2 4 }
{ }
{ }
INFORM
NOT { KILL } IFT
LIST→ DROP
→ A B
  «
    IF 'A<B'
    THEN
CLLCD "VERDADERO:" 1 DISP 0 WAIT DROP
    ELSE
CLLCD "FALSO:" 1 DISP 0 WAIT DROP
    END
  »
»

Observaciones:

1) Observa donde colocaste la palabra END en tu programa. Debiste ponerlo antes del delimitador que marca el fin del programa.

2) El comando INFORM devolverá según presionemos OK o CANCEL:
a) Una lista y TRUE. Por eso debes usar EVAL (o mejor sería usar LIST→ DROP como en este caso se puso).
b) FALSE en la pila. En este caso debes salir. Una forma es con NOT { KILL } IFT

3) Al ejecutar 0. WAIT y luego presionar una tecla que no sea ON en la pila tendrás el código de la tecla apretada. Para borrarlo de la pila, es suficiente colocar DROP. (No es necesario CLEAR, pues esto quitará todos los objetos de la pila)

4) No es necesario el { A B } PURGE del final, pues A y B son variables locales y estas desaparecen al finalizar el programa.
Jose Leonardo Ortiz
Jose Leonardo Ortiz
Junior HP+
Junior HP+

Masculino Cantidad de envíos : 50
Localización : Lima/Perú
Calculadora : HP 50g
ROM : 2.09

Volver arriba Ir abajo

Ayuda con un programa comparador de numeros Empty Gracias Cesar..,

Mensaje  XTIAN1963 Mar Ago 25, 2009 8:09 am

He probado y funciona muy bien.

Ahora tengo otro problema y es que necesito hacer una comprobacion en un intervalo.

Mas o menos asi A< x < B. Si x pertenece al intervalo A,B -> V1
si x No pertenece al intervalo -> F1

He hecho un programa así, pero no me entrega la respuesta de acuerdo a la condicion

IF
'A < x < B'
THEN
"V1 :NO RECHAZO Ho " 8 DISP
" RESULTADOS " 1 DISP
0 WAIT
ELSE
"F1 :SE RECHAZA Ho " 8 DISP
" RESULTADOS " 1 DISP
0 WAIT

Saludos.,
XTIAN1963
XTIAN1963
Baby HP
Baby HP

Cantidad de envíos : 7
Localización : Chile
Calculadora : HP 50g
ROM : No lo sé todavía

Volver arriba Ir abajo

Ayuda con un programa comparador de numeros Empty Re: Ayuda con un programa comparador de numeros

Mensaje  Jose Leonardo Ortiz Mar Ago 25, 2009 9:08 am

Es mejor usar RPN en la comparación.

Recuerda que
a<b<c

equivale a:
a<b ^ b<c

El programa quedará así:

Código:
....
....
    IF A x < x B < AND
    THEN
....
....
Jose Leonardo Ortiz
Jose Leonardo Ortiz
Junior HP+
Junior HP+

Masculino Cantidad de envíos : 50
Localización : Lima/Perú
Calculadora : HP 50g
ROM : 2.09

Volver arriba Ir abajo

Ayuda con un programa comparador de numeros Empty Re: Ayuda con un programa comparador de numeros

Mensaje  XTIAN1963 Mar Ago 25, 2009 2:03 pm

Hola Cesar,

Gracias, estuve probando y funciona a la perfección.

Saludos.,

Xtian1963
XTIAN1963
XTIAN1963
Baby HP
Baby HP

Cantidad de envíos : 7
Localización : Chile
Calculadora : HP 50g
ROM : No lo sé todavía

Volver arriba Ir abajo

Volver arriba

- Temas similares

 
Permisos de este foro:
No puedes responder a temas en este foro.