Baixe o app para aproveitar ainda mais
Prévia do material em texto
MATA40 – Estrutura de dados e Algoritmos I Introdução Turma 03 Semestre: 2017.2 Prof. Igo Amauri dos S. Luz Objetivo • Objetivo dessa aula: • Contextualizar Estruturas de dados e Algoritmos nos sistemas computacionais 2 Modelo básico de um Computador 3 Armazenamento de dados • A memória do computador armazena somente valores zero e um. • Programas, textos, imagens, vídeos, são armazenados em forma de zero e um. • Representação binária. • Organização da memória: • Bits: • Digito Binário • Menor unidade – 0 ou 1. • Byte: • Conjunto de 8 bits • Célula: • Conjunto ordenado de bits, armazena uma parte da informação. 4 Armazenamento de dados • Espaço de memória finito • Além de elementos numéricos, pode-se presentar também texto. • Cada caractere tem um valor associado. • Os programas são representados na memória em forma de linguagem de máquina • Programas são sequencias de instruções (Códigos numéricos). 5 Armazenamento de dados 6 #include <16f628a.h> //Adicionar as funções que configuram o microcontrolador #use delay(clock=1000000) #define PINO_LED PIN_A3 //Pino que o LED está ligado void main() { while (1) //Loop infinito, por isso nunca acaba { output_bit( PINO_LED, true); // Liga o Led delay_ms(500); // Espera 1000ms = 1 Segundo output_bit( PINO_LED, false); // Desliga o Led delay_ms(500); // Espera 1000ms = 1 Segundo } //Fim loop infinito } Compilação • Um Compilador é responsável por transformar o código fonte em linguagem de máquina. • Transforma o programa desenvolvido em C em um conjunto de instruções. 7 Compilação • Programas compilados para uma determinada “máquina” não deve ser executado em uma “máquina” diferente. • Computadores idênticos com sistemas operacionais diferentes são considerados “máquinas” diferentes. 8 Ciclo de desenvolvimento 9 Debate 10 • Debate dos conceitos visto até o momento Estrutura de Dados - Conceitos Básicos 11 • Variáveis correspondem a posições de memórias. • Referenciar o seu identificador, significa ter acesso a uma única posição de memória. • Considere que se deseje calcular a média das notas de 10 alunos e determinar o número de alunos que tiveram nota superior a média. Estrutura de Dados - Conceitos Básicos 12 • Estruturas de dados tratam da forma de se ter acesso a conjunto de dados agrupados. • Uma estrutura de dados mantém os dados organizados seguindo alguma lógica e disponibiliza operações para o usuário manipular os dados. • Dados representam as informações armazenadas e a estrutura é quem administra os dados. Estrutura de Dados - Conceitos Básicos 13 • Dado: • Elemento que possui valor agregado; • Possuem tipos específicos: • Inteiro; String; Ponto flutuante, etc • Estrutura: • Elemento estrutural responsável por carregar informações dentro de uma estrutura de software. • Tipos de estrutura de dados: • Vetores, Pilhas, Filas, Listas, Árvores, etc. Algoritmos - Conceitos Básicos 14 • O que é um algoritmo? “Um algoritmo pode ser definido como uma sequência de passos que visam a atingir um objetivo bem definido.” André Forbellone Algoritmos - Conceitos Básicos 15 • Um algoritmo pode ser definido como uma sequência de instruções para solucionar um determinado problema. • Deve-se seguir uma ordem, portanto precisa ser utilizada a lógica. • As instruções devem ser finitas e não ambígua. • A partir de um estado inicial, após determinado tempo finito, é produzido um estado final. • Uma solução em algoritmo pode ser traduzida para qualquer linguagem de programação. Algoritmos - Conceitos Básicos 16 • Um algoritmo corresponde a uma descrição de um padrão de comportamento, expresso em termos de um conjunto finito de ações. • Executando a operação a + b percebemos um padrão de comportamento, mesmo que a operação seja realizada para valores diferentes de a e b. Algoritmos - Conceitos Básicos 17 • Exemplo de algoritmo no nosso dia-a-dia: Troca de lâmpada • Pegar uma escada; • Posicionar a escada embaixo da lâmpada; • Buscar uma lâmpada nova; • Subir na escada; • Retirar a lâmpada velha; • Colocar a lâmpada nova; • Testar o funcionamento da lâmpada nova. Algoritmos - Conceitos Básicos 18 • Mais algum exemplo? Algoritmos - Conceitos Básicos 19 • Exemplos de algoritmos: • Instruções para o uso de medicamentos; • Indicações de como montar um aparelho; • Uma receita de culinária. Algoritmos - Conceitos Básicos 20 • Diferentes tipos de problemas resolvidos por algoritmos: • Genoma Humano; • Acesso à informações através da internet; • Comercio eletrônico; • Industria; Algoritmos - Conceitos Básicos 21 • Um algoritmo pode ser dividido em três partes: • Entrada de dados • Processamento de dados • Saída de dados Algoritmos - Conceitos Básicos 22 • Um algoritmo pode ser dividido em três partes: • Entrada de dados; • Informações fornecidas para serem processadas. • Processamento de dados; • Procedimentos executados para a solução do problema. • Conjunto de passos organizados de forma lógica • Saída de dados. • Resultado do processamento da entrada. • Informações processadas, saída do sistema. ProcessamentoEntrada Saída Algoritmos - Conceitos Básicos 23 • Como solucionar o problema computacional de ordenação? • Dada uma sequência de entrada: 20, 05, 80, 03, 25. Algoritmos - Conceitos Básicos 24 • Muitas aplicações utilizam a ordenação como uma etapa intermediária de execução. • Existem diferentes tipos de algoritmos de ordenação disponíveis. • O melhor algoritmo depende: • Número de itens, grau de ordenação da entrada, da arquitetura do computador, do dispositivo de armazenamento utilizado, etc. Algoritmos x Estrutura de Dados 25 • Estruturas de dados e algoritmos estão intimamente ligados: • não se pode estudar estruturas de dados sem considerar os algoritmos associados a elas, • assim como a escolha dos algoritmos em geral depende da representação e da estrutura dos dados. • Para resolver um problema é necessário escolher uma abstração da realidade, em geral mediante a definição de um conjunto de dados que representa a situação real. • A seguir, deve ser escolhida a forma de representar esses dados. Algoritmos x Estrutura de Dados 26 • Programar é basicamente estruturar dados e construir algoritmos. • Programas são formulações concretas de algoritmos abstratos, baseados em representações e estruturas específicas de dados. • Um computador só é capaz de executar programas em linguagens de máquinas • As linguagens de programação representam uma abstração para facilitar a tarefa de programar um computador. Debate 27 • Debate dos conceitos visto até o momento Próxima Aula ... • Revisão de Linguagem C: • Estrutura básica de um programa em C; • Comandos condicionais; • Comandos de repetição; • Funções; • Ponteiros; • Alocação dinâmica. 28 Bibliografia • N.Ziviani. Projeto de Algoritmos com Implementações em Pascal e C – 3ª. Edição. Ed.Cengage Learning. 2004 • T.H.Cormen, C.E.Leiserson, R.L.Rivest, C.Stein. Algoritmos – Teoria e Prática – 3a. Edição. Editora Elsevier Campus. 2012 • J.L.Szwarcfiter, L.Markenzon. Estruturas de Dados e seus Algoritmos – 2ª. Edição. Editora LTC. 2004 29
Compartilhar