Portugol-Studio icon indicating copy to clipboard operation
Portugol-Studio copied to clipboard

problema ao utilizar op. XOR dentro de um loop

Open mshlz opened this issue 3 years ago • 1 comments

Descrição do Problema: Resolvi um exercício onde precisava fazer a troca de posições no vetor, utilizando o "algoritmo" Xor Swap dentro de um loop, numa versão mais antiga do portugol studio, e funcionou perfeitamente.

Ao tentar reproduzir esse mesmo código na versão mais recente, o portugol tá reclamando que há problemas na declaração do loop.

Pelo que eu testei aqui, o problema ocorre quando se utiliza a operação XOR juntamente com a atribuição varA ^= varB dentro de um loop, se utilizar desta maneira varA = varA ^ varB funciona ok.

Mensagem de Erro (se houver):

O comando "para" necessita de ao menos uma condição de parada. Utilize a seguinte construção para corrigir o problema: "para(; <condicao> ;) { <comandos> }" 

Captura de Tela / Arquivo.por: screenshot

Source para reproduzir o erro:

programa
{
	
	funcao inicio()
	{
		inteiro i, j = 8, k = 3

		para (i=0; i<10; i++) {
			escreva("A: " + j + " | B: " + k + "\n")


			// xor swap
			
			/** Erro: 'O comando "para" necessita ao menos de uma condição de parada. (...)' **/
			j ^= k
			k ^= j
			j ^= k

			/** Nessa ordem, funciona **
			j = j ^ k
			k = k ^ j
			j = j ^ k
			**/

			escreva("A: " + j + " | B: " + k + "\n\n")
			
		}
	}
}

Especificações do sistema: SO: Windows 10 x64 Portugol: 2.75

mshlz avatar Dec 01 '20 00:12 mshlz

Obrigado pelo reporte, vamos verificar.

AdsonEsteves avatar Dec 01 '20 01:12 AdsonEsteves