Temas:
Ejercicio 1: desplegar el máximo entre a, b y c, sin usar max.
Problema: El programa que entrega el máximo de 4 o 5 números, podría
ser demasiado grande.
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);
}
}
(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 2: 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);
El símbolo && significa ``y-lógico''. Se pueden combinar varias
condiciones utilizando operadores lógicos:
if (a>=0. && a<10.0) {
println("en el rango [0,10[");
}
a==0 || b==0 || c==0
a!=0 && (b>0 || c==-1)
Por ejemplo, el programa que resuelve la ecuación de segundo grado (de la clase pasada) puede graficarse como:
Ejercicio 3:
Se desea indicar si el valor de una variable entera x es positivo, negativo o cero:
Este programa tiene por diagrama:
if (x>0) {
println("positivo);
}
else {
if (x<0) {
println("negativo");
}
else {
println("cero");
}
}
Observe que el siguiente programa no entrega el resultado correcto:
El diagrama de este otro programa es completamente distinto,
ya que los dos if están puestos en secuencia:
if (x>0) {
println("positivo);
}
if (x<0) {
println("negativo");
}
else {
println("cero");
}
Siga la ejecución de ambos programas cuando x vale 1 y cuando x vale -2.
Este formato se prefiere cuando hay selecciones múltiples. En general
se escribe:
if (x>0) {
println("positivo);
}
else if (x<0) {
println("negativo");
}
else {
println("cero");
}
Lo que se dibuja como:
if (``condición 1'') {
``instrucciones 1''
}
else if (``condición 2'') {
``instrucciones 2''
}
...
else if (``condición n-1'') {
``instrucciones n-1''
}
else {
``instrucciones n''
}
Ejercicio 4: calificación una nota.
Se desea calificar en palabras una nota, según el siguiente criterio:
Indique qué despliega el siguiente programa cuando n es 5.5:
if (6.0<=n && n<=7.0) {
println("aprobado con distinción máxima");
}
if (5.0<=n && n<=5.9) {
println("aprobado con distinción");
}
if (4.0<=n && n<=4.9) {
println("aprobado");
}
if (1.0<=n && n<=3.9) {
println("reprobado");
}
Complete el siguiente programa, de modo que califique correctamente
una nota:
if (n >= 6.0) {
println("__________");
}
if (n >= 5.0) {
println("__________");
}
if (n >= 4.0) {
println("__________");
}
if (n >= 1.0) {
println("__________");
}
if (n ? ___) {
println("__________");
}
else if (n ? ___) {
println("__________");
}
else if (n ? ___) {
println("__________");
}
else if (n ? ___) {
println("__________");
}
Ejercicios propuestos:
Año ? 1998 Año ? 1996
no si
Año ? 1900 Año ? 2000
no si
a c ad + bd - + - = ------- b d bdHaga un programa que dialogue para obtener a, b, c y d, y luego calcule la suma de las fracciones a/b y c/d. Si la división no se puede realizar porque el denominador es cero, despliega un mensaje que lo señale. Si el resultado es entero, despliega el valor entero. Si el resultado es una fracción, despliega la fracción (sin simplificarla).