Edit page

Introdução à Programação em C

hello, world

#include <stdio.h>

int main() {
  printf("hello, world\n");
  return 0;
}

Todos os programas têm uma função main. Esta é a primeira função a ser executada no programa.

Podemos, claro, definir outras funções.

A função main retorna um inteiro, int, correspondente ao exit code do programa.
Neste caso, 0 significa que o programa acabou com sucesso e sem nenhum erro: uma função main só retornar um número diferente de zero caso haja erros.

As funções (e variáveis) em Python não têm um tipo específico. É possível ter uma função que umas vezes retorna uma string e outras retorna um inteiro.

Por outro lado, C é uma linguagem tipificada, isto é, cada variável/função tem um tipo associado. Não é possível alterar o tipo de uma variável/função durante a execução do programa.

Como nota introdutória à linguagem, é importante realçar que apesar de a identação em C poder ser ignorada (ao contrário de Python, onde é obrigatória), devemos continuar a usá-la, de modo a facilitar a leitura do programa. Os nossos programas vão ser lidos por alguém, e devemos escrever o nosso código de forma a que essa pessoa não encontre dificuldades a lê-los.

Fibonacci

#include <stdio.h>

typedef long long int int_t;

int_t fib(int_t n) {
  if (n == 0) {
    return 0;
  } else if (n == 1) {
    return 1;
  } else {
    return fib(n - 1) + fib(n - 2);
  }
}

int main(int argc, char **argv) {
  int n = atoi(argv[1]);

  printf("fib (%d) = %lli\n", n, fib(n));

  return 0;
}

O tipo de dados int em C representa um inteiro de 32 bits. O tipo long long int já permite guardar mais do que 64 bits. Vamos deparar-nos ao longo da UC (e noutras ocasiões) com casos em que um int normal não basta - aplicações bancárias, por exemplo, requerem uma enorme precisão e capacidade para trabalhar com inteiros (e não só) muito grandes, pelo que int não é adequado.