Ir ao conteúdo
  • Cadastre-se

Portugol Exercício Plano Cartesiano Portugol


Posts recomendados

/*Considere o eixo x, do plano cartesiano. Calcule a distância de um ponto
negativo até um ponto positivo. O programa deve esperar dois valores, o primeiro
deve ser negativo e o segundo positivo, caso um dos dois não esteja como pedido,
deve exibir ?###ERRO: Parâmetros incorretos!!!###?*/
programa
{
	
	funcao inicio()
	{
		inteiro num1, num2, i = 0, distancia = 0

		escreva("\nInsira um numero negativo: ")
		leia(num1)

		escreva("\nInsira um numero positivo: ")
		leia(num2)

		
		para(i; i>=0; i++){
			se((num1<0) e (num2>0)){		
					i = num1
					distancia++

				}
		senao{
					escreva("\n?###ERRO: Parâmetros incorretos!!!###?")

		}
			
				
	
		
		}
		escreva("\nA distância entre os pontos é de "+distancia)
	}
}

O cálculo da distância não está dando certo, porém quando faço em versão do façaEnquanto dá certo... Se alguém puder me dar uma luz do que está acontecendo aqui! Obrigada.

  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

@Rafaela Soares @Rafaela Soares     creio que seri melhor voce usar um while para pegar o numero negativo e se ele nao for menor que zero o whlie repita e em seguida o mesmo para pegar o numero positivo , depois coloque o loop para , com o i igual ao num1 e enquanto for menor que num2 .

  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

  • Membro VIP
Em 31/05/2019 às 11:43, Rafaela Soares disse:

O cálculo da distância não está dando certo, porém quando faço em versão do façaEnquanto dá certo... Se alguém puder me dar uma luz do que está acontecendo aqui! Obrigada.

 

Temos alguns pontos:

 

1#

Para quê utilizar laços de repetição para "calcular uma distância"? ou seja: você precisaria simplesmente calcular o "Delta", algo como "Valor2 - Valor1". Simples assim. Ex.: -14 e 10. A distância será 24u. (* u = unidade de medida). :)

 

 

 

2#

A verificação dos dados deverá* ser feita antes de sequer começar a calcular. Segue uns exemplo de lógica:

leia a primeira distância
se primeira distância < 0 então
   leia a segunda distância
   se segunda distância > 0 então
      calcule a distância entre os pontos
      exiba a distância entre os pontos
   senão
      exibir mensagem de erro
senão
   exibir mensagem de erro

ou

leia a primeira distância
leia a segunda distância
se (primeira distância < 0) E (segunda distância > 0 então
   calcule a distância entre os pontos
   exiba a distância entre os pontos
senão
   exibir mensagem de erro

ou

leia a primeira distância
leia a segunda distância
se (primeira distância >= 0) OU (segunda distância <= 0 então
   exibir mensagem de erro
senão
   calcule a distância entre os pontos
   exiba a distância entre os pontos

 

Etc.

 

 

 

3#

Em relação ao funcionamento do laço, eu te garanto uma coisa: TUDO que se faz com um tipo de laço, dá para fazer com qualquer outro tipo... "ah! mais por quê existem 3 (ou mais) tipos de laços?". Uma resposta seria: "um tende a ser mais prático que o outro para cada contexto". Geralmente utilizamos o que é mais prático!

 

Então, vamos supor que de fato quer calcular "contado um a um a distância entre os pontos" (como citado, não precisa. Além disso seu código só vai funcionar com número inteiros, mas um ponto poderia está numa posição "quebrada", ex. -2.7). Como poderia fazer utilizando um para/até?

 

A primeira coisa é entender a sintaxe do comando. Como eu não sei, pesquisei na internet, daí percebi que a sua sintaxe está incorreta (ou fora do padrão)

 

Em 31/05/2019 às 11:43, Rafaela Soares disse:

para(i; i>=0; i++){

 

Ou seja, faltou inicializar o i no comando.

 

Outro ponto a em relação a "lógica". A condição ali no meio não tem referência com o contexto do problema. Para exemplificar melhor, acho que poderia fazer assim:

 

		para (i=num1; i<num2; i++){
			distancia++		
		}

Vai ser algo como "para i do primeiro valor até o ponto anterior ao segundo valor faça"

 

 

***

 

RESUMINDO:

- Sugiro seguir a lógica do citado em 2#.

- Para calcular a distância, apenas calcule o Delta.

- Aí poste o código aqui para analisarmos.

 

Qualquer dúvida é só perguntar.

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...