Fazer um algoritmo que calcule e mostre o imposto de renda de um grupo de 10 contribuintes, considerando:
1 os dados de cada contribuinte (número de CPF, número de dependentes e renda anual) devem ser lidos externamente;
2 para cada contribuinte será feito um desconto de
6.000,00$ por cada dependente;
3 os valores da alíquota para cálculo do imposto são:
Renda bruta
Alíquota
até
900,00$
de
900,01
\mathrm{R} $1.800,00$
acima de
1.800,00$
isento
15%
25%
Renda bruta
até
de
acima de
isento
Passo 1
O que o problema pede (resumindo com todas as informações que foram dadas):
- Calcular e mostrar o imposto de renda para um grupo de
contribuintes. - Para cada contribuinte os dados lidos externamente são:
- número do CPF;
- número de dependentes;
- renda anual.
- Para cada dependente deve-se aplicar um desconto de
(ou seja, desconto por dependente em mesmas unidades da renda). - As alíquotas (aplicadas sobre a renda após desconto) são:
- renda até
: isento (imposto ); - renda de
até : alíquota (ou seja em forma decimal); - renda acima de
: alíquota (ou seja em forma decimal).
- renda até
- O enunciado pede um algoritmo que leia os dados dos
contribuintes, calcule o imposto de cada um e mostre o resultado (presume-se mostrar pelo menos o CPF e o valor do imposto).
Passo 2
Definição de variáveis e fórmulas (explicação didática do que cada variável significa):
-
: texto contendo o número do contribuinte (usado apenas para identificação). -
: número inteiro de dependentes informados pelo contribuinte. -
: renda anual lida para o contribuinte (mesma unidade usada nas faixas de imposto). -
: total de desconto por dependentes. Fórmula: Explicação: cada dependente reduz a base de cálculo em ; multiplicamos porque o desconto é proporcional ao número de dependentes. -
: base de cálculo do imposto, ou seja a renda já com o desconto aplicado. Fórmula: Observação importante: se ficar negativa (quando o desconto for maior que a renda), devemos tratar a base tributável como , porque não existe imposto sobre valor negativo. Assim: -
: valor do imposto a pagar, calculado por aplicação da alíquota sobre . Regra por faixas:
Explicação de porcentagem: alíquota
significa que o imposto é
partes de
da base; em cálculo multiplicamos por
. O mesmo raciocínio para
com multiplicador
.
Passo 3
Fluxo do algoritmo (descrito passo a passo, como executar na prática):
- Inicializar um contador
para percorrer os contribuintes: até . - Para cada
: - Ler externamente
(string), (inteiro) e (número; pode ser inteiro ou real). - Validar valores: garantir que
e . Se algum inválido, avisar e pedir reentrada (ou tratar conforme regra do ambiente). - Calcular
. - Calcular
. - Se
então definir . - Aplicar as faixas:
- se
então ; - senão se
então ; - senão
.
- se
- Arredondar
para duas casas decimais (opcional, mas prático para exibição). - Mostrar (exibir) o resultado na tela: pelo menos
e . Por exemplo: “CPF: XXXXXX, Imposto: R$ YYY,YY”.
- Ler externamente
- Repetir até processar os
contribuintes. - Opcional: ao final, mostrar um resumo (por exemplo total de impostos cobrados ou quantos isentos). Isso não foi exigido, mas pode ser útil.
Passo 4
Exemplo numérico detalhado (para que você entenda passo a passo como fazer a conta na prova):
- Suponha um contribuinte com
“12345678900”, , . - Calculamos:
Como
, aplica-se alíquota
:
Logo, para este exemplo o imposto a pagar é
. Mostraria-se algo como: “CPF 12345678900 — Imposto a pagar: R$ 4500,00”.
- Observação: todos os passos de multiplicação e subtração foram feitos em inteiros; se a renda preocupar casas decimais, faça os cálculos em números reais e arredonde o resultado final.
Passo 5
Casos especiais e boas práticas para a prova (o que verificar e o que pode dar errado):
- Se o enunciado usar “renda anual” e as faixas parecerem mensais, confie no enunciado (regra do enunciado bem formulado). Em prova, use as unidades dadas; se todas as entradas estiverem em reais/ano e as faixas em reais, compare diretamente.
- Sempre garantir que o desconto por dependente use a mesma unidade da renda. Se alguém inserir renda em centavos, padronize antes.
- Tratar entradas inválidas (dependentes negativos, renda negativa, CPF vazio): em prova, comente no enunciado que o algoritmo valida e pede reentrada ou pula registro e registra erro.
- Arredondamento: normalmente mostrar imposto com duas casas decimais. Em pseudocódigo, pode usar uma função
.
Passo 6
Implementação exemplo (pseudocódigo comentado na forma compacta). Este será o algoritmo final que você pode copiar/colar na prova (ou adaptar para a linguagem que preferir). As variáveis numéricas e constantes estão indicadas explicitamente.
Resposta
Algoritmo: