introdução e conceitos: tipos de dados, estruturas de...

46
Introdução Conceitos Tipos de Dados Estruturas de Dados Tipo Abstrato de Dados Referências Introdução e Conceitos: Tipos de Dados, Estruturas de Dados e Tipos Abstratos de Dados Huei Diana Lee Fabiana F.F. Peres Ana Paula Martins Algoritmos e Estruturas de Dados 2007

Upload: trannguyet

Post on 14-Dec-2018

227 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Introdução e Conceitos: Tipos de Dados, Estruturas de ...frata/aed/material_didatico_aed/1oBim/Aula2.pdf · Introdução Conceitos Tipos de Dados Estruturas de Dados Tipo Abstrato

Introdução Conceitos Tipos de Dados Estruturas de Dados Tipo Abstrato de Dados Referências

Introdução e Conceitos:Tipos de Dados, Estruturas de Dados

e Tipos Abstratos de Dados

Huei Diana LeeFabiana F.F. PeresAna Paula Martins

Algoritmos e Estruturas de Dados

2007

Page 2: Introdução e Conceitos: Tipos de Dados, Estruturas de ...frata/aed/material_didatico_aed/1oBim/Aula2.pdf · Introdução Conceitos Tipos de Dados Estruturas de Dados Tipo Abstrato

Introdução Conceitos Tipos de Dados Estruturas de Dados Tipo Abstrato de Dados Referências

Conteúdo

Introdução

Conceitos

Tipos de Dados

Estruturas de Dados

Tipo Abstrato de Dados

Referências

Page 3: Introdução e Conceitos: Tipos de Dados, Estruturas de ...frata/aed/material_didatico_aed/1oBim/Aula2.pdf · Introdução Conceitos Tipos de Dados Estruturas de Dados Tipo Abstrato

Introdução Conceitos Tipos de Dados Estruturas de Dados Tipo Abstrato de Dados Referências

The discipline of computing is the systematicstudy of algorithmic processes that describe andtransform information: their theory, analysis,design, efficiency, implementation, andapplication. The fundamental question underlyingall the computing is ’What can be (efficiently)automated?’

Relatório da ACM [Comer et al., 1989] (Association forComputing Machinery)

Page 4: Introdução e Conceitos: Tipos de Dados, Estruturas de ...frata/aed/material_didatico_aed/1oBim/Aula2.pdf · Introdução Conceitos Tipos de Dados Estruturas de Dados Tipo Abstrato

Introdução Conceitos Tipos de Dados Estruturas de Dados Tipo Abstrato de Dados Referências

COMPUTAÇÃO: estudo de ALGORITMOS

I Conceito de algoritmo: originado como um meio pararepresentar procedimentos para resolver problemasmatemáticos;

I Formalizado em 1936 por meio das Máquinas deTuring1 de Alan Turing e pelo Cálculo Lambda2 deAlonzo Church e Stephen Cole Kleene.

1Modelo abstrato de um computador.2Sistema formal desenvolvido para investigar definição de funções,

aplicação de funções e recursão.

Page 5: Introdução e Conceitos: Tipos de Dados, Estruturas de ...frata/aed/material_didatico_aed/1oBim/Aula2.pdf · Introdução Conceitos Tipos de Dados Estruturas de Dados Tipo Abstrato

Introdução Conceitos Tipos de Dados Estruturas de Dados Tipo Abstrato de Dados Referências

Definição

I ALGORITMO: conjunto finito de instruções bemdefinidas que, se seguidas, realizam umadeterminada tarefa;

I Informalmente... receita:I Instruções para o uso de medicamentos;I Indicações de como montar um aparelho;I Uma receita de culinária.

I Segundo Dijkstra, um algoritmo corresponde a umadescrição de um padrão de comportamento,expresso em termos de um conjunto finito de ações.

