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.
“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!
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!
Da hora o código muito simples com funções !
ResponderExcluirvlw
Da hora o código muito simples com funções !
ResponderExcluirvlw
eu tenho dificuldade no defenir funcoes
ResponderExcluirEste comentário foi removido pelo autor.
ResponderExcluirInteressante veja como eu fiz o meu.
ResponderExcluirhttps://replit.com/@Felipegpd12/Atividades#Atividade2.py