Programação Básica – Módulo 03: Repetições, ex049

Home Fóruns Programação Básica Programação Básica – Módulo 03: Repetições, ex049

Visualizando 3 respostas da discussão
  • Autor
    Posts
    • #92252
      Itou Yuma
      Participante

      Olá estava fazendo o ex049, o meu resultado ficou muito diferente do professor, pelos testes ele esta dando o resultado correto. mas fiquei um pouco confuso se essa lógica q eu montei tem como dar alguma coisa errada ou se é uma forma não recomendável.

      programa
      {
      	
      inclua biblioteca Util --> u
      	funcao inicio()
      	{
      
      		inteiro num, c, n1 = 0, n2 = 1
      	
      		escreva("-------------------------------------")
      		escreva("\n       SEQUENCIA DE FIBONACCI")
      		escreva("\n-------------------------------------")
      		escreva("\nQuantos elementos voce quer mostrar? ")
      		leia(num)
      		para(c=0;c < (num/2);c++) {
      			escreva(n1, " ")
      			u.aguarde(280)
      			escreva(n2, " ")
      			u.aguarde(280)
      			n1 += n2
      			n2 += n1
      		}
      		escreva("FIM!")
      	}
      }
      
    • #92255
      IcaroFilho
      Moderador

      Bom dia,
      A sua lógica esta certa pois parte da premissa de exibir desde o número zero a posição indicada.
      Isto força você a exibir 2 números de uma vez dentro do laço, sendo assim, necessária a divisão da condição por 2.
      Muito bom ponto de vista.

      O professor Guanabara vem da premissa matemática básica onde se sabe que as duas primeiras posições são 0 e 1, e depois são feitas as contas aritméticas de cada posição subsequente ( n3 = n1 + n2 )

    • #162473
      Davi Souto
      Participante

      Gostaria de mostrar uma outra forma que encontrei de solucinoar esse problema:

      programa
      {

      inclua biblioteca Util –> u
      funcao inicio()
      {

      inteiro num, c=1, n1=0, n2=0, n3=1

      escreva(“————————————-“)
      escreva(“\n SEQUENCIA DE FIBONACCI”)
      escreva(“\n————————————-“)
      escreva(“\nQuantos elementos voce quer mostrar? “)
      leia(num)
      para(c; c<=num; c++) {
      escreva(n2, ” “)
      n1 = n2
      n2 = n3
      n3 = n1 + n2
      u.aguarde(300)
      }
      escreva(“FIM!”)
      }
      }

      Desta forma segue a premissa de que o proximo numero é a soma dos dois ultimos sem ter o problema dos dois primeiros digitos.

    • #162480
      Tutora Jessica
      Moderador

      Ola Davi, muito obrigada por compartilhar conosco sua resolução do código 🖖🏼

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