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

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

UNIDADE 1 PROGRAMAÇÃO I. Introdução Programação I 2 Princípios da Solução de Problemas Problema Solução na forma de Algoritmo Solução como um programa.

Apresentações semelhantes


Apresentação em tema: "UNIDADE 1 PROGRAMAÇÃO I. Introdução Programação I 2 Princípios da Solução de Problemas Problema Solução na forma de Algoritmo Solução como um programa."— Transcrição da apresentação:

1 UNIDADE 1 PROGRAMAÇÃO I

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

3 Introdução Programação I 3 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 10/08/2010

4 Processamento de Dados Programação I 4 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 10/08/2010

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

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

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

8 10/08/2010 Programação I 8 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

9 Linguagem de Montagem 10/08/2010 Programação I 9 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

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

11 Linguagem de Alto Nivel 10/08/2010 Programação I 11 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

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

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

14 Funções do Compilador 10/08/2010 Programação I 14 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

15 Funções do Compilador 10/08/2010 Programação I 15 Análise léxica 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

16 Ligação ou Linkedição 10/08/2010 Programação I 16 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

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

18 Funções do Linkeditor 10/08/2010 Programação I 18 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

19 Execução 10/08/2010 Programação I 19 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)

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

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

22 Interpretação 10/08/2010 Programação I 22 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

23 Compilação X Interpretação 10/08/2010 Programação I 23 Compilaçã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)

24 Etapas de desenvolvimento e execução de um programa 10/08/2010 Programação I 24 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

25 Metodologia de desenvolvimento de Algoritmo 10/08/2010 Programação I 25 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

26 Metodologia de desenvolvimento de Algoritmo 10/08/2010 Programação I 26 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 Fazer comentários Passo 7 Testar cada passo do algoritmo Utilizar valores de teste Passo 8 Fazer uma avaliação geral, elaborando o algoritmo

27 Linguagem C 10/08/2010 Programação I 27 É 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.

28 Exemplo de programa em C 10/08/2010 Programação I 28 /* Fatorial */ #include 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 + 1 é equivalente a k++ */ } printf(" Fatorial = %d \n", f); system("PAUSE"); return 0; }


Carregar ppt "UNIDADE 1 PROGRAMAÇÃO I. Introdução Programação I 2 Princípios da Solução de Problemas Problema Solução na forma de Algoritmo Solução como um programa."

Apresentações semelhantes


Anúncios Google