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

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

Estrutura de Dados Prof. Miguel Bonafe INSTITUTO FEDERAL AMAZONAS.

Apresentações semelhantes


Apresentação em tema: "Estrutura de Dados Prof. Miguel Bonafe INSTITUTO FEDERAL AMAZONAS."— Transcrição da apresentação:

1 Estrutura de Dados Prof. Miguel Bonafe INSTITUTO FEDERAL AMAZONAS

2 INSTITUTO FEDERAL AMAZONAS Apostila #1 Referencia bibliográfica: Estrutura de Dados e Algoritmos Uma Abordagem Didatica Celso Roberto Moraes Editora Futura

3 Aula de hoje: Conceitos úteis E.D. Tipos Abstratos de Dados (TAD) Tipos de Dados Estrutura de Dados - Prof. Miguel Bonafe Instituto Federal Amazonas

4 Estrutura de Dados Conceitos úteis

5 Estrutura de Dados - Prof. Miguel Bonafe Instituto Federal Amazonas Introdução | Conceitos Úteis Iniciamos citando a celebre afirmação de NIKLAUS WIRTH de que: PROGRAMA = ED + ALGORITMOS Aqui podemos evidenciar a importancia das estruturas de dados e dos algoritmos no contexto dos computadores. ED = Estrutura de Dados

6 Estrutura de Dados - Prof. Miguel Bonafe Instituto Federal Amazonas Introdução | Conceitos Úteis Iniciamos citando a celebre afirmação de NIKLAUS WIRTH de que: PROGRAMA = ED + ALGORITMOS Aqui podemos evidenciar a importancia das estruturas de dados e dos algoritmos no contexto dos computadores. ED = Estrutura de Dados

7 Estrutura de Dados - Prof. Miguel Bonafe Instituto Federal Amazonas Realizando a combinação adequada das estruturas de dados com os algoritmos que atuam sobre essas estruturas, podemos conseguir a abstração das situações do nosso dia-a-dia em um nível suficiente para que um computador possa ajudar-nos da forma mais útil possível. ED = Estrutura de Dados Introdução | Conceitos Úteis

8 Estrutura de Dados - Prof. Miguel Bonafe Instituto Federal Amazonas O computador é uma máquina que processa essencialmente algoritmos escritos em uma linguagem de programação. Para criação de programas eficientes, não basta dominar tecnicamente os comandos de uma linguagem de programação; é necessário conhecer um pouco mais sobre construção de algoritmos e as estruturas de dados. ED = Estrutura de Dados Introdução | Conceitos Úteis

9 E.D. Estrutura de Dados

10 Estrutura de Dados - Prof. Miguel Bonafe Instituto Federal Amazonas Todo trabalho realizado por um computador é baseado na manipulação das informações contidas em sua memória principal. E podemos classifica-las em 2 tipos. Instruções (determinam o funcionamento da maquina) Dados (informações a serem processadas) ED = Estrutura de Dados Introdução | ED

11 Estrutura de Dados - Prof. Miguel Bonafe Instituto Federal Amazonas Durante a execução de qualquer tipo de programa, os computadores estão manipulando informações, para não se “esquecer” das informações, os computadores precisam guardá-las em sua memória principal. Essas posições de memória, que contem uma determinada informação, são denominadas pelos programas como variáveis. ED = Estrutura de Dados Introdução | ED

12 Estrutura de Dados - Prof. Miguel Bonafe Instituto Federal Amazonas Toda variavel possui três atributos: nome; tipo; valor ou informação. Os dados a serem manipulados por um programa são armazenados em posições da memoria principal. Cada posição de memória só pode armazenar um determinado tipo de dado. Entao antes de usar essas posições de memória é necessario definir o tipo de dado que será armazenado. ED = Estrutura de Dados Introdução | ED

13 Estrutura de Dados - Prof. Miguel Bonafe Instituto Federal Amazonas Podemos definir ED como a organização e a representação das informações geralmente na memoria do computador para obter a devida abstração de um problema real e a melhor eficiencia na execução dos algoritmos, cujas operações atuam sobre essas estruturas de dados. ED = Estrutura de Dados Introdução | ED

14 Tipos Abstratos de Dados (TAD) Estrutura de Dados

