Professor Victor Sotero

Slides:



Advertisements
Apresentações semelhantes
ESTRUTURA DE DADOS Professor: Marcelo Mendes Turma: MBI-1
Advertisements

Programação em Java Prof. Maurício Braga
Marco Antonio Montebello Júnior
Estruturas de Dados Marcio Gonçalves.
UNIVERSIDADE FEDERAL DE UBERLÂNDIA ENGENHARIA MECÂNICA INTRODUÇÃO À ALGORITMOS Professora: Fabíola Gonçalves.
Linguagem de Programação VI Tipos de Dados Compostos - structs
TECNOLOGIA EM REDES DE COMPUTADORES Algoritmos e programação de computadores Aula /08/2011 Professor Leomir J. Borba-
03/08/2011 Professor Leomir J. Borba- –
Interação entre objetos
Ludwig Krippahl, 2007 Programação para as Ciências Experimentais 2006/7 Teórica 3.
Ciclos, Vectores e Gráficos Simulação da Queda de Corpos II
Gerenciamento de Arquivos, Páginas e Registros
1 Tipos definidos O programador pode definir seus próprios tipos de dados tipos complexos usados da mesma forma que os simples declaram-se variáveis utilizando-se.
1 Complexidade de Algoritmos Complexidade de pior caso Complexidade de melhor caso de uso bem menos freqüente em algumas situações específicas Complexidade.
EXPRESSÕES ARITMÉTICAS
EXPRESSÕES ARITMÉTICAS
1 Objetos Relacionados a um banco de dados. 2 Introdução Visual Basic dispõe de um conjunto de objetos, que através de suas propriedades e métodos, nos.
Aula 1 Tipo Abstrato de Dados
Estruturas de Dados e Algoritmos
LINGUAGEM C.
Linguagem C LPG-I – Variáveis Estruturadas – Vetores
Algoritmos Escher.
Estruturas de Dados II Prof.: Sergio Pacheco Prof.: Sergio Pacheco 1 1.
Estruturas de Dados II Prof.: Sergio Pacheco Prof.: Sergio Pacheco 1 1.
Universidade Federal do Espírito Santo Programação II Professora: Norminda Luiza.
Robson Godoi / Sandra Siebra
Ponteiros.
Listas Encadeadas.
Revisão da Linguagem C.
Classes e objetos Arrays e Sobrecarga
Classes e objetos P. O. O. Prof. Grace.
O Portal do Estudante de Computação
O Portal do Estudante de Computação
Algoritmos e Estruturas de Dados I – Estruturas de Dados
Estruturas de Controle
Semana 03: Comandos de desvio de fluxo. Expressões lógicas.
Estruturas de Dados Algoritmos – Aula 04.
Aula prática 6 Vetores e Matrizes
Linguagem de Programação II Parte VII
Linguagem de Programação II Parte V
Linguagem de Programação II Parte IX
Sistemas Operacionais
UNIVERSIDADE FEDERAL DE UBERLÂNDIA ENGENHARIA CIVIL INTRODUÇÃO À ALGORITMOS Professora: Fabíola Gonçalves.
Estruturas de Dados com Jogos
Estrutura de dados, pseudocódigo
LINGUAGENS DE PROGRAMAÇÃO PROF. DANIELA PIRES
Tipos Estruturados de Dados
Fábio de Oliveira Borges
Semana 03 Comandos de desvio de fluxo. Expressões lógicas.
EXERCÍCIOS PARA GUARDA-REDES
7 Arrays.
Projeto de Banco de Dados
Vetores Imagine que você tem que receber o nome e a nota de 50 alunos de uma escola, e depois listar o nome de cada um e a média final de cada aluno e.
Computação Gráfica Aula 3 Transformações Geométricas
Fundamentos de Programação
Aula 10 - Armazenamento de Dados em Registros
Vetores e Matrizes Ameliara Freire
Máquina de Turing Universal
Algoritmos e Estruturas de Dados I – Registros
Faculdade Talentos Humanos - FACTHUS - Algoritmo I - Rogério Rodrigues
INTRODUÇÃO À ORIENTAÇÃO A OBJETOS EM JAVA
Módulo Compras Relatórios e Relações 1. Objetivo 2 Conhecer os relatórios e as relações do sistema disponibilizadas no módulo Compras.
Planilha Eletrônica - Excel
Campus de Caraguatatuba Aula 9: Noções Básicas sobre Erros (3)
Algoritmos e Estruturas de Dados I – Estruturas de Dados
Algoritmos e Estruturas de Dados I – Registros
Lista Linear Base para outras estruturas
Fundamentos de linguagens de programação
Sistemas para Internet Algoritmos e Lógica de Programação
Lógica de Programação – Forbellone / Eberspacher Lógica de Programação Capítulo 4 Estruturas de Dados.
Transcrição da apresentação:

