Algoritmo portugol - valor truncado

Olá, tenho uma dúvida em algoritmo a seguir:

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.

1 Like

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.

1 Like

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.

1 Like

Isso msm, vc matou a charada.
Eu havia colocado num em reais para realçar a resposta em casas decimais, mas res estava como inteiro, resolveu :smiley: :raised_hands:t2:

This topic was automatically closed 24 hours after the last reply. New replies are no longer allowed.