Oque há de errado?

9 respostas
F

Boa tarde!

Por favor o que há de errado com o resultado???

Obrigado,

/*
Uma empresa decidiu dar uma gratificação de natal a seus funcionários, baseada no número de
horas extras e no número de horas que o funcionário faltou no trabalho. O valor do prêmio é obtido
pela consulta a tabela que se segue, na qual:

H = número de horas extras ? (2/3 * (número de horas - faltas))

H (minutos)			 Prêmio
> 2.400				R$ 500,00
>= 1.800 e <2.400 	R$ 400,00
>= 1.200 e <1.800 	R$ 300,00
>= 600 e <1.200 	R$ 200,00
< 600 				R$ 100,00
 */

import javax.swing.*;

public class ExeA {
	public static void main(String args[]) {
		float h, extras, faltas;
		extras = Integer.parseInt(
				JOptionPane.showInputDialog("Digite a quantidade de horas extras: "));
		faltas = Integer.parseInt(
				JOptionPane.showInputDialog("Digite a quantidade de faltas: "));
				h = extras -((extras - faltas)* (2/3));
				h = h*60;
				if(h<600)
					JOptionPane.showMessageDialog(null, "Você fez " + extras/60 + " horas extras e faltou " + faltas/60 + " horas - Prêmio R$100,00");
				else 
					if(h>=600 && h<1200)
					JOptionPane.showMessageDialog(null, "Você fez " + extras/60 + " horas extras e faltou " + faltas/60 + " horas - Prêmio R$200,00");
				else 
					if(h>=1200 && h<1800)
					JOptionPane.showMessageDialog(null, "Você fez " + extras/60 + " horas extras e faltou " + faltas/60 + " horas - Prêmio R$300,00");
				else 
					if(h>=1800 && h<2400)
					JOptionPane.showMessageDialog(null, "Você fez " + extras/60 + " horas extras e faltou " + faltas/60 + " horas - Prêmio R$400,00");
				else 					
					JOptionPane.showMessageDialog(null, "Você fez " + extras/60 + " horas extras e faltou " + faltas/60 + " horas - Prêmio R$500,00");	
	}
}

9 Respostas

leandro.anjos

Errado é você utilizar o forum para conseguir ajuda para fazer o seu trabalho de faculdade.

Enquanto muitas pessoas estão trabalhando e com duvidas realmente importante, nos perdemos nosso tempo para abrir perguntas como a sua, ainda por cima, você coloca a sua pergunta junto com as duvidas de Java Avançado.

Espero que você consiga chegar ao resultado da sua questão e que estude muita lógica para que um dia também responda as perguntas realmente importantes que são feitas em forums.

L

Me explique uma coisa
na equação a variável FALTA, ela é um valor por hora?
Porque se for, ela está diminuindo um valor por dia por outro por minuto.

Na equação a interrogação é o sinal de subtração?
Linha: 6
H = número de horas extras ? (2/3 * (número de horas - faltas))

F

Leonardo,

A variável FALTA é em minutos e o sinál é de subtração sim…

muito obrigado

P

Velho, concordo plenamente com o que o Leandro falou.

isso é basico, e também os professores servem pra tirar duvidas.

E se fosse por mim, tu tomava um zero porquê ninguém fica digitando o numero de olhas que trabalhou e que faltou não. Coisa mais honesta. Assim não se aprente a programar de verdade. Tu teria que aprender a fazer isso ler de um arquivo (como nem e tao serio pode ser um TXT da vida) e ai, depois que lesse o nome de um funcionário e essas horas que daria o resultado.

1 coisa eu tenho certeza, teu professor nao quer saber o quao bem tu usa o JOptionPane, ele quer que você SOLUCIONE o problema.

Tu acha que tu deu uma solução?

P

Vou te dar uma dica de como fazer isso ai:

  1. Leia de um arquivo de texto, os campos :

Nome do funcionario
funcao
hroas trabalhadas
horas extras
nao precisa ler faltas, porque isso vai ser padrão pra maioria, dependendo do cargo. Entao o que falta, é o que o cara nao faltou (ai vc tem q tratar se for causa medica ou porque nao deu msm).

Depois q ler, faça o calculo e exiba. Pronto.

B

Não era mais fácil dividir por 6 na hora de imprimir o valor do prêmio?

T

Antes de ficarem brigando aqui, só vou dar uma sugestão: troque (2/3) por (2.0 / 3.0).

Justificativa? Tente imprimir (2/3). Em Java, isso dá zero.
Se você imprimir (2.0 / 3.0), dá 0.6666 … que é o que você quer.

Paulo_Faulstich

HoAIUHoIAUHOiuh. É massa.

:stuck_out_tongue:

T

A propósito, nunca use float para fazer contas.
Use sempre double (ou em determinadas condições, java.math.BigDecimal).

É pena que não existe um tipo como o System.Decimal do .NET Framework. Ele é mais ou menos como se fosse um tipo de ponto flutuante decimal, mas tem certas propriedades interessantes. Para fazer contas com dinheiro, ele dá resultados menos “inesperados”.

Criado 21 de maio de 2008
Ultima resposta 21 de mai. de 2008
Respostas 9
Participantes 7