FoxPro/Visual FoxPro - hacer comparaciones entre dos numeros y me de un mensaje

   
Vista:

hacer comparaciones entre dos numeros y me de un mensaje

Publicado por colillas (14 intervenciones) el 11/12/2013 03:43:37
hola amigos programadores, me pueden ayudar estoy haciendo un trabajo de clase y me pidieron sacar el IMC(Indice de Masa Corporal) con su respectivo mensaje

Agrego el codigo q posiblemente este bien, me pueden ayudar si estoy en lo correcto, ya q me sale pero no me presenta ningun mensaje

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
r= Val(ThisForm.Text3.Value)* Val(ThisForm.Text3.Value)
ThisForm.Text5.Value = Val(ThisForm.Text2.Value)/r
 
if(thisform.text5.Value)<18
       MESSAGEBOX("Peso bajo. Necesario valorar signos de desnutrición", "AVISO")
          else
	        if((thisform.text5.Value)>=18.AND.<=26)  // aqui me sale q falta algun operador
	             MESSAGEBOX("Peso Normal", "AVISO")
	                else
	                     if((thisform.text5.Value)>=27.and.<=29)// aqui me sale q falta algun operador 
	                       MESSAGEBOX("OBESIDAD", "AVISO")
	                           else
	                                 if((thisform.text5.Value)>=30.and.<=50)  // aqui me sale q falta algun operador
	                                       MESSAGEBOX("obesidad caso 1", "AVISO")
	                                 ENDIF
	                     ENDIF
	         ENDIF
	 ENDIF
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

hacer comparaciones entre dos numeros y me de un mensaje

Publicado por Saul (676 intervenciones) el 11/12/2013 04:58:42
Hola colillas,

Te digo una cosa, no mucho me gusta ayudar a los estudiantes, porque al final uno les hace la tarea, pero veo que te esforzaste y la ideas que aprendea mi amigo.

Te digo tus errores

Dices que tienes errores como estos

if((thisform.text5.Value)>=18.AND.<=26) // aqui me sale q falta algun operador

la solucion es que te falta una variable con cual comprar, porque estas comparando dos casos.

if thisform.text5.Value >=18 .AND. thisform.text5.Value <=26

Esto es la operacion correcta, en visual fox pro no tienes porque ponerlo entre parentecis, eso se utiliza en C++ o en Java o PHP. Visual Fox es mas sencilo.

y ahora viene lo bueno aqui te dejo tu codigo funcionando, pruebalo y me cuentas, esta es otra opcion para que la pruebes.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
text3 = "10"
text2 = "15"
 
Result_Multipli = Val(Text3)* Val(Text3)
 
Text5 = ROUND(Val(Text2) / Result_Multipli,5)
 
nMensaje = ""
DO CASE
	CASE text5 < 18
		nMensaje = "Peso bajo. Necesario valorar signos de desnutrición"
	CASE BETWEEN(text5,18,26)
		nMensaje = "Peso Normal"
	CASE BETWEEN(text5,27,29)
		nMensaje = "OBESIDAD"
	CASE BETWEEN(text5,30,50)
		nMensaje = "OBESIDAD"
ENDCASE
 
IF !EMPTY(nMensaje)
	MESSAGEBOX(nMensaje, "AVISO")
ENDIF
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

hacer comparaciones entre dos numeros y me de un mensaje

Publicado por colillas (14 intervenciones) el 11/12/2013 20:53:29
muchas gracias Saul

te lo agradezco y tu codigo es muy bueno, como dices yo tengo q aprender y de mis errores aprendo, asi q solo voy a correjir donde estoy mal y para la proxima ya no volvere a tener esos problemas
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar