1. Realizar el seguimiento de la totalidad del código de los siguientes ejercicios resueltos.
2. Optimizar y/o mejorar el ciclo while del ejercicio del grupo 2. (Observe qué ocurre cuando el usuario selecciona una opción incorrecta)
3. Si se presenta alguna duda acerca de cualquiera de las líneas de código, con gusto la resolveré en clase.
miércoles, 25 de febrero de 2009
Solución en lenguaje Java a evaluación 1, grupo 21
/*Un almacén tiene 4 empleados y por cada uno de ellos posee la siguiente información:
" Código.
" Número de hijos.
" Salario por hora.
" Número de horas trabajadas al mes.
La retención por cada empleado se determina así:
" Para salarios menores de $100.000:
si el número de hijos es 6 o más, no hay retención;
si el número de hijos es menor a 6, se le retiene un porcentaje igual a 6 menos el número de hijos.
" Para salarios iguales o mayores a $100.000:
si el número de hijos es menor de 3, se le retiene un 3%;
si el número de hijos es mayor o igual a 3, se le retiene un porcentaje igual a 5 menos el número de hijos.
El subsidio por cada hijo es de $12.000
Elaborar una aplicación que muestre: código y total a pagar.*/
import javax.swing.*;
public class almacen{
public static void main(String args[]){
//Declaracion de variables
String codigo,hijos,salario,horas,opcion;
double n_hijos,v_salario,n_horas,salario_bruto,pago_final,subsidio=0,retencion=0;
int continuar = 1;
while(continuar == 1){
retencion = 0;
subsidio = 0;
//Presentar un menú para ingresar datos o salir (Opcional)
opcion = JOptionPane.showInputDialog("1. Calcular pago\n2. Salir");
continuar = Integer.parseInt(opcion);
if(continuar == 1){
//Solicitar información al usuario
codigo = JOptionPane.showInputDialog("Digite su código");
hijos = JOptionPane.showInputDialog("Digite el número de hijos");
salario = JOptionPane.showInputDialog("Digite el valor de su salario por hora");
horas = JOptionPane.showInputDialog("Digite el número de horas que trabajó durante el último mes");
n_hijos = Double.parseDouble(hijos);
v_salario = Double.parseDouble(salario);
n_horas = Double.parseDouble(horas);
salario_bruto = v_salario * n_horas;
if(salario_bruto < 100000){
if(n_hijos >= 6){
subsidio = n_hijos * 12000;
}
else{
retencion = ((6-n_hijos)/100)*salario_bruto;
subsidio = n_hijos * 12000;
}
}
else{
if(n_hijos < 3){
retencion = 0.03*salario_bruto;
subsidio = n_hijos * 12000;
}
else{
retencion = ((5-n_hijos)/100)*salario_bruto;
subsidio = n_hijos * 12000;
}
}
pago_final = salario_bruto + subsidio - retencion;
JOptionPane.showMessageDialog(null, "El pago para el empleado con el código " + codigo + " es: " + pago_final);
}
else if(continuar != 2){
JOptionPane.showMessageDialog(null, "Seleccione una opción válida en el menú","Opción inválida",JOptionPane.ERROR_MESSAGE );
continuar = 1;
}
else{
continuar = 0;
}
}//fin del mientras
}
}
" Código.
" Número de hijos.
" Salario por hora.
" Número de horas trabajadas al mes.
La retención por cada empleado se determina así:
" Para salarios menores de $100.000:
si el número de hijos es 6 o más, no hay retención;
si el número de hijos es menor a 6, se le retiene un porcentaje igual a 6 menos el número de hijos.
" Para salarios iguales o mayores a $100.000:
si el número de hijos es menor de 3, se le retiene un 3%;
si el número de hijos es mayor o igual a 3, se le retiene un porcentaje igual a 5 menos el número de hijos.
El subsidio por cada hijo es de $12.000
Elaborar una aplicación que muestre: código y total a pagar.*/
import javax.swing.*;
public class almacen{
public static void main(String args[]){
//Declaracion de variables
String codigo,hijos,salario,horas,opcion;
double n_hijos,v_salario,n_horas,salario_bruto,pago_final,subsidio=0,retencion=0;
int continuar = 1;
while(continuar == 1){
retencion = 0;
subsidio = 0;
//Presentar un menú para ingresar datos o salir (Opcional)
opcion = JOptionPane.showInputDialog("1. Calcular pago\n2. Salir");
continuar = Integer.parseInt(opcion);
if(continuar == 1){
//Solicitar información al usuario
codigo = JOptionPane.showInputDialog("Digite su código");
hijos = JOptionPane.showInputDialog("Digite el número de hijos");
salario = JOptionPane.showInputDialog("Digite el valor de su salario por hora");
horas = JOptionPane.showInputDialog("Digite el número de horas que trabajó durante el último mes");
n_hijos = Double.parseDouble(hijos);
v_salario = Double.parseDouble(salario);
n_horas = Double.parseDouble(horas);
salario_bruto = v_salario * n_horas;
if(salario_bruto < 100000){
if(n_hijos >= 6){
subsidio = n_hijos * 12000;
}
else{
retencion = ((6-n_hijos)/100)*salario_bruto;
subsidio = n_hijos * 12000;
}
}
else{
if(n_hijos < 3){
retencion = 0.03*salario_bruto;
subsidio = n_hijos * 12000;
}
else{
retencion = ((5-n_hijos)/100)*salario_bruto;
subsidio = n_hijos * 12000;
}
}
pago_final = salario_bruto + subsidio - retencion;
JOptionPane.showMessageDialog(null, "El pago para el empleado con el código " + codigo + " es: " + pago_final);
}
else if(continuar != 2){
JOptionPane.showMessageDialog(null, "Seleccione una opción válida en el menú","Opción inválida",JOptionPane.ERROR_MESSAGE );
continuar = 1;
}
else{
continuar = 0;
}
}//fin del mientras
}
}
Solución en lenguaje Java a evaluación 1 , grupo 2
/*Una empresa agrupa a sus empleados en dos clases:
" Grupo 1, laboran en la planta y obtendrán un aumento de sueldo de acuerdo al siguiente razonamiento:
o Si el empleado trabajó mas de 48 horas semanales y no lleva en la empresa más de 15 años, su sueldo
será incrementado en un 7%
o Si el empleado trabajó mas de 48 horas semanales y tiene en la empresa más de 15 años, el incremento
será del 8% más una bonificación de $2.000
o En caso de no cumplir con las condiciones anteriores, el incremento será de 3% y no recibe bonificación
" Grupo 2, laboran por fuera de la planta y obtendrán un aumento de sueldo de acuerdo al siguiente razonamiento:
o Si el empleado trabajó mas de 30 horas semanales y no lleva en la empresa más de 10 años, su sueldo será
incrementado un 5% y no recibe bonificación
o Si el empleado trabajó mas de 30 horas semanales y tiene en la empresa más de 10 años, el incremento será
de 6% más una bonificación de $1.800
o En caso de no cumplir con estas condiciones, el incremento será de 2% y no recibe bonificación
Elaborar una aplicación que le pregunte al usuario: grupo, antigüedad, horas semanales laboradas y valor hora.
Luego indique cuánto se le debe pagar cualquier empleado de esta empresa.*/
import javax.swing.JOptionPane;
public class Grupo2{
public static void main(String args[]){
String Grupo, HorasTrab,AñosTrab,ValorHora;
double HorasLab=0,AñosLab=0,CostoHora=0,pago=0;
int Opcion=0,continuar = 1;
while(Opcion != 3){
Grupo = JOptionPane.showInputDialog("Indique su grupo:\n1. Labora en la planta\n2. Labora por fuera de la planta\n3. Salir");
Opcion = Integer.parseInt(Grupo);
if(Opcion == 3){
break; //Rompe el ciclo del mientras
}
else {
HorasTrab = JOptionPane.showInputDialog("Digite el número de horas que trabajó esta semana");
AñosTrab = JOptionPane.showInputDialog("Digite el número de años que lleva laborando en la empresa");
ValorHora = JOptionPane.showInputDialog("Digite el valor de su hora de trabajo");
HorasLab = Double.parseDouble(HorasTrab);
AñosLab = Double.parseDouble(AñosTrab);
CostoHora = Double.parseDouble(ValorHora);
}
switch(Opcion){
case 1: if(AñosLab > 15 && HorasLab > 48){
pago = (HorasLab * CostoHora * 1.08) + 2000;
}
else if(HorasLab > 48){
pago = HorasLab * CostoHora * 1.07;
}
else{
pago = HorasLab * CostoHora * 1.03;
}
break;
case 2: if(AñosLab > 10 && HorasLab > 30){
pago = (HorasLab * CostoHora * 1.06) + 1800;
}
else if(HorasLab > 30){
pago = HorasLab * CostoHora * 1.05;
}
else{
pago = HorasLab * CostoHora * 1.02;
}
break;
default:JOptionPane.showMessageDialog(null,"Seleccione un grupo del menú","Mensaje de Error", JOptionPane.ERROR_MESSAGE);
}//fin del switch
JOptionPane.showMessageDialog(null,"Su pago de esta semana es: " + pago,"Pago semanal", JOptionPane.INFORMATION_MESSAGE);
}//Fin del while
}
}
" Grupo 1, laboran en la planta y obtendrán un aumento de sueldo de acuerdo al siguiente razonamiento:
o Si el empleado trabajó mas de 48 horas semanales y no lleva en la empresa más de 15 años, su sueldo
será incrementado en un 7%
o Si el empleado trabajó mas de 48 horas semanales y tiene en la empresa más de 15 años, el incremento
será del 8% más una bonificación de $2.000
o En caso de no cumplir con las condiciones anteriores, el incremento será de 3% y no recibe bonificación
" Grupo 2, laboran por fuera de la planta y obtendrán un aumento de sueldo de acuerdo al siguiente razonamiento:
o Si el empleado trabajó mas de 30 horas semanales y no lleva en la empresa más de 10 años, su sueldo será
incrementado un 5% y no recibe bonificación
o Si el empleado trabajó mas de 30 horas semanales y tiene en la empresa más de 10 años, el incremento será
de 6% más una bonificación de $1.800
o En caso de no cumplir con estas condiciones, el incremento será de 2% y no recibe bonificación
Elaborar una aplicación que le pregunte al usuario: grupo, antigüedad, horas semanales laboradas y valor hora.
Luego indique cuánto se le debe pagar cualquier empleado de esta empresa.*/
import javax.swing.JOptionPane;
public class Grupo2{
public static void main(String args[]){
String Grupo, HorasTrab,AñosTrab,ValorHora;
double HorasLab=0,AñosLab=0,CostoHora=0,pago=0;
int Opcion=0,continuar = 1;
while(Opcion != 3){
Grupo = JOptionPane.showInputDialog("Indique su grupo:\n1. Labora en la planta\n2. Labora por fuera de la planta\n3. Salir");
Opcion = Integer.parseInt(Grupo);
if(Opcion == 3){
break; //Rompe el ciclo del mientras
}
else {
HorasTrab = JOptionPane.showInputDialog("Digite el número de horas que trabajó esta semana");
AñosTrab = JOptionPane.showInputDialog("Digite el número de años que lleva laborando en la empresa");
ValorHora = JOptionPane.showInputDialog("Digite el valor de su hora de trabajo");
HorasLab = Double.parseDouble(HorasTrab);
AñosLab = Double.parseDouble(AñosTrab);
CostoHora = Double.parseDouble(ValorHora);
}
switch(Opcion){
case 1: if(AñosLab > 15 && HorasLab > 48){
pago = (HorasLab * CostoHora * 1.08) + 2000;
}
else if(HorasLab > 48){
pago = HorasLab * CostoHora * 1.07;
}
else{
pago = HorasLab * CostoHora * 1.03;
}
break;
case 2: if(AñosLab > 10 && HorasLab > 30){
pago = (HorasLab * CostoHora * 1.06) + 1800;
}
else if(HorasLab > 30){
pago = HorasLab * CostoHora * 1.05;
}
else{
pago = HorasLab * CostoHora * 1.02;
}
break;
default:JOptionPane.showMessageDialog(null,"Seleccione un grupo del menú","Mensaje de Error", JOptionPane.ERROR_MESSAGE);
}//fin del switch
JOptionPane.showMessageDialog(null,"Su pago de esta semana es: " + pago,"Pago semanal", JOptionPane.INFORMATION_MESSAGE);
}//Fin del while
}
}
martes, 24 de febrero de 2009
Solución en lenguaje Java a evaluación 1, grupo1
/*Una empresa fumiga cosechas contra plagas. Los valores cobrados dependen de lo que se desea fumigar
*y de cuántas hectáreas se fumigan, de acuerdo a la siguiente distribución:
a. Tipo 1: fumigación contra malas hierbas, 10 dólares por hectárea.
b. Tipo 2; fumigación contra langostas, 15 dólares por hectárea.
c. Tipo 3: fumigación contra gusanos, 20 dólares por hectárea.
d. Tipo 4: fumigación contra todo lo anterior, 30 dólares por hectárea.
Si el área a fumigar es mayor de 1.000 hectáreas, se da un 5% de descuento. Además,
a cualquier cuenta que sobrepase los 3.000 dólares se le descuenta un 10% sobre la cantidad
que exceda dicho precio. Por cada pedido se pide la siguiente información: tipo de fumigación
solicitada (1,2,3,4) y el número de hectáreas a fumigar. Por cada solicitud se debe suministrar el valor a pagar.*/
import javax.swing.*;
public class fumigaciones{
public static void main(String args[]){
String tipo,area;
int tipo_1=0,area_1=0,sale_switch=0,opcion_invalida;
Double cuenta1,excedente,pago=0.0,descuento2=0.0;
while(sale_switch == 0){
opcion_invalida = 0;
area = JOptionPane.showInputDialog("Digite el número de hectáreas que desea fumigar");
area_1 = Integer.parseInt(area);
tipo = JOptionPane.showInputDialog("Digite el tipo de fumigación que desea contratar \nTipo 1: Contra malas hierbas $10 por hectárea\nTipo 2: Contra langostas $15 por hectárea\nTipo 3: Contra gusanos $20 por hectárea\nTipo 4: Contra todo lo anterior $30 por hectárea\n5. Salir");
tipo_1 = Integer.parseInt(tipo);
switch(tipo_1){
case 1: if(area_1>1000){ //Si tiene derecho a un descuento del 5%
cuenta1 = area_1*10*0.95;
}
else{
cuenta1 = area_1*10.0;
}
if(cuenta1 > 3000){ //Si tiene derecho a un descuento del 10% sobre el excedente de 3000
excedente = cuenta1 - 3000;
descuento2 = excedente * 0.1;
}
pago = cuenta1 - descuento2;
descuento2 = 0.0;
// sale_switch = 1;
break;
case 2: if(area_1>1000){ //Si tiene derecho a un descuento del 5%
cuenta1 = area_1*15*0.95;
}
else{
cuenta1 = area_1*15.0;
}
if(cuenta1 > 3000){ //Si tiene derecho a un descuento del 10% sobre el excedente de 3000
excedente = cuenta1 - 3000;
descuento2 = excedente * 0.1;
}
pago = cuenta1 - descuento2;
descuento2 = 0.0;
//sale_switch = 1;
break;
case 3: if(area_1>1000){ //Si tiene derecho a un descuento del 5%
cuenta1 = area_1*20*0.95;
}
else{
cuenta1 = area_1*20.0;
}
if(cuenta1 > 3000){ //Si tiene derecho a un descuento del 10% sobre el excedente de 3000
excedente = cuenta1 - 3000;
descuento2 = excedente * 0.1;
}
pago = cuenta1 - descuento2;
descuento2 = 0.0;
// sale_switch = 1;
break;
case 4: if(area_1>1000){ //Si tiene derecho a un descuento del 5%
cuenta1 = area_1*30*0.95;
}
else{
cuenta1 = area_1*30.0;
}
if(cuenta1 > 3000){ //Si tiene derecho a un descuento del 10% sobre el excedente de 3000
excedente = cuenta1 - 3000;
descuento2 = excedente * 0.1;
}
pago = cuenta1 - descuento2;
descuento2 = 0.0;
//sale_switch = 1;
break;
case 5: sale_switch = 1;
opcion_invalida = 1;
break;
default: JOptionPane.showMessageDialog(null,"Seleccione un opción correcta");
opcion_invalida = 1;
break;
}//Fin del switch
if(opcion_invalida==0){
JOptionPane.showMessageDialog(null," areas: " + area_1 + "\ntipo: " + tipo_1 + "\nTotal a pagar: " + pago);
}
}//Fin del mientras
}
}
*y de cuántas hectáreas se fumigan, de acuerdo a la siguiente distribución:
a. Tipo 1: fumigación contra malas hierbas, 10 dólares por hectárea.
b. Tipo 2; fumigación contra langostas, 15 dólares por hectárea.
c. Tipo 3: fumigación contra gusanos, 20 dólares por hectárea.
d. Tipo 4: fumigación contra todo lo anterior, 30 dólares por hectárea.
Si el área a fumigar es mayor de 1.000 hectáreas, se da un 5% de descuento. Además,
a cualquier cuenta que sobrepase los 3.000 dólares se le descuenta un 10% sobre la cantidad
que exceda dicho precio. Por cada pedido se pide la siguiente información: tipo de fumigación
solicitada (1,2,3,4) y el número de hectáreas a fumigar. Por cada solicitud se debe suministrar el valor a pagar.*/
import javax.swing.*;
public class fumigaciones{
public static void main(String args[]){
String tipo,area;
int tipo_1=0,area_1=0,sale_switch=0,opcion_invalida;
Double cuenta1,excedente,pago=0.0,descuento2=0.0;
while(sale_switch == 0){
opcion_invalida = 0;
area = JOptionPane.showInputDialog("Digite el número de hectáreas que desea fumigar");
area_1 = Integer.parseInt(area);
tipo = JOptionPane.showInputDialog("Digite el tipo de fumigación que desea contratar \nTipo 1: Contra malas hierbas $10 por hectárea\nTipo 2: Contra langostas $15 por hectárea\nTipo 3: Contra gusanos $20 por hectárea\nTipo 4: Contra todo lo anterior $30 por hectárea\n5. Salir");
tipo_1 = Integer.parseInt(tipo);
switch(tipo_1){
case 1: if(area_1>1000){ //Si tiene derecho a un descuento del 5%
cuenta1 = area_1*10*0.95;
}
else{
cuenta1 = area_1*10.0;
}
if(cuenta1 > 3000){ //Si tiene derecho a un descuento del 10% sobre el excedente de 3000
excedente = cuenta1 - 3000;
descuento2 = excedente * 0.1;
}
pago = cuenta1 - descuento2;
descuento2 = 0.0;
// sale_switch = 1;
break;
case 2: if(area_1>1000){ //Si tiene derecho a un descuento del 5%
cuenta1 = area_1*15*0.95;
}
else{
cuenta1 = area_1*15.0;
}
if(cuenta1 > 3000){ //Si tiene derecho a un descuento del 10% sobre el excedente de 3000
excedente = cuenta1 - 3000;
descuento2 = excedente * 0.1;
}
pago = cuenta1 - descuento2;
descuento2 = 0.0;
//sale_switch = 1;
break;
case 3: if(area_1>1000){ //Si tiene derecho a un descuento del 5%
cuenta1 = area_1*20*0.95;
}
else{
cuenta1 = area_1*20.0;
}
if(cuenta1 > 3000){ //Si tiene derecho a un descuento del 10% sobre el excedente de 3000
excedente = cuenta1 - 3000;
descuento2 = excedente * 0.1;
}
pago = cuenta1 - descuento2;
descuento2 = 0.0;
// sale_switch = 1;
break;
case 4: if(area_1>1000){ //Si tiene derecho a un descuento del 5%
cuenta1 = area_1*30*0.95;
}
else{
cuenta1 = area_1*30.0;
}
if(cuenta1 > 3000){ //Si tiene derecho a un descuento del 10% sobre el excedente de 3000
excedente = cuenta1 - 3000;
descuento2 = excedente * 0.1;
}
pago = cuenta1 - descuento2;
descuento2 = 0.0;
//sale_switch = 1;
break;
case 5: sale_switch = 1;
opcion_invalida = 1;
break;
default: JOptionPane.showMessageDialog(null,"Seleccione un opción correcta");
opcion_invalida = 1;
break;
}//Fin del switch
if(opcion_invalida==0){
JOptionPane.showMessageDialog(null," areas: " + area_1 + "\ntipo: " + tipo_1 + "\nTotal a pagar: " + pago);
}
}//Fin del mientras
}
}
miércoles, 18 de febrero de 2009
Suscribirse a:
Comentarios (Atom)
