Comunidad de diseño web y desarrollo en internet online

Problema con varias posibles soluciones, pero ninguna me sale.

Citar            
MensajeEscrito el 07 Abr 2012 02:29 pm
Supongamos que estoy haciendo un programa de computadora que hace X*X, y luego quiero que:
Si el resultado es positivo, aplique la acción A.
Si el resultado es 0, aplique la acción B.
Si el resultado es negativo, aplique la acción C.

No tiene sentido el 3er "Si" (o el 3er caso), porque es imposible que X*X (sea cual sea X) resulte negativo ¿no?

Bueno, en varias situaciones similares, preciso prever si un resultado puede ser positivo, 0 o negativo, para evitar ese tipo de sin sentidos.

Aquí va una:
Quiero saber si H puede ser 0 o positivo (siempre me da negativo, pero me es MUY difícil probar todos los casos).
A = Es un número al azar entre 31.7 y 236.
B = 43 ~ 67.85 (me refiero a que también es un número al azar, pero que va desde el 43 hasta el 67.85).
C = 1 ~ 10
D = Raiz (374.6*374.6+A*A+B*B)
Nota: D es siempre positivo, se deduce de lo anterior.
E = (374.6/D)*-C
Nota: E es siempre negativo, se deduce...
F = (B/D)*-C
Nota: F es siempre negativo...
G = Redondear.Más(((200*F-1)+Raiz((200*F-1)*(200*F-1)+800*B))/2)
Nota: Redondear.Más convierte al número en el paréntesis al entero mayor más cercano, sólo si el número en cuestión es decimal).
H = -374.6+G*Abs(E)
Nota: Abs convierte al número en el paréntesis al absoluto.

Posible solución 1:
Hacer lo "normal"... no sé cómo.

2:
Estudiar MUCHO sobre ecuaciones, quiero ¿dónde?

3:
Hacer un programa que resuelva este tipo de problemas, quiero, o si ya hay uno hecho, lo quiero ¿cómo lo consigo? pero sino ¿cómo hacerlo? Yo sabría cómo hacer uno que pruebe todas las variaciones de A, B y C, pero nunca terminaría. Pero si hubiera alguna manera de hacer las pruebas descartando ciertos casos... se podría. Creo que se puede, pero no sé cómo.


Bueno... ¿me ayudan, por favor? Tienen al menos 3 formas de hacerlo.

Muchas gracias.

Por Tachikomaia

73 de clabLevel



 

chrome
Citar            
MensajeEscrito el 08 Abr 2012 01:21 am
la verdad no se si es tan sencillo como yo lo veo o no entendí muy bien tu problema

según el lenguaje utilizado la sintaxis cambiaría pero la lógica general sería así:

primero realizas la operación y guardas el valor en una variable:

resultado = a * b * c


utilizando condicionales compruebas el resultado:

if ( resultado > 0 ) {

acá aplicas tu acción A...
}

if ( resultado = 0 ) {

acá aplicas tu acción B...
}

if ( resultado < 0 ) {

acá aplicas tu acción C...

}

Por HtrMancera

Claber

342 de clabLevel

1 tutorial

Genero:Masculino  

Front-end Developer

chrome
Citar            
MensajeEscrito el 08 Abr 2012 11:46 am
Lo pregunto de otra manera: ¿Cuánto tendrían que valer A, B y C, para que H sea 0 o >0?

Fíjense el rango de los valores (lo puse en el 1er post). Quizás sea imposible que H sea 0 o >0, no lo sé... eso es lo que quiero saber.

Por Tachikomaia

73 de clabLevel



 

chrome

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.