• Nenhum resultado encontrado

Ambiente de desenvolvimento

N/A
N/A
Protected

Academic year: 2021

Share "Ambiente de desenvolvimento"

Copied!
34
0
0

Texto

(1)
(2)

Ambiente de desenvolvimento

• Um programa em C passa por seis fases até a execução:

1) Edição 2) Pré-processamento 3) Compilação 4) Linking 5) Carregamento 6) Execução

(3)

Etapa 1: Criação do programa no editor Etapa 2: Manipulação do código pelo pré-processador

Etapa 3: Criação do código objeto pelo compilador e armazenamento em disco Etapa 4: Conecta o código objeto com as bibliotecas, criando um executável e o armazena no disco

Etapa 5: Traz o arquivo do disco para a memória

Etapa 6: CPU pega cada instrução e a

executa, armazenando novos valores como conforme a execução do programa

(4)

Edição

• Realizada pelo programador no editor do ambiente de desenvolvimento

• O programa é armazenado em um dispositivo de armazenamento secundário (disco rígido) com extensão .c

(5)

Pré-processamento e compilação

• A seguir, o programador emite o comando para compilar o programa • O compilador traduz o programa em C para a linguagem de máquina

(também chamado de código-objeto)

• Antes da tradução começar, o compilador aciona automaticamente o programa pré-processador

• O pré-processador obedece a comandos especiais chamados de diretivas de pré-processador, que indicam a realização de

manipulações no programa

• Inclusão de outros arquivos

(6)

Linking

• Programas em C normalmente contêm referências a funções definidas em bibliotecas

• Assim, o código-objeto produzido pelo compilador C contém lacunas devido à falta dessas funções

• Um linker faz a ligação do código-objeto com o código das funções que estão faltando para produzir uma imagem executável (sem lacunas)

• Se o programa for compilado e linkado corretamente, será produzido um arquivo executável do código inicial

(7)

Carregamento e execução

• Antes que possa ser executado pela primeira vez, o programa deve ser colocado na memória

• Isto é feito pelo carregador (rotina de carga ou loader), que apanha a imagem executável do disco e a transfere para a memória

• Finalmente, a CPU executa as instruções do programa, uma após a outra

(8)

Dispositivos de entrada e saída

• Determinadas funções do C recebem seus dados de entrada a partir do stdin (o dispositivo padrão de entrada, ou standard input device) que normalmente é definido como o teclado.

• Os resultados são enviados para o stdout (o dispositivo padrão de saída, ou standard output device), que normalmente é a tela do

computador.

• Há também um dispositivo padrão de erro (standard error device) chamado stderr. Este dispositivo é usado para exibir mensagens de

(9)

Dispositivos de entrada e saída

• Determinadas funções do C recebem seus dados de entrada a partir do stdin (o dispositivo padrão de entrada, ou standard input device) que normalmente é definido como o teclado.

• Os resultados são enviados para o stdout (o dispositivo padrão de saída, ou standard output device), que normalmente é a tela do

computador.

• Há também um dispositivo padrão de erro (standard error device) chamado stderr. Este dispositivo é usado para exibir mensagens de

(10)
(11)
(12)

Impressão de linha de texto

• Comentários

– Texto rodeado por /* e */ é ignorado pelo computador – Usado para documentar e descrever o programa

• #include <stdio.h>

– Diretiva de pré-processamento

• Diz para o computador carregar o conteúdo de um determinado arquivo

– <stdio.h> habilita as operações de entrada e saída padrão

• int main()

– Qualquer programa em C deve conter uma função main (principal) – Ela indica o início da execução do programa

– Parentêses () indicam uma função

– int significa que essa função retornará um valor inteiro – Chaves { e } indicam um bloco

(13)

Impressão de linha de texto

• printf( "Bem-vindo ao C!\n" );

– Instrui o computador a realizar uma ação

• Qualquer instrução deve terminar com um ponto e vírgula ;

– Imprime a mensagem contida dentro das aspas" " – Caractere de escape (\ )

• o caractere \n indica que printf deve fazer algo fora do padrão

• Chave direita }

– Indica o fim de main

• Linker

– Quando uma função é chamada, o linker a localiza na biblioteca e a vincula no código-objeto

– Se o nome da função estiver erradon, o linker produzirá um erro porque ele não será capaz de encontrar a função na biblioteca

(14)
(15)
(16)
(17)
(18)
(19)
(20)

Somando dois inteiros

• int numero1; • int numero2; • int soma;

– Declaração de variáveis

Variável: local na memória onde um valor pode ser armazenado – int - palavra-chave reservada (tipo de dados)

