Acabo de dar la vuelta y decidí probar un poco de Ada. El inconveniente es que la sintaxis y la función se alejan bastante de C++. Así que tuve que incluir varias cosas para hacer que esto funcione.Ecuación cuadrática en Ada
Mi pregunta es si hay alguna forma mejor de hacer este cálculo que lo que he hecho aquí
IF(B < 0.0) THEN
B := ABS(B);
X1 := (B/2.0) + Sqrt((B/2.0) ** 2.0 + ABS(C));
X2 := (B/2.0) - Sqrt((B/2.0) ** 2.0 + ABS(C));
ELSE
X1 := -(B/2.0) + Sqrt((B/2.0) ** 2.0 - C);
X2 := -(B/2.0) - Sqrt((B/2.0) ** 2.0 - C);
END IF;
que tenía algún problema con los números negativos, por eso me hice una declaración IF y solía ABS() para convertirlos en positivos. Pero lo más extraño es que funciona perfectamente para el otro caso, lo cual es extraño ...
1 por mencionar ADA en la – ja72
En cuanto a las dos primeras líneas - yo evitaría el uso de abs() cuando ya sabes que B es negativo. Use B: = - B. Incluso si el compilador es inteligente y puede en línea cosas. – DarenW