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

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

Algoritmos e Estruturas de Dados I - Introdução

Apresentações semelhantes


Apresentação em tema: "Algoritmos e Estruturas de Dados I - Introdução"— 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 Estrutura de um computador
Conceitos Básicos Estrutura de um computador MEMÓRIA UNIDADE DE ENTRADA UNIDADE DE SAIDA UNIDADE DE CONTROLE UNIDADE LÓGICA E ARITMÉTICA Unidade Central de Processamento (UCP)

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 Exemplos de us Vídeo Impressora
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. 1000 1003 1004 1005 1006 1007 1008 1009 1010 1001 1002 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 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.

12 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

13 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;

14 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.

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

16 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).

17 Algoritmos - exemplo 4

18 Algoritmos - exemplo 5 (1) Acordar. (2) Tomar o café.
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.

19 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.

20 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.

21 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

22 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

23 Algoritmos – exemplo 3 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.

24 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.

25 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.

26 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

27 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

28 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.

29 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

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

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

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

33 Algoritmos - Representação
Exemplo 3 – Fluxograma – T1<L F Início L T1=1, T2=1 V T1,T2 Fib=T1+T2 F Fib<L Fim V Fib T1=T2 T2=Fib

34 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.

35 Algoritmos - Representação
Exemplo 1 – Pseudocódigo 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

36 Algoritmos - Representação
Exemplo 2 – Pseudocódigo 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

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

38 Algoritmos - Representação
Exemplo 3 – Pseudocódigo ALGORITMO Início Leia L T1<-1, T2<-1 Se (T1<L) então escreva (T1,T2) Fib<-T1+T2 Enquanto (Fib<L) faça escreva Fib T1<-T2 T2<-Fib Fim enquanto Fim se Fim

39 Algoritmos - Representação
Exemplo 4 – 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:

40 Algoritmos – Representação Exemplo 4. 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

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

42 Algoritmos – Representação
Exemplo 5. 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. Lembrar que temperaturas podem ser negativas ou positivas. Um possível algoritmo seria o seguinte:

43 Algoritmos – Representação Exemplo 5. 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 houver registros de 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. Leia a temperatura que está anotada como a menor. Esta é a temperatura que estávamos procurando.

44 Algoritmos – Representação
Exemplo 5. 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"

Apresentações semelhantes


Anúncios Google