Java Programming Exercises: Salary, Shapes, and More

Java Programming Exercises

Worker Salary Calculation

Calculate weekly salary based on hours worked.

import java.util.*;
public class Main {
    public double calcularSalarioSemanal(int numHoras) {
        double resultado;
        if (numHoras <= 30) {
            resultado = numHoras * 10;
        } else {
            resultado = (30 * 10) + ((numHoras - 30) * 15);
        }
        return resultado;
    }
    public void run() {
        Scanner in = new Scanner(System.in);
        int horas;
        boolean horasEnRangoCorrecto;
        double salario;
        do {
            System.out.print("Introduzca horas semanales [1-50]: ");
            horas = Integer.parseInt(in.nextLine());
            horasEnRangoCorrecto = (horas >= 1 && horas <= 50);
            if (!horasEnRangoCorrecto) {
                System.out.println("Introduzca el valor en el rango correcto.");
            }
        } while (!horasEnRangoCorrecto);
        salario = calcularSalarioSemanal(horas);
        System.out.format("El salario de esta semana es %.2f€%n", salario);
    }
    public static void main(String[] args) {
        new Main().run();
    }
}

Symbol Square

Print a square pattern using *, #, and +.

public class Ejercicio2 {
    public void imprimirCuadrado(int n) {
        for (int filas = 1; filas <= n; filas++) {
            for (int asteriscos = 1; asteriscos <= n - filas; asteriscos++) {
                System.out.print("*");
            }
            System.out.print("#");
            for (int cruces = 1; cruces <= filas - 1; cruces++) {
                System.out.print("+");
            }
            System.out.println();
        }
    }
}

Toy Store Sales

Calculate total sales, taxes, and movie tickets.

import java.util.*;
public class Ejercicio3 {
    public void run() throws Exception {
        Scanner in = new Scanner(System.in);
        int cantidad;
        double precio;
        String cadena;
        double importe = 0;
        double importeConImpuestos;
        int numVales;
        do {
            System.out.print("Cantidad [\"fin\" para terminar]: ");
            cadena = in.nextLine();
            if (!cadena.equals("fin")) {
                cantidad = Integer.parseInt(cadena);
                System.out.print("Precio: ");
                precio = Double.parseDouble(in.nextLine());
                importe += cantidad * precio;
            }
            System.out.println();
        } while (!cadena.equals("fin"));
        importeConImpuestos = importe * 1.21;
        numVales = (int)importeConImpuestos / 5;
        System.out.format("Importe total %.2f%n", importe);
        System.out.format("Con impuestos %.2f%n", importeConImpuestos);
        System.out.format("Vales para el cine: %d%n", numVales);
    }
}

Number Divisors

Find divisors of a number greater than 10.

import java.io.*;
public class Ejercicio01 {
    public void run() throws Exception {
        BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
        int n;
        do {
            System.out.print("Introduce un número superior a 10: ");
            n = Integer.parseInt(in.readLine());
            if (!(n > 10)) {
                System.out.println("Por favor, introduce otro número.");
            }
        } while (!(n > 10));
        for (int i = n - 1; i > 1; i--) {
            if (n % i == 0) {
                System.out.format("%d, ", i);
            }
        }
        System.out.println("1");
    }
}

Absolute Values and Maximum

Find the maximum of entered numbers and its square root.

import java.io.*;
public class Ejercicio02 {
    public void run() throws Exception {
        BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
        int n;
        int cuenta = 0;
        int maximo = 0;
        do {
            System.out.print("Introduce un número (distinto de 0): ");
            n = Integer.parseInt(in.readLine());
            if (n != 0) {
                cuenta++;
                if (cuenta == 1) {
                    maximo = n;
                } else {
                    if (n > maximo) {
                        maximo = n;
                    }
                }
            }
        } while (n != 0);
        if (cuenta > 0) {
            System.out.format("El mayor es %d, y la raíz cuadrada del valor absoluto es %.2f%n",
                    maximo,
                    Math.sqrt(Math.abs(maximo)));
        } else {
            System.out.format("No se puede calcular el máximo%n");
        }
    }
}

Staircase Pattern

Draw a staircase pattern with ‘m’ and ‘x’ characters.

import java.io.*;
public class Ejercicio03 {
    public void dibujarTrama(int n) {
        String laLetra;
        for (int filas = 1; filas <= n; filas++) {
            for (int espacios = 1; espacios <= n - filas; espacios++) {
                System.out.print(" ");
            }
            laLetra = filas % 2 == 0 ? "m" : "x";
            for (int letras = 1; letras <= filas; letras++) {
                System.out.print(laLetra);
            }
            System.out.println();
        }
    }
}

Hypotenuse Calculation

Calculate the hypotenuse of a right triangle.

