11. Se necesita desarrollar un programa que permita obtener el valor final de un automóvil, ingresando su valor base y sabiendo que se puede aplicar un descuento del 10% al valor base si el automóvil vale $20’000.000 o menos, 15% si el automóvil vale entre $20’000.000 y $30’000.000, y 20% si el automóvil vale más de $30’000.000.
import java.text.DecimalFormat;
import javax.swing.JOptionPane;
public class Index {
public static void main(String[] args){
long precioCoche, descuento, total;
int porcentajeDescuento = 0;
DecimalFormat formatter = new DecimalFormat("#,###");
precioCoche = Long.parseLong(JOptionPane.showInputDialog(null, "Ingrese el precio del carro: "));
if(precioCoche <= 20000000.0){
porcentajeDescuento = 10;
}else if(precioCoche >= 20000000.0 && precioCoche <= 30000000.0){
porcentajeDescuento = 15;
}else if(precioCoche > 30000000.0){
porcentajeDescuento = 20;
}
descuento = (precioCoche * porcentajeDescuento) / 100;
JOptionPane.showMessageDialog(null, "Descuento de: $ " + formatter.format(descuento) + " COP. \nPrecio final del auto: $" + formatter.format(precioCoche - descuento) + " COP");
}
}
12. Elabore un programa para calcular e imprimir el precio de un terrero del cual se ingresan los siguientes datos: largo en metros, ancho en metros y precio por hectárea. Si el terrero tiene más de 50 hectáreas se puede hacer un descuento de 17%, si tiene más de 100 hectáreas el descuento es de 25%.
import java.text.DecimalFormat;
import javax.swing.JOptionPane;
public class Index {
public static void main(String[] args){
double largoMetros, anchoMetros, precioHectarea, areaTerreno, hectareas, precioTotal, descuento;
int porcentajeDescuento = 0;
DecimalFormat formatter = new DecimalFormat("#,###");
largoMetros = Double.parseDouble(
JOptionPane.showInputDialog(null, "Ingrese el largo del terreno en metros: ")
);
anchoMetros = Double.parseDouble(
JOptionPane.showInputDialog(null, "Ingrese el ancho del terreno en metros: ")
);
precioHectarea = Double.parseDouble(
JOptionPane.showInputDialog(null, "Ingrese el precio por hectarea: ")
);
areaTerreno = largoMetros * anchoMetros;
hectareas = areaTerreno / 10000.0;
precioTotal = hectareas * precioHectarea;
if(hectareas >= 50 && hectareas <= 100){
porcentajeDescuento = 17;
}else if(hectareas > 100){
porcentajeDescuento = 25;
}
descuento = (precioTotal * porcentajeDescuento) / 100;
JOptionPane.showMessageDialog(
null,
"Se aplico un descuento de: $"+ formatter.format(descuento) + "\n"
+ "El precio del terreno es de: $" + formatter.format(precioTotal - descuento)
);
}
}
13. Construya un programa tal, que, dados como datos la categoría del trabajador, el valor del día de trabajo del trabajador y el número de días trabajados, calcule el aumento correspondiente teniendo en cuenta la siguiente tabla. Imprima la categoría del trabajador y su nuevo sueldo.
CATEGORIA | AUMENTO |
1 | 15% |
2 | 10% |
3 | 8% |
4 | 5% |
import java.text.DecimalFormat;
import javax.swing.JOptionPane;
public class Index {
public static void main(String[] args){
double valorDiaTrabajo, salario, aumento;
int diasTrabajados, categoria;
int porcentajeAumento = 0;
DecimalFormat formatter = new DecimalFormat("#,###");
categoria = Integer.parseInt(
JOptionPane.showInputDialog(null, "Ingrese la categoría del trabajados (1,2,3 o 4): ")
);
diasTrabajados = Integer.parseInt(
JOptionPane.showInputDialog(null, "Ingrese el número de dias trabajados: ")
);
valorDiaTrabajo = Double.parseDouble(
JOptionPane.showInputDialog(null, "Ingrese el salario por dia del trabajador: ")
);
switch(categoria){
case 1:
porcentajeAumento = 15;
break;
case 2:
porcentajeAumento = 10;
break;
case 3:
porcentajeAumento = 8;
break;
case 4:
porcentajeAumento = 5;
break;
}
salario = (diasTrabajados * valorDiaTrabajo);
aumento = (salario * porcentajeAumento) / 100;
JOptionPane.showMessageDialog(
null,
"El salario del trabajador es de: $" + formatter.format(salario + aumento)
);
}
}
14. Una librería vende libros con las siguientes condiciones: Si el cliente es tipo 1 se le descuenta el 30%, si el cliente es de tipo 2 se le descuenta el 20%, si el cliente es tipo 3 se le descuenta el 10%. Cuando el cliente realiza una compra se registran los siguientes datos: Nombre del cliente, tipo de cliente, cantidad de libros y costo por libro (se considera que TODOS los libros son del mismo valor). Elabore un programa que lea estos datos e imprima nombre, total a pagar, descuento y neto a pagar.
import java.text.DecimalFormat;
import javax.swing.JOptionPane;
public class Index {
public static void main(String[] args){
String nombreCliente;
double costoPorLibro, descuento, total;
int tipoCliente, cantidadLibros, porcentajeDescuento;
DecimalFormat formatter = new DecimalFormat("#,###");
nombreCliente = JOptionPane.showInputDialog(null, "Ingrese el nombre del cliente: ");
tipoCliente = Integer.parseInt(
JOptionPane.showInputDialog(null, "Ingrese el tipo de cliente (1,2 o 3): ")
);
cantidadLibros = Integer.parseInt(
JOptionPane.showInputDialog(null, "Ingrese el número de libros que se llevarán:")
);
costoPorLibro = Double.parseDouble(
JOptionPane.showInputDialog(null, "Ingrese el precio por libro: ")
);
switch(tipoCliente){
case 1:
porcentajeDescuento = 30;
break;
case 2:
porcentajeDescuento = 20;
break;
case 3:
porcentajeDescuento = 10;
break;
default:
porcentajeDescuento = 0;
break;
}
total = (cantidadLibros * costoPorLibro);
descuento = (total * porcentajeDescuento) / 100;
JOptionPane.showMessageDialog(
null,
"Factura a nombre de: " + nombreCliente + "\n"
+ "Tipo de cliente: " + tipoCliente + "\n"
+ "Total de libros: " + cantidadLibros + "\n"
+ "Costo por libro: $" + formatter.format(costoPorLibro) + "\n"
+ "Subtotal: $" + formatter.format(total) + "\n"
+ "Descuento: - $" + formatter.format(descuento) + "\n"
+ "Total a pagar: $" + formatter.format(total - descuento)
);
}
}
15. Realice un programa que determine el pago a realizar por la entrada a un espectáculo donde se pueden comprar sólo hasta cuatro entradas, donde si compra dos entradas se les descuenta el 10%, al comprar tres entradas el 15% y a la compra de cuatro entradas se le descuenta el 20 %. El valor de la entrada es de $ 60.000. Si el número de entradas es mayor a 4, el programa debe mostrar que se pueden comprar hasta 4 tiquetes máximo. Si el número de entradas es menor a 1, el programa debe mostrar que se debe comprar por lo menos 1 tiquete.
import java.text.DecimalFormat;
import javax.swing.JOptionPane;
public class Index {
public static final double PRECIO_ENTRADA = 60000.0;
public static void main(String[] args){
double total, descuento;
int porcentajeDescuento;
int numeroEntradas = 0;
boolean esValido = false;
DecimalFormat formatter = new DecimalFormat("#,###");
while(!esValido){
numeroEntradas = Integer.parseInt(
JOptionPane.showInputDialog(null, "Ingrese el número de tiquetes a comprar (minimo 1 y máximo 4 tiquetes):")
);
if(numeroEntradas >= 1 && numeroEntradas <= 4){
esValido = true;
}else{
JOptionPane.showMessageDialog(
null,
"El número de tiquetes que desea comprar es inválido, debe comprar como minimo 1 y máximo 4. Intente nuevamente",
"Error",
JOptionPane.ERROR_MESSAGE
);
}
}
switch(numeroEntradas){
case 4:
porcentajeDescuento = 20;
break;
case 3:
porcentajeDescuento = 15;
break;
case 2:
porcentajeDescuento = 10;
break;
default:
porcentajeDescuento = 0;
break;
}
total = numeroEntradas * PRECIO_ENTRADA;
descuento = (total * porcentajeDescuento) / 100;
JOptionPane.showMessageDialog(null,
"Entradas: " + numeroEntradas + "\n"
+ "Subtotal: $" + formatter.format(total) + "\n"
+ "Descuento: - $" + formatter.format(descuento) + "\n"
+ "Total a pagar: $" + formatter.format(total - descuento)
);
}
}
17. Se desea desarrollar un programa que, al introducir una cantidad de dinero expresado en pesos, indique cuántos billetes y monedas se puede tener como mínimo para completar este valor. La cantidad ingresada debe ser obligatoriamente múltiplo de $50, y se debe trabajar con denominaciones vigentes.
import javax.swing.JOptionPane;
public class Index {
public static final double PRECIO_ENTRADA = 60000.0;
public static void main(String[] args){
int montoDinero = 0;
boolean esValido = false;
final int[] valor_denominaciones = new int[]{
50000, 20000 , 10000 , 5000 , 2000 , 1000 , 500, 200 , 100 , 50
};
final String[] denominaciones = new String[]{
"$50.000" , "$20.000" , "$10.000" , "$5.000" , "$2.000" , "$1.000" , "500" , "200" , "100" , "50"
};
while(!esValido){
montoDinero = Integer.parseInt(JOptionPane.showInputDialog(null, "Ingrese la cantidad de dinero en pesos (multiplo de 50): "));
if((montoDinero % 50) == 0){
esValido = true;
}else{
JOptionPane.showMessageDialog(
null,
"El número ingresado no es multiplo de 50, por favor ingrese nuevamente la cantidad",
"Error",
JOptionPane.ERROR_MESSAGE
);
}
}
int[] cantidad = new int[valor_denominaciones.length];
String mensaje = "El valor de $" + montoDinero + " COP distribuido en diferentes valores: \n\n";
for(int i = 0 ; i < cantidad.length ; i++){
cantidad[i] = montoDinero / valor_denominaciones[i];
montoDinero %= valor_denominaciones[i];
if(cantidad[i] != 0){
mensaje += cantidad[i] + " de " + denominaciones[i] + "\n";
}
}
JOptionPane.showMessageDialog(null, mensaje);
}
}
Conviertete en un programador más sociable