Estruturas de Dados Aula 1: Introdução e conceitos básicos

Slides:



Advertisements
Apresentações semelhantes
Christiano Lima Santos
Advertisements

Estruturas de Dados Listas Prof. Rodrigo Rocha
Estruturas de Dados Pilha Prof. Rodrigo Rocha
TIPOS ABSTRATOS DE DADOS
Algoritmo e Programação
ESTRUTURA DE DADOS Professor: Marcelo Mendes Turma: MBI-1
Parte 1: Organização de Computadores
Organização de Computadores I
Denise Guliato Faculdade de Computação – UFU
Software Básico Silvio Fernandes Universidade Federal Rural do Semi-Árido Departamento de Ciências Ambientais Ciência da Computação Aula 06: Funções.
Introdução à Programação uma Abordagem Funcional Programação I Prof.ª Claudia Boeres CT VII - Sala 32 Departamento de Informática Centro.
Sílabo: Introdução à Ciência da Computação (SCC0121)
ESTRUTURAS DE DADOS Apresentação.
Conceitos e algoritmos
Profa. M.Sc. Yáskara Menescal
Software Básico Silvio Fernandes
Programação para Engenharia I
Algoritmos e Estrutura de Dados I
Introdução à Compilação Prof. Leandro Magno Slides adaptados a partir do material cedido pelos professores Heloise Manica Paris Teixeira, Yandre M. G.
Programação II Estruturas, uniões e enumerações
Ferramentas Programação
REPRESENTAÇÃO DE INSTRUÇÕES
Estruturas de Dados II Prof.: Sergio Pacheco Prof.: Sergio Pacheco 1 1.
Estruturas de Dados e Complexidade de Algoritmos
CAP-223 N. L. Vijaykumar (Vijay) Tel:
1 Laboratório de Programação de Computadores II 2º Semestre/2009 Prof. Mauro César Lopes.
Robson Godoi / Sandra Siebra
Revisão da Linguagem C.
INTRODUÇÃ A COMPUTAÇÃO ENG. CIVIL
Aula prática 12 Listas Encadeadas
Aula 01 BCC202 - Estrutura de Dados I Túlio Toffolo
Estrutura de dados, pseudocódigo
Software Básico Silvio Fernandes Universidade Federal Rural do Semi-Árido Departamento de Ciências Ambientais Ciência da Computação Aula 02: Introdução.
CADEIA DE CARACTERES (Strings)
Introdução a Linguagem de Programação C
PCI- Introdução à Computação
Introdução a Linguagens de Programação
Fábio de Oliveira Borges
Tipos de Dados Paradigmas de Programação
Algoritmos e Estruturas de Dados Apresentação do Curso Setembro/2005.
Faculdade de Informática e Tecnologia de Pernambuco ESTRUTURA DE DADOS
TÉCNICAS DE PROGRAMAÇÃO
Programação em C++ Compiladores
Estruturas de Dados Aula 9: Listas (parte 1)
Lógica Estruturada Aplicada
Estruturas de Dados Aula 11: TAD Pilha
Geração de Código aula-12-geração-de-código.pdf.
Software Básico Nível ISA Capítulo 5 Mitsuo Takaki
Estruturas de Dados Aula 8: Tipos Abstratos de Dados 30/04/2014.
Estruturas de Dados Aula 17: Estruturas Genéricas
Análise de Algoritmos1 Viviane Cristina Dias Fev/2003.
Estruturas de Dados Aula 15: Árvores
Organização e Arquitetura de Computadores
Algoritmos e estrutura de dados Prof. Luiz Gonzaga da Silveira Jr
Cin-UFPE String Matching
A maior parte dos programas de computador gera uma saída resultante de um processamento que é executado sobre dados que ele recebe como entrada. Em geral.
Programação de Computadores - 1
Tipos de Dados Todo o trabalho realizado por um computador é baseado na manipulação das informações contidas em sua memória. Estas informações podem.
SISTEMAS DE INFORMAÇÃO
INE5408 Estruturas de Dados Apresentação e Programa da Disciplina.
TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS LINGUAGEM DE PROGRAMAÇÃO I Aula /08/2011 Professor Leomir J. Borba-
Estruturas de Dados Murilo Salgado Razoli.
Tipos de Dados, Variáveis, Expressões Lógicas e Aritméticas
ARQUITETURA DE COMPUTADORES Nível do Conjunto de Instruções
INTRODUÇÃO THOBER CORADI DETOFENO, MSC. Aula 01 JOINVILLE 2015 Universidade do Estado de Santa Catarina – CCT/UDESC.
Linguagem de Programação
Engenharia de Controle e Automação Computação Para Engenharia Semana /08/2011 Professor Leomir J. Borba- –
TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS ESTRUTURAS DE DADOS AVANÇADAS Aula /08/2011 Professor Leomir J. Borba-
Estrutura de Dados Prof. André Cypriano M. Costa
Estruturas de Dados Aula 1: Introdução e conceitos básicos
Transcrição da apresentação:

Estruturas de Dados Aula 1: Introdução e conceitos básicos 02/04/2014 1

Referências Sítio: http://www.inf.ufes.br/~thomas Email: thomas@inf.ufes.br Material original: Profa. Patrícia Dockhorn Costa

Introdução O que são estruturas de dados (ED)? Benefícios? Organização da informação Melhora o desempenho Proporciona o reuso de código Proporciona interoperabilidade Diminui custos Necessidade de ED Ferramenta básica Projetos comerciais Projetos acadêmicos

