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).

Entradas relacionadas: