Processo de compilação de um programa
O processo de compilação de um programa na linguagem C é simples e envolve uma sequência de passos. A seguir, é apresentado um fluxograma indicando tais passos (Figura A.1).
O Pré-processador realiza a análise léxica, procurando interpretar diretivas especiais, comentários do programa, entre outros detalhes a fim de que o programa objeto seja gerado (AHO; LAM; SETHI; ULLMAN, 2008).
Depois de realizada a etapa pelo pré-processador, o Compilador irá analisar o código gerado pelo pré-processador e transformar o código para a linguagem Assembly, efetuando a análise sintática e semântica dos dados.
O Montador Asssembler verifica o código e compila-o para código de máquina, produzindo, assim, o código objeto. O código objeto é geralmente armazenado em arquivos com a extensão .o .
Por fim, o LinkEditor faz a ligação com as bibliotecas externas, colocando as ligações e o código objeto em um único arquivo executável. Esse arquivo estará pronto para a execução e terá a extensão .exe.
| ||||
| ||||
|
Instalação do Compilador DevC++
A primeira atividade a fazer antes de desenvolver programas usando a linguagem C é instalar um compilador. Para esta disciplina utilizaremos o ambiente de programação DevC++, disponível para download em http://www.bloodshed.net/devcpp.html. A opção por esse ambiente foi feita pelas seguintes razões:
Passos para a instalação:
Utilização do DevC++
Utilizando variáveis e estruturas de controle
As estruturas de controle ou estruturas lógicas são designadas em: sequenciais, de decisão e de repetição. Porém, antes de iniciar com essas estruturas, veremos como devemos utilizar e escrever uma variável.
O uso de Variáveis
Variável pode ser definida como tudo aquilo que é sujeito a variações, que é incerto, instável ou inconstante. E quando trabalhamos com computadores teremos uma grande quantidade de informações que serão tratadas. Assim, essas informações a serem processadas tendem a ser variáveis (LÓGICA..., 2011).
Todo dado a ser armazenado na memória de um computador deve ser previamente identificado, ou seja, primeiro é necessário saber qual o seu tipo para depois fazer o seu armazenamento adequado. Estando armazenado o dado desejado, ele poderá ser utilizado e manipulado a qualquer momento.
Nome de Variáveis
Uma variável é formada por uma letra, “_“ (underline), ou então, por uma letra seguida de outras letras ou dígitos. Não é permitido o uso de espaços em branco ou de qualquer outro caractere, que não seja letra ou dígito, na formação de um identificador.
Se utilizar palavras para compor o nome da variável utilize o “_” para separar as palavras.
| ||||
| ||||
|
Funções de entrada e saída
As instruções são representadas pelo conjunto de palavras-chave (vocabulário) de uma determinada linguagem de programação, que tem por finalidade comandar em um computador o seu funcionamento e a forma como os dados armazenados deverão ser tratados. Em C, para realizarmos a entrada de um dado em um programa, utilizamos a função scanf e para a saída a função printf.
Função printf
A função printf exibe na tela do monitor um dado, uma string ou mesmo um endereço de memória. O primeiro argumento da função é uma string que especifica o formato da impressão. A estrutura básica da função printf() é dada a seguir:
printf ("String de controle", Lista de argumentos);
onde:
String de controle pode ser tanto de caracteres para serem impressos na tela como códigos de formato, que especificam como apresentar o restante dos argumentos. Além de especificar caracteres dentro do primeiro parâmetro, pode-se incluir especificadores de formato (quadro A3.1), que instruem printf() como imprimir os parâmetros indicados.
Código |
Significado |
%c |
Exibe um caractere. |
%d |
Exibe um inteiro em formato decimal. |
%i |
Exibe um inteiro. |
%e |
Exibe um número em notação científica (com e minúsculo). |
%E |
Exibe um número em notação científica (com E maiúsculo). |
%f |
Exibe um ponto flutuante em formato decimal. |
%g |
Usa %e ou %f, o que for menor. |
%G |
O mesmo que %g, só que um E maiúsculo é usado se o formato %e for escolhido. |
%o |
Exibe um número em notação octal. |
%s |
Exibe uma string. |
%u |
Exibe um decimal sem sinal. |
%x |
Exibe um número em hexadecimal com letras minúsculas. |
%X |
Exibe um número em hexadecimal com letras maiúsculas. |
%% |
Exibe um sinal de %. |
%p |
Exibe um ponteiro. |
Tabela A.1 - String de controle - Fonte: Schildt (1997).
Lista de argumentos pode ser o conteúdo das variáveis a serem impressos.
Exemplo do comando printf:
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
int idade = 30;
float salario = 1820.50;
char nome[3]="DEV";
printf("Nome do usuario: %s idade: %d salario: %4.2f\n",
nome, idade, salario);/* será mostrado Nome do usuário:DEV idade:30 salario:1820.50*/
printf("%d mais %d igual a %d\n", 1, 2, 1 + 2);/*será mostrado 1 mais 2 igual a 3*/
system("PAUSE");
return 0;
}
Função scanf
A função scanf( ) é uma das funções de entrada de dados da Linguagem C, que pode ser usada para ler qualquer tipo de dado inserido por meio do teclado. A estrutura básica da função scanf é dada a seguir:
scanf ("String de controle", &Lista de argumentos);
onde:
String de controle: é uma string que especifica o formato da lista a ser lida.
Lista de argumentos: são os endereços das variáveis, onde os valores lidos serão armazenados. Deve ser precedido por &.
Exemplo do comando scanf
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
int a, b;
double media;
scanf ("%d %d", &a, &b); /* mostrará o prompt solicitando a digitação de dois valores, vamos digitar 2 espaço 2*/
media = (a + b) / 2.0;
printf ("A média de %d e %d é %f\n", a, b, media); ); /* mostrará A média de 2 e 2 é 2.000000*/
system("PAUSE");
return 0;
}
Comentários
Os comentários servem principalmente para documentação do programa e são ignorados pelo compilador, portanto, não irão afetar o programa executável gerado.
Os comentários que envolvem mais de uma linha começam com os símbolos /* e se estendem até aparecerem os símbolos */.
Um comentário pode aparecer em qualquer ponto do programa, assim, temos também o símbolo // que corresponde ao comentário de somente uma linha
Exemplo de comentário:
#include <stdlib.h>
int main(int argc, char *argv[])
{
//comentário de uma linha
/* comentário
de
várias
linhas
*/
printf ("comentários");
system("PAUSE");
return 0;