Page 6: Introdução e Conceitos: Tipos de Dados, Estruturas de ...frata/aed/material_didatico_aed/1oBim/Aula2.pdf · Introdução Conceitos Tipos de Dados Estruturas de Dados Tipo Abstrato

Introdução Conceitos Tipos de Dados Estruturas de Dados Tipo Abstrato de Dados Referências

Definição

I ALGORITMO: conjunto finito de instruções bemdefinidas que, se seguidas, realizam umadeterminada tarefa;

I Informalmente... receita:I Instruções para o uso de medicamentos;I Indicações de como montar um aparelho;I Uma receita de culinária.

I Segundo Dijkstra, um algoritmo corresponde a umadescrição de um padrão de comportamento,expresso em termos de um conjunto finito de ações.

Page 7: Introdução e Conceitos: Tipos de Dados, Estruturas de ...frata/aed/material_didatico_aed/1oBim/Aula2.pdf · Introdução Conceitos Tipos de Dados Estruturas de Dados Tipo Abstrato

Introdução Conceitos Tipos de Dados Estruturas de Dados Tipo Abstrato de Dados Referências

Definição

I ALGORITMO: conjunto finito de instruções bemdefinidas que, se seguidas, realizam umadeterminada tarefa;

I Informalmente... receita:I Instruções para o uso de medicamentos;I Indicações de como montar um aparelho;I Uma receita de culinária.

I Segundo Dijkstra, um algoritmo corresponde a umadescrição de um padrão de comportamento,expresso em termos de um conjunto finito de ações.

Page 8: Introdução e Conceitos: Tipos de Dados, Estruturas de ...frata/aed/material_didatico_aed/1oBim/Aula2.pdf · Introdução Conceitos Tipos de Dados Estruturas de Dados Tipo Abstrato

Introdução Conceitos Tipos de Dados Estruturas de Dados Tipo Abstrato de Dados Referências

Origem...

Abu Abdullah Muhammadbin Musa al-Khwarizmi

I Algorism (regras paraaritmética usandonúmeroshindu-arábicos);

I Algorithm (século 18latinização);

I 1o algoritmo escritopara um computar:Ada Byron em 1842.

Page 9: Introdução e Conceitos: Tipos de Dados, Estruturas de ...frata/aed/material_didatico_aed/1oBim/Aula2.pdf · Introdução Conceitos Tipos de Dados Estruturas de Dados Tipo Abstrato

Introdução Conceitos Tipos de Dados Estruturas de Dados Tipo Abstrato de Dados Referências

Critérios para “ser” um algoritmo:

1. Entrada: zero ou mais valores de entrada;

2. Saída: pelo menos um valor é produzido;

3. Clareza de definição: toda instrução deve ser clarae não ambígua;

4. Efetividade: toda instrução deve ser factível;

5. O algoritmo deve terminar após um no finito depassos.

Page 10: Introdução e Conceitos: Tipos de Dados, Estruturas de ...frata/aed/material_didatico_aed/1oBim/Aula2.pdf · Introdução Conceitos Tipos de Dados Estruturas de Dados Tipo Abstrato

Introdução Conceitos Tipos de Dados Estruturas de Dados Tipo Abstrato de Dados Referências

Programa: não satisfaz necessariamente o critério (5).Ex: SO.

Porém...

I Algoritmo é MEIO

I Computador é manipulador de DADOS

I FIM: TRANFORMAÇÃO DE DADOS

Page 11: Introdução e Conceitos: Tipos de Dados, Estruturas de ...frata/aed/material_didatico_aed/1oBim/Aula2.pdf · Introdução Conceitos Tipos de Dados Estruturas de Dados Tipo Abstrato

Introdução Conceitos Tipos de Dados Estruturas de Dados Tipo Abstrato de Dados Referências

DadosDados

Transformados

Page 12: Introdução e Conceitos: Tipos de Dados, Estruturas de ...frata/aed/material_didatico_aed/1oBim/Aula2.pdf · Introdução Conceitos Tipos de Dados Estruturas de Dados Tipo Abstrato

