Algoritmo e Estrutura de Dados I Introduo ao

  • Slides: 18
Download presentation
Algoritmo e Estrutura de Dados I Introdução ao conceito de algoritmo Márcia Marra marsha@dcc.

Algoritmo e Estrutura de Dados I Introdução ao conceito de algoritmo Márcia Marra marsha@dcc. ufmg. br

Objetivos • Fornecer o conceito de algoritmo e estrutura de dados. • Introduzir estruturas

Objetivos • Fornecer o conceito de algoritmo e estrutura de dados. • Introduzir estruturas básicas de controle.

Computador Simplificado

Computador Simplificado

Procedimento para a pessoa Passo 0: Escreva em uma folha de papel a identificação

Procedimento para a pessoa Passo 0: Escreva em uma folha de papel a identificação do primeiro escaninho (E 0) Passo 1: Pegue a instrução que está no escaninho indicado pela folha de papel Passo 2: Anote na folha de papel a identificação do escaninho seguinte Passo 3: Faça o que manda a instrução Passo 4: Volte para o Passo 1.

Processador • Conjunto de instruções (ações e operações) que ele é capaz de executar.

Processador • Conjunto de instruções (ações e operações) que ele é capaz de executar. • As instruções devem especificar: – O QUE deve ser feito (operação) – SOBRE QUAIS objetos (operandos)

Instruções do Computador Simplificado • Leia cartão e guarde em Ei • Copie Ei

Instruções do Computador Simplificado • Leia cartão e guarde em Ei • Copie Ei em Ej • Some (subtraia, multiplique, . . . ) Ei e Ej e guarde em Ek • Vá para Ei • Se Ei (maior, menor, maior e igual, . . . ) Ej então vá para Ek • Imprima Ei • Pare

Algoritmo • É uma receita que permite a um agente resolver um problema. •

Algoritmo • É uma receita que permite a um agente resolver um problema. • É constituído por uma seqüência de passos e deve terminar após número finito de passos. • Pode ter nenhuma, uma ou mais entradas. • Pode ter uma ou mais saídas – valores produzidos através de sua execução.

Programas • Uma das possíveis representações de algoritmos. • Sequências de instruções e constantes

Programas • Uma das possíveis representações de algoritmos. • Sequências de instruções e constantes que podem ser armazenadas na memória do computador. • Aspecto estático: seqüência de instruções e constantes; • Aspecto dinâmico: execução das instruções

Sequência para desenvolver um programa • Os requisitos são levantados • Uma solução é

Sequência para desenvolver um programa • Os requisitos são levantados • Uma solução é investigada e descrita • Um programa correspondente a solução é codificado em uma linguagem de programação • O programa é testado e modificado até que seja considerado correto.

Programa 1 E 0: E 1: E 2: Leia cartão e Se E 15

Programa 1 E 0: E 1: E 2: Leia cartão e Se E 15 maior guarde em E 15 guarde em E 14 que E 14 vá para E 5 E 3: Imprima E 14 E 4: Vá para E 6 E 5: Imprima E 15 E 6: Pare E 7: ? E 8: ? E 9: ? E 10: ? E 11: ? E 12: ? E 13: ? E 14: ? E 15: ?

Programa 1 – outra representação E 0: E 1: E 2: E 3: E

Programa 1 – outra representação E 0: E 1: E 2: E 3: E 4: E 5: E 6: leia o cartão e guarde em E 15 leia o cartão e guarde em E 14 se E 15 maior que E 14 vá para E 5 imprima E 14 vá para E 6 imprima E 15 pare

Programa 1 – outra solução? E 0: E 1: E 2: Leia cartão e

Programa 1 – outra solução? E 0: E 1: E 2: Leia cartão e Se E 15 maior guarde em E 15 guarde em E 14 que E 14 vá para E 5 E 3: Copie E 14 em E 13 E 4: Vá para E 6 E 5: Copie E 15 em E 13 E 6: Imprima E 13 E 7: Pare E 8: ? E 9: ? E 10: ? E 11: ? E 12: ? E 13: ? E 14: ? E 15: ?

Programa 2 E 0: E 1: Leia cartão e Se E 13 igual guarde

Programa 2 E 0: E 1: Leia cartão e Se E 13 igual guarde em E 13 a E 15 vá para E 4 E 2: E 3: Se E 13 igual Vá para E 0 a E 14 vá para E 4: Pare E 5: ? E 6: ? E 7: ? E 8: ? E 9: ? E 10: ? E 11: ? E 12: ? E 13: ? E 14: 0 E 15: 1

Programa 2 – outra representação E 0: leia o cartão e guarde em E

Programa 2 – outra representação E 0: leia o cartão e guarde em E 13 E 1: se E 13 igual a E 15 vá para E 4 E 2: se E 13 igual a E 14 vá para E 4 E 3: vá para E 0 E 4: pare E 14: 0 E 15: 1

Para pensar. . . • Todo algoritmo é um programa? • Todo programa é

Para pensar. . . • Todo algoritmo é um programa? • Todo programa é um algoritmo? • Dê um exemplo de um passo de um algoritmo que não pode ser executado num tempo finito. • O que deve ser feito se a instrução a ser executada é a instrução leia cartão e guarde em Ei e não existe um cartão disponível?

Pensando. . • Considere o trecho do programa: E 0: leia o cartão e

Pensando. . • Considere o trecho do programa: E 0: leia o cartão e guarde em E 15 e considere que seja lido o valor 5. Considere o trecho de programa: E 0: copie E 14 em E 15. . E 14: 5 Qual a principal diferença? ?

Pensando. . . • A instrução subtraia de Ei Ej e guarde em Ek

Pensando. . . • A instrução subtraia de Ei Ej e guarde em Ek corresponde a guardar em Ek o valor de Ei-Ej. Qual o efeito da instrução: subtraia de E 15 e guarde em E 15 Qual é o efeito da instrução some Ei e guarde em Ei

Pensando. . . • Processador possui alguns componentes denominados registradores. • Um dos registradores

Pensando. . . • Processador possui alguns componentes denominados registradores. • Um dos registradores é o contador de programas – responsável por armazenar a instrução que está sendo executada. • Em um processador genérico, qual a influência do número de bits do contador de programa no tamanho dos programas que podem ser executados?