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

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

Algoritmos e Estruturas de Dados I - Introdução Profa. Mercedes Gonzales Márquez.

Apresentações semelhantes


Apresentação em tema: "Algoritmos e Estruturas de Dados I - Introdução Profa. Mercedes Gonzales Márquez."— Transcrição da apresentação:

1 Algoritmos e Estruturas de Dados I - Introdução Profa. Mercedes Gonzales Márquez

2 Conceitos Básicos Computadores – máquinas capazes de solucionar problemas, mas que só agem quando recebem instruções nos mínimos detalhes. A tarefa principal dos computadores é o processamento de dados, ou seja, receber dados (entrada), realizar operações (processamento propriamente dito) e gerar uma resposta (saída).

3 Conceitos Básicos MEMÓRIA UNIDADE DE ENTRADA UNIDADE DE SAIDA UNIDADE DE CONTROLE UNIDADE LÓGICA E ARITMÉTICA Unidade Central de Processamento (UCP) Estrutura de um computador

4 Conceitos básicos Unidade de entrada – Traduz informação de um dispositivo de entrada em um código que a UCP entende (padrões de pulsos elétricos compreensíveis ao computador). Unidade de saída – converte os dados processados, de pulsos elétricos em palavras ou números que podem ser escritos em vídeos ou outros dispositivos de saída. Exemplos ue: – Teclado – drive de CD / DVD-ROM, pen drive.

5 Conceitos básicos – joystick, – câmera filmadora, – câmera digital, – tela sensível ao toque, – mesa gráfica, – caneta ótica, etc. Exemplos de us Vídeo Impressora drive de CD/DVD-ROM, pen drive caixa de som, etc.

6 Conceitos básicos Memória – armazena os dados e o próprio programa. Número finito de localizações que são identificadas por meio de um único endereço Read/Write CPU Endereço Dados Escrita – CPU envia endereço da posição de memória a ser escrita e dados a escrever. Leitura – CPU envia endereço da posição de memória a ser lida e recebe dados.

7 Conceitos básicos Unidade lógica e aritmética – São executadas operações matemáticas de adição, multiplicação e divisão e operações lógicas como conjunção, disjunção, ou exclusivo e outras. Unidade de controle – Responsável pelo tráfico de dados. Controla a transferência de dados da memória para a unidade lógica e aritmética, da entrada para a memória e da memória para a saída.

8 Algoritmos - Conceito Sequência de passos que visa atingir um objetivo bem definido. Um algoritmo é um conjunto finito de regras que fornece uma sequencia precisa de operações para resolver um problema específico. Descrição de um conjunto de comandos que, obedecidos, resultam numa sucessão finita de ações.

9 Algoritmos - Características Finitude: algoritmos devem terminar após um número finito de passos; Definição: cada passo deve ser precisamente definido Entradas: devem ter zero ou mais entradas Saídas: devem ter uma ou mais saídas; Efetividade: todas as operações devem ser simples de modo que possam ser executadas em um tempo limitado.

10 Algoritmos – exemplos da vida quotidiana Instruções que um professor passa aos seus alunos em uma academia de ginástica Uma receita para preparo de um bolo O guia de preenchimento da declaração de imposto de renda. A regra para determinação de máximos e mínimos de funções por derivadas sucessivas. A maneira como as contas de água, luz e telefone são calculadas mensalmente.

11 Problemas mais complexos solucionados por algoritmos - A internet permite que pessoas espalhadas por todo o mundo acessem e obtenham com rapidez grandes quantidades de informações. Para isso, são empregados algoritmos inteligentes com a finalidade de gerenciar e manipular esse grande volume de dados. Os exemplos de problemas que devem ser resolvidos incluem a localização de boas rotas pelas quais os dados viajarão e o uso de um mecanismo de pesquisa para encontrar com rapidez páginas em que residem informações específicas.

12 Problemas mais complexos solucionados por algoritmos - O comercio eletrônico permite que mercadorias e serviços sejam negociados e trocados eletronicamente. A capacidade de manter privativas informações como números de cartão de crédito, senhas e extratos bancários é essencial para a ampla utilização do comercio eletrônico. A criptografia de chave pública e as assinaturas digitais estão entre as tecnologias centrais utilizadas e se baseiam em algoritmos numéricos e na teoria dos números.

