Está en la página 1de 3

Problema: Calcular el salario neto semanal de un trabajador en función de horas

trabajadas y la tasa de impuestos.

1) Las primeras 35 horas se pagan a tarifa normal.

2) Las horas que pasan de 35 se pagan 1.5 veces la tarifa normal.

3) Las tasas de impuestos son a:

a) Los primeros $300 son libres de impuestos.

b) Los siguientes $200 tienen un 15% de impuestos.

c) El resto tiene un 25% de impuestos.

String nombre=JOptionPane.showInputDialog("Nombre del trabajador");


int ht=Integer.parseInt(JOptionPane.showInputDialog("Horas trabajadas"));
double ph=Double.parseDouble(JOptionPane.showInputDialog("Pago por
hora"));

Una vez obtenidas las tres variables necesitamos conocer el salario bruto, para ello
hacemos:

double sb=0,imp=0,sn=0,aux;

//Para conocer el salario bruto


if(ht>35){
double tn=35*ph;
aux=ht-35;
double sx=aux*(ph*1.5);
sb=sx+tn;
}else{
sb=ht*ph;
}

El código indica que si las horas trabajadas es mayor a 35 se saca una tarifa neta con las
primeras 35 horas, y las horas que pasan de 35 se pagan a 1.5 veces más, para el sueldo
bruto se suman estos valores.

En caso de que las horas trabajadas sean menor a 35 horas, indica que no habrá aumento
en el pago de horas, simplemente se multiplica las horas trabajadas por el pago por hora.
Observamos que al inicio se declararon 4 variables más, esto es para poderlas utilizar
fuera de los bloques de código, por ejemplo la variable tn que se declara dentro de la parte
verdadera del if, solo se puede usar en ese bloque de código, por lo tanto las variabes sb,
sn,imp y aux que se manejan fuera de un bloque de código, se deben declarar fuera de un
bloque de código.

Después de conocer el salario bruto, el problema nos pide conocer los impuestos totales,
para esto programamos:

//Para conocer los impuestos


if(sb>300){
aux=sb-300;
if(aux>200){
double impx=200*0.15;
double impy=sb-500;
impy=impy*0.25;
imp=impx+impy;
sn=sb-imp;
}else{
imp=aux*0.15;
sn=sb-imp;
}
}else{
imp=0;
sn=sb-imp;
}

Si el sueldo bruto es meno a 300 no hay impuestos, si es mayor de 300 pero menor a 500
el impuesto será del 15%, en caso de que sea mayor que 500 el impuesto se calcula por 2
niveles: nivel 1 - de 300 a 500 con el 15%, nivel 2 - mayor a 500 con el 25% de impuesto
(Nótese que si llega al nivel 2, el impuesto del nivel 1 siempre serán 30).

Ahora solo falta imprimir los datos:

JOptionPane.showMessageDialog(null,"Trabajador: "+nombre+", Sueldo bruto:


"+sb+", Impuestos: "+imp+", Sueldo neto: "+sn);
Código completo utilizado
package pqtCondiciones;

import javax.swing.JOptionPane;

public class Salario {

public static void main(String[] args) {


String nombre=JOptionPane.showInputDialog("Nombre del
trabajador");
int ht=Integer.parseInt(JOptionPane.showInputDialog("Horas
trabajadas"));
double ph=Double.parseDouble(JOptionPane.showInputDialog("Pago
por hora"));
double sb=0,imp=0,sn=0,aux;
//Para conocer el salario bruto
if(ht>35){
double tn=35*ph;
aux=ht-35;
double sx=aux*(ph*1.5);
sb=sx+tn;
}else{
sb=ht*ph;
}
//Para conocer los impuestos
if(sb>300){
aux=sb-300;
if(aux>200){
double impx=200*0.15;
double impy=sb-500;
impy=impy*0.25;
imp=impx+impy;
sn=sb-imp;
}else{
imp=aux*0.15;
sn=sb-imp;
}
}else{
imp=0;
sn=sb-imp;
}

JOptionPane.showMessageDialog(null,"Trabajador: "+nombre+",
Sueldo bruto: "+sb+", Impuestos: "+imp+", Sueldo neto: "+sn);
}

También podría gustarte