Introdução Conceitos Tipos de Dados Estruturas de Dados Tipo Abstrato de Dados Referências

Page 13: Introdução e Conceitos: Tipos de Dados, Estruturas de ...frata/aed/material_didatico_aed/1oBim/Aula2.pdf · Introdução Conceitos Tipos de Dados Estruturas de Dados Tipo Abstrato

Introdução Conceitos Tipos de Dados Estruturas de Dados Tipo Abstrato de Dados Referências

COMPUTAÇÃO: estudo de DADOS

Dados

ALGORITMOS

Modelagem

Representação

Execução

Transformação

DadosTransformados

Interpretação

RESULTADOS!!RESULTADOS!!

Diferentes representações =⇒ diferentes algoritmos.

Page 14: Introdução e Conceitos: Tipos de Dados, Estruturas de ...frata/aed/material_didatico_aed/1oBim/Aula2.pdf · Introdução Conceitos Tipos de Dados Estruturas de Dados Tipo Abstrato

Introdução Conceitos Tipos de Dados Estruturas de Dados Tipo Abstrato de Dados Referências

Algumas questões a serem analisadas...

I Existem diferentes dados a serem considerados:

1. Cada um envolve um conjunto de operações;2. Cada representação alternativa do dado origina algoritmos

distintos que realizam as operações sobre o dado.

I Os algoritmos devem ser analisados para a avaliaçãoda influência da representação do dado.

Page 15: Introdução e Conceitos: Tipos de Dados, Estruturas de ...frata/aed/material_didatico_aed/1oBim/Aula2.pdf · Introdução Conceitos Tipos de Dados Estruturas de Dados Tipo Abstrato

Introdução Conceitos Tipos de Dados Estruturas de Dados Tipo Abstrato de Dados Referências

ESTRATÉGIA:

analisar o papel de diferentes estruturas dedados em problemas clássicos de Ciências daComputação através da análise dos algoritmoscorrespondentes.

Page 16: Introdução e Conceitos: Tipos de Dados, Estruturas de ...frata/aed/material_didatico_aed/1oBim/Aula2.pdf · Introdução Conceitos Tipos de Dados Estruturas de Dados Tipo Abstrato

Introdução Conceitos Tipos de Dados Estruturas de Dados Tipo Abstrato de Dados Referências

DADO:

I s.m. Elemento ou quantidade conhecida, que servede base à resolução de um problema; princípio emque assenta uma discussão; elemento ou base paraa formação de um juízo [de Holanda Ferreira, 1986];

Page 17: Introdução e Conceitos: Tipos de Dados, Estruturas de ...frata/aed/material_didatico_aed/1oBim/Aula2.pdf · Introdução Conceitos Tipos de Dados Estruturas de Dados Tipo Abstrato

Introdução Conceitos Tipos de Dados Estruturas de Dados Tipo Abstrato de Dados Referências

DADO:

I Representação formalizada de fatos ou idéias, capazde ser comunicada ou manipulada por algumprocesso;

I Representação em uma linguagem precisa eformalizada de alguns fatos ou conceitos,freqüentemente valores numéricos ou alfabéticos, deuma forma tal que possam ser manipulados por ummétodo computacional [Knuth, 1997].

Page 18: Introdução e Conceitos: Tipos de Dados, Estruturas de ...frata/aed/material_didatico_aed/1oBim/Aula2.pdf · Introdução Conceitos Tipos de Dados Estruturas de Dados Tipo Abstrato

Introdução Conceitos Tipos de Dados Estruturas de Dados Tipo Abstrato de Dados Referências

TIPO DE DADO:

I Especificação de como o dado representado porcadeia de bits é interpretado.

I Exemplos de tipos de dados:I Variáveis;I Constantes;I Expressões;I Funções.

I Referem-se ao conjunto de valores que estes podemassumir ou gerar.