15 Estrutura de Dados - Prof. Miguel Bonafe Instituto Federal Amazonas O que é uma Estrutura de Dados (ED)? São Tipos Abstratos de Dados Introdução | TAD O que é Tipos Abstratos de Dados (TAD)? Pode ser definido como um conjunto de valores e uma coleção de operadores que atuam sobre esses valores. As operações devem ser consistentes com os tipos de valores.

16 Estrutura de Dados - Prof. Miguel Bonafe Instituto Federal Amazonas A idéia fundamental do tipo de dados abstratos é possibilitar ao programador a separação do que fazer e de como fazer. Introdução | TAD Considerando a necessidade do programador de gravar um registro em um arquivo. Nessa situação, o programador só precisa saber o que deve ser feito; no caso, gravar um registro. Esse procedimento “gravar” representa um TAD, pois envolve um conjunto de valores e de ações específicas sobre os mesmos.

17 Instituto Federal Amazonas Estrutura de Dados - Prof. Miguel Bonafe Introdução | TAD Dados Estrutura de dados Função A Função B Dados Modelo de um tipo abstrato de de Dados (TAD)

18 Estrutura de Dados - Prof. Miguel Bonafe Instituto Federal Amazonas Não confunda Tipos de Dados com Tipos Abstratos de Dados (TAD). Embora estes termos sejam parecidos, eles têm significados diferentes. Em linguagens de programação, o tipo de dados de uma variável define o conjunto de valores que a variável pode assumir. Por exemplo, uma variável do tipo lógico pode assumir o valor verdadeiro ou falso. Introdução | TAD

19 Instituto Federal Amazonas Estrutura de Dados - Prof. Miguel Bonafe Uma declaração de variável em uma linguagem como C ou Pascal especifica: 1.O conjunto de valores que pode assumir. 2.O conjunto de operações que podemos efetuar. 3.A quantidade de bytes que deve ser reservada para ela. 4.Como o dado representado por esses bytes deve ser interpretado (por exemplo, uma cadeia de bits pode ser interpretada como um inteiro ou real...). Introdução | TAD

20 Instituto Federal Amazonas Estrutura de Dados - Prof. Miguel Bonafe Então, tipos de dados podem ser vistos como métodos para interpretar o conteúdo da memória do computador. Mas podemos ver o conceito de Tipo de Dados de uma outra perspectiva: não em termos do que um computador pode fazer (interpretar os bits...) mas em termos do que os usuários desejam fazer (somar dois inteiros...) Introdução | TAD

21 Instituto Federal Amazonas Estrutura de Dados - Prof. Miguel Bonafe Este conceito de Tipo de Dado divorciado do hardware é chamado Tipo Abstrato de Dado - TAD. Estrutura de Dados é um método particular de se implementar um TAD. A implementação de um TAD escolhe uma ED para representá-lo. Cada ED é construída dos tipos primitivos (inteiro, real, char,...) ou dos tipos compostos (array, registro,...) de uma linguagem de programação. Introdução | TAD

22 Instituto Federal Amazonas Estrutura de Dados - Prof. Miguel Bonafe Não importa que tipo de dados estaremos trabalhando, a primeira operação a ser efetuada em um TAD é a criação. Depois, podemos realizar inclusões e remoções de dados. A operação que varre todos os dados armazenados num TAD é o percurso, podendo também ser realizada uma busca por algum valor dentro da estrutura. Introdução | TAD

23 Tipos de dados Estrutura de Dados

24 Instituto Federal Amazonas Estrutura de Dados - Prof. Miguel Bonafe Introdução | Tipos Tipos de Dados NuméricoLiteralCaractereLógico Inteiro Real

25 Estrutura de Dados Prof. Miguel Bonafe INSTITUTO FEDERAL AMAZONAS

26 Aula de hoje: Algoritmos Dificuldades na construção Complexidade Métodos para diminuição da complexidade Estrutura de Dados - Prof. Miguel Bonafe Instituto Federal Amazonas Referencia bibliografica: Estrutura de Dados e Algoritmos Uma Abordagem Didatica Celso Roberto Moraes Futura

27 Algoritmos Estrutura de Dados

