Uma empresa armazena no arquivo pessoal.txt as seguintes informações para cada um de seus funcionários: matrícula do funcionário (int), classe do funcionário (1, 2 ou 3), horas de trabalho normal realizadas durante o mês (float), horas extras de trabalho realizadas durante o mês (float). Considere que os valores de pagamento por hora normal de trabalho para os funcionários das classes 1, 2 e 3 são, respectivamente: R e 28,00. Considere que o funcionário recebe R a mais por hora extra. Considere que os descontos correspondem a Considere que o funcionário recebe do salário bruto do funcionário. Escrever um programa para mostrar o demonstrativo dos totais da folha de pagamento desta empresa:
Total Bruto: R$ xxxxxx.xx
Total de Descontos: R$ xxxxxx.xx
Total Liquido a Pagar: R$ xxxxxx.xx
O programa deverá também gerar o arquivo folha.txt, com os valores individuais para cada funcionário:
Func xxx - Bruto: xxxx.xx - Desc: xxxx.xx - Liquido: xxxx.xx

Passo 1

O enunciado pede um programa que leia um arquivo pessoal.txt contendo, para cada funcionário: matrícula (int), classe (1,2 ou 3), horas normais (float) e horas extras (float). Precisamos calcular para cada funcionário o salário bruto, o desconto de 15% e o salário líquido, acumulando também os totais da folha: total bruto, total descontos e total líquido. Vamos usar operações de arquivo, laço de repetição, seleção (para definir o valor da hora) e cálculo aritmético.

Passo 2

Inicializamos três acumuladores em zero para somar os valores globais da folha de pagamento: total_bruto, total_descontos e total_liquido.
Abrimos o arquivo de entrada ‘pessoal.txt’ para leitura e o arquivo de saída ‘folha.txt’ para gravação. Em seguida, iteramos sobre cada linha do arquivo de entrada, fazendo o parsing de matrícula, classe, horas normais (h_n) e horas extras (h_e).

Passo 3

Definimos o valor da hora normal ® conforme a classe do funcionário: se classe == 1, r = 25; se classe == 2, r = 28; caso contrário (classe 3), r = 30.

Passo 4

Calculamos o salário bruto do funcionário com a fórmula abaixo, lembrando que a hora extra vale 50% a mais do que a hora normal:
bruto = hn cdot r + he cdot (r cdot 1.5)
Em seguida calculamos o desconto de 15% sobre o bruto e o salário líquido:
desconto = 0.15 cdot bruto
liquido = bruto - desconto
Atualizamos os acumuladores: total_bruto += bruto, total_descontos += desconto e total_liquido += liquido.

Passo 5

No mesmo laço, escrevemos no arquivo ‘folha.txt’ uma linha para cada funcionário no formato:
Func <matrícula> - Bruto: <bruto> - Desc: <desconto> - Liquido: <liquido>.

Passo 6

Após processar todos os funcionários, exibimos na tela os totais formatados com duas casas decimais: Total Bruto, Total de Descontos e Total Líquido a Pagar.
Essa estrutura garante que calculamos corretamente os salários individuais, geramos o arquivo de saída e acumulamos os totais da folha para exibir ao final.

Resposta

total_bruto = 0
total_descontos = 0
total_liquido = 0
abre ‘pessoal.txt’ para leitura
abre ‘folha.txt’ para escrita
para cada linha em ‘pessoal.txt’:
matricula, classe, h_n, h_e = parse(linha)
se classe == 1:
r = 25
senão se classe == 2:
r = 28
senão:
r = 30
bruto = h_n * r + h_e * r * 1.5
desconto = bruto * 0.15
liquido = bruto - desconto
total_bruto += bruto
total_descontos += desconto
total_liquido += liquido
escreve em ‘folha.txt’:
“Func {} - Bruto: {:.2f} - Desc: {:.2f} - Liquido: {:.2f}”.format(matricula, bruto, desconto, liquido)
imprime “Total Bruto: R$ {:.2f}”.format(total_bruto)
imprime “Total de Descontos: R$ {:.2f}”.format(total_descontos)
imprime “Total Liquido a Pagar: R$ {:.2f}”.format(total_liquido)

Exercícios relacionados