A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

PROGRAMAÇÃO I UNIDADE 1.

Apresentações semelhantes


Apresentação em tema: "PROGRAMAÇÃO I UNIDADE 1."— Transcrição da apresentação:

1 PROGRAMAÇÃO I UNIDADE 1

2 Solução na forma de Algoritmo
Introdução Princípios da Solução de Problemas 1 Fase de Resolução do Problema Problema Solução na forma de Algoritmo Solução como um programa de computador Fase de Implementação (ou codificação) do Algoritmo em alguma Ling. de Programação 2 Programação I 08/2011

3 Introdução Princípios da Solução de Problemas Entendimento do problema
Criação de uma seqüência de operações (ou ações) que, quando executadas, produzem a solução do problema Descrição desse conjunto de ações Codificação ( uso de uma linguagem de programação) Resolução de Problema Programação Programação I 10/08/2010

4 Processamento de Dados
Entrada Processamento Saída Qualquer atividade ou conjunto de atividades ordenadamente realizadas que, utilizando informações (ou dados) básicos, efetua transformações para obter novas informações (ou dados) como resultado Programação I 10/08/2010

5 Programa Dispositivo de Entrada Processamento Dispositivo de Saída
Linguagem de Programação Impressora, Video, Disco, etc Teclado, Mouse, etc Programa Instruções (comandos) a serem executadas pelo computador Programação I 10/08/2010

6 Algoritmo X Programa Codificação Codigo Programa Algoritmo
É uma sequencia de passos que visam atingir um objetivo Programa Instruções (comandos) passo a passo para ser executado pelo computador Codificação Converter as declarações de um algoritmo em um conjunto de instruções numa linguagem de programação específica Codigo Programação I 10/08/2010

7 Linguagem de Programação
Linguagem de Alto Nível Linguagem de Montagem Linguagem de Máquina Programação I 10/08/2010

8 Linguagem de Máquina Código na forma binária (ou hexadecimal)
Necessidade de conhecer as instruções da máquina e seus respectivos códigos de operação Necessidade de conhecer os componentes (registradores) do processador (UCP) e os endereços de memória Ex: Programa para calcular Programação I 10/08/2010

9 Linguagem de Montagem “Assembly Language”
Instruções escritas através de símbolos Cada instrução corresponde a uma única instrução em linguagem de máquina Necessidade de converter o programa para a linguagem de máquina Processo chamado de Montagem realizado por um programa chamado Montador (ou Assembler) Ex: programa para calcular LD HL,23 LD BC, 100 ADD HL, BC Programação I 10/08/2010

10 Processo de Montagem Montagem Código Objeto Código Fonte
Programa original em linguagem de montagem Montagem Montador Código Objeto Programa resultante em linguagem binária Programação I 10/08/2010

11 Linguagem de Alto Nivel
Estruturadas de acordo com a compreensão do programador Cada instrução pode corresponder a dezenas de instruções de máquina “orientada ao problema” Necessidade de converter o programa para linguagem de máquina Processo chamado de Compilação realizado por um programa chamado Compilador Ex. Linguagens: Fortran, Pascal, C, Java Ex: Programa para calcular A=23 B=100 TOTAL=A+B Programação I 10/08/2010

12 Processo de Compilação
Código Fonte Programa original em linguagem de alto nivel Compilação Compilador Código Objeto Programa em linguagem binária Programação I 10/08/2010

13 Processo de Compilação
Código Fonte Programa original em linguagem de alto nível Compilação Compilador Código Objeto Programa em linguagem binária Programação I 10/08/2010

14 Funções do Compilador Compilação é semelhante a montagem mas é mais complexo e demorado (diferente da relação 1:1 das linguagens de montagem) Também chamada de tradução Realiza várias tarefas: Análise léxica Análise sintática Análise semântica Criação do código binário Programação I 10/08/2010

15 Funções do Compilador Análise léxica Análise Sintática
Verificar se todos os símbolos (comandos ou não) utilizados são permitidos pela linguagem (Ex: o igual em Pascal é “:=“, em C é “=“ ) Análise Sintática Verifica a estrutura de cada comando Análise semântica Análise semântica estática (regras de compilação) dos comandos Ex: na linguagem Basic, o desvio para uma linha que não existe Programação I 10/08/2010

16 Ligação ou Linkedição Facilidade criada para evitar que o programador precise codificar todas as operações Algumas operações já são disponibilizadas (no sistema) em código binário pelas linguagens O código é buscado e integrado ao programa que está sendo desenvolvido Processo chamado de linkedição (ou ligação) realizado por um linkeditor (ou ligador) Exemplo de códigos (funções) existentes: Impressão, raiz quadrada, comparação de dois nomes, etc. Esses códigos objetos (rotinas) são organizados em Bibliotecas Identificados pelo nome da rotina Incorporados no programa a partir de uma chamada de biblioteca Programação I 10/08/2010