28 Instituto Federal Amazonas Estrutura de Dados - Prof. Miguel Bonafe Pode ser definido como um conjunto de passos descritos sem ambiguidade, possuindo um início, que termine em um período de tempo finito e que apresente sempre o mesmo padrão de comportamento para conduzir-nos a uma solução adequada de um determinado problema. Introdução | Algoritmos

29 Instituto Federal Amazonas Estrutura de Dados - Prof. Miguel Bonafe Podemos evidenciar tres caracteristicas importantes sobre os algoritmos: 1. É rigoroso na sua definação 2. Legibilidade 3. Portabilidade Introdução | Algoritmos

30 Instituto Federal Amazonas Estrutura de Dados - Prof. Miguel Bonafe A primeira característica está associada à ausência de ambiguidade, ou seja, não deve haver dupla interpretação das suas instruções. Esse objetivo pode ser atingido, se o algoritmo usar um pequeno conjunto de significado único, porém, podereso, no sentido prinicipal de ser suficiente para construir quaisquer algoritmos. Introdução | Algoritmos

31 Instituto Federal Amazonas Estrutura de Dados - Prof. Miguel Bonafe Dizer que o algortimo apresenta um bom nível de legibilidade significa dizer que a forma da representação da solução proposta pode ser facilmente comunicada para outras pessoas fazerem a avaliação e o uso do algoritmo sugerido como solução para um determinado problema. E para isso é muito importante, porque parece que as pessoas temdem a resolver muitos problemas semelhantes. Por que, então, não aproveitar a solução a solução já identificada por outras pessoas? Introdução | Algoritmos

32 Instituto Federal Amazonas Estrutura de Dados - Prof. Miguel Bonafe Finalmente, se um algoritmo possuir uma boa portabilidade, indica que ele foi elaborado sem os meandros muitas vezes presentes nas linguagens de programação. Um algoritmo será melhor quando passarmos a considerar os aspectos realmentes relevantes da solução, deixando de lado detalhes técnicos de uma ou outra linguagem de programação. A preocupação mais detalhada com os aspectos técnicos de uma linguagem de programação terá seu momento de triunfo quando for realizada a implementação, ou seja, a codificação do algoritmo. Introdução | Algoritmos

33 Dificuldades na construção de Algoritmos Estrutura de Dados

34 Instituto Federal Amazonas Estrutura de Dados - Prof. Miguel Bonafe Introdução | Algoritmos Parece que construir algoritmos é uma tarefa trivial. Isso pode ser verdadeiro, se o problema a ser considerado for também trivial. Mas, em nosso dia-a-dia, muitas vezes ficamos frente a frente com problemas não tão triviais assim. Então, onde estaria a dificuldade em construir algoritmos?

35 Instituto Federal Amazonas Estrutura de Dados - Prof. Miguel Bonafe Introdução | Algoritmos A resposta esta na complexidade que vai aparecendo em inúmeras situações, que vão desde o entendimento do cálculo da área de uma figura geométrica qualquer, passando pelo funcionamento de um sistema de contas a pagar, ou, ainda como se realiza o cálculo de área de uma função matemática usando a regra do trapézio, até o funcionamento do compartilhalmento do processador ou da memória principal de um computador em um ambiente multiusuário e multitarefas,

36 Instituto Federal Amazonas Estrutura de Dados - Prof. Miguel Bonafe Introdução | Algoritmos com o objetivo de desenvolver um algoritmo que escalone a utilização desses dois recursos de forma justa entre as dezenas, centenas de processos existentes, e obtendo, ao mesmo tempo, o máximo de eficiência nessa tarefa de escalonamento de uso do processador. A complexidade, para nós programadores, é encarada como sinônimo de variedade, que, por sua vez, representa a quantidade de situações diferentes que um problema pode apresentar as quais devem ser previstas na sua solução.

37 Complexidade Estrutura de Dados

38 Instituto Federal Amazonas Estrutura de Dados - Prof. Miguel Bonafe Introdução | Algoritmos Eliminarmos totalmente a complexidade, não é possível. Entretanto, podemos utilizar algumas técnicas para ajudar-nos a dominar a complexidade presente nos problemas do nosso mundo. Para isso, é necessário que alguns pontos importantes sejam compreendidos: “o que fazer?” versus “como fazer?”, além de legibilidade e portabilidade.

