Vinculacion del comando CHOOSE con INFORM
- Inicie sesión o regístrese para enviar comentarios
Estimados Socios Adictos.
Me vengo transformando en un adicto y quiero aprender a hacer mis
propios programas.
Es por esto que solicito ayuda para resolver el siguiente mini programa
en el cual uso CHOOSE para despues hacer un INFORM para el calculo final
Si alguien me puede ayudar y revisar el programa que he hecho :
«
"ESTDSTICA DESCRIPTIVA"
{
{ "Media ni" 1 }
{ "As" 2 }
}
1
CHOOSE
CLLCD
«
IF '1'
THEN
«
"CALCULO PARA LA MEDIA CON ni"
{
{ "LI50%" "LIMITE INFERIOR DE LA CLASE 50%" 0 }
{ "n" "NUMERO TOTAL DE DATOS" 0 }
{ "ai" "AMPLITUD DE LA CLASE" 0 }
{ "Ni-1" "FRECUENCIA ACUMULADA ANTERIOR" 0 }
{ "ni" "NUMERO DE DATOS DE LA CLASE 50%" 0 }
}
{ 2 4 }
{ }
{ }
INFORM
IF
THEN
OBJ
DROP A B C D E
«
'A+(B/2-D)*(C/E)' EVAL 4 RND
STR "MEDIA:" SWAP + CLLCD MSGBOX
»
ELSE
"CANCELADO"CLLCD MSGBOX
END
»
END
»
IF '2'
THEN
«
"COEFICIENTE DE PEARSON"
{
{ "" "PROMEDIO DE LOS DATOS" 0 }
{ "Me" "MEDIA DE LOS DATOS" 0 }
{ "S" "DESV.STND DE LOS DATOS" 0 }
}
{ 2 4 }
{ 0 0 0 }
{ 0 0 0 }
INFORM
IF
THEN
OBJ
DROP A B C
«
'(3/C)*(A-B)' EVAL 4 RND
STR "Coef.Pearson As:" SWAP + CLLCD MSGBOX
»
ELSE
"CANCELADO"CLLCD MSGBOX
END
»
END
»
- Inicie sesión o regístrese para enviar comentarios
Saludos a XTIAN1963 y a todos los miembros del grupo,
XTIAN1963, aquí te muestro dos formas, puedes basarte en cualquiera de ellas para mejorar tu código:
Ejemplo #1: « "Escoger" { { "A" 1 } { "B" 2 } { "C" 3 } } 1 CHOOSE IF THEN -> opc « CASE 'opc==1' THEN "Escogiste A" END 'opc==2' THEN "Escogiste B" END 'opc==3' THEN "Escogiste C" END END » END »
Ejemplo #2: « "Escoger" { { "A" « "Escogiste A" » } { "B" « "Escogiste B" » } { "C" « "Escogiste C" » } } 1 CHOOSE IF THEN EVAL END »
Puedes reemplazar los textos que dicen "Escogiste A", "Escogiste B" ó "Escogiste C" por los códigos que contienen tus INFORMs e incluso añadir más opciones a escoger.
Atte. Dante Aroní C. www.deachp.com
- Inicie sesión o regístrese para enviar comentarios
Hola denuevo,
Aquí la modificación que hice a tu programa:
« "Escoger"
{ { "A" 1 } { "B" 2 } { "C" 3 } } 1 CHOOSE
IF THEN
opc
«
CASE
'opc==1' THEN
"CALCULO PARA LA MEDIA CON ni"
{
{ "LI50%" "LIMITE INFERIOR DE LA CLASE 50%" 0 }
{ "n" "NUMERO TOTAL DE DATOS" 0 }
{ "ai" "AMPLITUD DE LA CLASE" 0 }
{ "Ni-1" "FRECUENCIA ACUMULADA ANTERIOR" 0 }
{ "ni" "NUMERO DE DATOS DE LA CLASE 50%" 0 }
}
{ 2 4 }
{ }
{ }
INFORM
IF
THEN
OBJ
DROP A B C D E
«
'A+(B/2-D)*(C/E)' EVAL 4 RND
STR "MEDIA:" SWAP + CLLCD MSGBOX
»
ELSE
"CANCELADO" CLLCD MSGBOX
END
END
'opc==2' THEN "Escogiste B" END
'opc==3' THEN "Escogiste C" END
END
»
END
»Nota: Código listo para copiar y pegar en el HPUserEdit ó el emulador.
Errores corregidos: 1) Uniste la variable opc con la flecha. 2) Colocaste innecesariamente los límites « » entre THEN y END del primer CASE.
Atte. Dante Aroní C. www.deachp.com
- Inicie sesión o regístrese para enviar comentarios
Grande Dante.,
Gracias.,
Cristian
- Inicie sesión o regístrese para enviar comentarios
Otra forma es incluyendo las plantillas INFORM directamente al comando CHOOSE, te dejo el código para que lo tomes en cuenta para tus próximos programas :
«
"INFORMS"
{
{ "Media" «
"CALCULO PARA LA MEDIA CON ni"
{
{ "LI50%" "LIMITE INFERIOR DE LA CLASE 50%" 0 }
{ "n" "NUMERO TOTAL DE DATOS" 0 }
{ "ai" "AMPLITUD DE LA CLASE" 0 }
{ "Ni-1" "FRECUENCIA ACUMULADA ANTERIOR" 0 }
{ "ni" "NUMERO DE DATOS DE LA CLASE 50%" 0 }
}
{ 2 4 }
{ }
{ }
INFORM
IF
THEN
OBJ
DROP A B C D E
«
'A+(B/2-D)*(C/E)' EVAL 4 RND
STR "MEDIA:" SWAP + CLLCD MSGBOX
» END
» }
{ "Pearson" «
"COEFICIENTE DE PEARSON"
{
{ "" "PROMEDIO DE LOS DATOS" 0 }
{ "Me" "MEDIA DE LOS DATOS" 0 }
{ "S" "DESV.STND DE LOS DATOS" 0 }
}
{ 2 4 }
{ 0 0 0 }
{ 0 0 0 }
INFORM
IF
THEN
OBJ
DROP A B C
«
'(3/C)*(A-B)' EVAL 4 RND
STR "Coef.Pearson As:" SWAP + CLLCD MSGBOX
»
END » }
{ "Inform N" «
"InformN"
{
""
}
{ 1 0 }
{ }
{ }
INFORM
IF
THEN
ELSE
END
» }
}
1
CHOOSE
IF
THEN
EVAL
END
»
Espero que te sirva
Saludos
- Inicie sesión o regístrese para enviar comentarios
Me parece mucho mas cómodo y apropiado manejar los subprogramas fuera de la estructura del CHOOSE
... para efectos revisión y compresión en códigos que son bastante extensos.
Saludos
- Inicie sesión o regístrese para enviar comentarios












