AVISO: O valor da expressão á direita da atribuição será truncado. Linha: 11, Coluna: 12
programa {
funcao inicio() {
inteiro seq, res
real num
escreva("Qual numero para tabuada?")
leia(num)
seq = 0
enquanto (seq <=100){
res = num * seq
escreva(num + "x" + seq + "=" + res + "\n")
seq = seq + 1
}
}
}
O que é truncado, seria o valor que vai sair errado? Alguém sabe o que fazer p corrigir?
Grato!
Números truncados são números que têm limitação nas casas decimais. Com um tipo int não funciona, só com double e float, que são tipos com ponto flutuante.
Veja que num é uma variável do tipo real e res é do tipo inteiro, então quando você faz:
res = num * seq
Não “cabe” um número real dentro de uma variável inteira. O portugol precisa truncar a variável real, ou seja, desprezar os algarismos depois da vírgula.
Caso você queira que a resposta tenha os algarismos depois da vírgula, basta declarar a váriavel res como real também.
Isso ocorre devido as suas variáveis serem de tipos diferentes, coloque a váriavel num como inteiro (adicionando em “inteiro seq,res,num” e apagando a parte “real num”) que vai resolver.