39 Instituto Federal Amazonas Estrutura de Dados - Prof. Miguel Bonafe Introdução | Algoritmos O primeiro ponto refere-se à necessidade de compreendermos o que deve ser feito antes de pensar na maneira como faze-lo. Muitas vezes, tentamos esboçar uma solução sem ao menos realizar uma leitura mais cuidadosa do problema. Essa pressa pode, muitas vezes, levar-nos a adotar uma estratégia de solução (como se faz) bastante equivocada. Podemos, com isso, pagar um alto preço pela ineficiência quase intolerável da solução obtida.

40 Instituto Federal Amazonas Estrutura de Dados - Prof. Miguel Bonafe Introdução | Algoritmos Após o entendimento sobre o que deve ser realizado, ou seja, depois de definirmos qual o produto final desejado, é o momento de pensarmos como poderemos desenvolver uma solução para que consigamos obter esse produto desejado (resultado). Talvez um exemplo simples possa ajudar a observar a diferença entre esses dois pontos.

41 Instituto Federal Amazonas Estrutura de Dados - Prof. Miguel Bonafe Introdução | Algoritmos Para tanto, podemos considerar o seguinte problema: f( x ) = 4 x x + 10 Se pensarmos “o que” deve ser realizado, podemos responder que o objetivo é obter as raízes dessa equação de segundo grau. A questão de “como fazer” poderia ser deixada para um segundo momento, quando definiriamos a necessidade de calcular o valor do Delta, verificar se o seu resultado é maior ou igual a zero e, finalmente, realizar o cálculo efetivo das raízes no conjunto dos reais ou dos imaginários.

42 Instituto Federal Amazonas Estrutura de Dados - Prof. Miguel Bonafe Introdução | Algoritmos A Legibilidade, como já dissemos, é a capacidade de outras pessoas entenderem com um mínimo de esforço a solução indicada para um problema. Percebemos que a questão em discussão nesse ponto é a comunicação. A estrutura por meio da qual a solução foi descrita deve permitir que uma pessoa entenda os principais passos que, seguidos, conduzem à solução. O ultimo ponto, a portabilidade, implica diretamente no alto grau de independencia da estrutura usada para a construção do algoritmo das linguagens de programação.

43 Métodos para diminuição da complexidade Estrutura de Dados

44 Instituto Federal Amazonas Estrutura de Dados - Prof. Miguel Bonafe Introdução | Algoritmos Existem várias sugestões de métodos para ajudar-nos a diminuir e a dominar a complexidade que pode aparecer nos problemas. Entre outros, podemos citar: a) Dividir para conquistar. b) Planejamento reverso.

45 Instituto Federal Amazonas Estrutura de Dados - Prof. Miguel Bonafe Introdução | Algoritmos Dividir para conquistar: A primeira sugestão é usada desde os tempos do Imperador Julio Cesar, o todo- poderoso, na invasão e conquista de novos terras. Antes de invadir um novo reino, o Imperador procurava introduzir espiões que provocavam pequenos conflitos internos, visando enfraquecer o reino a ser conquistado.

46 Instituto Federal Amazonas Estrutura de Dados - Prof. Miguel Bonafe Introdução | Algoritmos Esses pequenos conflitos provocam normalmente a ruptura do reino a ser invadido e conquistado, tornando, dessa forma, mais fácil a tarefa que antes parecia impossível. Essa idéia de invadir para conquistar, no contexto da construção de algoritmos, consiste em dividir o problema original em partes menor complexidade. Deve-se contudo, analizar a divisão obtida para garantir a coerencia dessa divisão. Se alguma parte não for bem compreendida, pode-se aplicar a ela novamente o método.

47 Instituto Federal Amazonas Estrutura de Dados - Prof. Miguel Bonafe Introdução | Algoritmos Finalmente, analisar o objeto obtido para garantir entendimento e coerência de todas as partes. A decomposição do problema original apresenta normalmente uma estrutura de suas partes em uma forma hierárquica, como é apresentado abaixo:

48 Instituto Federal Amazonas Estrutura de Dados - Prof. Miguel Bonafe Introdução | Algoritmos P1 P2P3P4 P5P6P7