13 Algoritmos - exemplo 1 Algoritmo – instruções que um professor passa aos seus alunos em uma academia de ginástica para fortalecer braços e pernas. 1) Repetir 10 vezes os quatro passos abaixo: 1.1.Levantar e abaixar braço direito; 1.2.Levantar e abaixar braço esquerdo; 1.3.Levantar e abaixar perna esquerda; 1.4.Levantar e abaixar perna direita.

14 Algoritmos - exemplo 2 Algoritmo – Fazer um bolo 1 ) Bater duas claras ; 2) Adicionar duas gemas; 3) Adicionar um xícara de açúcar; 4) Adicionar duas colheres de manteiga; 5) Adicionar uma xícara de leite de coco; 6) Adicionar farinha e fermento; 7) Colocar numa forma e levar ao forno em lume brando

15 Algoritmos - exemplo 3 Problema – Dispomos de duas vasilhas com capacidades de 9 e 4 litros respectivamente. As vasilhas não tem nenhum tipo de marcação, de modo que não é possível ter medidas como metade ou um terço. Faça um algoritmo que usando as vasilhas de 9 e 4 litros encha uma terceira vasilha de medida desconhecida com seis litros de água. Uma possível solução é: (1) Encha a vasilha de 9 litros;

16 Algoritmos - exemplo 3 (2) Usando a vasilha de 9 litros, encha a vasilha de 4 litros; (3) Despeje o que sobrou na vasilha de 9 litros (5 litros) na terceira vasilha. Observe que falta um litro para completar os seis litros; (4) Esvazie a vasilha de 4 litros; (5) Torne a encher a vasilha de 9 litros; (6) Usando a vasilha de 9 litros encha a vasilha de 4 litros; (7) Esvazie a de 4 litros; (8) Usando o que restou na vasilha de 9 litros (5 litros), encha novamente a vasilha de quatro litros; (9) Despeje o que sobrou na vasilha de 9 litros (1 litro) na terceira vasilha, que agora tem 6 litros.

17 Algoritmos - exemplo 4 Problema – Considere cinco rãs estão posicionadas em seis casas da seguinte maneira: Faça um algoritmo que mostre como as rãs podem chegar a seguinte posição final: rã 5rã 4rã 3rã 2rã 1 rã 2rã 3rã 4rã 5

18 Algoritmos - exemplo 4 As rãs foram treinadas para trocar de casas, mas sempre obedecendo as seguintes regras: - elas podem pular para a casa vizinha (frente ou trás), se ela estiver vazia; - elas podem pular sobre a rã vizinha para uma casa livre (frente ou trás).

19 Algoritmos - exemplo 4

20 Algoritmos - exemplo 5 Algoritmo – um algoritmo que inclua decisões, como o que fazer em um domingo. Um possível algoritmo poderia ser o seguinte: (1) Acordar. (2) Tomar o café. (3) Se estiver sol vou à praia senão leio o jornal e assisto TV (4) Almoçar. (5) Ir ao cinema. (6) Fazer uma refeição e comer (7) Ir dormir.

21 Algoritmos – Método de Construção entender o problema; definir os dados de entrada; definir o processamento; definir os dados de saída; construir o algoritmo usando descrição narrativa, fluxograma ou pseudocódigo; realizar testes.

22 Algoritmos - Dificuldades Difícil para iniciantes saber o que o computador pode ou não fazer Criação de algoritmos é um processo não automático e tem muito de arte Pode haver mais de uma solução para um problema.

23 Algoritmos – exemplo 1 Calcular a área de um retângulo. Dados de entrada base e altura Processamento (cálculo) Área do retângulo = base x altura Dados de saída Área do retângulo

24 Algoritmos – exemplo 2 Calcular a média ponderada de um aluno e verificar a sua aprovação em relação a uma média pré-definida para aprovação. n notas e n pesos devem ser considerados. Dados de entrada notas e pesos correspondentes, média para aprovação Processamento (cálculo) Média do aluno = [(N1 x P1) + (N2 x P2) (Nn x Pn)] / (P1 + P Pn) Se média do aluno for maior ou igual à média para aprovação, aluno aprovado. Caso contrário, aluno reprovado. Dados de saída Média do aluno, aprovação