Objetivos gerais Familiarizar os alunos com as principais estruturas de dados, e suas correspondentes abstrações. Habilidade do aluno de poder projetar e implementar diversas estruturas de dados, conhecendo suas vantagens e desvantagens

Background da turma

Programa da disciplina Introdução Tipos Abstratos de Dados Definição de estrutura abstrata Pré e pós condições Conceito de software em camadas Uso eficiente de memória Alocação estática e alocação dinâminca Estruturas de dados encadeadas Manipulação de ponteiros em C Listas Lista com alocação estática e alocação dinâmina Listas duplamente encadeadas Listas circulares e listas duplamente encadeadas circulares

Programa da disciplina (2) Pilhas Pilhas com estruturas estática e dinâminca Aplicações Filas Filas com estruturas estática e dinâminca Recursão Árvores Árvore binária Algoritmos de travessia Árvore binária de busca Árvore com Número Variável de filhos Árvore genérica Introdução a algoritmos de busca e ordenação Tabela Hash

Critérios de avaliação Duas provas parciais e trabalhos. A média parcial é calculada por: MP = 0,5*P + 0,5*T onde: P é a média aritmética das provas parciais e T é a média aritmética das notas dos trabalhos. A média final será: MF = MP, se MP ≥ 7,0. MF = (PF + MP)/2, se MP < 7,0. (PF é a nota da prova final) Se MF ≥ 5,0 -> Aprovado. Se MF < 5,0 -> Reprovado.

Bibliografia W. Celes, R. Cerqueira, J. L. Rangel. Introdução a Estruturas de Dados, Editora Campus Elsevier, 2004 ZIVIANI, Nivio Projetos de Algoritmos com Implementações em Pascal e C , Livraria Pioneira Informática , 1993 SEDGEWICK, Robert. Algorithms in C, Parts 1-4, Third Edition, Addison- Wesley, 1997 SZWARCFITER, Jayme e MARKENZON Lilian Estruturas de Dados e seus Algoritmos, 2a Edição, LTC - Livros Técnicos e Científicos S.A., 1997 CORMEN, Thomas H., LEISERSON, Charles E., RIVEST, Ronald L., STEIN, Cliff. Introduction to Algorithms (Second Edition), MIT Press, 2001 TENENBAUM, LANGSAM, and AUGENSTEIN, Estruturas de Dados usando C, Pearson, 2005 KNUTH, Donald E., The Art of Computer Programming, Volume I, Third Edition, Addison-Wesley, 1997

Modelo de um Computador

Armazenamento de Dados Organização da memória: Bits Menor unidade Valores 0 ou 1 Bytes Sequência de 8 bits Célula Sequência de bits Menor unidade de endereçamento Em geral = 1 byte Palavras Sequência de bytes Varia conforme arquitetura

Armazenamento de Dados Espaço de memória finito Ex., espaço de 1 byte (8 bits), podemos representar apenas 2^8 (=256) valores distintos Podemos representar texto Associando valores aos caracteres Ex., A = 6510 e B = 6610 = 010000012 Representar um programa na memória Programas são executados em linguagem de máquina Programas executáveis são sequências de instruções (códigos numéricos) 10110000 01100001 (MOV AL, 61h)

Compilação de Programas Compilação: “tradução” de código fonte (PC) para linguagem de máquina (M). Compilador (CM), escrito em M: lê o programa PC e traduz cada instrução para M, escrevendo o programa objeto (PM)

Ciclo de Desenvolvimento Programas em C geralmente são divididos em vários arquivos Cada arquivo pode ser compilado separadamente Para gerar um executável, precisamos reunir os os códigos dos arquivos separados (juntamente com as bibliotecas usadas) : Ligador Bibliotecas: permitem que funções de interesse geral sejam usadas por vários programas O ligador pode ser usado automaticamente pelo compilador (biblioteca padrão), ou deve ser explicitamente acionado

Ciclo de Desenvolvimento (cont.)

Tipos de Dados Definição Conjunto de valores (domínio) Possíveis operações Ex. int Domínio (conjunto dos números inteiros) Operações (soma, subtração, multiplicação, etc.) Ex. boolean Domínio booleano = {true, false} Operações: Conjunção (and), Disjunção (or), Negação (not)

Tipos de Dados (2) Tipos estruturados de dados Alguns tipos de dados possuem organização, estrutura interna Ex. Fração Sinal (+, -) Numerador Denominador (diferente de zero) Operações (soma, subtração, normalização, etc) Ex. Endereço Logradouro (praça, rua, etc) Número Bairro Cidade CEP País

Tipos de Dados (3) Podemos também definir o domínio de um tipo de dado usando apenas comportamento Não impõe uma estrutura interna fixa Usa operações para criar valores de um determinado tipo Define o tipo somente em termos de operações Ex. frações CRIA_FRACAO (N, D) VALOR_FRACAO = CRIA_FRACAO (N, D) Ex. endereço VALOR_ENDERECO = CRIA_ENDERECO () MODIFICA_LOGRADOURO (VALOR_ENDERECO, “Av. Fernando Ferrari”)

Exercício Defina os seguintes tipos de dados usando as duas abordagens apresentadas anteriormente (estrutura e comportamento) Tipo ponto (coordenadas plano bidimensional) Tipo reta Tipo polinômio (grau 2)