49 Instituto Federal Amazonas Estrutura de Dados - Prof. Miguel Bonafe Introdução | Algoritmos Os passos descritos anteriormente podem ser resumidos pelo princípio denominado refinamento top- down, e esse princípio é a verdadeira chave para a escrita de programas grandes e complexos que funcionam de forma adequada. O princípio implica no adiamento das considerações de detalhes, mas jamais nas considerações sobre a precisão e sobre o rigor nesse processo de refinamento, em busca do domínio da complexidade do problema original.

50 Instituto Federal Amazonas Estrutura de Dados - Prof. Miguel Bonafe Introdução | Algoritmos Planejamento reverso: ela recomenda a determinanação dos dados de saídas, ou seja, identificar o que é desejado como resultado. Definindo os dados de saídas, pode ser possível, de maneira resersa, determinar os componentes que formam os dados de entrada, assim como todas as etapas de transformações desses dadis de entrada, para conseguirmos as saídas desejadas.

51 Instituto Federal Amazonas Estrutura de Dados - Prof. Miguel Bonafe Introdução | Algoritmos Apresentamos um problema simples, que consiste a obtenção do volume de um cone para ilustrar o método do planejamento reverso. O retângulo listado é a representação abstrata do algoritmo que atua nas entradas para obtenção das saídas necessáarias. Assim, podemos observar que a aplicação do método do planejamento reverso, a partir da identificação do dado de saída, permitiu a identificação dos dados de entrada e o respectivo processamento sobre esses dados para obter o resultado desejado.

52 Instituto Federal Amazonas Estrutura de Dados - Prof. Miguel Bonafe Introdução | Algoritmos Entrada Saída Raio Altura Volume Do cone Volumne = (raio 2 * 3,1416 * altura) / 3 Figura com a representação do método do planejamento reverso.

53 Metodologia para construção de algoritmos Estrutura de Dados

54 Instituto Federal Amazonas Estrutura de Dados - Prof. Miguel Bonafe Introdução | Algoritmos Metodologia que pode auxiliá-lo na elaboração de algoritmos: 1.Procure entender o que deve ser feito. 2.Identifique as entradas de dados 3.Identifique as saídas de dados

55 Instituto Federal Amazonas Estrutura de Dados - Prof. Miguel Bonafe Introdução | Algoritmos 4. Determine o que deve ser feito, para transformar as entradas de determinadas nas saídas especificadas. Utilizar o método do particionamento (dividir para conquistar) Se for o caso, aplicar tambem o planejamento reverso para auxiliar o domínio da complexidade do problema. Construir um esboço do algoritmo com as estruturas sequencial, condicional e repetitiva. 5. Executar o algoritmo, observando os resultados obtidos com valores previamente esperados.

56 Formas de expressar um algoritmo Estrutura de Dados

57 Instituto Federal Amazonas Estrutura de Dados - Prof. Miguel Bonafe Introdução | Algoritmos Temos uma grande preocupação na construção de um algoritmo que é: fazer de forma que a comunicação ocorra com o menor esforço possível e principalmente sem ambiguidade. Existem diversas sugestões para a construção de algoritmos. Podemos citar as três principais: a)Descrição Narrativa b)Fluxograma convencional c)Notação de pseudocódigo

58 Instituto Federal Amazonas Estrutura de Dados - Prof. Miguel Bonafe Introdução | Algoritmos A forma narrativa como o próprio nome diz, permite o uso de frases na língua portuguesa com o objetivo de descrever os passos principais de uma solução. Exemplo: 1)Obter as notas da primeira e da segunda prova; 2)Calcular a média aritmética entre as duas; 3)Se a média for maior ou igual a sete, o aluno foi aprovado; senão ele foi reprovado.

59 Instituto Federal Amazonas Estrutura de Dados - Prof. Miguel Bonafe Introdução | Algoritmos A vantagem da forma narrativa é que podemos considerá-la uma forma livre para expressar uma solução. É uma boa indicação para construir os esboços iniciais de uma algoritmo. A desvantagem fica por conta da possibilidade do aparecimento de ambiguidades na interpretação das frases.

60 Instituto Federal Amazonas Estrutura de Dados - Prof. Miguel Bonafe Introdução | Algoritmos O fluxograma é uma alternativa muito interessante para a construção de algortimos, porque, muitas vezes, um desenho vale mais do que mil palavras. No fluxograma, são usados desenhos padronizados que indicam ações de aquisição ou de saída de dados, processamentos, decisões, repetições, etc. Na figura abaixo encontraremos o mesmo algoritmo do cálculo da média já apresentado na forma narrativo e que agora é representado pelo fluxograma.

