Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Alasca

Visualg Cálculo Imposto de Renda

Recommended Posts

Olá

Preciso criar um algoritmo que calcule o valor do salário líquido de uma pessoa com base no desconto do imposto de renda, sendo que: (salário líquido = salário bruto– imposto de renda).

Quero que o algoritmo calcule o salário líquido de acordo com cada faixa de renda.

Já iniciei meu código que está assim:

 

var
   salarioB, imposto: real


inicio
// Seção de Comandos 
    //A tabela atual do IRRF é:
       //Base de cálculo mensal | Alíquota | Parcela a deduzir
      //Até 1.787,77 | - | -
     //De 1.787,78 até 2.679,29 | 7,5 | 134,08
    //De 2.679,30 até 3.572,43 | 15,0 | 335,03
   //De 3.572,44 até 4.463,81 | 22,5 | 602,96
  //Acima de 4.463,81 | 27,5 | 826,15
  
escreva("Digite o salário:")
leia (salarioB)


se (salarioB<=1787.77) entao
   escreval("Isento de Imposto de Renda")
senao
se (salarioB>=1787.78) entao
imposto<- salarioB*0.075-134.08
senao
se (salarioB>=2679.30) entao
imposto<- salarioB*0.15-335.03
senao
se (salarioB>=3572.44) entao
imposto<- salarioB*0.225-602.96
senao
se (salarioB=4463.81) entao
imposto<- salarioB*0.225-602.96
senao
imposto<- salarioB*0.275-826.15




escreva("O salário Líquido é", salarioB - imposto)


fimse
fimse
fimse
fimse
fimse
fimalgoritmo
Valores menores ou iguais a 1787.77 o código imprime "Isento de Imposto de Renda". Porém para os outros valores, não imprime nada.
Se alguém souber o que está errado e puder me ajudar, desde já agradeço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você tem que verificar o fato de que você está usando >= ou seja para qualquer valor maior que 1787,78 então ele vai imprimir a mesma coisa, você precisa definir um intervalo entre o 1787,78 e o 2679,30 para que ele pegue apenas esse intervalo.

 

Verifique também o fimse, que provavelmente estão acumulados no final, não me lembro se isto pode encadear os if's dentro da sintaxe.

Compartilhar este post


Link para o post
Compartilhar em outros sites
se (salarioB < 1787.77)ou(salarioB = 1787.77) entao

escreval("Isento de Imposto de Renda")

senao

se (salarioB >= 1787.78)e(salarioB <= 2679.29) entao

imposto<- salarioB*0.075-134.08..................................


agora e só continuar

Bons Estudos

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.