Estrutura de Dados (DPADF 0056)

Documentos relacionados
INF1007: Programação 2 9 Tipos Abstratos de Dados. (c) Dept. Informática - PUC-Rio 1

UNIVERSIDADE DO TOCANTINS TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS PRÁTICA EM PROGRAMAÇÃO DE SISTEMAS

Conteúdo programático

Trabalho Prático II - Resta 1 Data de Entrega: Conferir no calendário!

Árvores. ! utilizada em muitas aplicações. ! modela uma hierarquia entre elementos. ! O conceito de árvores está diretamente ligado à recursão

Análise de Sistemas 3º Bimestre (material 2)

UNIVERSIDADE DO VALE DO RIO DOS SINOS - UNISINOS CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS - CENTRO 06. Funções, variáveis, parâmetros formais

2 Segmentação de imagens e Componentes conexas

Introdução à orientação a objetos

TEORIA 5: EQUAÇÕES E SISTEMAS DO 1º GRAU MATEMÁTICA BÁSICA

Linguagem de Programação

Universidade Federal de Goiás Campus Catalão Departamento de Matemática

Banco de Dados I. Prof. Edson Thizon

Programação Orientada a Objectos - P. Prata, P. Fazendeiro

Modelo Entidade Relacionamento (MER) Professor : Esp. Hiarly Alves

Para entender o conceito de objetos em programação devemos fazer uma analogia com o mundo real:

Análise e Projeto Orientado a Objetos. Nazareno Andrade Baseado no material dos profs. Hyggo Almeida e Jacques Sauvé

Introdução de XML. Dados da Web. Gerência de Dados da Web. A Web representa, nos dias de hoje, um repositório universal de dados, onde:

Programação Orientada a Objetos SANTOS, Rafael

5838 Maquinação Introdução ao CNC

PESQUISA OPERACIONAL -PROGRAMAÇÃO LINEAR. Prof. Angelo Augusto Frozza, M.Sc.

Programação Orientada a Objetos (DPADF 0063)

ENGENHARIA DE SOFTWARE

Introdução. Aula 02. Estrutura de Dados II. UFS - DComp Adaptados a partir do material da Profa. Kenia Kodel Cox

. B(x 2, y 2 ). A(x 1, y 1 )

MATEUS CONRAD BARCELLOS DA COSTA. Algoritmos e Estruturas de Dados

Tópicos Avançados em Banco de Dados Dependências sobre regime e controle de objetos em Banco de Dados. Prof. Hugo Souza

Algoritmos APRENDENDO A PROGRAMAR COM C#

Álgebra Linear Aplicada à Compressão de Imagens. Universidade de Lisboa Instituto Superior Técnico. Mestrado em Engenharia Aeroespacial

Fundamentos de Programação. Diagrama de blocos

Análise de Requisitos

Fundamentos de Teste de Software

Fundamentos de Programação

Tipos de Dados, Tipos Abstratos de Dados Estruturas de Dados

ÁLGEBRA. Aula 5 _ Função Polinomial do 1º Grau Professor Luciano Nóbrega. Maria Auxiliadora

ENG1000 Introdução à Engenharia

Matemática Básica Intervalos

TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS TURMA 2008/1 2 PERÍODO MÓDULO 3 AVALIAÇÃO MP2 DATA 2/10/2008 ESTRUTURAS DE DADOS 2008/2

Informática I. Aula Aula 19-20/06/06 1

Aula 5. Uma partícula evolui na reta. A trajetória é uma função que dá a sua posição em função do tempo:

Lógica de Programação. Profas. Simone Campos Camargo e Janete Ferreira Biazotto

Java RMI. RMI Remote Method Invocation. Chamadas Remotas de Procedimentos (RPC) RPC - Implementação

Unidade 3 Função Afim

Plano de Trabalho Docente Ensino Técnico

UNESP - Faculdade de Engenharia de Guaratinguetá 1

BANCO DE DADOS. Vinícius Pádua

CARTOGRAFIA. Sistemas de Coordenadas. Prof. Luiz Rotta

Inteligência Artificial

Aula 3 Função do 1º Grau

Métodos Formais. Agenda. Relações Binárias Relações e Banco de Dados Operações nas Relações Resumo Relações Funções. Relações e Funções

Auxiliar em Administração de Redes Redes de Computadores I

Aula 3 Alocação Dinâmica

O que é um banco de dados? Banco de Dados. Banco de dados

Modelagem de Sistemas Web. Metodologias para o desenvolvimento de sistemas web

