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");
}