Professor Victor Sotero ESTRUTURA DE DADOS Professor Victor Sotero Estrutura de Dados

MODELO DE COMPUTADOR Estrutura de Dados

TIPOS DE DADOS BÁSICOS 1- Inteiro 2-Real 3- Lógico 4-Caracter Esses são os mais utilizados até agora, mas também existe outros tipos de dados, como os vetores, matrizes e registros que serão vistos mais na frente. Estrutura de Dados

INÍCIO Algoritmo: Sequência de ações executáveis para a solução de um determinado tipo de problema Exemplo: “Receita de Bolo” Em geral, algoritmos trabalham sobre Estruturas de Dados Conjunto de dados que representam uma situação real Abstração da realidade Estruturas de Dados e Algoritmos estão intimamente ligados Estrutura de Dados

REPRESENTAÇÃO DOS DADOS Dados podem estar representados (estruturados) de diferentes maneiras. Normalmente, a escolha da representação é determinada pelas operações que serão utilizadas sobre eles. Exemplo: números inteiros Representação por palitinhos: II + IIII = IIIIII Boa para pequenos números (operação simples) Representação decimal: 1278 + 321 = 1599 Boa para números maiores (operação complexa) Estrutura de Dados

O QUE É UMA ESTRUTURA DE DADOS?

ESTRUTURA DE DADOS Geralmente, os algoritmos são elaborados para manipulação de dados e quando estes dados estão organizados de forma coerente, representam uma estrutura de dados. Os tipos Primitivos (inteiro, real, caracter e lógico) não são suficientes para representar todos os tipos de dados. Geralmente são utilizados os tipos primitivos para construir outras estruturas de dados mais complexas. Estrutura de Dados

ESTRUTURA DE DADOS A organização dos dados é chamada de estrutura composta de dados que se divide em duas formas fundamentais: homogêneas (vetores e matrizes) e heterogêneas (registros). Estrutura de Dados

TIPOS DE ESTRUTURAS DE DADOS As estruturas de dados são chamadas tipos de dados compostos que dividem-se em homogêneos (vetores e matrizes) e heterogêneos (registros).  As estruturas homogêneas são conjuntos de dados formados pelo mesmo tipo de dado primitivo. As estruturas heterogêneas são conjuntos de dados formados por tipos de dados primitivos diferentes (campos do registro) em uma mesma estrutura. Estrutura de Dados

TIPOS DE DADOS BÁSICOS Tipos construídos Vetor(array): agrega número fixo de dados de um mesmo tipo. vet [ limite_inf .. limite_sup ] de tipobásic Estrutura de Dados

VETORES (VCU) Variáveis compostas unidimensionais são variáveis compostas por um conjunto de dados referenciados por um mesmo nome e que necessitam de somente um índice para que seus elementos sejam endereçados. Sintaxe da declaração: tipo IDENTIFICADOR = vetor [LI..LF] de <tipo>; IDENTIFICADOR : lista de variáveis; Onde: • LI : representa o limite inicial do vetor; • LF : representa o limite final do vetor; • <tipo> : representa qualquer um dos tipos básicos ou tipo anteriormente definido; • lista de variáveis : lista de variáveis (separadas por vírgula) que terão o mesmo tipo denotado por IDENTIFICADOR. Estrutura de Dados

MANIPULAÇÃO DE VETORES Ao imaginar o elevador de um prédio, sabemos que este é capaz de acessar qualquer um de seus andares. Entretanto, não basta saber que andar desejamos atingir se não soubermos o nome do edifício, pois qualquer um possui andares. O que precisamos de antemão é saber o nome do edifício e só então nos preocuparmos para qual daqueles andares queremos ir. O mesmo acontece com o vetor. Estrutura de Dados

MANIPULAÇÃO DE VETORES O nome do vetor é determinado por meio do identificador que foi utilizado na definição de variáveis, e a posição, por meio da constante, expressão aritmética ou variável que estiver dentro dos colchetes, também denominada índice. Após isolar um único elemento do vetor, poderemos manipulá-lo através de qualquer operação de entrada, saída ou atribuição. Exemplo: leia V[5]; V[5] ← V[5] + 1; escreva V[5]; Estrutura de Dados