Universidade Federal de Uberlândia - UFU Faculdade de Computação - FACOM Lista de exercícios de programação em linguagem C. Exercícios: Structs

Resumo: Estudo do Comportamento das Funções. 1º - Explicitar o domínio da função estudada

OFICINA DA PESQUISA PROGRAMAÇÃO APLICADA À CIÊNCIA DA COMPUTAÇÃO

Prof. Daniela Barreiro Claro

Aula 1 Tipo Abstrato de Dados

Modelo Entidade-Relacionamento. José Antônio da Cunha CEFET-RN

AULA 1 INTRODUÇÃO A BANCO DE DADOS E VISÃO GERAL DO SQL CONCEITUANDO BANCO DE DADOS MODELO RELACIONAL

TRIGONOMETRIA CICLO TRIGONOMÉTRICO

Aula 2 Sistemas de Coordenadas & Projeções Cartográficas. Flávia F. Feitosa

TESTES SOCIOMÉTRICOS

Redes de Computadores

Diagrama de Componentes e Implantação

Simulado de Linguagem de Programação Java

Conteúdo programático por disciplina Matemática 6 o ano

ADMINISTRAÇÃO DE BANCOS DE DADOS MÓDULO 8

Guia de Referência OPEN PROJECT Treinamento Essencial

Métodos Computacionais. Tipos Abstratos de Dados

TECNÓLOGO EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS PROGRAMAÇÃO DE COMPUTADORES I

Questão 1. Questão 2. Resposta

8 Crie um pequeno sistema para controle automatizado de estoque, com os seguintes registros:

Assunto: Estudo do ponto

INFORMÁTICA PARA GESTÃO II Curso Superior de Gestão de Marketing

Flávia Rodrigues. Silves, 26 de Abril de 2010

Gestão da Qualidade. Aula 13. Prof. Pablo

Método de ordenação - objetivos:

Revisão Diagrama de Caso de Uso. Rodolfo Adamshuk Silva 30/08/2013

Tecnologia da Informação

ÁLGEBRA VETORIAL E GEOMETRIA ANALÍTICA (UFCG- CUITÉ)

BC1424 Algoritmos e Estruturas de Dados I Aula 02: Ponteiros, estruturas e alocação de memória

O que é um algoritmo? O que é um programa? Algoritmos. Programas. Aula 1 Tipo Abstrato de Dados

Sérgio Luisir Díscola Junior

Capítulo1 Tensão Normal

O Plano. Equação Geral do Plano:

Disciplina: Unidade III: Prof.: Período:

A unidade de freqüência é chamada hertz e simbolizada por Hz: 1 Hz = 1 / s.

Programação de Computadores I. Linguagem C Função

1 Circuitos Pneumáticos

Processamento e Reprodução de Imagem com Arduíno 1

GUIA SOBRE A APLICAÇÃO DOS ASPECTOS LINGUÍSTICOS DA CARTILHA DE ADESÃO À AGENCE UNIVERSITAIRE DE LA FRANCOPHONIE

Tipo Abstrato de Dados

Árvores Parte 1. Aleardo Manacero Jr. DCCE/UNESP Grupo de Sistemas Paralelos e Distribuídos

OBJETIVO GERAL DA DISCIPLINA

GEOMETRIA. sólidos geométricos, regiões planas e contornos PRISMAS SÓLIDOS GEOMÉTRICOS REGIÕES PLANAS CONTORNOS

Instituto Federal Fluminense Campus Campos Centro Programa Tecnologia Comunicação Educação (PTCE)

Resolução da Lista de Exercício 6

Transcrição:

Estrutura de Dados (DPADF 0056) Aula 2 TADs Universidade Federal de Santa Maria Colégio Agrícola de Frederico Westphalen Curso Superior de Tecnologia em Sistemas para Internet Prof. Bruno B. Boniati www.cafw.ufsm.br/~bruno

Tipo de dado composto por valores de tipos simples

Tipos Estruturados Agrupam em uma mesma variável um conjunto de outras variáveis (de tipos simples ou compostos) que formam os campos da estrutura; Existe uma relação estrutural intrínseca entre seus valores; Em C, o tipo estrutura é chamado de struct

struct struct data { int dia; int mes; int ano; }; struct data d; d.dia = 19; d.mes = 3; d.ano = 2010;

Definição de novos tipos A maior parte das LP oferecem mecanismos para nomear ou renomear tipos de dados; Isso pode ser útil para abreviar nomes de tipos e tratar tipos complexos; Em C, a definição de um novo tipo é feita através do comando typedef

