Uma determinada empresa deseja dar um aumento de salário para seus funcionários. O ajuste deve obedecer a tabela abaixo. Faça um programa para ler o nome e o salário atual dos funcionários e calcular seu aumento e seu novo salário. O programa deverá parar quando o salário a ser lido for igual a -1 e deverá exibir, para cada funcionário, a seguinte frase: O funcionário \_\_\_\_ terá aumento de R$ \_\_\_\_e passará a receber R$
\_\_\_\_ .
Salário Atual Ação
Até R$900,00 Aumento de 20%
Acima de R$900,00 até R$1.300,00 Aumento de 15%
Acima de R$1.300,00 até R$1.800,00 Aumento de 10%
Acima de R$1.800,00 Aumento de 5%

Passo 1

O enunciado pede que façamos um programa que lê o nome e o salário atual dos funcionários e, para cada funcionário, calcule o valor do aumento e o novo salário, imprimindo a frase:
O funcionário \_\_\_\_ terá aumento de R$ \_\_\_\_ e passará a receber R$ \_\_\_\_.
O programa deve parar quando o salário lido for igual a -1.
Informações relevantes fornecidas pelo enunciado:
  • A leitura envolve dois dados por funcionário: o nome e o salário atual.
  • Condição de parada (sentinela): salário igual a -1.
  • A tabela de aumentos:
    • Até R$ 900{,}00: aumento de 20\%.
    • Acima de R$ 900{,}00 até R$ 1.300{,}00: aumento de 15\%.
    • Acima de R$ 1.300{,}00 até R$ 1.800{,}00: aumento de 10\%.
    • Acima de R$ 1.800{,}00: aumento de 5\%.
Observação importante: a sentença de parada é baseada no salário lido (sentinela). Não devemos processar ou imprimir nada quando o salário lido for -1.

Passo 2

Escolha do fluxo de leitura (decisão prática para a prova)
  • Podemos ler primeiro o nome e depois o salário, ou primeiro o salário e depois o nome. Eu escolho ler primeiro o salário e verificar a sentinela porque assim evitamos pedir o nome quando o usuário só quer terminar (economiza uma leitura desnecessária). Essa é uma escolha prática que facilita a implementação e evita imprimir informações para o caso de término.
  • Logo o fluxo será:
    1. Ler salário.
    2. Se o salário for -1 → terminar.
    3. Senão → ler nome → calcular aumento e novo salário → imprimir a frase → voltar ao passo 1.

Passo 3

Fórmula para calcular o aumento e o novo salário (aula rápida)
  • Se chamarmos o salário atual de \text{sal} e a porcentagem de aumento (como número percentual) de p (por exemplo, p=20\%), então:
\text{aumento} = \text{sal} \times \frac{p}{100}
\text{novo\_salário} = \text{sal} + \text{aumento}á
  • Explicando cada variável:
    • \text{sal} é o salário atual (número real).
    • p é a porcentagem do aumento (por exemplo, 20\% significa p=20).
    • \text{aumento} é o valor monetário que será somado ao salário.
    • \text{novo\_salário}á é o salário final após o aumento.
Exemplo numérico passo a passo (pega a ideia):
  • Se \text{sal} = 800{,}00 e a tabela diz aumento de 20\%: \text{aumento} = 800{,}00 \times \frac{20}{100} = 800{,}00 \times 0{,}20 = 160{,}00
\text{novo\_salário} = 800{,}00 + 160{,}00 = 960{,}00á
  • Sempre arredonde/formatte para duas casas decimais ao exibir (R$ com centavos).

Passo 4

Como decidir a porcentagem p a partir do salário (lógica condicional)
  • Use estruturas condicionais (if / elif / else) para verificar em qual faixa o salário se encontra.
  • Em pseudocódigo a lógica é:
    • se \text{sal} \le 900{,}00 então p = 20\%
    • senão se \text{sal} \le 1300{,}00 então p = 15\%
    • senão se \text{sal} \le 1800{,}00 então p = 10\%
    • senão p = 5\%
  • Nota sobre os limites: as faixas são “até” inclusive para o limite superior da faixa. Por exemplo, salário exatamente igual a R$ 900{,}00 recebe 20\%.