CAMPO CAMPO É um conjunto de caracteres ou um campo isolado, por exemplo o Nome_Completo, que possui características próprias para armanezar dados sobre o nome de um funcionário. Essas características englobam o tipo de dados que devem possuir, o tamanho e outra informações importantes. Estrutura de Dados

REGISTRO Conjunto de campos com características sobre uma pessoa, local, receita e outros. Por exemplo: um registro de um funcionário vai conter informações como: nome, data de nascimento, endereço, salário, data de admissão, etc... Nós podemos dizer que o registro é o único tipo de dado que pode agregar diversos tipos de dados dentro dele. Estrutura de Dados

ARQUIVOS Nada mais é que um conjunto de registros (linhas) que identificam a informação através de uma chave ou índice agilizando a manipulação das informações. Estrutura de Dados

BANCO DE DADOS Conjunto de arquivos ou tabelas com informações que podem ser compartilhadas com vários usuários e assim são relacionadas. Estrutura de Dados

VARIÁVEIS COMPOSTAS HOMOGÊNIAS Já sabemos que um conjunto homogêneo de dados é composto por variáveis do mesmo tipo primitivo, porém, se tivéssemos um conjunto em que os elementos não são do mesmo tipo, teríamos então um conjunto heterogêneo de dados. Exemplificando, poderíamos ter um conjunto de animais quadrúpedes, formado por cães (matilha), camelos (cáfila), búfalos (manada), etc. Estrutura de Dados

REGISTROS Uma das principais estruturas de dados é o registro. Para exemplificar, imagine uma passagem de ônibus, que é formada por um conjunto de dados logicamente relacionados, porém de tipos diferentes, tais como número da passagem (inteiro), origem e destino (caractere), data (caractere), horário (caractere), poltrona (inteiro), distância (real), que são subdivisões do registro (elementos do conjunto), também chamadas de campos. Logo, um registro é composto por campos que são partes que especificam cada um dos dados. Estrutura de Dados

REGISTROS (SINTAXE) tipo IDENTIFICADOR = registro tipo1 : campo1; tipo2 : campo2; . . tipon : campon; fim registro; IDENTIFICADOR : lista de variáveis; Onde: • IDENTIFICADOR : representa o nome associado ao tipo registro construído; • tipo1, tipo2, tipon : representam qualquer um dos tipos básicos ou tipo anteriormente definido; • campo1, campo2, campon : representam nomes associados a cada campo do registro; • lista de variáveis : lista de variáveis (separadas por vírgula) que terão o mesmo tipo denotado por IDENTIFICADOR. Estrutura de Dados

REGISTROS (cont.) Estrutura de Dados

CRIANDO REGISTROS Para declarar um registro em algoritmos deve ser feito da mesma forma que declaramos uma variável, ou seja, no início do algoritmo. Ex: File: REGISTRO <ínicio da estrutura com nome File> Nome_Completo: inteiro; Endereco: String [50]; Sexo: Char; Salario :real; Fim_Registro <fim da estrutura> Estrutura de Dados

REGISTROS(exemplo) tipo REGPASSAGEM = registro inteiro : NUMERO, POLTRONA; caractere : ORIGEM, DESTINO, DATA, HORÁRIO; real: DISTANCIA; fim registro; REGPASSAGEM : PASSAGEM; O exemplo corresponde à definição de um modelo REGPASSAGEM de um registro e à criação de uma área de memória chamada PASSAGEM, capaz de conter sete subdivisões. Estrutura de Dados

MANIPULAÇÃO DE REGISTROS Em determinados momentos podemos precisar de todas as informações contidas no registro (PASSAGEM) ou de apenas algum campo do registro (como freqüentemente, o número da poltrona). Quando acessamos o registro genericamente, estamos referenciando obrigatoriamente todos os campos por ele envolvidos. Exemplo: leia (PASSAGEM); escreva (PASSAGEM) Estrutura de Dados

MANIPULANDO REGISTROS Para utilizar um campo específico do registro, devemos diferenciar esse campo. Para tal utilizamos o caractere “.” (ponto) para estabelecer a separação entre o nome do registro e o nome do campo. Exemplo: leia (PASSAGEM.POLTRONA); escreva (PASSAGEM.NUMERO); Estrutura de Dados