61 Instituto Federal Amazonas Estrutura de Dados - Prof. Miguel Bonafe Introdução | Algoritmos Nota1, Nota2 Média = (nota1 + nota2) / 2 >= 7 “APROVADO” “REPROVADO” Inicio Fim

62 Instituto Federal Amazonas Estrutura de Dados - Prof. Miguel Bonafe Introdução | Algoritmos A grande vantagem do fluxograma, que é representar o algoritmo na forma de desenho, é, muitas vezes, seu calcanhar-de-aquiles. Isso ocorre porque, muitas vezes um algoritmo complexo, tais como que atuam sobre pilhas, filas ou que fazem classificação e pesquisa de elementos, ou ainda que apresentam utilização de recursividade como solução, os desenhos padronizados podem ser inadequados para a comunicação da solução, principalmente se o fluxograma vier a tornar-se extenso e ocupar várias páginas. Nesses cenários, parece ser mais facil escrever do que desenhar.

63 Instituto Federal Amazonas Estrutura de Dados - Prof. Miguel Bonafe Introdução | Algoritmos A terceira possibilidade de expressar a solução de um algoritmo, é em uma notação denominada pseudocódigo. Como o próprio nome sugere, é uma notação que lembra os comandos de uma linguagem de programação, mas, por ser um falso código, não considera todo o rigor de sintaxe que uma linguagem de programação deve apresentar para que o programa passe pelo processo de compilação.

64 Instituto Federal Amazonas Estrutura de Dados - Prof. Miguel Bonafe Introdução | Algoritmos Não existe, de fato, uma notação de pseudocódigo que pode ser considerada padrão. O que normalmente existe é um conjunto reduzido de operações e estruturas primitivas, porém mais que suficientes para construir quaisquer algoritmos. O sentido de primitivo refere-se ao significado único que tais operações e estruturas indicam, como, por exemplo, a obtenção de dados do mundo externo, seu processamento e posterior exibição de resultados, estruturas condicionais e repetitivas.

65 Instituto Federal Amazonas Estrutura de Dados - Prof. Miguel Bonafe Introdução | Algoritmos Variáveis Nota1, Nota2 : real Média : real Início leia nota1 leia nota2 média = (nota1 + nota2) / 2 se média >= 7 entao imprima “aprovado” senao imprima “reprovado” fim se imprima média fim

66 Instituto Federal Amazonas Estrutura de Dados - Prof. Miguel Bonafe Introdução | Algoritmos 1.Operações primivitas de entrada de dados: Permite que uma dado seja colocado em uma variavel LEIA 2.Operaçoes primitivas de saída de dados: Permite a exibição de conteúdo de uma variável ou até mesmo de uma mensagem qualquer; no caso colocada entre aspas. IMPRIMA 3.Operações primitiva de atribuição ou simplesmente atribuição: Refere-se ao armazenamento do resultado obtido do lado direito, na variável posicionada do esquerdo. =

67 Instituto Federal Amazonas Estrutura de Dados - Prof. Miguel Bonafe Introdução | Algoritmos 4. Estrutura sequencial: Refere-se à disposição sequencial que todo o algoritmo tem, ou seja, executa-se cada passo somente após o término do passo anterior...

68 Instituto Federal Amazonas Estrutura de Dados - Prof. Miguel Bonafe Introdução | Algoritmos 5. Estrutura condicional: É a estrutura na qual uma expressão lógica é avaliada. Se o resultado for verdadeiro, é realizado um conjunto de operações; caso contrário, ou seja, se o resultado for falso, realiza-se outro conjunto de instruções. Podemos observar aqui a utilização ou não do conjunto de instruções para o caso da expressão lógica for falsa, ou ainda haver os chamados aninhamentos de estruturas condicionadas..

69 Instituto Federal Amazonas Estrutura de Dados - Prof. Miguel Bonafe Introdução | Algoritmos Se então Senão Fim se

70 Instituto Federal Amazonas Estrutura de Dados - Prof. Miguel Bonafe Introdução | Algoritmos Se então Senão Fim se Senão Se então Senão Fim se

