Professional Documents
Culture Documents
Computação para
Engenharia
Aula 7
A Linguagem C
Frequentemente chamada de linguagem de “nível
médio”:
− Combina elementos de linguagem de alto nível com a
funcionalidade da linguagem assembly
− Permite a manipulação de bits, bytes e endereços
− Permite o conceito de “tipos de dados”, comum às
linguagens de programação de alto nível.
Tipo de dado:
− Define conjunto de valores que uma variável pode
armazenar e o conjunto de operações que pode ser
executado com essa variável.
A Linguagem C
É uma linguagem estruturada:
− Permite a compartimentalização do código e dos dados
− Permite seccionarmos e escondermos do resto do
programa todas as informações necessárias para se
realizar uma tarefa específica
Programas em C compartilham seções de código!
Uso de sub-rotinas que empregam variáveis locais
(temporárias)
Uso de variáveis locais permite escrever sub-
rotinas nas quais os eventos que ocorrem dentro
delas não causam efeitos inesperados em outras
partes do programa
A Linguagem C
A principal componente estrutural de C é a função
Funções:
− Blocos de construção em que toda a atividade do
programa ocorre
− Admitem que você defina e codifique, separadamente,
as diferentes tarefas de um programa
− Após ser criada, pode-se esperar que ela trabalhe
adequadamente em várias situações, sem criar efeitos
inesperados em outras partes do programa
Bloco de código:
− Grupo de comandos de programa conectado
logicamente, tratado como uma unidade
− Em C, um bloco de código é criado colocando-se uma
sequência de comandos entre
chaves
A Biblioteca C Padrão
Em princípio, você pode programar todas as
funções necessárias para seu programa...
MAS, todo compilador C vem com uma rica
biblioteca de funções em C que realizam as tarefas
mais básicas!
Dois aprendizados:
− Aprender a própria linguagem C
− Aprender a usar as funções da biblioteca padrão!
Programar em C é ...
− Usar as funções da biblioteca padrão
− Criar suas próprias funções
− Utilizar funções que outras pessoas criaram e
disponibilizaram
Fases de Execução
Programas em C atravessam 6 fases para serem
executados:
− Edição:
− Pré-processamento
− Compilação
− Linkedição (“Link”)
− Carregamento
− Execução
Edição:
− Através do uso de um editor de programas (ex: vi,
emacs, etc.)
Nomes de arquivos terminados com extensão .c
− Programa armazenado em dispositivo de memória
secundária
Fases de Execução
Pré-Processamento
− Incia-se logo após o comando de “compilar”
− Pré-processador executado antes da fase de tradução
propriamente dita
− Pré-processador C obedece a comandos especiais
chamados de diretivas ao pré-processador:
Certas manipulações feitas no programa antes da
compilação
Manipulações = inclusão de outros arquivos, troca de
símbolos especiais por texto de programa, etc.
Compilação:
− Tradução do programa em C para linguagem de
máquina
− Criação do código-objeto do
programa
Fases de Execução
Linkedição:
− Programas em C contém referências a outras funções
definidas na biblioteca padrão ou em outras bibliotecas
particulares
− O código-objeto produzido pelo compilador contém
“buracos” devido a estas partes “perdidas”
− A linkeditor (“linker”) combina o código que você
escreveu com o código-objeto já encontrado na
biblioteca padrão para criar uma imagem executável!
Em sistemas UNIX:
− Comando para compilar e linkeditar um programa: cc
− Se o programa compilar e linkeditar corretamente, um
arquivo chamado a.out é criado.
Carregamento
Carregamento:
− Antes de ser executado, o programa deve ser carregado
na memória principal do computador
− Isto é feito pelo carregador, que transfere a imagem
executável do disco para a memória principal
Execução:
− CPU lê cada instrução e a executa
O Primeiro Programa em C!
Imprimindo uma linha de texto:
/* Primeiro Programa */
main()
{
printf(“Bemvindo ao C!\n”);
}
Dissecando o primeiro programa...
main() - deve estar em todo programa C!!!
− Parênteses indicam que main é uma função
− Programas em C contêm uma ou mais funções: uma
delas deve ser a main()!
As chaves {} delimitam o corpo de cada função
Bloco de código:
− O par de chaves e a porção de programa entre as
chaves definem o bloco.
printf – imprime uma mensagem na tela
− Uma das funções da biblioteca padrão!
\n = “newline”:
− Sequência de escape que posiciona o cursor no início da
próxima linha na tela
Sequências de Escape
\n = newline.
− Posiciona o cursor no início da próxima linha
\t : tab horizontal.
− Move o cursor para a próxima parada do tab
\r : carriage return.
− Posiciona o cursor no início da linha atual; não avança
para a próxima linha
\a : alerta;
− Toca um beep
\\ : Imprime o caractere barra invertida em uma
instrução printf
\” : Imprime o caractere asps
Algumas Variações...
/* Primeiro Programa */
main()
{
printf(“Bemvindo “);
printf(“ao C!\n”);
}
Algumas Variações...
/* Primeiro Programa */
main()
{
printf(“Bemvindo\n ao\n C!\n“);
}
Adicionando dois números
/* Adicao de dois numeros */
#include <stdio.h>
main()
{
int inteiro1, inteiro2, soma; /* declaracao */
printf(“Entre com primeiro numero\n”);
scanf(“%d”, &inteiro1);
printf(“Entre com segundo numero\n”);
printf(“%d”, &inteiro2);
soma = inteiro1 + inteiro2;
printf(“Soma = %d\n”, soma);
return 0;
}
Dissecando...
#include <stdio.h>:
− Diretiva para o pré-processador C
− Linhas que começam com # são processadas pelo pré-
processador antes do programa ser compilado
− Neste caso específico, instrui o pré-processador para
incluir o conteúdo do arquivo de cabeçalho de entrada e
saída da biblioteca padrão C
int inteiro1, inteiro2, soma
− Declaração de variáveis
− inteiro1, inteiro2 e soma são variáveis
Nomes de variáveis em C:
− Qualquer conjunto de letras, dígitos e sublinhado (_)
− Apenas os 31 primeiros caracteres serão reconhecidos
pelo compilador C
Dissecando...
Scanf
− Recebe valores da entrada padrão
− Usualmente o teclado
Primeiro argumento: controle de formato
− Indica o tipo de dado que deve ser entrado pelo usuário
− O especificador de conversão %d indica que deve ser
um inteiro
Segundo argumento:
− Informa a posição na memória na qual a variável
inteiro1 está armazenada
Return:
− O valor zero indica ao sistema operacional que o
programa executou com sucesso.