Page 19: Introdução e Conceitos: Tipos de Dados, Estruturas de ...frata/aed/material_didatico_aed/1oBim/Aula2.pdf · Introdução Conceitos Tipos de Dados Estruturas de Dados Tipo Abstrato

Introdução Conceitos Tipos de Dados Estruturas de Dados Tipo Abstrato de Dados Referências

Tipos Escalares de Dados

I Incluem os números, os valores lógicos e o conjuntode caracteres de impressão.

I Denotam-se por meio de identificadores:I Integer (simples);I Boolean (simples);I Char (simples);I Real (simples);I Enumerado e Subconjuntos.

Page 20: Introdução e Conceitos: Tipos de Dados, Estruturas de ...frata/aed/material_didatico_aed/1oBim/Aula2.pdf · Introdução Conceitos Tipos de Dados Estruturas de Dados Tipo Abstrato

Introdução Conceitos Tipos de Dados Estruturas de Dados Tipo Abstrato de Dados Referências

Tipos Escalares de Dados: Integer (inteiro)

I Compreende o conjunto de todos os números inteiros(negativos, zero e positivos);

I Operações permitidas são:I Soma;I Subtração;I Multiplicação;I Divisão inteira (DIV);I Resto da divisão (MOD);I Operações de comparação: =, 6=, ≥, ≤, >, <.

Page 21: Introdução e Conceitos: Tipos de Dados, Estruturas de ...frata/aed/material_didatico_aed/1oBim/Aula2.pdf · Introdução Conceitos Tipos de Dados Estruturas de Dados Tipo Abstrato

Introdução Conceitos Tipos de Dados Estruturas de Dados Tipo Abstrato de Dados Referências

Tipos Escalares de Dados: Real

I São os números racionais, isto é, númeroscompostos por uma parte inteira e uma fracionária;

I Operações permitidas são:I Soma;I Subtração;I Multiplicação;I Divisão (/);I Operações de comparação: =, 6=, ≥, ≤, >, <.

Page 22: Introdução e Conceitos: Tipos de Dados, Estruturas de ...frata/aed/material_didatico_aed/1oBim/Aula2.pdf · Introdução Conceitos Tipos de Dados Estruturas de Dados Tipo Abstrato

Introdução Conceitos Tipos de Dados Estruturas de Dados Tipo Abstrato de Dados Referências

Tipos Escalares de Dados: Boolean (lógico)

I Composto por apenas dois valores: verdadeiro efalso (TRUE e FALSE)

I Operações:I OU (OR - conjunção);I E (AND - disjunção);I NÃO (NOT - negação).

Page 23: Introdução e Conceitos: Tipos de Dados, Estruturas de ...frata/aed/material_didatico_aed/1oBim/Aula2.pdf · Introdução Conceitos Tipos de Dados Estruturas de Dados Tipo Abstrato

Introdução Conceitos Tipos de Dados Estruturas de Dados Tipo Abstrato de Dados Referências

Tipos Escalares de Dados: Char (caracter)

I São os caracteres alfanuméricos, isto é, dígitosdecimais (0..9), letras (a..z, A..Z) e sinais especiais(sinais de pontuação, espaço em branco entreoutros);

I Operações de comparação: =, 6=.

Page 24: Introdução e Conceitos: Tipos de Dados, Estruturas de ...frata/aed/material_didatico_aed/1oBim/Aula2.pdf · Introdução Conceitos Tipos de Dados Estruturas de Dados Tipo Abstrato

Introdução Conceitos Tipos de Dados Estruturas de Dados Tipo Abstrato de Dados Referências

Tipos Escalares de Dados: Enumerated (enumerado)

I Conjunto ordenado de identificador da seguinteforma:TYPE T = (a1, a2, ..., an)onde T é o novo identificador de tipo e os aj são osnovos identificadores de constantes.

