Buscar

A01 - Apresentação

Prévia do material em texto

Apresentação da disciplina
Prof. Sergio Cleger Tamayo.
sergio.cleger@gmail.com
ESTRUTURA DE DADOS
Agenda
 Introdução
 Objetivo
 Ementa
 Metodologia
EMENTA
 Explora o conhecimento de soluções 
clássicas de problemas por meio de 
abstração utilizando conjuntos de dados, 
operações e representações de listas, 
pilhas, filas e árvores, apoiados em 
métodos e técnicas, tendo como subsídio 
uma linguagem de programação. 
OBJETIVOS DE APRENDIZAGEM
 Avaliar e propor a melhor estrutura de dados e algoritmo 
para solucioná-lo; 
 Estimar soluções em relação a tempo de desenvolvimento, 
complexidade computacional e espacial.
 Implementar as estruturas de dados pilha, fila, lista e árvore 
na resolução de problemas.
 Aplicar os conceitos de alocação estática e dinâmica de 
memória.
 Identificar a estrutura mais apropriada na resolução de um 
problema específico.
 Estabelecer as diferenças de aplicação das estruturas pilha, 
fila, lista e árvores.
 Abstrair estruturas de dados dinâmicas em uma memória 
computacional.
Conceitos preliminares
ESTRUTURA DE DADOS
Objetivos de Aprendizagem
 Reconhecer as principais características 
de abstração;
 Interpretar problemas de abstração do 
mundo real;
 Utilizar de abstrações em problemas do 
mundo real;
 Estruturas de Dados
 Uma maneira de organização e 
armazenamento de dados, de modo que 
possam ser usados eficientemente nas 
diferentes tarefas,
◦ Inserção
◦ Busca
◦ Modificação
◦ Etc....
 As estrutura de dados servem no estudo 
dos diversos mecanismos de organização 
de dados para atender aos diferentes 
requisitos de processamento.
 Desafios no estudo de estruturas de 
dados
 Necessidade de alocar ou manter os seus 
itens de forma independente de seus 
conteúdos.
 Necessidade de alocar ou manter os seus 
itens de forma associativas; levando em 
consideração a interpretação dos 
conteúdos.
 Necessidade de uma hierarquia.
O que é abstração?
Realidade
O que você abstrai dessa realidade?
Abstração:
Operação mental que
observa a realidade e 
captura apenas os
aspectos relevantes
para um contexto
 Passe alguns minutos olhando para a figura
abaixo e diga o que você consegue abstrair
dela
Abstração
 Conseguiu ver uma jovem mulher de perfil?
 Ou uma senhora olhando para baixo?
Abstração
 Perceba que a realidade é a mesma
◦ Isto é, uma figura em preto e branco
 Mas dependendo da observação da realidade
você pode ter abstrações diferentes
 Por isso, a abstração depende mais do 
observador do que da realidade observada.
Abstração
Realidade
O que você abstrai dessa realidade?
Sistema de Locadora de Veículo
Abstração
+
Programação
A tarefa de programar sistemas
computacionais envolve o exercício constante
da abstração da realidade e sua codificação
em uma linguagem de programação.
Abstração
+
Programação (Codificação)
Exercícios...
 Problemas com pessoas
 Problemas com números
Tipos de Dados e Tipos Abstratos de 
Dados
O tipo de dado de uma variável, constante ou 
função define o conjunto de valores que a 
variável, constante ou função podem assumir.
Você como programador pode definir novos 
tipos de dados em termos de outros já 
definidos, p.ex., arrays, records...
Tipos de Dados e Tipos Abstratos de 
Dados
Tipos estruturados são estruturas de dados já pré-
definidas na linguagem de programação.
O programador pode definir outras estruturas de 
dados para armazenar as informações que são precisas.
Vetores, registros, listas encadeadas, pilhas, filas, árvores, 
grafos, são exemplos de estruturas de dados típicas 
utilizadas para armazenar informação em memória 
principal.
Tipos de Dados e Tipos Abstratos de 
Dados
Os tipos e estruturas de dados existem para serem 
usados pelo programa para acessar informações neles 
armazenadas, por meio de operações apropriadas.
Do ponto de vista do programador, muitas vezes é 
conveniente pensar nas estruturas de dados em 
termos das operações que elas suportam, e não da 
maneira como elas são implementadas.
Uma estrutura de dados definida dessa forma é 
chamada de um Tipo Abstrato de Dados (TAD).
Avaliação
#include <stdio.h>
#define MAX 10
int LeInteiro() {
int num;
printf(“Digite um numero: ");
scanf("%d", &num);
printf("\n");
return num;
}
int main() {
int v[10], cont, aux, i, soma;
double valor;
cont = ___;
aux = LeInteiro();
while(aux >= 0 ___ ___________) {
v[cont] = aux;
aux = LeInteiro();
cont++;
}
soma = 0;
for(i=0;i<cont;i++)
soma += v[i];
valor = soma / (_________) cont;
printf("resultado: %lf\n", valor);
}
Tipos Abstratos de Dados (TADs)
Agrupa a estrutura de dados juntamente com 
as operações que podem ser feitas sobre 
esses dados.
O TAD encapsula a estrutura de dados. Os 
usuários do TAD só tem acesso a algumas 
operações disponibilizadas sobre esses dados.
● Usuário do TAD x Programador do TAD
Tipos Abstratos de Dados (TADs)
Dessa forma, o usuário pode abstrair da 
implementação específica.
Qualquer modificação nessa implementação fica 
restrita ao TAD.
A escolha de uma representação específica é 
fortemente influenciada pelas operações a serem 
executadas.
Tipos Abstratos de Dados (TADs)
Vantagens:
● Reuso: uma vez definido, implementado e testado, o 
TAD pode ser acessado por diferentes programas;
● Manutenção: mudanças na implementação do TAD não 
afetam o código fonte dos programas que o utilizam 
(decorrência do ocultamento de informação);
● Correção: TAD foi testado e funciona corretamente.
Conceitos preliminares
ESTRUTURA DE DADOS

Continue navegando