Java - soy nuevo en POO, alguien me ayuda con este ejercicio

 
Vista:
sin imagen de perfil

soy nuevo en POO, alguien me ayuda con este ejercicio

Publicado por Emanuel (9 intervenciones) el 28/10/2022 02:22:46
1
 
Captura-web_26-10-2022_215529_

quede por aquí y no se que hacer, me ayudan

import java.util.Scanner;

public class Nomina {
public static void main(String[] args) {
Scanner em=new Scanner(System.in);

double salario,salario_f;
int h_extras;
int h_trabajas;

System.out.println("INGRESA TU SALARIO");
salario=em.nextDouble();
System.out.println("HORAS EXTRAS TRABAJAS");
h_extras=em.nextInt();

if (h_extras <=40){
System.out.println("Valor por horas extras mensual"+);



se que todavía le falta
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Kabuto
Val: 3.428
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

soy nuevo en POO, alguien me ayuda con este ejercicio

Publicado por Kabuto (1381 intervenciones) el 28/10/2022 10:29:05
Ok, mira.
He cambiado algunas de las variables iniciales.

He añadido el cálculo de lo que vale una hora normal, este paso es imprescindible hacerlo antes de intentar calcular el valor de las horas extra.

Luego, he hecho el cálculo para el caso de que las horas sean 40 o menos.
Revísalo y asegúrate de que lo entiendes. Pregunta si es necesario.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
public class Nomina {
 
	public static void main(String[] args) {
		Scanner em=new Scanner(System.in);
 
		double salario, valorExtra;
		double v_horaNormal, v_horaExtra;
		int h_extras;
 
		System.out.println("INGRESA TU SALARIO");
		salario=em.nextDouble();
		System.out.println("HORAS EXTRAS TRABAJAS");
		h_extras=em.nextInt();
 
		//Calculamos valor hora normal
		v_horaNormal = salario / 240;
 
		if (h_extras <=40){
			//Sus horas extra valen el 125% de una hora normal
			v_horaExtra = 125 * v_horaNormal / 100;
			valorExtra = v_horaExtra * h_extras;
		}
		else {
			//Primeras 30 horas valen 150% de una normal
			//El resto de horas valen el 200%
		}
 
			System.out.println("Valor por horas extras mensual: " + valorExtra);
			System.out.println("Salario Final: " + (salario + valorExtra));
 
	}
 
}

Intenta tú ahora hacer para el caso de que sean más de 40.
Es un poco más difícil (solo un poco) porque hay dos tramos, las primeras 30 horas trabajadas tienen un valor distinto para el resto.
Así que hay que calcular dos valores distintos de horas extra.

Inténtalo y te ayudamos a completar si no lo consigues.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

soy nuevo en POO, alguien me ayuda con este ejercicio

Publicado por Emanuel (9 intervenciones) el 28/10/2022 23:16:14
gracias, voy a intentar hacerlo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Kabuto
Val: 3.428
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

soy nuevo en POO, alguien me ayuda con este ejercicio

Publicado por Kabuto (1381 intervenciones) el 29/10/2022 13:36:11
Añado el cálculo que faltaba.
Dijimos que hay dos tramos, las primeras 30 horas tienen un valor y el resto de horas otro.
Así que primero hay que calcular cuántas horas hay por encima de 30. Esto lo obtenemos restando 30 a la cantidad de horas extras.

A continuación calculamos que valor nos dan las primeras 30 horas, que cada una vale el 150% de una hora normal
Luego el valor de las siguientes horas, que cada una es el 200% de una normal.

Y la suma de estos dos valores, será el valor Extra que recibirá el empleado en su nómina

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
public class Nomina {
 
	public static void main(String[] args) {
		Scanner em=new Scanner(System.in);
 
		double salario, valorExtra;
		double v_horaNormal, v_horaExtra;
		int h_extras;
 
		System.out.println("INGRESA TU SALARIO");
		salario=em.nextDouble();
		System.out.println("HORAS EXTRAS TRABAJAS");
		h_extras=em.nextInt();
 
		//Calculamos valor hora normal
		v_horaNormal = salario / 240;
 
		if (h_extras <=40){
			//Sus horas extra valen el 125% de una hora normal
			v_horaExtra = 125 * v_horaNormal / 100;
			valorExtra = v_horaExtra * h_extras;
		}
		else {
			//Primeras 30 horas valen 150% de una normal
			//El resto de horas valen el 200%
 
			//Calculamos cuantas horas de diferencia hay por encima de las primeras 30
			int dif_horas = h_extras - 30;
			//Calculamos horas del primer tramo de 30 horas
			v_horaExtra = 150 * v_horaNormal / 100;
			valorExtra = v_horaExtra * 30;
			//Ahora calculamos valor del segundo tramo
			v_horaExtra = 200 * v_horaNormal / 100;
			//Incrementamos el valor extra, según el valor del resto de horas
			valorExtra = valorExtra + (v_horaExtra * dif_horas);
		}
 
		System.out.println("Valor por horas extras mensual: " + valorExtra);
		System.out.println("Salario Final: " + (salario + valorExtra));
 
		em.close();
	}
 
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

soy nuevo en POO, alguien me ayuda con este ejercicio

Publicado por Emanuel (9 intervenciones) el 29/10/2022 14:51:04
Muchas gracias, "kabuto".
en serio que intente y hasta mire unos videos en YouTube, pero lo que hizo fue mas confundirme, ahora estudiare el código y de nuevo gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar