Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

LucasPS

Calcular pagamento de funcionario

Recommended Posts

Faça um programa em C que calcule o salário de um empregado baseado no número de horas que trabalhou, e no seu salário por hora. Notas: As horas extras (> 40) são pagas em dobro

 

o exercicio é esse, o que eu fiz ja foi: você bota quanto ele recebe por hora, e dps as horas dai ele multiplica e pronto, só que ele vai receber o dobro só o que exceder 40 horas, por ex. se ele trabalhar 50, pega 40 e multiplica pelas horas normais e pega 10 e multiplica pelo dobro

segue o code ai pra vcs me ajudarem a fazer ele ver oq excedeu os 40 e fazer o dobro:

#include <stdio.h>
main() {
	float hr,xphr,tot;
	printf("Informe o numero de horas que o funcionario trabalhou: ");
	scanf("%f",&hr);
	printf("Informe quanto esse funcionario recebe por hora: ");
	scanf("%f",&xphr);
	tot=(hr*xphr);
	if (hr>40) {
		tot=(hr*(xphr*2));
	}
	printf("Total do salario e': %f",tot);
printf("\n");
system("pause");
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

interessante é você fazer assim pra ficar facil!

oq ele trabalhow até 40 hrs armazena em uma variavel o total, e as hrs q passarem de 40 você armazena em outra variavel e no final junta as 2, chegou a entender??

exemplinho aki pra você:

printf("Informe o numero de horas que o funcionario trabalhou: ");
	scanf("%f",&hr);
	if(hr>40) aux = hr - 40;
	printf("Informe quanto esse funcionario recebe por hora: ");
	scanf("%f",&xphr);
	tot=(hr*xphr);
	if (hr>40) {
		tot2=(aux*(xphr*2));
	}
	printf("Total do salario e': %f",tot+tot2);

[]'s

 

---Título editado---

 

[Ajuda] Calcular pagamento de funcionario http://forum.imasters.com.br/public/style_emoticons/default/seta.gif Calcular pagamento de funcionario[/b]

Compartilhar este post


Link para o post
Compartilhar em outros sites

esse exemplo que você fez ja ta pronto funcionando?

ele ta salvando as horas extras no aux?

 

da uma olhada como eu fiz e ve se da pra melhorar:

#include <stdio.h>
#include <stdlib.h>
main() {
	float h,ph,tot,he,tot2,tot3;
	printf("Informe as horas que o funcionario trabalhou: ");
	scanf("%f",&h);
	printf("Informe quanto ele recebe por hora: ");
	scanf("%f",&ph);
	  if (hr<=40) {
		tot=(h*ph);
		printf("O Salario eh: %f",tot);
	}
	if (h>40){
		he=(h-40);
		tot2=(40*ph);
		tot3=(he*(2*ph));
		tot= (tot2+tot3);
		printf("TOTAL:: %3.2f\n",tot);
	}
	system("pause");
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

da pra dar uma enxugadinha de leve, eu crio variavel + você cria bem + hein :lol:!

+ cheguei a compilar + acho q esta correto sim!

 

[]'z

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mano seu codigo esta compilando mas ñ esta respondendo o esperado

veja se eu entendi o problema se o funcionario trabalhar 50 horas (ele tem 40hr normais e 10hr extras) Segue exemplo. Com um salario de 300,00 entao seria 300,00 por 40hr e as 10hrs extra tem que ser baseada no salario base e pagas em dobro ou seja 300/40=7,50 logo as (10*7,50*2)+300,00=450

Entao eu colocaria u if assim:

if (h>=40)

	 printf ("\n\n O Salario e: %.2f",(((sal/40)*2)*(h-40)+sal));
OBS: sal = No lugar onde você entrou com o valor da hora trabalhada entre com o salario total do funcionario e ai colo uma variavel.

Qualquer duviva post ai e vamos ver no que o seu codigo

Compartilhar este post


Link para o post
Compartilhar em outros sites

esse do quit deu 200 reais a mais do que seria o certo hehe

tpw

seria assim trabalhou 50 horas, recebendo 20 por hora

dai pega 40*20=800

e os 10 da hora extra ficaria 10*(20*2)=400 certo?

oq eu fiz ta assim, mais daria pra da uma enxugada nao sei como hehe

Compartilhar este post


Link para o post
Compartilhar em outros sites

Veja como fica o codigo

# include <stdio.h>
#include <stdlib.h>
main ()
{
	 float sal, hora;
	 printf ("Informe o salario base: ");
	 scanf ("%f",&sal);
	 printf ("Informe quantas horas trabalhadas: ");
	 scanf ("%f",&hora);

	 if (hora>40)

	 printf ("\n\n O Salario e: %.2f\n",(((sal/40)*2)*(hora-40)+sal));

	 else if(hora<=40)
	 printf ("\n\n O Salario e: %.2f\n",sal);

	 system ("pause");
	 return (0);
	 }

OBS: Se a hora trabalhada for maior que 40 ele vai pargar as 40horas com salario base e as extras em dobro e se a hora for menor ou igual a 40 só pagara o salario base. Se você quiser ou se o proprio programa requerer mais condições falai que a gente da uma olhada.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Roberto, voce ta fazendo como salario base, mais é tipo, informar as horas que ele trabalhou e quanto ele recebe por hora manja? essa quantia que ele recebe por hora o usuario que vai informar tb

se ele trabalho 40 e ganha 20 por hora ele recebeu 800

agora se ele trabalhou 50 vai receber 1200

800 das 40 e 400 das 10 pagando o dobro

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mano veja o seu enuciado

Faça um programa em C que calcule o salário de um empregado baseado no número de horas que trabalhou, e no seu salário por hora. Notas: As horas extras (> 40) são pagas em dobro
você ñ quer rsumir o seu codigo??????????????

só altere o segundo if, seja o codigo corrigido.

# include <stdio.h>
#include <stdlib.h>
main ()
{
	 float sal, hora;
	 printf ("Informe o salario base: ");
	 scanf ("%f",&sal);
	 printf ("Informe quantas horas trabalhadas: ");
	 scanf ("%f",&hora);

	 if (hora>40)

	 printf ("\n\n O Salario e: %.2f\n",(((sal/40)*2)*(hora-40)+sal));

	 else if(hora<=40)
	 printf ("\n\n O Salario e: %.2f\n",((sal/40)*hora));
	 system ("pause");
	 return (0);
	 }
Agora garanto pra você que esta resolvendo td certo e bem resumido

Compartilhar este post


Link para o post
Compartilhar em outros sites

velho, sua conta ta errada, posso estar enganado, pense comigo:

o funcionario recebe 20 reais por hora

ele trabalhou 40 horas, entao ele recebeu 800 reais.

as horas extras ele recebe o dobro, ou seja, 40 reais por hora

se ele trabalhar 50, ele recebe 1.200 reais (800 das 40 horas e 400 das 10 horas)

 

esse que o quit fez ta certo, só que ta dando 200 reais no total a mais do que seria o certo, ele ta contando o dobro de 20 que eu coloco nas horas como 60 hehe

# include <stdio.h>
#include <stdlib.h>
main (){
	float hr,ex,xphr,tot,tot2;
	printf("Informe o numero de horas que o funcionario trabalhou: ");
	scanf("%f",&hr);
	if(hr>40) ex=hr-40;
	printf("Informe quanto esse funcionario recebe por hora: ");
	scanf("%f",&xphr);
	tot=(hr*xphr);
	if (hr>40) {
		tot2=(ex*(xphr*2));
	}
	printf("Total do salario eh: %.2f\n",tot+tot2);
	 system ("pause");
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mano veja como você esta enganado

você disse 20,00 por hora isso significa que o salario base é de Qt?????? 800,00 ou seja 20,00*40=800,00

e se o cara tem mais 10 horas extras são 10*20,00*2=400,00 no final tem que somar 800,00+400,00=1.200,00!!!!!!!!!!!

 

Mano compila o meu ultimo codigo com salario de 800,00 e com 50 horas trabalhada e compara se ñ da na mesma

 

faz bem fazer o teste de mesa amigo!!!!!!!!!!!!!!!!!!!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

entao mano, no teu eu tenho que saber quanto ele ja recebeu pelas 40 horas pra por la e ele "somar" as horas extras, mais o que pede é pra por só quantas horas ele trabalhou e quanto recebe por hora e ele ja te diz quanto recebeu contando horas extras ja

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pra findar a duvida

# include <stdio.h>
#include <stdlib.h>
main (){
	 float sal, hora;
	 printf ("Informe o valor da hora trabalhada: ");
	 scanf ("%f",&sal);
	 printf ("Informe quantas horas trabalhadas: ");
	 scanf ("%f",&hora);
	 if (hora>40)
	 printf ("\n\n O Salario e: %.2f\n",(((hora-40)*2)*sal)+(sal*40));
	 else if(hora<=40)
	 printf ("\n\n O Salario e: %.2f\n",(sal*hora));
	 system ("pause");
	 return (0);	 }

http://forum.imasters.com.br/public/style_emoticons/default/clap.gif http://forum.imasters.com.br/public/style_emoticons/default/clap.gif http://forum.imasters.com.br/public/style_emoticons/default/clap.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.