71 Instituto Federal Amazonas Estrutura de Dados - Prof. Miguel Bonafe Introdução | Algoritmos 6. Estrutura de seleção de múltipla escolha: Em vez de optarmos pela utilização de várias estruturas condicionadas aninhadas, que têm um potencial para provocar confusão na interpretação de seu significado, podemos decidir pelo uso da seleção de múltipla escolha para elaborarmos algoritmos mais concisos e com maior legibilidade. Deve-se lembrar contudo, que a utilização do senão : é opcional na estrutura de múltipla escolha.

72 Instituto Federal Amazonas Estrutura de Dados - Prof. Miguel Bonafe Introdução | Algoritmos Caso seja : … Senão : Fim caso Leia codigo Caso codigo seja : imprima “aprovado” : imprima “reprovado” : imprima “exame final” Senão : imprima “instrução desconhecida” Fim caso

73 Instituto Federal Amazonas Estrutura de Dados - Prof. Miguel Bonafe Introdução | Algoritmos 6. Laços contados: São as estruturas usadas sabemos antecipadamente o número de vezes que um certo trecho deve ser repetido. O incremento da variável de controle deve ser entendido que é realizado automaticamente pela estrutura do laço contado. A variável de controle será incrementada de uma unidade, a não ser que um passo de incremento diferente de uma unidade seja especificado em passo

74 Instituto Federal Amazonas Estrutura de Dados - Prof. Miguel Bonafe Introdução | Algoritmos Observamos que o incremento de variável de controle deve ser, necessariamente, um número inteiro. A cada incremento realizado, a estrutura de laço contado verifica (de forma automática) se o novo valor obtido para a variável de controle não ultrapassou o valor estipulado em até. É muito importante que seja entendido que tanto o incremento da variável de controle como se o valor da mesma ultrapassou ou não o valor final são controles que devem ser subentendidos como embutidos na estrutura de laços contados.

75 Instituto Federal Amazonas Estrutura de Dados - Prof. Miguel Bonafe Introdução | Algoritmos Muitas vezes, as linguagens de programção até tornam explícitas as condições-limite do valor da variável de controle (por exemplo, x = 4), outras permitem que o passo de incremento seja diferente de uma unidade, ou ainda que haja incremento negativo, porém existem muitas liguagens de programação que não permitem essas possibilidades. Mas a ideía do pseudo-código é conseguir uma independencia de uma ou outra linguagem de programação, então, assumiremos que a condição genérica para limite do valor da vaiável de controle será:

76 Instituto Federal Amazonas Estrutura de Dados - Prof. Miguel Bonafe Introdução | Algoritmos enquanto essa condição for verdadeira, o conjunto de instruções incorporadas no laço contado será repetido! Além disso, se o passo do incremento da variável de controle for igual a um, poderemos abrir mão de escrever passo no pseudocódigo. para = até passo faça Fim para

77 Instituto Federal Amazonas Estrutura de Dados - Prof. Miguel Bonafe Introdução | Algoritmos Tot = 1 para x = 1 até 3 passo faça Tot = Tot * x Fim para Imprima Top

78 Instituto Federal Amazonas Estrutura de Dados - Prof. Miguel Bonafe Introdução | Algoritmos 7. Laços condicionais: As estruturas sob o controle dos laços condicionais são executados até que uma determinada condição seja satisfeita. Recomenda-se sua utilização quando não é possível determinar o número de vezes que um certo conjunto de instruções será repetido. Sabemos apenas que em uma certa condição essa repetição deverá cessar. Existem duas possibilidades: enquanto e repita.

79 Instituto Federal Amazonas Estrutura de Dados - Prof. Miguel Bonafe Introdução | Algoritmos Enquanto: Faz no início a avaliação de uma condição, de tal forma que, se o resultado for falso, o conjunto de instruções sob seu controle não será executado. O fluxo de execução continua normalmente após fim enquanto. Entretanto, se o resultado for verdadeiro, o conjunto de instruções é executado, depois a condição é novamente testada e, se continuar verdadeiramente testada e, se continuar verdadeira, o conjunto de instruções é novamento repetido. Isso acontece até que a condição se torne falsa.