import java.io.*;
public class Ejercicio1 {
    public void run() throws Exception {
        BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
        double cateto1, cateto2, hipotenusa;
        boolean valido;
        do {
            System.out.print("Cateto 1: ");
            cateto1 = Double.parseDouble(in.readLine());
            valido = cateto1 > 0 && cateto1 <= 30;
            if (!valido) {
                System.out.println("Rango incorrecto");
            }
        } while (!valido);
        do {
            System.out.print("Cateto 2: ");
            cateto2 = Double.parseDouble(in.readLine());
            valido = cateto2 > 0 && cateto2 <= 30;
            if (!valido) {
                System.out.println("Rango incorrecto");
            }
        } while (!valido);
        hipotenusa = Math.sqrt(cateto1 * cateto1 + cateto2 * cateto2);
        System.out.format("La hipotenusa es %.2f%n", hipotenusa);
    }
}

Square Drawing

Draw a square using +, -, and |.

import java.io.*;
public class Ejercicio3 {
    public void dibujarCuadrado(int n) {
        System.out.print("+");
        for (int guiones = 1; guiones <= (n - 2); guiones++) {
            System.out.print("-");
        }
        System.out.println("+");
        for (int filas = 1; filas <= (n - 2); filas++) {
            System.out.print("|");
            for (int espacios = 1; espacios <= (n - 2); espacios++) {
                System.out.print(" ");
            }
            System.out.println("|");
        }
        System.out.print("+");
        for (int guiones = 1; guiones <= (n - 2); guiones++) {
            System.out.print("-");
        }
        System.out.println("+");
    }
}

Toy Sales Calculation

Calculate total sales, taxes, and movie tickets for a toy store.

import java.io.*;
public class Ejercicio2 {
    public void run() throws Exception {
        BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
        int cantidad;
        double precio;
        double importe = 0, importeConImpuestos;
        int vales;
        do {
            System.out.print("Cantidad: ");
            cantidad = Integer.parseInt(in.readLine());
            if (cantidad > 0) {
                System.out.print("Precio: ");
                precio = Double.parseDouble(in.readLine());
                importe += cantidad * precio;
            }
        } while (cantidad > 0);
        importeConImpuestos = importe * 1.21;
        vales = (int)importeConImpuestos / 5;
        System.out.format("Importe total %.2f%n", importe);
        System.out.format("Con impuestos %.2f%n", importeConImpuestos);
        System.out.format("Vales para el cine: %d%n", vales);
    }
}

Final Capital Calculation

Calculate final capital with interest over years.

public double calcularCapitalFinal(double capitalInicial, int annos, double tin) {
    double resultado;
    resultado = capitalInicial;
    for (int cuentaAnnos = 1; cuentaAnnos <= annos; cuentaAnnos++) {
        resultado += resultado * tin / 100;
    }
    return resultado;
}
public void run() throws Exception {
    BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
    double capitalInicial, capitalFinal;
    double interes;
    int annos;
    System.out.print("Capital inicial: ");
    capitalInicial = Double.parseDouble(in.readLine());
    System.out.print("Interés: ");
    interes = Double.parseDouble(in.readLine());
    System.out.print("Años: ");
    annos = Integer.parseInt(in.readLine());
    capitalFinal = calcularCapitalFinal(capitalInicial, annos, interes);
    System.out.format("%.2f eur al %.2f%% TIN durante %d años dan como capital final %.2f\n",
            capitalInicial, interes, annos, capitalFinal);
}

Number Reversal

Reverse a number within a range of 1 to 6 digits.

BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
int num, numAlReves, numTemporal, ultimaCifra;
boolean estaNumeroEnRango;
do {
    System.out.print("Dime un número [de 1 a 6 cifras]: ");
    num = Integer.parseInt(in.readLine());
    estaNumeroEnRango = num >= 0 && num < 1000000;
    if (!estaNumeroEnRango) {
        System.out.print("No está en el rango correcto. ");
        System.out.println("Por favor, vuelve a introducirlo. ");
    }
} while (!estaNumeroEnRango);
numAlReves = 0;
numTemporal = num;
while (numTemporal > 0) {
    ultimaCifra = numTemporal % 10;
    numTemporal = numTemporal / 10;
    numAlReves = numAlReves * 10 + ultimaCifra;
}
System.out.format("Al revés es %d\n", numAlReves);

Positive Number Count

Count the number of positive integers entered.

BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
int num, cuenta = 0;
for (int i = 1; i <= 10; i++) {
    System.out.format("Dime un número (#%d): ", i);
    num = Integer.parseInt(in.readLine());
    if (num >= 0) {
        cuenta++;
    }
}
System.out.format("Hay %d positivos\n", cuenta);

Line and Circle Pattern

Print a pattern of lines and circles.

int numRayas;
for (int fila = 1; fila <= 4; fila++) {
    System.out.print("o");
    numRayas = fila * 2 - 1;
    for (int raya = 1; raya <= numRayas; raya++) {
        System.out.print("-");
    }
    System.out.println("o");
}