I Exemplos:I TYPE cor = (azul, vermelho, amarelo);I TYPE dia-da-semana = (segunda, terça, quarta, quinta,

sexta, sábado, domingo);I TYPE moeda = (real, dólar, peso, franco);

Page 25: Introdução e Conceitos: Tipos de Dados, Estruturas de ...frata/aed/material_didatico_aed/1oBim/Aula2.pdf · Introdução Conceitos Tipos de Dados Estruturas de Dados Tipo Abstrato

Introdução Conceitos Tipos de Dados Estruturas de Dados Tipo Abstrato de Dados Referências

Tipos Escalares de Dados

I Definição de tipos enumerados, possibilita que osidentificadores sejam utilizados ao longo do programacomo constantes, aumentando consideravelmente a suainteligibilidade.

I Vejamos os exemplos abaixo:I VAR c: cor;I VAR d: dia-da-semana;I VAR m: moeda.

I entãoI c := vermelho;I d := segunda;I m := real;

Page 26: Introdução e Conceitos: Tipos de Dados, Estruturas de ...frata/aed/material_didatico_aed/1oBim/Aula2.pdf · Introdução Conceitos Tipos de Dados Estruturas de Dados Tipo Abstrato

Introdução Conceitos Tipos de Dados Estruturas de Dados Tipo Abstrato de Dados Referências

Tipos Escalares de Dados

I onde naturalmente, estes são mais informativos que seuscorrespondentes numéricos:

I c := 2;I d := 1;I m := 1;

I OBS: Também, o compilador poderá verificar aconsistência de operações envolvendo tais tipos. Assim,tomando-se a definição de c, c := c + 1 não teria sentido.

Page 27: Introdução e Conceitos: Tipos de Dados, Estruturas de ...frata/aed/material_didatico_aed/1oBim/Aula2.pdf · Introdução Conceitos Tipos de Dados Estruturas de Dados Tipo Abstrato

Introdução Conceitos Tipos de Dados Estruturas de Dados Tipo Abstrato de Dados Referências

Tipos Escalares de Dados: Subrange (subconjunto)

I Composto por um subconjunto de um determinadotipo, limitados a um intervalo específico da forma:TYPE T = [min,..., máx]onde min e máx definem os limites do intervalo.Estes limites devem ser constantes;

I Ex:TYPE ano = [1900..2000]TYPE letra-maiúscula = ["A".."Z"]

Page 28: Introdução e Conceitos: Tipos de Dados, Estruturas de ...frata/aed/material_didatico_aed/1oBim/Aula2.pdf · Introdução Conceitos Tipos de Dados Estruturas de Dados Tipo Abstrato

Introdução Conceitos Tipos de Dados Estruturas de Dados Tipo Abstrato de Dados Referências

Tipos Escalares de Dados: Subrange (subconjunto)

I Então, definindo-se:I VAR y: ano;I VAR l: letra-maiúscula;

I as seguintes atribuições são válidas:I y := 1996;I l := "U";

Page 29: Introdução e Conceitos: Tipos de Dados, Estruturas de ...frata/aed/material_didatico_aed/1oBim/Aula2.pdf · Introdução Conceitos Tipos de Dados Estruturas de Dados Tipo Abstrato

Introdução Conceitos Tipos de Dados Estruturas de Dados Tipo Abstrato de Dados Referências

Tipos Compostos de Dados (Tipos Estruturados)

São tipos construídos a partir de tipos simples:

I ArrayI File ofI RecordI Set

Page 30: Introdução e Conceitos: Tipos de Dados, Estruturas de ...frata/aed/material_didatico_aed/1oBim/Aula2.pdf · Introdução Conceitos Tipos de Dados Estruturas de Dados Tipo Abstrato

Introdução Conceitos Tipos de Dados Estruturas de Dados Tipo Abstrato de Dados Referências

Tipos Estruturados: Array

I Estrutura matricial:I Composta de um número fixo de elementos do mesmo tipo

