// Lectura de a, b y c (todos double)
...
// Cálculo de las raíces
double b24ac= b*b - 4*a*c;
if (b24ac>=0) {
print("Las raíces son ");
print( (-b+sqrt(b24ac))/(2*a) );
print( (-b-sqrt(b24ac))/(2*a) );
}
else
println("La ecuación tiene soluciones imaginarias");
Obs.: también se puede escribir:
pero no:
print( (-b+sqrt(b24ac))/2/a );
print( (-b+sqrt(b24ac))/2*a ); // Malo
print( -b+sqrt(b24ac)/2/a ); // Malo
Motivación: desplegar el máximo entre a, b y c, sin usar max.
No es necesario colocar las { }, porque un if es una instrucción compuesta
(que se construye a partir de una o más instrucciones).
print("El máximo es ");
if (a>b)
if (a>c)
print(a);
else
print(c);
else
if (b>c)
print(b);
else
print(c);
Problema: El programa que entrega el máximo de 4 o 5 números, podría ser demasiado grande.
La asignación
Una variable se llama así porque se puede cambiar su valor, de la misma forma que se puede cambiar el valor de una memoria en una calculadora. Por ejemplo:
Cuando el valor de radio es 4.0, este programa despliega:
double x= 2*radio;
println(x);
x= radio*radio;
println(x);
En el programa se usa una sola variable x. La variable toma dos
valores distintos durante la ejecución del programa (primero 8. y
luego 16.).
8.0
16.0
Sintaxis de la asignación:
Se diferencia de una declaración en que ``variable'' ha sido declarada previamente y en que no se indica nuevamente su tipo.
Semántica:
Primero se evalúa la ``expresión'', y luego, su resultado se asigna a ``variable'', es decir se almacena en la variable.
Obs.: no se puede declarar dos veces la misma variable:
double x= 2*radio;
double x= radio*radio; // ¡error!
Obs.: en general no se puede usar una variable a la cual no se le
ha dado todavía un valor.
double x;
x= 2*radio;
println(x);
...
Ejercicio: calcular el máximo entre a y b y dejarlo en max, sin usar la función max(..)
Al desplegar max, es seguro que tiene algún valor.
// Las variables a y b han sido declaradas previamente
int max;
if (a>b)
max= a;
else
max= b;
println(max);
Obs.: el siguiente programa es inválido porque se declara dos veces la variable max:
if (a>b)
int max= a;
else
int max= b;
println(max);
(Si lo que sobra es la parte verdadera, se da vuelta la condición.)
int max= b;
if (a>max)
max= a;
println(max);
Ejercicio: calcular el máximo entre a, b y c.
Propuesto: el máximo entre a, b, c, d y e.
int max= a;
if (b>max)
max= b;
if (c>max)
max= c;
println(max);
Indique qué despliega el siguiente programa:
int a = 4;
int b = 10;
int d = 7;
d = b - 2; println(d);
a = d - (3 + b); println(a);
b = 1 + a*2-1; println(b);
a = d - b; println(a);
d= b - a; println(d);
int e = a+(d-b); println(e);