Passo 5

Detalhamento do algoritmo final (passo a passo que dá para escrever na prova)
  1. Repetir indefinidamente:
    1. Ler a entrada de salário (permita que o usuário use vírgula ou ponto decimal).
    2. Converter o texto lido para número real.
    3. Se o salário for igual a -1 → interromper o laço.
    4. Ler o nome do funcionário.
    5. Determinar p seguindo a tabela de faixas (ver Passo 4).
    6. Calcular: \text{aumento} = \text{salário} \times \frac{p}{100}á
\text{novo\_salário} = \text{salário} + \text{aumento}áá
  1. Formatar os valores monetários com duas casas decimais.
  2. Imprimir:
    O funcionário \langlenome \rangle terá aumento de R$ \langleaumento \rangle e passará a receber R$ \langlenovo_salário \rangle.
  3. Fim.
Dicas práticas:
  • Ao comparar com -1 use a igualdade exata porque o usuário digitou um literal de término.
  • Para exibir R$ com vírgula decimal (padrão BR), formate com duas casas e depois troque o ponto por vírgula (se usar uma linguagem que produz ponto decimal por padrão).
  • Trate entradas inválidas com cuidado (na prova você pode assumir que a entrada segue o formato correto, a menos que peçam o contrário).

Passo 6

Implementação de exemplo em Python (linha a linha com explicações rápidas)
  • Vou mostrar uma versão limpa que você pode copiar e entender na prova ou no laboratório. A implementação:
    • Lê o salário primeiro (permite vírgula ou ponto).
    • Checa sentinela -1.
    • Lê o nome e calcula conforme as faixas.
    • Imprime no formato pedido com duas casas decimais e vírgula decimal.
Explicação das partes do código (resumida):
  • Substituir vírgula por ponto para aceitar entrada no formato brasileiro.
  • Converter para float.
  • Função auxiliar para formatar moeda com duas casas e vírgula decimal.
  • Estrutura if/elif/else para decidir a porcentagem.
  • Cálculo conforme fórmulas do Passo 3.
  • Impressão da frase exatamente como pedida.

Passo 7

Exemplo de execução (simulação manual)
Suponha as entradas (cada par = salário → nome), e mostramos a saída:
  • Entrada: \;800{,}00 → “Ana”
    • Faixa: \le 900{,}00 \Rightarrow p=20\%
    • Aumento: \;160{,}00
    • Novo salário: \;960{,}00
    • Saída: O funcionário Ana terá aumento de R$160,00 e passará a receber R$ 960,00.
  • Entrada: \;1500{,}00 → “Bruno”
    • Faixa: \le 1800{,}00 e >1300{,}00 \Rightarrow p=10\%
    • Aumento: \;150{,}00
    • Novo salário: \;1650{,}00
    • Saída: O funcionário Bruno terá aumento de R$150,00 e passará a receber R$ 1650,00.
  • Entrada: -1 → programa termina (não lê nome, não imprime nada).

Resposta

def format_moeda(valor):
    return format(valor, ".2f").replace(".", ",")

while True:
    sal_str = input("Salário (ou -1 para terminar): ").strip()
    sal_str = sal_str.replace(",", ".")
    try:
        sal = float(sal_str)
    except ValueError:
        print("Entrada inválida. Digite um número para o salário.")
        continue

    if sal == -1.0:
        break

    nome = input("Nome: ").strip()

    if sal <= 900.00:
        p = 0.20
    elif sal <= 1300.00:
        p = 0.15
    elif sal <= 1800.00:
        p = 0.10
    else:
        p = 0.05

    aumento = sal * p
    novo_sal = sal + aumento

    print(f"O funcionário {nome} terá aumento de R\({format_moeda(aumento)} e passará a receber R\) {format_moeda(novo_sal)}.")

Exercícios relacionados