Mexicano Postado Outubro 1, 2010 Denunciar Share Postado Outubro 1, 2010 (editado) Estou começando o curso de C# e estou com problemas..Segue o exercicio:Faça um algoritmo que peça o valor da hora trabalhada para um funcionárioque trabalhe por hora, número de horas trabalhadas no mês, e o percentual dedesconto do INSS. O algoritmo deverá mostrar o salário bruto, o valor descontadoo valor do salário líquido do funcionário. :blink: :huh: static void Main(string[] args) { int horaT, inss, insss, nHORAS, salarioB, desconto, salarioL; Console.WriteLine("Valor da hora trabalhada: "); horaT = Convert.ToInt16(Console.ReadLine()); Console.WriteLine("Percentual do INSS: "); insss = Convert.ToInt16(Console.ReadLine()); Console.WriteLine("Horas trabalhadas ao mês: "); nHORAS = Convert.ToInt16(Console.ReadLine()); salarioB = horaT * nHORAS; Console.WriteLine("Valor do salario bruto: {0}", salarioB); Console.ReadLine(); inss = (insss / 100); salarioL = salarioB - inss; Console.WriteLine("Valor do salario liquido: {0}", salarioL); Console.ReadLine(); desconto = salarioL - (salarioL - inss); Console.WriteLine("Valor descontado: {0}", desconto); Console.ReadLine(); } } }[/color]resultado do debug!O que eu posso editar para que de certo??OBRIGADO Editado Outubro 4, 2010 por Mexicano Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jonathan Queiroz Postado Outubro 1, 2010 Denunciar Share Postado Outubro 1, 2010 Movendo: C, C++ --> .NET.Tente armazenar o salário bruto e salário líquido como números de ponto flutuante e veja se funciona. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Mexicano Postado Outubro 4, 2010 Autor Denunciar Share Postado Outubro 4, 2010 Tentei jogar eles como float e double....porém sem resultadosto encucado, porque acho que os calculos estão certos...é algum outro detalhe q eu perdi Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jonathan Queiroz Postado Outubro 4, 2010 Denunciar Share Postado Outubro 4, 2010 Ao invés de:salarioL = salarioB - inss; O correto seria: salarioL = salarioB - inss*salarioB; Como você mostra o valor descontado depois, o ideal seria calcular o desconto antes e depois simplesmente subtrair: inss = (insss / 100); desconto = inss * salarioB; salarioL = salarioB - desconto; Console.WriteLine("Valor do salario liquido: {0}", salarioL); Console.ReadLine(); Console.WriteLine("Valor descontado: {0}", desconto); Console.ReadLine();Poste aí se funcionou ou não. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Mexicano Postado Outubro 4, 2010 Autor Denunciar Share Postado Outubro 4, 2010 Obrigado pela correção do calculo do salarioL...realmente estava erradoporém,apesar da troca da ordem, o debug deu no mesmo.ainda apresenta o desconto como 0 e o salarioL fica = ao salarioBsalarioB = horaT * nHORAS; Console.WriteLine("Valor do salario bruto: {0}", salarioB); Console.ReadLine(); inss = (insss / 100); desconto = inss * salarioB; Console.WriteLine("Valor descontado: {0}", desconto); Console.ReadLine(); salarioL = salarioB - desconto; Console.WriteLine("Valor do salario liquido: {0}", salarioL); Console.ReadLine(); Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jonathan Queiroz Postado Outubro 4, 2010 Denunciar Share Postado Outubro 4, 2010 Você está declarando as variáveis como float?Aqui funcionou perfeitamente. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Mexicano Postado Outubro 4, 2010 Autor Denunciar Share Postado Outubro 4, 2010 (editado) Sim, tentei como double e floatint horaT, insss, nHORAS; float salarioB, salarioL, inss, desconto;você poderia postara sua resolução completa para eu comparar, tenho certeza que errei em alguma outra parte Editado Outubro 4, 2010 por Mexicano Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jonathan Queiroz Postado Outubro 4, 2010 Denunciar Share Postado Outubro 4, 2010 A variável inss também deve ser float, já que você vai dividí-la por 100 (outra opção é convertê-la para float antes). Segue o código completo:static void Main(string[] args) { float horaT, inss, insss, nHORAS, salarioB, desconto, salarioL; Console.WriteLine("Valor da hora trabalhada: "); horaT = Convert.ToInt16(Console.ReadLine()); Console.WriteLine("Percentual do INSS: "); insss = Convert.ToInt16(Console.ReadLine()); Console.WriteLine("Horas trabalhadas ao mês: "); nHORAS = Convert.ToInt16(Console.ReadLine()); salarioB = horaT * nHORAS; Console.WriteLine("Valor do salario bruto: {0}", salarioB); Console.ReadLine(); inss = (insss / 100); desconto = inss * salarioB; salarioL = salarioB - desconto; Console.WriteLine("Valor do salario liquido: {0}", salarioL); Console.ReadLine(); Console.WriteLine("Valor descontado: {0}", desconto); Console.ReadLine(); } Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Mexicano Postado Outubro 4, 2010 Autor Denunciar Share Postado Outubro 4, 2010 (editado) PERFEITOOOO!!!mas que ignorância a minha! hahahaMuito obrigado mesmooo.agora espero não errar mais com essas "besteirinhas". Editado Outubro 4, 2010 por Mexicano Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jonathan Queiroz Postado Outubro 4, 2010 Denunciar Share Postado Outubro 4, 2010 De nada, qualquer coisa é só postar!Um coisa que não tinha visto: como as variáveis são float o mais correto seria converter para ponto flutuante ao invés de short int (UInt16), mas isso só atrapalha se o usuário digitar valores com casas decimais.Obs.:O tópico foi marcado como Resolvido. Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Mexicano
Estou começando o curso de C# e estou com problemas..
Segue o exercicio:
Faça um algoritmo que peça o valor da hora trabalhada para um funcionário
que trabalhe por hora, número de horas trabalhadas no mês, e o percentual de
desconto do INSS. O algoritmo deverá mostrar o salário bruto, o valor descontado
o valor do salário líquido do funcionário. :blink: :huh:
resultado do debug!
O que eu posso editar para que de certo??
OBRIGADO
Editado por MexicanoLink para o comentário
Compartilhar em outros sites
9 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.