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

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

Professor Victor Sotero

Apresentações semelhantes


Apresentação em tema: "Professor Victor Sotero"— Transcrição da apresentação:

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

2 MODELO DE COMPUTADOR Estrutura de Dados

3 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

4 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

5 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: = 1599 Boa para números maiores (operação complexa) Estrutura de Dados

6 O QUE É UMA ESTRUTURA DE DADOS?

7 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

8 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

9 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

10 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

11 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

12 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

13 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

14 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

15 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

16 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

17 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

18 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

19 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

20 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

21 REGISTROS (cont.) Estrutura de Dados

22 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

23 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

24 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

25 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

26 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

27 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

28 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

29 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

30 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

31 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

32 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

33 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

34 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

35 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

36 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

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

38 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

39 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


Carregar ppt "Professor Victor Sotero"

Apresentações semelhantes


Anúncios Google