Gerar uma Sequência de Fibonacci em C

CBeginner
Pratique Agora

Introdução

Neste laboratório, aprenderemos a gerar uma sequência de Fibonacci em C. A sequência de Fibonacci é uma sequência matemática bem conhecida, onde cada número é a soma dos dois anteriores. Começaremos lendo o número de termos do utilizador, depois usaremos um loop para gerar a sequência e, finalmente, imprimiremos a sequência de Fibonacci resultante. Este laboratório cobre conceitos fundamentais em teoria dos números e matemática discreta usando a linguagem de programação C.

Ler o Número de Termos

Neste passo, aprenderemos a ler o número de termos para gerar uma sequência de Fibonacci em C. Este é o primeiro passo crucial na criação do nosso programa de sequência de Fibonacci.

Primeiro, criemos um novo ficheiro C no diretório ~/project:

cd ~/project
nano fibonacci.c

Agora, escrevamos o código inicial para ler o número de termos do utilizador:

#include <stdio.h>

int main() {
    int n;

    printf("Introduza o número de termos na sequência de Fibonacci: ");
    scanf("%d", &n);

    printf("Introduziu %d termos.\n", n);

    return 0;
}

Vamos compilar e executar o programa para testar a nossa entrada:

gcc fibonacci.c -o fibonacci
./fibonacci

Exemplo de saída:

Introduza o número de termos na sequência de Fibonacci: 10
Introduziu 10 termos.
Explicação
  • scanf("%d", &n) lê uma entrada inteira do utilizador e armazena-a na variável n
  • Usamos printf() para solicitar ao utilizador e exibir o número de termos introduzidos
  • O programa valida se conseguimos capturar com sucesso a entrada do utilizador para o comprimento da sequência

Utilizar um Loop para Gerar Termos

Neste passo, modificaremos o nosso programa anterior de sequência de Fibonacci para gerar a sequência usando um loop. Iremos construir sobre o código do passo anterior para criar a sequência de Fibonacci propriamente dita.

Vamos atualizar o ficheiro fibonacci.c:

cd ~/project
nano fibonacci.c

Agora, vamos modificar o código para gerar termos de Fibonacci usando um loop for:

#include <stdio.h>

int main() {
    int n, first = 0, second = 1, next;

    printf("Introduza o número de termos na sequência de Fibonacci: ");
    scanf("%d", &n);

    printf("Sequência de Fibonacci de %d termos: \n", n);

    for (int i = 0; i < n; i++) {
        if (i <= 1)
            next = i;
        else {
            next = first + second;
            first = second;
            second = next;
        }
        printf("%d ", next);
    }
    printf("\n");

    return 0;
}

Compile e execute o programa:

gcc fibonacci.c -o fibonacci
./fibonacci

Exemplo de saída:

Introduza o número de termos na sequência de Fibonacci: 10
Sequência de Fibonacci de 10 termos:
0 1 1 2 3 5 8 13 21 34
Explicação
  • Inicializamos first e second como os dois primeiros termos da sequência de Fibonacci
  • O loop for gera termos subsequentes adicionando os dois termos anteriores
  • next = first + second calcula o próximo termo
  • Atualizamos first e second em cada iteração para manter a progressão da sequência
  • O loop continua até gerarmos o número especificado de termos

Imprimir a Sequência

Neste passo final, melhoraremos o nosso programa de sequência de Fibonacci adicionando opções de formatação e melhorando a apresentação da saída.

Vamos atualizar o ficheiro fibonacci.c para melhorar a impressão da sequência:

cd ~/project
nano fibonacci.c

Modifique o código para adicionar mais opções de formatação e impressão:

#include <stdio.h>

int main() {
    int n, first = 0, second = 1, next;

    printf("Introduza o número de termos na sequência de Fibonacci: ");
    scanf("%d", &n);

    printf("Sequência de Fibonacci de %d termos:\n", n);

    printf("Índice\tValor\n");
    printf("-----\t-----\n");

    for (int i = 0; i < n; i++) {
        if (i <= 1)
            next = i;
        else {
            next = first + second;
            first = second;
            second = next;
        }
        printf("%d\t%d\n", i, next);
    }

    return 0;
}

Compile e execute o programa:

gcc fibonacci.c -o fibonacci
./fibonacci

Exemplo de saída:

Introduza o número de termos na sequência de Fibonacci: 8
Sequência de Fibonacci de 8 termos:
Índice	Valor
-----	-----
0	0
1	1
2	1
3	2
4	3
5	5
6	8
7	13
Explicação
  • Adicionámos uma tabela formatada com colunas de índice e valor
  • \t é usado para colunas separadas por tabulações para criar um layout de tabela organizado
  • Cada termo é agora impresso com o seu índice correspondente
  • A saída fornece uma visão clara e estruturada da sequência de Fibonacci

Resumo

Neste laboratório, aprendemos como ler o número de termos de um utilizador para gerar uma sequência de Fibonacci em C. Primeiro, solicitamos ao utilizador que introduza o número desejado de termos e, em seguida, usamos um loop para calcular e imprimir a sequência de Fibonacci. Os passos chave envolvem a inicialização dos dois primeiros números de Fibonacci e, em seguida, a sua atualização em cada iteração do loop para gerar o próximo número da sequência.

Finalmente, imprimimos a sequência de Fibonacci completa com base na entrada do utilizador. Este laboratório fornece um exemplo prático de utilização de loops e variáveis para gerar uma sequência matemática clássica numa linguagem de programação.