com índices variando de a1 até an;I A variável usada como índice é do tipo simples (não real).

Page 31: Introdução e Conceitos: Tipos de Dados, Estruturas de ...frata/aed/material_didatico_aed/1oBim/Aula2.pdf · Introdução Conceitos Tipos de Dados Estruturas de Dados Tipo Abstrato

Introdução Conceitos Tipos de Dados Estruturas de Dados Tipo Abstrato de Dados Referências

Exemplo: considere os elementos aij , onde i = [1...n] e j =[1...m]. O conjunto de m × n variáveis pode serrepresentado por um array bidimensional A, onde m é onúmero de linhas e n o número de colunas.

a11 a12 . . . a1j a1n

a21 a22 . . . a11 a2n

......

. . ....

...ai1 a12 . . . a11 ain

am1 a12 . . . a11 amn

Ex: ARRAY [a1...am, b1...bn] OF Tipo

Page 32: Introdução e Conceitos: Tipos de Dados, Estruturas de ...frata/aed/material_didatico_aed/1oBim/Aula2.pdf · Introdução Conceitos Tipos de Dados Estruturas de Dados Tipo Abstrato

Introdução Conceitos Tipos de Dados Estruturas de Dados Tipo Abstrato de Dados Referências

Tipos Estruturados: Record (registro)

I Estrutura de campos que pode ser utilizada para ligarcomponentes de diferentes tipos. Cada campo temum nome próprio chamado de identificador de campo.

I Número fixo de variáveis:TYPE pessoa1 = RECORDNome: string[30];Altura: real;Idade: integer;Sexo: tiposexo;END;

Page 33: Introdução e Conceitos: Tipos de Dados, Estruturas de ...frata/aed/material_didatico_aed/1oBim/Aula2.pdf · Introdução Conceitos Tipos de Dados Estruturas de Dados Tipo Abstrato

Introdução Conceitos Tipos de Dados Estruturas de Dados Tipo Abstrato de Dados Referências

Tipos Estruturados: Record (registro)

I Campo variante:TYPE pessoa-2 = RECORDNome : string[30];Est-civil: (solt, cas, viú, div);CASE s : tiposexo OFmasculino: (peso: real;barbudo : boolean;)feminino : ARRAY [1..3] OF integer;END;END;

Page 34: Introdução e Conceitos: Tipos de Dados, Estruturas de ...frata/aed/material_didatico_aed/1oBim/Aula2.pdf · Introdução Conceitos Tipos de Dados Estruturas de Dados Tipo Abstrato

Introdução Conceitos Tipos de Dados Estruturas de Dados Tipo Abstrato de Dados Referências

Tipos Estruturados: File (arquivo)

I Estrutura de arquivo, com registro do TIPOespecificado, onde tipo pode ser TEXT por exemplo;

I Exemplo:TYPEcadastro : FILE OF pessoa-1;Nomes : FILE OF TEXT;(arquivo de char organizado em linhas)

Page 35: Introdução e Conceitos: Tipos de Dados, Estruturas de ...frata/aed/material_didatico_aed/1oBim/Aula2.pdf · Introdução Conceitos Tipos de Dados Estruturas de Dados Tipo Abstrato

Introdução Conceitos Tipos de Dados Estruturas de Dados Tipo Abstrato de Dados Referências

Tipos Estruturados: Set (conjunto)

I Estrutura de conjunto de valores simples de um sótipo (escalares exceto reais);

I Exemplo:TYPEletra-ma = SET OF ’A’...’Z’;vogal = SET OF (’a’,’e’,’i’,’o’,’u’);

Page 36: Introdução e Conceitos: Tipos de Dados, Estruturas de ...frata/aed/material_didatico_aed/1oBim/Aula2.pdf · Introdução Conceitos Tipos de Dados Estruturas de Dados Tipo Abstrato

Introdução Conceitos Tipos de Dados Estruturas de Dados Tipo Abstrato de Dados Referências