80 Instituto Federal Amazonas Estrutura de Dados - Prof. Miguel Bonafe Introdução | Algoritmos x = 1 enquanto x < 10 faça x = x* 2 Fim enquanto Imprima x enquanto faça Fim enquanto

81 Instituto Federal Amazonas Estrutura de Dados - Prof. Miguel Bonafe Introdução | Algoritmos Repita: Propicia uma repetição de um certo conjunto de instruções, tal como o ‘enquanto’; entretanto, o teste da condição é realizado após o conjunto de instruções ser executado pelo menos uma vez. Então, o teste da condição é realizado novamente e, se o resultado for verdadeiro, o loop é interrompido e o fluxo de execução continua na instrução seguinte a até.

82 Instituto Federal Amazonas Estrutura de Dados - Prof. Miguel Bonafe Introdução | Algoritmos Observamos que na estrutura de repetição ‘enquanto’ existe uma possibilidade do conjunto de instruções sob seu domínio não ser realizado nenhuma vez. Já na estrutura de repetição ‘repita’ o conjunto de instruções é executado, com toda a certeza, pelo menos uma vez. O uso de uma estrutura ou de outra dependerá muito de que é necessário realizar em um certo algoritmo.

83 Instituto Federal Amazonas Estrutura de Dados - Prof. Miguel Bonafe Introdução | Algoritmos x = 1 repita x = x * 2 até x < 10 Imprima x repita Até

84 Exercícios Estrutura de Dados

85 Estrutura de Dados - Prof. Miguel Bonafe Instituto Federal Amazonas Exercícios | Tipos 1. Escreva um algoritmo em pseudocódigo para conceder um aumento de 5% para todos os funcionários cadastrados na folha de pagamento. 2. Escreva um algoritmo em pseudocódigo que recebe um numero inteiro como entrada, calcule o número de dígitos e sua soma. Ex.: entrada = resultado 5 digitos e soma dos digitos é igual 15

86 Estrutura de Dados - Prof. Miguel Bonafe Instituto Federal Amazonas Exercícios | Tipos 3. Dado um número de 3 algarismos, construa e exiba outro numero de quatro algarismos de acordo com as seguintes regras: a) Os 3 primeiros algarismos, contados da direita para a esquerda, são iguais aos do número que foi dado. b) O 4 algarismo é um digito de controle calculado a partir do número dado da seguinte forma: soma-se o primeiro com o segundo algarismos, multiplica-se por dois e com o terceiro algarismo multiplica-se por seis. c) Finalmente, calcular um dígito de controle obtido com o resto da divisão do resultado da Etapa B por nove.

87 Estrutura de Dados - Prof. Miguel Bonafe Instituto Federal Amazonas Exercícios | Tipos 4. Um home precisa atravessar um rio com um barco que possui apenas a capacidade de transporta-lo e mais uma de tres cargas, que são: um lobo, uma cabra e um maço de alfafa. O que o homem deve fazer para atravessar o rio sem permitir que fiquem em uma margem, por motivos óbvios, o lobo e a cabra, a cabra e a alfafa? Faça a contrução do algoritmo na forma narrativa.

88 Estrutura de Dados - Prof. Miguel Bonafe Instituto Federal Amazonas Exercícios | Tipos 5. Elabore um algoritmo na forma narrativa que mova tres discs de uma Torre de Hanói, constituída de três hastes (a,b,c), uma as quais serve de suporte para três discos de tamanhos diferentes (1,2,3), os menores estão sobre os maiores. Pode-se mover um disco de cada vez para qualquer haste, contando que nunca seja colocado um disco maior sobre um menor. O objetivo é transferir os três discos para outra haste.

89 Estrutura de Dados - Prof. Miguel Bonafe Instituto Federal Amazonas Exercícios | Tipos 6. Escreva um algoritmo que considere a entrada e três números inteiros e exiba o maior e o menor deles. 7. Considere a entrada de varios números inteiros. Suponha que a entrada seja finalizada pelo valor zero. Elabore um algoritmo para exibir, como saída, a estatística de números maiores e menores que cinco.

90 Instituto Federal Amazonas Estrutura de Dados - Prof. Miguel Bonafe FIM Introdução | Algoritmos


Carregar ppt "Estrutura de Dados Prof. Miguel Bonafe INSTITUTO FEDERAL AMAZONAS."

Apresentações semelhantes


Anúncios Google