Pascal – O básico – Desafio Fibonacci

22, abril 2007 at 9:47 pm 16 comentários

Segue desafio da seqüência de Fibonacci. Se alguém tem um algoritmo mais eficaz, mandem aí! Gostaria de comparar com outras resoluções.

Program DesafioFibonacci;
Uses  

    crt;  

Var  

   x, y, z : integer;  

Begin  

     ClrScr;  

     WriteLn('Sequencia de Fibonacci menor que 50');  

     x:=0;  

     y:=1;  

     z:=1;  

     repeat  

       Write(x,' ');  

       x:=y;  

       y:=z;  

       z:=x+y;  

     until x>50;  

     ReadKey;  

End.

Abraços galera.

Entry filed under: CEFET, Estudos, FATEC, Pascal, Software, Tecnologia.

Pascal – O básico – Mais biblioteca DOS Enquete: Pesquisa de Campo na moda!

16 Comentários Add your own

  • 1. Tiago MAC  |  23, abril 2007 às 11:54 am

    Olá, dei muitos códigos como esse na faculdade, mas hoje em dia já me “aposentei” do pascal… *rs, acontece quando nos deparamos com java…
    pelo que vi o codigo esta bom, pela net também é possível encontrar alguns outros códigos tanto para fibonacci como para cálculo de P.I e outros algoritmos, lembro que teve um para achar números primos que me deu trabalho *rs!

    vlw, um forte abraço.

    Responder
  • 2. Victor de Souza Couto  |  23, abril 2007 às 5:06 pm

    Olá Tiago,

    eu estou estudando Pascal e Java nesse momento. Linguagens incomparáveis. Acredito que em breve só apareceram exemplos em Java no meu blog!

    Vou tentar fazer um algoritmo para encontrar números primos. 😉

    Até mais.

    Responder
  • 3. Jean Pierre  |  19, maio 2007 às 3:56 am

    Olá Victor, gostei muito de seu blog. Ele parece abordar dos mais variados temas relacionados a informática, isso, é bastante interessante! Porém como todo atrapalhado da informática, gostaria de saber se existe uma maneira mais fácil do que essa para fazer o desafio de Fibonacci.

    desde já protesto manifestos de agradecimento,

    Jean

    Responder
  • 4. Victor de Souza Couto  |  19, maio 2007 às 4:04 am

    Dalhe Jean,

    tudo ok?

    acredito que essa seja uma das formas mais simples de calcular a seqüência de Fibonacci.
    Chegamos a realizar o desafio com o “WHILE”, mas mesmo assim não muda em nada na lógica do programa.
    Acredito que chegamos na forma mais simplificada. Nada impede de continuarmos tentando simplificar mais ainda.

    HeHe

    Abraços Jean.

    Responder
  • 5. Rodrigo Fante  |  6, julho 2007 às 7:08 am

    Caraca, Pascal, me lembrei agora do primeiro ano de quando fazia faculdade ainda…
    Era Pascal na veia.. ahahahhaha
    Quanto tempo n via isso…

    Muito bom.. flww

    Responder
  • 6. Felipe  |  5, outubro 2007 às 1:46 am

    A solução recursiva é mais elegante.

    function fibonacci ( num : longint) : longint;
    begin

    if ( num <= 2 ) then
    fibonacci := 1
    else
    fibonacci := fibonacci (num – 1) + fibonacci (num – 2);
    end;

    ainda pode ser calculada pela fórmula de Binet….
    abraço

    Responder
  • 7. Anserson  |  14, março 2008 às 3:20 pm

    Espero q ajude

    Program ExemploPzim ;
    Var anterior1, anterior2, proximo: integer ;
    i: integer ;
    N: integer;
    Begin
    // Solicita o número de elementos da série
    write(‘Informe o valor de N: ‘);
    readln(N);

    // Imprime primeiros dois elementos da série
    anterior1:=1;
    anterior2:=1;
    write(‘1 1’);

    // Cálculo da série
    i:=3;
    while ( i <= N ) do begin
    proximo:= anterior1 + anterior2;
    write(‘ ‘, proximo);
    anterior2:= anterior1;
    anterior1:= proximo;
    i:= i+1;
    end;
    End.

    Responder
  • 8. codigosfonte  |  16, abril 2008 às 8:30 pm

    Ouço muito falar de fibonacci. Pelo código parece um programa bem simples. Porém você conhece algum site que explique a teoria de fibonacci? Um abraço.

    Responder
  • 9. Josi  |  25, maio 2008 às 11:39 am

    Humm.. Ola.. nao sei como fica em pascal..Mas a logica é simples…
    A<—0
    B<—1
    Leia N
    Imprima A,B
    para i <– 1 ate n – 2 faça
    c<— a+b
    Imprima C
    A<—B
    B<—C

    Responder
  • 10. Fruggerr  |  29, janeiro 2009 às 8:42 pm

    //Programa que faz o Fibonacci até 15.
    program Fibonacci;

    uses crt;

    var
    i,num1,num2,soma:integer;

    begin
    num1:=0;
    num2:=1;
    writeln(‘# Programa Fibonacci para 15 termos. #’);
    writeln(num1);
    writeln(num2);
    for i:=1 to 15 do
    begin
    soma:=num1+num2;
    writeln(soma);
    num1:=num2;
    num2:=soma;
    end;
    readkey;
    end.

    Responder
  • 11. rafael  |  25, julho 2009 às 4:33 pm

    Program Pzim ;
    var
    fibo1,fibo_1,fibo0,rep,b:integer;
    Begin
    fibo1:=1;
    fibo_1:=1;
    fibo0:=0;
    write(‘digite a quantidade de sequencia fibonacci que voce deseja calcular!!’);
    read(rep);

    for b:=0 to rep do
    begin
    fibo0:=fibo1;

    fibo1:=fibo_1;

    fibo_1:=fibo1+fibo0;

    write(fibo0,’ ‘);
    end;

    End.

    Responder
  • 12. Fabio Luna Goncalves  |  13, abril 2011 às 2:23 am

    program fribonacci;
    uses crt;
    var ni,i, ni1,ni2, n: integer;

    begin
    clrscr;
    writeln(‘Digite o numero de fribonaci’);
    readln(n);
    ni:=0;
    ni1:=1;
    ni2:=0;
    write(ni,’ ‘);
    ni:=1;
    for i:= 1 to n do
    begin
    write(ni,’ ‘);

    ni:= ni1+ni2;

    ni2:= ni1;
    ni1:=ni;
    end;
    readln;

    end.

    Outro dia fui fazer a prova e nao consegui porem utilizando o pascal eu fiz rapidinho em casa, bom, estava sem pressao.

    este ai ficou show.

    Responder
  • 13. Carlos Junior  |  8, junho 2011 às 4:55 pm

    Então eu gostaria de saber se alguem ae pode me mostra um exemplo de como ficaria com um procedimento recursivo que mostre ate o vigésimo termo na serie de Fibonacci. obrigado desde jah!

    Responder
  • 14. Rute  |  27, maio 2012 às 2:27 am

    Galera
    gostaria de saber quem saber responde este problema em pascal por que eu já tentei mas não deu certo.
    Desafio tem que ser em pascal.
    desde já agradeço.

    Nosso desafio, duas explicações para o mesmo problema:
    – Problema de Josephus. Imagine que temos *n* pessoas dispostas em
    círculo. Suponha que as pessoas estão numeradas 1 a *n* no sentido
    horário. Começando com a pessoa de número 1, percorra o círculo no
    sentido horário e elimine cada m-ésima pessoa enquanto o círculo tiver
    duas ou mais pessoas. Qual o número do sobrevivente?
    – PROBLEMA DE JOSEPHUS – Soldados cercados pelo inimigo decidem que um
    deles deve tentar escapar para buscar reforços usando o único cavalo
    disponível. Forma-se um círculo (lista circular), sorteia-se um número e se
    começa a contar os nós da lista até que se chegue ao número escolhido.
    Quando o soldado (nó) é retirado. O processo reinicia e continuará se
    repetindo até que um último soldado seja o escolhido.
    Existem várias maneiras de resolver o problema acima. Vamos utilizar lista
    encadeada para a solução, o sorteio do dado(valor de m) será um numero
    informado pelo usuario (lido do teclado).
    Imaginem que vamos inserir normalmente os nomes dos soldados através do
    inserir, quando o método (procedimento a ser criado josephus for chamado,
    deve ser passado o valor do sorteio do dado, para eliminar alguem da lista
    circular.

    Responder
  • 15. Rute  |  27, maio 2012 às 2:29 am

    Se conseguirem vou dica este site para muitos amigos que não conseguem fazerem este desafio.

    o desafio esta lançado.

    Responder
  • 16. Oscar Bergamo Jr  |  23, fevereiro 2014 às 9:33 pm

    Segue uma forma de utilizar recursividade…

    function Fibonacci(N: Word): UInt64;
    begin
    if N < 2 then
    Result := N
    else
    Result := Fibonacci(N – 1) + Fibonacci(N – 2);
    end;

    Responder

Deixar mensagem para Oscar Bergamo Jr Cancelar resposta

Trackback this post  |  Subscribe to the comments via RSS Feed


Agenda

abril 2007
S T Q Q S S D
 1
2345678
9101112131415
16171819202122
23242526272829
30  

Most Recent Posts