Program complex;type complexnumber = record

r1: real;im: real;

end;var c1, c2, c3: complexnumber;

beginc1.r1 := 12,3; c1.im := 6,5;

c2.r1 := -2,4; c2.im := 0,0;

c3.r1 := c1.r1 + c2.r1;

writeln(‘Parte real da soma = ’, c3.r1);

c3.im := c1.im + c2.im;

writeln(‘Parte imaginária da soma = ’, c3.im);

c3.r1 := c1.r1 * c2.r1 – c1.im * c2.im;

writeln(‘Parte real do produto = ’, c3.r1);

c3.im := c1.im * c2.r1 – c1.r1 * c2.im;

writeln(‘Parte imaginária do produto = ’, c3.im);end.

Page 37: Introdução e Conceitos: Tipos de Dados, Estruturas de ...frata/aed/material_didatico_aed/1oBim/Aula2.pdf · Introdução Conceitos Tipos de Dados Estruturas de Dados Tipo Abstrato

Introdução Conceitos Tipos de Dados Estruturas de Dados Tipo Abstrato de Dados Referências

Estruturas de Dados — ED

Definição:Conjunto de valores e da maneira como serelacionam.

Exemplo: estrutura de dados Inteiros

Conjunto de valores + Relações|| ||

(0, ±1, ±2, . . .) (+, -, *, /, MOD)

Page 38: Introdução e Conceitos: Tipos de Dados, Estruturas de ...frata/aed/material_didatico_aed/1oBim/Aula2.pdf · Introdução Conceitos Tipos de Dados Estruturas de Dados Tipo Abstrato

Introdução Conceitos Tipos de Dados Estruturas de Dados Tipo Abstrato de Dados Referências

Estruturas de Dados

Uma implementação de ED d é um mapeamento de dpara um conjunto de outras estruturas de dados e

O que faz × Como faz⇓ ⇓

Definição ED Implementação ED

Page 39: Introdução e Conceitos: Tipos de Dados, Estruturas de ...frata/aed/material_didatico_aed/1oBim/Aula2.pdf · Introdução Conceitos Tipos de Dados Estruturas de Dados Tipo Abstrato

Introdução Conceitos Tipos de Dados Estruturas de Dados Tipo Abstrato de Dados Referências

Estruturas de Dados e Algoritmos

I Estruturas de dados e algoritmos estão intimamenteligados:

I Não se pode estudar estruturas de dados sem consideraros algoritmos associados a elas;

I Assim como a escolha dos algoritmos em geral dependeda representação e da estrutura dos dados.

I Para resolver um problema é necessário escolheruma abstração da realidade, em geral mediante adefinição de um conjunto de dados que representa asituação real.

Page 40: Introdução e Conceitos: Tipos de Dados, Estruturas de ...frata/aed/material_didatico_aed/1oBim/Aula2.pdf · Introdução Conceitos Tipos de Dados Estruturas de Dados Tipo Abstrato

Introdução Conceitos Tipos de Dados Estruturas de Dados Tipo Abstrato de Dados Referências

Escolha da representação

I A escolha da representação dos dados édeterminada, entre outras, pelas operações a seremrealizadas sobre os dados;

I Exemplo: considere a operação de adição:I Para pequenos números, uma boa representação é por

meio de barras verticais (caso em que a operação deadição é bastante simples);

I Já a representação por dígitos decimais requer regrasrelativamente complicadas, as quais devem ser.memorizadas

I Entretanto, quando consideramos a adição de grandesnúmeros é mais fácil a representação por dígitos decimais(devido ao princípio baseado no peso relativo da posiçãode cada dígito).

Page 41: Introdução e Conceitos: Tipos de Dados, Estruturas de ...frata/aed/material_didatico_aed/1oBim/Aula2.pdf · Introdução Conceitos Tipos de Dados Estruturas de Dados Tipo Abstrato

