M03A13 – Exercícios com Estrutura PARA

Home Fóruns Programação Básica M03A13 – Exercícios com Estrutura PARA

Visualizando 2 respostas da discussão
  • Autor
    Posts
    • #65873

      Pessoal, alguém consegue me dar uma luz nesse exercício 047 estou travado.

      programa
      {
      	inclua biblioteca Util --> u
      	funcao inicio()
      	{
      		escreva("{ EXERCÍCIO 047 - Contagem personalizada }\n")
      		inteiro n1, n2, passo
      
      		escreva("\nÍNICIO: ")
      		leia(n1)
      		escreva("\nFINAL: ")
      		leia(n2)
      		escreva("\nPASSO: ")
      		leia(passo)
      		
      		para(passo;n2 <= n1; n1=n1-(-passo)){
      			escreva(n1, " => ")
      				u.aguarde(300)	
      		}
      		para(passo;n1 >= n2; n1=n1-(-passo)){
      			
      			escreva(n1, " => ")
      				u.aguarde(300)		
      		}
      		
      		para(passo;n2 >= n1; n1+=passo){
      			escreva(n1, " => ")
      				u.aguarde(300)
      		}
      		para(passo;n1 <= n2; n1+=passo){
      			escreva(n1, " => ")
      				u.aguarde(300)
      		}	
      			
      		escreva(" FIM")
      	}
      }
    • #65952
      Tutora Mayla
      Mestre

      Antonio, algumas considerações sobre o seu código:

      • O primeiro erro que percebo é que ao testar n2 <= n1 e n1 >= n2 chega-se ao mesmo resultado, tendo n1 sendo maior ou igual a n2, ou seja, não é necessário realizar 4 laços, apenas 2, sendo um com decremento do passo e um com incremento do passo.
      • Para evitar problemas, não use a própria variável onde o número foi lido para iterar o passo, e sim crie uma cópia dela e aí sim modifique essa cópia.
      • A estrutura do laço para consiste em para (<inicializar a variável>; <condição de parada>; <incremento ou decremento do passo>). Assim não faz sentido definir o passo no primeiro espaço, o passo deverá ser usado apenas no terceiro espaço. O seu para deverá ter uma estrutura parecida como a seguir, aproveitando para realizar a cópia da variável que citei no tópico anterior. O laço deverá ser semelhante a: para( inteiro c = n1; n1 <= n2; c+= passo) e de forma parecida o segundo laço deverá ser feito.

      Seu código está indo no caminho certo, falta pouco e estará certíssimo.
      Espero ter ajudado, quaisquer outras dúvidas estamos a disposição.

    • #65972

      Oi Mayla, não aguentei esperar e vi a aula com a resposta. Mas acredito que estava muito longe desse raciocínio e tinha tentado muitas possibilidades, para você ter uma ideia acho que fiquei 3 dias quebrando a cabeça nessa. Mas show agora assimilei essa técnica, obrigado!

Visualizando 2 respostas da discussão
  • Você deve fazer login para responder a este tópico.