Pesquisar no Python Iniciantes

segunda-feira, 30 de julho de 2012

Exercícios #28 (Reestruturado)

Boa noite galera!

EXERCÍCIO 12 DE ESTRUTURA DE DECISÃO REFEITO E COM EXPLICAÇÃO.

O 12° exercício diz assim:
“Faça um programa para o cálculo de uma folha de pagamento, sabendo que os descontos são do Imposto de Renda, que depende do salário bruto (conforme tabela abaixo) e 3% para o Sindicato e que o FGTS corresponde a 11% do Salário Bruto, mas não é descontado (é a empresa que deposita). O Salário Líquido corresponde ao Salário Bruto menos os descontos. O programa deverá pedir ao usuário o valor da sua hora e a quantidade de horas trabalhadas no mês."

Desconto do IR:
Salário Bruto até 900 (inclusive) – isento
Salário Bruto até 1500 (inclusive) – desconto de 5%
Salário Bruto até 2500 (inclusive) – desconto de 10%
Salário Bruto acima de 2500 – desconto de 20% Imprima na tela as informações, dispostas conforme o exemplo abaixo. No exemplo o valor da hora é 5 e a quantidade de hora é 220.

# -*- coding: latin-1 -*- valor_hora = float(input('Digite o valor da hora de trabalho: ')) quant_hora_trabalhada = float(input('Digite a quantidade de hora trabalhada no mês: ')) salario_bruto = (valor_hora*quant_hora_trabalhada) def descontos(salario_bruto): desc_sindicato = (salario_bruto/100)*3 fgts = (salario_bruto/100)*11 ir = 0 if salario_bruto <= 900: salario_liquido = salario_bruto - desc_sindicato elif salario_bruto <= 1500: ir = (salario_bruto/100)*5 salario_liquido = salario_bruto - desc_sindicato - ir elif salario_bruto <= 2500: ir = (salario_bruto/100)*10 salario_liquido = salario_bruto - desc_sindicato - ir else: ir = (salario_bruto/100)*20 salario_liquido = salario_bruto - desc_sindicato - ir imprime_desconto(salario_bruto, desc_sindicato, ir, fgts, salario_liquido) def imprime_desconto(salario_bruto, desc_sindicato, ir, fgts, salario_liquido): print(''' Salario Bruto: %.2f Desconto Sindicato: %.2f Desconto IR: %.2f FGTS: %.2f Salario Liquido: %.2f '''%(salario_bruto, desc_sindicato, ir, fgts, salario_liquido)) descontos(salario_bruto)
Bom esse programa ficou muito mais legível que o feito anteriormente não é?
Vou explica-lo passo a passo. Primeiro declarei três variáveis que são, valor_hora que como o nome já diz é a entrada do valor da hora, quant_hora_trabalhada que é a quantidade de horas trabalhadas no mês e salario_bruto que vai receber a multiplicação de (valor_hora x quant_hora_trabalhada). Após vemos que criei duas funções, uma para os descontos que recebe como parâmetro salario_bruto, e uma para imprimir que recebe todos os cálculos feitos na função desconto e imprime o resultado. Na função descontos a primeira linha calculamos o desconto do sindicato que é de 3% e guardamos o resultado na variável desc_sindicato, após calculamos o valor do fgts poderíamos separar o fgts e calculá-lo fora da função desconto pois como o programa diz ele não é descontado do salario bruto do funcionário mas para fazer uma coisa menos confusa calculei ele em descontos, e iniciei "ir" com 0, porque isso? simples, pois até 900 reais não temos desconto de imposto de renda eu poderia ter colocado dentro do primeiro if mas ai é escolha de cada um, o primeiro if(se) o salario_bruto for menor ou igual a 900, a variavel salario_liquido vai receber o desconto de salario bruto menos desconto_sindicato, atenção (como já dito antes se salario_bruto menor ou igual a 900 não temos desconto de ir) após temos os elifs(senão se) que calculam o salario_liquido igual ao if anterior porem com o desconto de ir(5%, 10%) respectivamente e o else(senão) quando o salário for maior que 2500. No fim da função instanciamos(entendam +- como chamamos) e enviamos para imprimir_descontos os respectivos resultados para serem imprimidos tais como salario_bruto, ir, salario_liquido, fgts...a função imprime_desconto apenas pega esses parâmetros e os imprime formatadamente. E no fim do programa instanciamos a função desconto com o parâmetro salario bruto como dito no começo da explicação, na verdade quando instanciamos uma função não enviamos parâmetros para elas e sim valores para os parâmetros da respectiva função é meio complicado mas por enquanto pensem que tudo é parâmetro só para não confundir muito. Bom pessoal é isso, qualquer dúvida comentem, mandem email... até a próxima!


2 comentários:

  1. Da hora o código muito simples com funções !
    vlw

    ResponderExcluir
  2. Da hora o código muito simples com funções !
    vlw

    ResponderExcluir