Hola Dante.,
Gracias por tu pronta respuesta.
Mira estuve probando los programas que me enviaste
el primero funciono con CHOOSE sin ningun problema,
el segundo no me anduvo.
Lo otro es que trate de que al hacer la seleccion con CHOOSE
el programa se pasara a la plantilla de INFORM pero no lo logrè.
A ver si me hechas una mano, tengo varios INFORM que quiero que
se activen con CHOOSE.
Te dejo una copia de lo que hice con lo que me enviaste.
Saludos.
« "Escoger"
{ { "A" 1 } { "B" 2 } { "C" 3 } } 1 CHOOSE
IF THEN
opc
«
CASE
'opc==1' THEN "CALCULO PARA LA MEDIA CON ni"
«
"CALCULO PARA LA MEDIA CON ni"
{
{ "LI50%" "LIMITE INFERIOR DE LA CLASE 50%" 0 }
{ "n" "NUMERO TOTAL DE DATOS" 0 }
{ "ai" "AMPLITUD DE LA CLASE" 0 }
{ "Ni-1" "FRECUENCIA ACUMULADA ANTERIOR" 0 }
{ "ni" "NUMERO DE DATOS DE LA CLASE 50%" 0 }
}
{ 2 4 }
{ }
{ }
INFORM
IF
THEN
OBJ
DROP A B C D E
«
'A+(B/2-D)*(C/E)' EVAL 4 RND
STR "MEDIA:" SWAP + CLLCD MSGBOX
»
ELSE
"CANCELADO"CLLCD MSGBOX
END
»
END
'opc==2' THEN "Escogiste B" END
'opc==3' THEN "Escogiste C" END
END
»
END
»