25 Algoritmos – exemplo 3 Encontre o MDC de dois números A e B. Dados de entrada Os números A e B Processamento (cálculo) dividendo = a; divisor = b enquanto resto(dividendo/divisor) 0 c = resto(dividendo/divisor) dividendo = divisor divisor = c Dados de saída divisor.

26 Algoritmos – exemplo 4 Escreva os termos da sequência de Fibonacci inferiores a L. Dados de entrada O número L Processamento (cálculo) Atribua 1 ao primeiro termo. Se 1 for menor que L escreva-o. Atribua 1 ao segundo termo. Se 1 for for menor que L escreva-o. Some primeiro e segundo termo e escreva. enquanto a soma for menor que L, atualize o primeiro e segundo termo e repita o último passo Dados de saída Todos os termos inferiores a L.

27 Algoritmos - Representação Linguagem natural ou descrição narrativa: Algoritmos expressos diretamente em linguagem natural como as receitas. Fluxograma: representação gráfica Pseudo-código (pseudo-linguagem): linguagem intermediária entre linguagem natural e linguagem de programação.

28 Algoritmos - Representação Descrição narrativa Escrever, usando linguagem natural, os passos a serem seguidos para a solução. Vantagens – a linguagem natural já é bastante conhecida. Não é necessário aprender nenhum conceito novo. Desvantagens – possibilidades de várias interpretações, gerando dificuldade na codificação.

29 Algoritmos – Representação Exemplo 1 – Descrição narrativa Passo 1 – Ingressar largura do retângulo Passo 2 – Ingressar altura do retângulo Passo 3 – Multiplicar a largura pela altura Passo 4 – Mostrar o resultado da multiplicação

30 Algoritmos – Representação Exemplo 2 – Descrição narrativa Passo 1 – Ingressar pesos Pi e notas Ni Passo 2 – Ingressar media referência MF Passo 3 – Calcular a média ponderada usando MA = [(N1 x P1) + (N2 x P2) (Nn x Pn)] / (P1 + P Pn) Passo 4 – Se MA>=MF COND=Aprovado senão COND=Reprovado Passo 5 – Mostrar MA e COND

31 Algoritmos - Representação Fluxograma Descrição dos passos para a resolução do problema utilizando símbolos gráficos definidos previamente. Vantagens – entendimento mais fácil do que a leitura de textos. Desvantagens – necessidade de aprender a simbologia. Poucos detalhes, dificultando a codificação.

32 Algoritmos - Representação Fluxograma – símbolos utilizados Início e fim do algoritmo Sentido do fluxo de dados Cálculos e atribuição de valores Entrada de dados Saída de dados Tomada de decisão

33 Algoritmos - Representação Exemplo 1 – Fluxograma Início Fim b, h A = b * h A

34 Algoritmos - Representação Exemplo 2 – Fluxograma Início Fim n,pi,Ni,MR MA = [(N1 x P1) + (N2 x P2) (Nn x Pn)] / (P1 + P Pn) A MA>=MR Cond=ACond=R VF MA, Cond

