Faça um programa, utilizando as funções descritas, que calcula e exibe o salário de 50 pessoas. O programa deverá apresentar para cada pessoa, um menu com as opções abaixo, calcular e exibir o salário. Faça a função menu que exibe as opções abaixo, lê e retorna a opção escolhida pelo usuário. Para cada uma das opções do menu o seu programa deverá chamar a função apropriada para o cálculo do salário. Nestas funções deverão ser lidos os dados de entrada apropriados e o valor do salário deverá ser retornado. O menu deverá possuir as seguintes opções:
1 - Horista (dados a serem lidos: valor da hora de trabalho e quantidade de horas trabalhadas)
2 - Contratado (dado a ser lido: salário)
3 - Prestador de serviço (dados a serem lidos: quantidade de serviços prestados e para cada serviço o seu valor).
1 - Horista (dados a serem lidos: valor da hora de trabalho e quantidade de horas trabalhadas)
2 - Contratado (dado a ser lido: salário)
3 - Prestador de serviço (dados a serem lidos: quantidade de serviços prestados e para cada serviço o seu valor).
Passo 1
Beleza, vamos resolver esse exercício de programação juntos! A parada é criar um programa que calcula e mostra o salário de 50 pessoas. A gente vai usar funções pra deixar o código organizado. Vamos precisar saber sobre funções, estruturas de repetição (como o
for
), e como criar menus de opções. Além disso, vamos lidar com diferentes tipos de trabalhadores: Horista, Contratado e Prestador de serviço. Bora lá!Passo 2
Primeiro, precisamos pensar em como vamos estruturar nosso programa. Vamos precisar de uma função principal que vai controlar as 50 pessoas. Para cada pessoa, vamos mostrar um menu com as opções de tipo de trabalhador. Dependendo da escolha, vamos chamar a função correspondente para calcular o salário.
Passo 3
Vamos criar a função do menu. Essa função vai exibir as opções e ler a escolha do usuário. Ela vai retornar a opção escolhida, que vamos usar pra decidir qual função chamar depois.
def menu():
print("Escolha o tipo de trabalhador:")
print("1 - Horista")
print("2 - Contratado")
print("3 - Prestador de serviço")
opcao = int(input("Digite a opção desejada: "))
return opcao
Passo 4
Agora, vamos criar as funções para cada tipo de trabalhador. Cada função vai ler os dados necessários, calcular o salário e retornar o valor.
Função para Horista:
Aqui, a gente precisa do valor da hora e da quantidade de horas trabalhadas. O salário é simplesmente o valor da hora multiplicado pelas horas trabalhadas.
def calcular_horista():
valor_hora = float(input("Digite o valor da hora de trabalho: "))
horas_trabalhadas = float(input("Digite a quantidade de horas trabalhadas: "))
salario = valor_hora * horas_trabalhadas
return salario
Função para Contratado:
Para o contratado, o salário já é fixo, então só precisamos ler esse valor.
def calcular_contratado():
salario = float(input("Digite o salário: "))
return salario
Função para Prestador de Serviço:
Nesse caso, a gente precisa saber quantos serviços foram prestados e o valor de cada serviço. O salário será a soma de todos os valores dos serviços.
def calcular_prestador_servico():
quantidade_servicos = int(input("Digite a quantidade de serviços prestados: "))
total = 0
for i in range(1, quantidade_servicos + 1):
valor_servico = float(input(f"Digite o valor do serviço {i}: "))
total += valor_servico
return total
Passo 5
Agora, vamos juntar tudo no programa principal. Vamos usar um loop para repetir o processo para as 50 pessoas. Para cada pessoa, mostramos o menu, chamamos a função apropriada para calcular o salário e exibimos o resultado.
def main():
for pessoa in range(1, 51):
print(f"\nCalculando salário da pessoa {pessoa}")
opcao = menu()
if opcao == 1:
salario = calcular_horista()
elif opcao == 2:
salario = calcular_contratado()
elif opcao == 3:
salario = calcular_prestador_servico()
else:
print("Opção inválida. Salário não calculado.")
continue
print(f"O salário da pessoa {pessoa} é: R$ {salario:.2f}")
Resposta
Aqui está o código completo que realiza o que foi pedido:
def menu():
print("\nEscolha o tipo de trabalhador:")
print("1 - Horista")
print("2 - Contratado")
print("3 - Prestador de serviço")
while True:
try:
opcao = int(input("Digite a opção desejada: "))
if opcao in [1, 2, 3]:
return opcao
else:
print("Opção inválida. Tente novamente.")
except ValueError:
print("Entrada inválida. Por favor, digite um número.")
def calcular_horista():
while True:
try:
valor_hora = float(input("Digite o valor da hora de trabalho: R$ "))
if valor_hora < 0:
print("Valor da hora não pode ser negativo.")
continue
break
except ValueError:
print("Entrada inválida. Por favor, digite um número.")
while True:
try:
horas_trabalhadas = float(input("Digite a quantidade de horas trabalhadas: "))
if horas_trabalhadas < 0:
print("Horas trabalhadas não podem ser negativas.")
continue
break
except ValueError:
print("Entrada inválida. Por favor, digite um número.")
salario = valor_hora * horas_trabalhadas
return salario
def calcular_contratado():
while True:
try:
salario = float(input("Digite o salário: R$ "))
if salario < 0:
print("Salário não pode ser negativo.")
continue
return salario
except ValueError:
print("Entrada inválida. Por favor, digite um número.")
def calcular_prestador_servico():
while True:
try:
quantidade_servicos = int(input("Digite a quantidade de serviços prestados: "))
if quantidade_servicos < 0:
print("Quantidade de serviços não pode ser negativa.")
continue
break
except ValueError:
print("Entrada inválida. Por favor, digite um número inteiro.")
total = 0
for i in range(1, quantidade_servicos + 1):
while True:
try:
valor_servico = float(input(f"Digite o valor do serviço {i}: R$ "))
if valor_servico < 0:
print("Valor do serviço não pode ser negativo.")
continue
total += valor_servico
break
except ValueError:
print("Entrada inválida. Por favor, digite um número.")
return total
def main():
print("=== Cálculo de Salários ===")
for pessoa in range(1, 51):
print(f"\n--- Pessoa {pessoa} ---")
opcao = menu()
if opcao == 1:
salario = calcular_horista()
elif opcao == 2:
salario = calcular_contratado()
elif opcao == 3:
salario = calcular_prestador_servico()
print(f"O salário da pessoa {pessoa} é: R$ {salario:.2f}")
if __name__ == "__main__":
main()
Explicação Adicional:
-
Validação de Entrada: Adicionei verificações para garantir que o usuário insira valores válidos, como números positivos.
-
Formatação Monetária: Usei a formatação
:.2f
para exibir o salário com duas casas decimais, que é comum para valores monetários. -
Estrutura do Programa: A função
main()
controla o fluxo do programa, iterando 50 vezes para calcular o salário de cada pessoa. -
Funções Modulares: Cada tipo de trabalhador tem sua própria função para manter o código organizado e facilitar possíveis alterações futuras.
Agora é só rodar o programa e seguir as instruções para calcular os salários das 50 pessoas!