– Variáveis podem assumir valores inteiros ( -1 , 3 , 0 , 47 )

Devem ser declaradas antes de serem utilizadas em uma instrução

• Se uma instrução fizer referência a uma variável não declarada, será produzido um erro de sintaxe – compilador não reconhece a instrução

– Nomes de variável (identificadores)

• Aceita letras, dígitos (não pode começar com um dígito) e sublinhados ( _ ) • Sensível a maiúsculas e minúsculas

• Pode ter qualquer comprimento, porém a linguagem C reconhece apenas os 31

(21)
(22)

Somando dois inteiros

• scanf( "%d", &numero1 );

– Função definida na biblioteca padrão stdio.h

scanf recebe a entrada do dispositivo padrão (teclado normalmente)

– A função scanf possui dois argumentos:

• %d – especificador de conversão - indica o tipo de dado aceito (d - inteiro do sistema decimal)

• & - operador de endereço

• &numero1 – indica o endereço na memória atribuído à numero1

(23)

Somando dois inteiros

= operador de atribuição

– Atribui um valor a uma variável

– Variável posicionada à esquerda do operador recebe o valor Soma = numero1 + numero2;

Calcula a adição das variáveis numero1 e numero2 e atribui o resultado à variável soma usando o operador de atribuição

– A instrução é lida como: soma recebe o valor de numero1+numero2

printf( "Soma é %d\n", soma );

– Função definida na biblioteca padrão stdio.h

– apresenta a saída no dispositivo padrão (tela normalmente) – printf possui dois argumentos:

• String de controle de formato (" ")

• %d – especificador de conversão - indica o tipo de dado impresso • soma especifica o valor que será impresso

(24)

Variáveis e memória

• Variáveis

– Nomes de variáveis correspondem à posições na memória do computador

– Cada variável tem um nome, um tipo e um valor

– A operação de gravação (através de scanf , por exemplo) substitui e destrói o valor anterior

– A operação de leitura não modifica o valor armazenado na variável

• Uma representação visual

numero1

numero2

(25)
(26)

Aritmética em C

– Utilize * para multiplicação e / para divisão

– Divisão de número inteiros gera um resultado inteiro (truncamento)

• 7 / 4 resulta 1 • 17 / 5 resulta 3

– Operador % retorna o resto

• 7 % 4 resulta 3 • 17 % 5 resulta 2

(27)

Precedência de operadores

– Ordem que C utiliza para avaliar expressões – Alguns operadores atuam antes de outros – * e / antes de + e

-– Avaliados da esquerda para a direita

Use parênteses quando for necessário forçar a precedência – Exemplo: calcular a média das variáveis a , b e c

Use: (a + b + c ) / 3 Não use: a + b + c / 3

– Parênteses aninhados : de dentro pra fora ((a + b) + c )

(28)
(29)
(30)
(31)

Tomada de decisão

• Instruções realizam ações (cálculos, entrada/saída de dados) ou

tomam decisões

• Estrutura if

• Toma decisões com base em uma condição

• Condição satisfeita – as instruções no corpo de if são executadas • Condição não satisfeita – instrução não é executada

• Independentemente do resultado, execução prossegue para o próximo passo

(32)

Operadores relacionais

Álgebra C Exemplo em C Significado

= == x == y x é igual a y ≠ != x != y x não é igual a y > > x > y x é maior que y < < x < y x é menor que y ≥ >= x >= y x é maior ou igual a y ≤ <= x <= y x é menor ou igual a y

(33)
(34)

Referências

Documentos relacionados

• Membro da Rede de Diálogo do Observatório da Equidade do Conselho de Desenvolvimento Econômico e Social da Presidência da República (CDES-PR) • Consultor da

A tem á tica dos jornais mudou com o progresso social e é cada vez maior a variação de assuntos con- sumidos pelo homem, o que conduz também à especialização dos jor- nais,

Neste tipo de situações, os valores da propriedade cuisine da classe Restaurant deixam de ser apenas “valores” sem semântica a apresentar (possivelmente) numa caixa

Mestrado em Administração e Gestão Pública, começo por fazer uma breve apresentação histórica do surgimento de estruturas da Administração Central com competências em matéria

Posteriormente, em Junho de 1999, ingressei no grupo Efacec, onde fui responsável pela elaboração de projetos e propostas para a construção de Estações de Tratamento

Dessa forma, percebe-se que os Correios buscam atender às necessidades de seus clientes, mas ao mesmo tempo investem em ações internas para que seus processos

[r]

Taking into account the theoretical framework we have presented as relevant for understanding the organization, expression and social impact of these civic movements, grounded on