35 Algoritmos - Representação Exemplo 2 – Fluxograma – Maior detalhe Início Fim P(cont),N(cont) MA = [(N(1) x P(1) + N(2) x P(2) (N(n) x P(n)] / (P1 + P Pn) MA>=MR Cond=A Cond=R V F MA, Cond Cont<=n Cont=1 n, MR Cont=cont+1 V F

36 Algoritmos - Representação Exemplo 3 – Fluxograma – Fim F dividendo=a, divisor=b a,b c=resto(dividendo/divisor) dividendo=divisor divisor=c V resto(dividendo/divisor)<>0 Início dividendo=a, divisor=b divisor

37 Algoritmos - Representação Exemplo 4 – Fluxograma – Início Fim Fib

38 Algoritmos - Representação Pseudocódigo (portugol) Descrição dos passos a serem seguidos através de regras definidas previamente. Vantagens – codificação mais rápida. Desvantagens – necessidade de aprender o pseudocódigo.

39 Algoritmos – Representação por pseudocódigo Símbolos e palavras utilizadas (convenção nossa) Cálculos e atribuição de valores Entrada de dados leia Saída de dados escreva Tomada de decisão (1 vez) Se … então... Senão... Tomada de decisão (repetidas vezes) Enquanto … faça V F V

40 Algoritmos – Representação por pseudocódigo Exemplo 1 ALGORITMO Inicio escreva Informe a largura do retângulo leia b escreva Informe a altura do retângulo leia h a b * h escreva Área =, a Fim

41 Algoritmos – Representação por pseudocódigo Exemplo 2 – ALGORITMO Inicio escreva Informe o número de notas leia n escreva Informe Média de referência Leia MF Contador 1,somaproduto 0, somapesos 0 Enquanto contador<=n escreva Informe nota(contador) leia n(contador) escreva Informe peso(contador) leia p(contador) somaproduto p(contador)*n(contador)+somaproduto somapesos p(contador)+somapesos contador contador+1

42 Algoritmos – Representação por pseudocódigo Exemplo 2 – MA<-somaproduto/somapesos Se MA>=MF então Cond Aprovado Senão Cond Reprovado escreva MA, Cond Fim

43 Algoritmos – Representação por pseudocódigo Exemplo 4 – ALGORITMO Início Leia L T11, T21 Se (T1

44 Algoritmos - Representação Exemplo 5 – Faça um algoritmo para calcular as raízes de uma equação do segundo grau da forma ax2+bx+c=0. -As raízes podem ser calculadas pelas fórmulas x1=[-b+(b2-4ac)(1/2)]/(2a) e x2=[-b-(b2-4ac)(1/2)]/(2a) -Não podemos somente aplicar a fórmulas. Temos que considerar Por exemplo o que fazer se o valor do coeficiente a for igual a zero? Um possível algoritmo é o seguinte:

45 Algoritmos – Representação Exemplo 5. Descrição Narrativa Passo 1. Obter os coeficientes a, b e c Passo 2. Se o coeficiente a for igual a zero informar que esta não é uma equação do segundo grau e terminar o algoritmo. Caso contrário calcule delta=b2-4ac Passo 3. Se o valor de delta for negativo informar que a equação não tem raízes reais e terminar o algoritmo. Caso contrário calcule a raiz quadrada de delta e guarde o resultado como raiz Passo 4. Calcule x1=(-b + raiz)/(2a) Passo 5.Calcule x2=(-b - raiz)/(2a) Passo 6. Mostrar x1 e x2

46 Algoritmos – Representação Exemplo 5. Passe a solução apresentada na representação narrativa para a descrição por fluxograma e por pseudocódigo.

47 Exemplo 6: Leia três valores inteiros, determine e imprima o menor deles. Algoritmos – Representação Exemplo 6. Descrição Narrativa Passo 1. Obtenha os números a, b e c Passo 2. Se a é o menor dos três, fazer menor=a Caso contrário se b for menor que c fazer menor=b Caso contrário menor=c Passo 3. Mostrar menor

48 Algoritmos – Representação Exemplo 6. Passe a solução apresentada na representação narrativa para a descrição por fluxograma e por pseudocódigo.

49 Algoritmos – Representação Exemplo 6. Descrição Pseudo-código Leia A,B,C Se A

50 Algoritmos – Representação Exemplo 7. Considere o seguinte problema. Um escritório de previsão do tempo armazena diariamente a temperatura de uma determinada região. A tarefa é descobrir qual é a menor temperatura registrada nos arquivos do escritório durante um mês de 30 dias. Lembrar que temperaturas podem ser negativas ou positivas. Um possível algoritmo seria o seguinte:

51 Algoritmos – Representação Exemplo 7. Descrição Narrativa Passo 1. Pegue a primeira temperatura registrada. Passo 2. Anote esta temperatura como a menor de todas as temperaturas. Passo 3. Enquanto ainda não ler as 30 temperaturas, execute repetidamente e em ordem todas as instruções numeradas abaixo: Passo 4. Pegue a próxima temperatura. Passo 5. Se esta temperatura for menor que àquela registrada no momento como a menor então jogue fora a anteriormente registrada e anote a nova temperatura como a menor de todas. Passo 6. Pegue a temperatura que está anotada como a menor. Esta é a temperatura que estávamos procurando.

52 Algoritmos – Representação Exemplo 7. Passe a solução apresentada na representação narrativa para a descrição por fluxograma e por pseudocódigo.


Carregar ppt "Algoritmos e Estruturas de Dados I - Introdução Profa. Mercedes Gonzales Márquez."

Apresentações semelhantes


Anúncios Google