Ir para conteúdo

POWERED BY:

Arquivado

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

Renanr

Identificar o erro.

Recommended Posts

Pessoal, recebi um exercício para fazer e até ai tudo bem. Fui e fiz. Mas quando vou rodar o programa. Recebo uma mensagem me dizendo que tem algo errado porém não consigo de maneira alguma identificar o erro. Me ajudem? Desde já!

 

var
ht,vh,sl,vinss,virpf,sb:real
//ht: horas trabalhadas, vh: valor Hora, sl: salário líquido, vinss: valor do inss, virpf: valor do irpf, sb: salário bruto 
inicio
escreva ("Horas Trabalhadas:")
leia(ht)
escreva("Valor Hora:")
leia(vh)
sb<-ht*vh
escreval("O salário bruto é de:",sb)
se sb<=868.29 entao
  vinss<-sb*(7.65/100)
  escreval("Valor do INSS:",vinss)
  virpf<-(sb-vinss)
  escreval("Valor do imposto de renda é:",virpf)
  sl<-sb-(vinss+virpf)
  escreval("Salário Líquido:",sl)
senao
  se sb>=868.30 e sb<=1.447.14 entao
     vinss<-sb*(8/100)
     escreval("Valor do INSS:",vinss)
     virpf<-(sb-vinss)
     escreval("Valor do imposto de renda é:",virpf)
     sl<-sb-(vinss+virpf)
     escreval("Salário Líquido:",sl)
  senao
     se sb>=1.447.15 e sb<=2.894.28 entao
        vinss<-sb*(9/100)
        escreval("Valor do INSS:",vinss)
        virpf<-(sb-vinss)*(15/100)
        escreval("Valor do imposto de renda é:",virpf)
        sl<-sb-(vinss+virpf)
        escreval("Salário Líquido:",sl)
     senao
        se sb>2.894.28 e sb<=3.743.19 entao
           vinss<-(sb*(11/100))
           escreval("Valor do INSS:",vinss)
           virpf<-(sb-vinss)*(15/100)-224.87)
           escreval("Valor do imposto de renda é:",virpf)
           sl<-sb-(vinss+virpf)
           escreval("Salário Líquido:",sl)
        senao
           se sb>3.743.19 entao
              vinss<-sb*(11/100)
              escreval("Valor do INSS:",vinss)
              virpf<-(sb-vinss)*(27.5/100)-561.02
              escreval("Valor do imposto de renda é:",virpf)
              sl<-sb-(vinss+virpf)
              escreval("Salário Líquido:",sl)
           fimse
        fimse
     fimse
  fimse
fimse
fimse

fimalgoritmo

 

 

Qual seria o erro nele?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Meu amigo eu achei um problema lendo o código. Você botou um fimse a mais. Ou seja, você abriu 5 "SE" e fechou 6 "fimse"; talvez esse seja o problema.

 

Em breve estarei postando algumas dicas para se fazer um bom pseudo-código,que na verdade serve de base para se escrever qualquer código.Quando tiver um tempo dê uma lida.

 

//Editado//

Dicas

 

Achei mais um problema, ele esta nessa linha:

 

virpf<-(sb-vinss)

 

Você não esta calculando o imposto de renda, mas sim esta subtraindo o inss do salário bruto.

 

Logo o salário líquido fica zerado no fim do programa se a condição do 1° e do 2° IF forem satisfeitas.

 

 

abx,

 

LCS

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado pela atenção,corrigi esses dois erros, mais o programa continua dizendo que esta linha esta errada

  se sb>=868.30 e sb<=1.447.14 entao 

ele diz que esperava encontrar um "entao" mais já tem.

 

 

 

Meu amigo eu achei um problema lendo o código. Você botou um fimse a mais. Ou seja, você abriu 5 "SE" e fechou 6 "fimse"; talvez esse seja o problema.

 

Em breve estarei postando algumas dicas para se fazer um bom pseudo-código,que na verdade serve de base para se escrever qualquer código.Quando tiver um tempo dê uma lida.

 

//Editado//

Dicas

 

Achei mais um problema, ele esta nessa linha:

 

virpf<-(sb-vinss)

 

Você não esta calculando o imposto de renda, mas sim esta subtraindo o inss do salário bruto.

 

Logo o salário líquido fica zerado no fim do programa se a condição do 1° e do 2° IF forem satisfeitas.

 

 

abx,

 

LCS

 

Obrigado pela atenção,corrigi esses dois erros, mais o programa continua dizendo que esta linha esta errada

  se sb>=868.30 e sb<=1.447.14 entao 

ele diz que esperava encontrar um "entao" mais já tem.

 

 

 

Meu amigo eu achei um problema lendo o código. Você botou um fimse a mais. Ou seja, você abriu 5 "SE" e fechou 6 "fimse"; talvez esse seja o problema.

 

Em breve estarei postando algumas dicas para se fazer um bom pseudo-código,que na verdade serve de base para se escrever qualquer código.Quando tiver um tempo dê uma lida.

 

//Editado//

Dicas

 

Achei mais um problema, ele esta nessa linha:

 

virpf<-(sb-vinss)

 

Você não esta calculando o imposto de renda, mas sim esta subtraindo o inss do salário bruto.

 

Logo o salário líquido fica zerado no fim do programa se a condição do 1° e do 2° IF forem satisfeitas.

 

 

abx,

 

LCS

Compartilhar este post


Link para o post
Compartilhar em outros sites

De uma olhada na documentação do Visualg. Lá você verá a solução do seu problema..É questão de sintaxe.

 

Quando você usa operadores lógicos como o And(E),Or(ou) você tem que por entre () as condições propostas.

 

Logo ao invés disso:

 

  se sb>=868.30 e sb<=1.447.14 entao 

 

Faça:

 

se (sb>=868.30) e (sb<=1.447.14) entao

 

Leia as dicas postadas no subfórum de lógica de programação. Lá você verá a dica que diz: Leia sempre a documentação da linguagem que você esta usando.

 

 

Abx,

 

LCS

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.