Programas Java básicos corregidos y comentados
Enviado por Chuletator online y clasificado en Informática y Telecomunicaciones
Escrito el en
español con un tamaño de 5,93 KB
Programas Java corregidos y comentarios
Se han corregido los siguientes programas. Se ha mantenido todo el contenido original y se han ajustado errores de sintaxis, ortografía y estilo para que el código sea válido y más legible. Los conceptos clave están resaltados en negrita y se incluyen breves comentarios sobre las correcciones.
1. Clase: Notas
Conceptos clave: Scanner, double, if-else.
import java.util.Scanner;
public class Notas {
public static void main(String[] args) {
Scanner teclado = new Scanner(System.in);
double nota;
String califica;
System.out.print("Introduce su nota: ");
nota = teclado.nextDouble();
if (nota < 5.0) {
califica = "Suspenso";
} else if (nota >= 5.0 && nota < 7.0) {
califica = "Aprobado";
} else if (nota >= 7.0 && nota < 9.0) {
califica = "Notable";
} else {
califica = "Sobresaliente";
}
System.out.println(nota + " - " + califica);
teclado.close();
}
}
2. Clase: AreaCirculo
Conceptos clave: while, Math.PI, Math.pow.
import java.util.Scanner;
public class AreaCirculo {
public static void main(String[] args) {
Scanner teclado = new Scanner(System.in);
double radio;
System.out.print("Introduce el radio del círculo (0 para salir): ");
radio = teclado.nextDouble();
while (radio != 0) {
System.out.println("Radio = " + radio + " ; Área del círculo = " + Math.PI * Math.pow(radio, 2));
System.out.print("Introduce el radio del círculo: ");
radio = teclado.nextDouble();
}
teclado.close();
}
}
3. Clase: Divisas
Conceptos clave: do-while, método estático, manejo de entradas.
Correcciones realizadas: se incluyó el método cambio dentro de la misma clase y se eliminó un paréntesis extra en la impresión final.
import java.util.Scanner;
public class Divisas {
public static void main(String[] args) {
Scanner teclado = new Scanner(System.in);
double cantidad, cambio, total = 0.0;
do {
System.out.println("Introduce la cantidad de moneda a cambiar (0 para acabar): ");
cantidad = teclado.nextDouble();
if (cantidad == 0) break;
System.out.print("Introduce cuántos euros vale esa moneda: ");
cambio = teclado.nextDouble();
total += cambio(cantidad, cambio);
} while (cantidad != 0);
System.out.print("El total de los cambios es: " + total);
teclado.close();
}
public static double cambio(double cantidad, double cambio) {
return (cantidad * cambio);
}
}
4. Clase: Ecuacion1
Conceptos clave: método, Math.sqrt, manejo de valores de error.
Se conservaron la estructura y la lógica del método formula tal como estaban, pero se mejoró el formato y el cierre del Scanner para evitar fugas de recursos.
import java.util.Scanner;
public class Ecuacion1 {
public static void main(String[] args) {
Scanner teclado = new Scanner(System.in);
double a, b, c;
System.out.println("Introduzca los coeficientes de la ecuación");
System.out.print("Introduzca a: ");
a = teclado.nextDouble();
System.out.print("Introduzca b: ");
b = teclado.nextDouble();
System.out.print("Introduzca c: ");
c = teclado.nextDouble();
double resultado = formula(a, b, c);
if (resultado == -9999999) {
System.out.print("No hay solución");
} else {
System.out.print("La solución es: " + resultado);
}
teclado.close();
}
public static double formula(double a, double b, double c) {
if (b <= 1 || b != 17)
return (3 * Math.pow(a, 2) / (4 - Math.sqrt(b - 1)) + c);
else
return (-9999999);
}
}
5. Clase: Repartidor
Conceptos clave: while, acumuladores (total), métodos reutilizables.
Correcciones: incorporación del método cambio dentro de la clase y eliminación de paréntesis sobrantes en la impresión final.
import java.util.Scanner;
public class Repartidor {
public static void main(String[] args) {
Scanner teclado = new Scanner(System.in);
double cantidad = 1, cambio, total = 0.0;
while (cantidad != 0) {
System.out.println("Introduce litros de gasolina (0 para acabar): ");
cantidad = teclado.nextDouble();
if (cantidad == 0) break;
System.out.print("Introduce cuántos euros cuesta el litro: ");
cambio = teclado.nextDouble();
total += cambio(cantidad, cambio);
}
System.out.print("El total de los repostajes es: " + total);
teclado.close();
}
public static double cambio(double cantidad, double cambio) {
return (cantidad * cambio);
}
}
Notas finales
- Cerrar el Scanner: Es buena práctica cerrar el Scanner con
teclado.close()cuando ya no se necesita. - Buena legibilidad: usar llaves ({}) en condicionales y bucles mejora la claridad y evita errores al ampliar el código.
- Validación de entradas: para producir programas robustos, considere validar las entradas numéricas (p. ej., evitar sqrt de valores negativos).