Introdução Conceitos Tipos de Dados Estruturas de Dados Tipo Abstrato de Dados Referências

Programas

I Programar é basicamente estruturar dados econstruir algoritmos. Programas são formulaçõesconcretas de algoritmos abstratos, baseados emrepresentações e estruturas específicas de dados;

I Programas representam uma classe especial dealgoritmos capazes de serem seguidos porcomputadores;

I Um computador só é capaz de seguir programas emlinguagem de máquina (seqüência de instruçõesobscuras e desconfortáveis para os humanos!).

Page 42: Introdução e Conceitos: Tipos de Dados, Estruturas de ...frata/aed/material_didatico_aed/1oBim/Aula2.pdf · Introdução Conceitos Tipos de Dados Estruturas de Dados Tipo Abstrato

Introdução Conceitos Tipos de Dados Estruturas de Dados Tipo Abstrato de Dados Referências

Programas

I É necessário construir linguagens mais adequadas,que facilitem a tarefa de programar um computador;

I Uma linguagem de programação é uma técnica denotação para programar, com a intenção de servir deveículo tanto para a expressão do raciocínioalgorítmico quanto para a execução automática deum algoritmo por um computador.

Page 43: Introdução e Conceitos: Tipos de Dados, Estruturas de ...frata/aed/material_didatico_aed/1oBim/Aula2.pdf · Introdução Conceitos Tipos de Dados Estruturas de Dados Tipo Abstrato

Introdução Conceitos Tipos de Dados Estruturas de Dados Tipo Abstrato de Dados Referências

Tipo Abstrato de Dados - TAD

Encapsula ED + Operações

Vantagem:A alteração no módulo de implementação nãoaltera o módulo de interface.

Page 44: Introdução e Conceitos: Tipos de Dados, Estruturas de ...frata/aed/material_didatico_aed/1oBim/Aula2.pdf · Introdução Conceitos Tipos de Dados Estruturas de Dados Tipo Abstrato

Introdução Conceitos Tipos de Dados Estruturas de Dados Tipo Abstrato de Dados Referências

Tipo Abstrato de Dados

I São utilizados extensivamente como base para oprojeto de algoritmos;

I A implementação do algoritmo em uma linguagem deprogramação específica exige a representação doTAD em termos dos tipos de dados e dos operadoressuportados;

I A representação do modelo matemático por trás dotipo abstrato de dados é realizada mediante umaestrutura de dados.

Page 45: Introdução e Conceitos: Tipos de Dados, Estruturas de ...frata/aed/material_didatico_aed/1oBim/Aula2.pdf · Introdução Conceitos Tipos de Dados Estruturas de Dados Tipo Abstrato

Introdução Conceitos Tipos de Dados Estruturas de Dados Tipo Abstrato de Dados Referências

Comer, D. E., Gries, D., Mulder, M. C., Tucker, A., Turner, A. J.,and Young, P. R. (1989).Computing as a discipline.Commun. ACM, 32(1):9–23.

de Holanda Ferreira, A. B. (1986).Novo Dicionário da Língua Portuguesa.Nova Fronteira S.A., Rio de Janeiro, RJ.

Diversos (2005).Material Didático das Disciplinas de Estruturas de Dados I e II —Unesp e USP.

Knuth, D. E. (1997).The art of computer programming, volume 1 (3rd ed.):fundamental algorithms.Addison Wesley Longman Publishing Co., Inc., Redwood City,CA.

Page 46: Introdução e Conceitos: Tipos de Dados, Estruturas de ...frata/aed/material_didatico_aed/1oBim/Aula2.pdf · Introdução Conceitos Tipos de Dados Estruturas de Dados Tipo Abstrato

Introdução Conceitos Tipos de Dados Estruturas de Dados Tipo Abstrato de Dados Referências

Ziviani, N. (2004).Projeto de Algoritmos.Thomson Learning, São Paulo, SP, 2 edition.