UNIVALI-LITE / Portugol-Studio

Ambiente de Programação didático para a linguagem Portugol 2.0
http://univali-lite.github.io/Portugol-Studio/
GNU Lesser General Public License v3.0
686 stars 217 forks source link

Erro na avaliação de operadores aritméticos de atribuição #1144

Closed PaulPaixao closed 5 months ago

PaulPaixao commented 5 months ago

Descrição do Problema: Nos operadores de aritméticos de atribuição na principais LP's, o valor da variável do lado esquerdo é "operado" com o valor ou resultado da expressão existente do lado direito do operador de atribuição e o valor resultante é armazenado na própria variável. No exemple abaixo a expressão está sendo avaliada de forma equivocada. Veja: /Neste exemplo espera-se o valor -10, mas retorna -14. Para obter o valor esperado é necessário usar parênteses, ou seja, a precedência de operadores não está sendo obedecida. Conclui-se que que antes efetuar a operação completa (20 - 2) do lado direito, o valor 45 é subtraído da variável x resultando em -12. Ao subtrair - 2 o resultado é -14 onde é identificado o erro. O expressão deveria avaliar 20 - 2 = 18. Na sequência deveria ser x - 18, onde x = 8, teríamos 8 -18 resultando em - 10*/

Mensagem de Erro (se houver): programa {

funcao inicio()
{
    inteiro x = 8
    x -= 4*5 - 5/2
    escreva ("Valor de x ",x)
}

}

Captura de Tela / Arquivo.por: image

Especificações do sistema: Windows 11; Portugol Studio V2.7.5