CRIANDO E LENDO UMA ESTRUTURA DE DADOS Declarar as variáveis para criação do registro Cadastro: Cadastro=registro NomeAluno: String [50]; Nota1: real; Nota2: real; Nota3: real; Nota4: real; Fim_registro 2- Criar uma variável de nome Aluno que terá o formato de Cadastro (registro): Aluno: Cadastro 3- Solicitar a digitação do nome e notas e armazenar nas variáveis: Ler Aluno.NomeAluno; Ler Aluno.Nota1; Ler Aluno.Nota2; Ler Aluno.Nota3; Ler Aluno.Nota4; Fim Estrutura de Dados

REGISTRO DE CONJUNTOS Os registros vistos até agora possuíam em seus campos apenas informações de tipos primitivos, entretanto, podemos dispor também de campos que são compostos, ou seja, formados por outros tipos construídos. Por enquanto só trataremos de problemas com vetores. Estrutura de Dados

REGISTRO DE CONJUNTOS Digamos que possuímos um registro de estoque de um produto, contendo como um de seus campos um valor numérico que indique baixas por dia do produto, por dia de semana. Temos então, um vetor de seis posições, na qual cada posição corresponde a um dia útil da semana. Para declarar o tipo registro anterior, utilizamos um tipo construído vetor; então, precisamos primeiramente declarar tal tipo, e depois o tipo registro; isto é, precisamos declarar todos os conjuntos que serão incluídos no registro antes da sua declaração. Estrutura de Dados

REGISTRO DE CONJUNTOS (exemplo) Sintaxe da declaração: Exemplos: a) tipo VDIAS = vetor [1..6] de inteiro; tipo REGPROD = registro caractere : NOME; inteiro : CODIGO; real : PRECO; VDIAS : BAIXA; fim registro; REGPROD : PRODUTO; Estrutura de Dados

REGISTRO DE CONJUNTOS Nas estruturas compostas homogêneas (vetores e matrizes) utilizamos tipos de dados primitivos como sendo os elementos dessas estruturas. Agora utilizaremos como componente dessa estrutura não apenas um tipo primitivo, mas sim os tipos construídos, neste caso os registros. Supondo que quiséssemos manter um registro de informações relativas às passagens rodoviárias de todos os lugares de um ônibus, utilizaríamos um registro referente a cada poltrona (PASSAGEM), e para agrupar todos eles utilizaríamos um conjunto desses registros. Estrutura de Dados

REGISTRO DE CONJUNTOS (cont.) Como possuímos 44 lugares num ônibus, numerados seqüencialmente de 1 até 44, podemos, para uni-los, criar um vetor no qual cada posição é um elemento de tipo construído registro (PASSAGEM). Estrutura de Dados

SINTAXE DE DECLARAÇÃO Como possuímos um vetor composto por registros, não podemos declarar esse vetor sem antes ter declarado seus elementos; devemos então declarar primeiro o tipo construído registro e depois o vetor. a) tipo REGPASSAGEM = registro inteiro : NUMERO, POLTRONA; caractere : ORIGEM, DESTINO, DATA, HORÁRIO; real: DISTANCIA; fim registro; tipo VETPASSAGEM = vetor [1..44] de REGPASSAGEM; VETPASSAGEM : ONIBUS; Estrutura de Dados

TIPOS DE DADOS X ESTRUTURA DE DADOS 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. Estrutura de Dados

TIPOS DE DADOS 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...). Resumindo: tipos de dados podem ser vistos como métodos para interpretar o conteúdo da memória do computador. Estrutura de Dados

TIPOS DE DADOS Podemos ver também 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...). 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 uma TAD. Estrutura de Dados

TIPO ABSTRATO DE DADOS - 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. Estrutura de Dados

EXEMPLOS DE ED LINEARES NÃO LINEARES Listas Ordenadas Árvores Pilhas Grafos Filas Deques Estrutura de Dados

PILHAS, FILAS E DEQUES Arrays, assim como listas*, são freqüentemente usados para implementar coleções seqüenciais de dados onde as alterações (inserção/remoção) são efetuadas apenas no início ou no final da seqüência: • Pilha: inserção e remoção na mesma extremidade • Fila: inserção numa extremidade e remoção na outra • Deque (double-ended queue): inserção e remoção em ambas extremidades * OBS.: Lembre que estamos empregando o termo “array” para denotar coleções de dados de mesmo tamanho armazenados contiguamente em memória. Falaremos de listas mais tarde. Estrutura de Dados

LISTAS LINEARES Estrutura de dados organizada de forma linear, onde a mesma pode ter n nós (n>=0). Quando n=0 dizemos que é uma lista vazia. Podemos: consultar, inserir, deletar sobre os nós de uma lista. Estrutura de Dados