typedef typedef float Real; typedef int Inteiro; typedef unsigned int UInt; typedef float Vetor[4]; Vetor v; v[0] = 3; Inteiro i = 10;

typedef + struct struct data { int dia; int mes; int ano; }; typedef struct data Data; Data d; d.dia = 19; d.mes = 3; d.ano = 2010;

typedef + struct typedef struct data { int dia; int mes; int ano; } Data; Data d; d.dia = 19; d.mes = 3; d.ano = 2010;

Tipo Abstrato de Dado

TAD - Tipo Abstrato de Dado Importante técnica de programação baseada na definição de tipos estruturados; Especificam conceitualmente os dados (sua organização física e lógica); Definem operações para manipulação da estrutura; TAD(v,o) V = Conjunto de valores (dados) O = Conjunto de operações aplicáveis sobre os valores

TAD Tipo Abstrato de Dado (cont.) A ideia central é encapsular (esconder) de quem usa um determinado tipo e a forma concreta como ele foi implementado. O usuário (programador) utiliza o tipo de dado de forma abstrata, ou seja, baseado apenas nas funcionalidades oferecidas pelo tipo.

TAD Tipo Abstrato de Dado (cont.) Em geral representam tipos não previstos no núcleo das linguagens de programação; Consiste em: definir uma forma de armazenar os dados; e a definição de um conjunto adequado de operações para atuar sobre eles. Caracteriza-se pela separação entre conceito e implementação;

Ponto

Etapa 1 Definição Conceitual No plano cartesiano, cada PONTO está associado a um par ordenado, onde o primeiro e segundo elemento denotam respectivamente a abscissa (ou projeção do ponto no eixo horizontal) e a ordenada (ou projeção do ponto no eixo vertical). De que forma podemos armazenar um ponto? typedef struct ponto { int x; int y; } Ponto;

Etapa 2 Definição das Operações O que posso fazer com um ponto (exemplos): Definir (criar um ponto atribuindo um valor para as coordenadas x e y); Ponto criaponto(int x, int y); Medir a distância entre dois pontos; float distancia(ponto p1, Ponto p2); Responder a qual quadrante do plano um ponto faz parte; int quadrante(ponto p1);

Etapa 3 Implementação e Utilização Em linguagem C podemos implementar um TAD separando a interface da implementação. A interface é um arquivo.h que contém os cabeçalhos (headers) ou protótipos das operações (procedimentos ou funções) que atuam sobre o TAD; A implementação é um arquivo.c que implementa as operações descritas no arquivo.h A utilização de um TAD não exigirá necessariamente acesso ao código do arquivo.c, mas sim do arquivo.h

Interface... superfície de contato, de tradução, de articulação entre dois espaços, duas espécies, duas ordens de realidade diferentes Pierre Lévy int distancia(ponto p1, Ponto p2);

Para entender (considerando a linguagem C) Arquivo.h (com a definição de estruturas e protótipos de subrotinas) Arquivo.c (com a implementação das subrotinas) Compilação Arquivo.o Arquivo.c (com a utilização das subrotinas e uma função de nome main) Compilação Arquivo.o

Para entender (considerando a linguagem C) O arquivo.h (ex. ponto.h) contém apenas a declaração da estrutura (struct + typedef) e as interfaces das subrotinas; O arquivo.c (de mesmo nome do arquivo.h ) importa (include) o arquivo.h e implementa suas subrotinas; Esse arquivo é compilado e pode ser assim distribuído juntamente com o arquivo.h para ser linkado a um outro programa que utiliza do TAD (ex. prog_ponto.c)

Para entender (considerando a linguagem C) gcc -c ponto.c (Compila o TAD) gcc -c prog_ponto.c (Compila o programa que utiliza o TAD) gcc -O prog_ponto.exe ponto.o prog_ponto.o (Realiza a linkedição dos códigos objeto gerando um arquivo executável)

Exercícios para fixação

TAD - Ponto Especifique um TAD para representar um ponto do plano cartesiano. Implemente as seguintes operações: Criar/Inicializar um ponto; Retornar a distância entre dois pontos; Retornar o quadrante ao qual o ponto faz parte no plano cartesiano; Calcular o coeficiente angular de uma reta formada por dois pontos; Retornar o valor da abscissa de um ponto (x); Retornar o valor da ordenada de um ponto (y).

TAD - Data Especifique um TAD para representar uma data, para tanto, implemente as seguintes operações: Criar/Inicializar uma data (não permitindo valores inválidos); Verificar se um ano é ou não bissexto; Acrescentar um determinado número de dias a uma data; Escrever uma data por extenso (Ex. 16 de março de 2010);