17 Processo de Linkedição
Código Fonte Programa original em linguagem de alto nível Compilação Compilador Código Objeto Programa em linguagem binária (arquivos “.obj”) Biblioteca 1 Ligação Ligador/ Linkeditor Biblioteca 2 Biblioteca... Programa resultante em linguagem binária (arquivos “.exe” ou “.com”) Código Executável Programação I 10/08/2010

18 Funções do Linkeditor Quando o compilador encontra uma chamada à rotina de biblioteca, cria uma “referência externa não resolvida” Linkeditor analisa todo o código objeto procurando por “referência externa não resolvida” Para cada “referência externa não resolvida” Procura na biblioteca a rotina correspondente Quando encontra, substitui a linha de comando pelo código objeto encontrado na biblioteca Programação I 10/08/2010

19 Execução Execução propriamente dita do código executável
Existem bibliotecas dinâmicas que são carregadas somente na execução Processo realizado por um programa chamado carregador (ou loader) Existem carregadores (loaders) que fazem toda a linkedição e execução ao mesmo tempo (sem armazenar código executável, ou seja, o código é gerado mas não armazenado) Programação I 10/08/2010

20 Processo de Execução Completa
Código Fonte Programa original em linguagem de alto nível Compilação Compilador Código Objeto Programa em linguagem binária Biblioteca 1 Ligação Ligador/ Linkeditor Biblioteca 2 Biblioteca... Código Executável Programa resultante em linguagem binária Ligação Carregador Programação I 10/08/2010

21 Programa original em linguagem de alto nível
Código Fonte Programa original em linguagem de alto nível Compilação Compilador Código Objeto Programa em linguagem binária Ligação e Execução Carregador Programação I 10/08/2010

22 Interpretação Usado por linguagens de alto nível
Execução das três fases (compilação, linkedição e execução) de uma só vez Processo chamado de interpretação realizado por um programa chamado interpretador Lê comando  converte em código executável  executa (antes que o comando seguinte seja lido) Ex. linguagens: APL, ASP Programação I 10/08/2010

23 Compilação X Interpretação
Menor consumo de memória Transformação de partes comuns (rotinas de repetição) de uma única vez Interpretação Maior consumo de memória Necessidade de partes comuns (rotinas de interpretação) várias vezes Necessidade de carregar o código fonte na memória durante a execução Execução mais lenta (necessidade de tradução, linkedição e execução) Programação I 10/08/2010

24 Etapas de desenvolvimento e execução de um programa
Desenvolver o algoritmo Elaborar como solucionar passo a passo o problema Envolve o que chamamos de “lógica de programação” Codificar o algoritmo Escrever o algoritmo em uma linguagem de programação Interpretar ou Compilar Linkeditar Executar o programa Programação I 10/08/2010

25 Metodologia de desenvolvimento de Algoritmo
Passo 1 Leia cuidadosamente a especificação do problema até o final Faça anotações Passo 2 Senão entendeu, repita o passo 1 até entender (tire dúvidas com quem especificou) Passo 3 Identificar todas as saídas exigidas na especificação do problema Passo 4 Identificar todas as entradas exigidas na especificação do problema Programação I 10/08/2010

26 Metodologia de desenvolvimento de Algoritmo
Passo 5 Verificar se é necessário gerar valores internamente ao algoritmo Fazer comentários Passo 6 Identificar todas as transformações necessárias para, a partir da entrada, produzir as saídas Passo 7 Testar cada passo do algoritmo Utilizar valores de teste Passo 8 Fazer uma avaliação geral, elaborando o algoritmo Programação I 10/08/2010

27 Linguagem C É uma linguagem de alto nível com uma sintaxe bastante estruturada e flexível tornando sua programação bastante simplificada. Programas em C são compilados, gerando programas executáveis. O C compartilha recursos tanto de alto quanto de baixo nível, pois permite acesso e programação direta do microprocessador. Com isto, rotinas cuja dependência do tempo é crítica, podem ser facilmente implementadas usando instruções em Assembly. Por esta razão o C é a linguagem preferida dos programadores de aplicativos. Programação I 10/08/2010

28 Exemplo de programa em C
/* Fatorial */ #include <stdio.h> #include <stdlib.h> int main (void) { int k; int n; long int f = 1; printf("Digite um numero inteiro nao negativo:"); scanf("%d", &n); /* calcula fatorial */ k = 1; while (k <= n) f = f * k; /* a expressão f = f * i é equivalente a f *= k */ k = k + 1; /* a expressão k = k é equivalente a k++ */ } printf(" Fatorial = %d \n", f); system("PAUSE"); return 0; Programação I 10/08/2010


Carregar ppt "PROGRAMAÇÃO I UNIDADE 1."

Apresentações semelhantes


Anúncios Google