Vamos Programar? – Introdução à Programação #15

6 Comentários

Constantes

O mundo está constantemente a evoluir: desde o mais pequeno inseto à espécie Humana. Dentro das palavras que mais ouvimos atualmente, incluímos “evolução”, “mudança”, “futuro”.

A tecnologia tem revolucionado o mundo das mais diversas formas: do mais simples aparelho para medir o tempo ao mais complexo acelerador de partículas. Se quer entrar no mundo da tecnologia e deixar a sua marca, pode começar aqui.

localhostx2




Visualize este vídeo no YouTube

Constantes

Em C, tal como em outras linguagens de programação, existem as constantes. Constantes são, à semelhança das variáveis, algo em que pudemos armazenar dados mas que, ao contrário das variáveis, não podemos alterar os dados que lá estão gravados.

Existem diversas formas de declarar constantes em C. Iremos abordar duas que são as mais utilizadas: as constantes declaradas e as constantes definidas.

Constantes Definidas (#define)

Chamam-se Constantes Definidas àquelas que são declaradas no cabeçalho de um ficheiro. Estas são interpretadas pelo pré-processador que procederá à substituição da constante em todo o código pelo respetivo valor.

Sintaxe

#define identificador valor

Onde:

  • identificador → o nome da constante que, convencionalmente, é escrito com letras maiúsculas;
  • valor → o valor da constante.

Exemplo

#include 
 
#define PI 3.14159
 
int main (){

  double r = 5.0;              
  double circle;

  circle = 2 * PI * r;      
  printf("%f\n", circle);
  return 0;

}

O que acontece aqui é que, quando o pré-compilador lê a definição da constante “PI”, substitui todos os “PI” no código pelo valor que lhe está atribuído, literalmente.

Constantes Declaradas (const)

As Constantes Declaradas, ao contrário das Constantes Definidas são, tal como o próprio nome indica, declaradas no código, em linguagem C.

A declaração destas constantes é extremamente semelhante à declaração das variáveis. Apenas temos que escrever const antes do tipo de dados.

Sintaxe

const tipo nome = valor;

Onde:

  • tipo → o tipo de dados que a constante vai conter;
  • nome → o nome da constante;
  • valor → o conteúdo da constante.

Exemplo

#include 
#include 

int main() {
    const double goldenRatio = (1 + sqrt(5)) / 2;
    
    goldenRatio = 9; //Erro. A constante não pode ser alterada.
    
    double zero = (goldenRatio * goldenRatio) - goldenRatio - 1;
    printf("%f", zero);
    
    return 0;
}

Existem vantagens ao utilizar esta forma de declarar constantes. Através das constantes declaradas podemos ter constantes locais ou globais porém as definidas são sempre globais.

Uma constante local é uma constante que está restrita a uma determinada função, por exemplo. Se declararmos uma constante dentro de uma função, esta só estará disponível para o código que está dentro dessa mesma função.

Exercícios

1 → Crie um pequeno programa em que o utilizador insira um montante sem IVA e que o programa lhe devolva o valor com IVA. Deve utilizar uma constante.

2 → Crie um pequeno programa onde efetua dez operações (à sua escolha) que relacione os números que desejar e uma constante. Esta constante deve ser numérica.


Mais uma vez, gostávamos de saber a sua opinião. Caso tenha alguma dúvida, pode sempre utilizar os comentários para colocar a questão. Caso o faça,  pedimos que utilize a keyword [DUVIDA] no início do seu comentários.


Resoluções de exercícios.

Esta saga

Henrique Dias

Mais episódios: 
[1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13][12] [14] [15] [16]
[17] [18] [19] [20] [21] [22] [23][24]

homefacebookgoogle-plus

Comentários

6

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *

  1. Avatar de Pedro
    Pedro

    pplware nao podiam colocar um zip com tosas as aulas para baixar?

    1. Avatar de Henrique Dias

      No último episódio da saga iremos fazer algo… semelhante! 🙂

  2. Avatar de lmx
    lmx

    pré compilador não esta mal 😉 , mas o nome mais próximo é pré-processador de texto..

    pois o que ele faz e substituição textual das macros referentes ao pré-processador de texto.
    A sua tarefa principal, adicionar os ficheiros das declarações , etc dos ficheiro *.h para o ficheiro de código *.c

    Podes ver este resultado com:
    gcc -E ficheiro.c (para o stdout) ou gcc -E -P ficheiro.c(suprime flags e linhas a incluir…fica mais fácil ler..mas alguma info não aparece…)

    podes redireccionar o stdout para um ficheiro..

    existem flags para que o gcc TOOLCHAIN pare a seguir a determinada tarefa..

    Ou seja em qualquer uma das suas tarefas…

    preprocessamento de texto – (substituição de macros de preprocessamento[os typedef’s são macros do compilador e não preprocessador…] se as houver e inclusão de ficheiros e flag’s)

    Compilação – Compilação do código(tenta parar a seguir a isto e vais ver que o compilador usou os ficheiros colocados pelo preprocessador de texto…e pega o seu código e coloca-o no ficheiro…ficam enormes…mas existe métodos para remover o que não interessa 😉 )
    podes experimentar com gcc -S file.c

    Assembler – (assember o código, ou seja passa para código maquina, o código que está num formato assembler, MAS Human Readable)
    A seguir a isto tens um ficheiro binario..
    podes ver com o famoso gcc -c ficheiro.s

    linker – vai linkar o código dos vários ficheiros, e produzir apenas um binário…
    ver com gcc ficheiro.c(este é o resultado final…no caso de se ter que usar o linker…)

    Este processo não acaba aqui…se o programa foi linkado com shared libraries!

    Ainda falta o dynamic linker….mas este só é chamado quando se executa o binário, na fase de exec…é verificado se o ficheiro terá que ser relinkado…desta feita com tudo o que tem mais o que precisa das shared libraries..ou no windows..dll’s..

    1. Avatar de Henrique Dias

      Eheh. Obrigado pela correção e fundamentação 🙂

  3. Avatar de Miguel
    Miguel

    Não dá para fazer download dos vídeos?

    1. Avatar de Henrique Dias

      De forma direta, não. A não ser que descarregue os vídeos do YouTube com um programa de terceiros.