AEDS2
Luiz Chaimowicz e Raquel O. Prates
Livro “Projeto de Algoritmos”
Capítulo 1
© R. O. Prates – 2009-1
DCC/UFMG
O que é um algoritmo?
O que é um programa?
© R. O. Prates
DCC/UFMG
Algoritmos
• Sequência de ações executáveis para a solução de um determinado tipo de problema • Exemplo: “Receita de Bolo”
© R. O. Prates
DCC/UFMG
Programas
• Um programa é uma formulação concreta de um algoritmo abstrato, baseado em representações de dados específicas
• Os programas são feitos em alguma linguagem que pode ser entendida e seguida pelo computador
– Linguagem de máquina
– Linguagem de alto nível (uso de compilador)
• Aqui vamos utilizar a Linguagem C
© R. O. Prates
DCC/UFMG
Representação de Dados
Seleção do que representar
Seleção de como representar
Definição da estrutura de dados
Limitação de representação
© R. O. Prates
DCC/UFMG
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: 1278 + 321 = 1599
• Boa para números maiores (operação complexa)
© R. O. Prates
DCC/UFMG
Estrutura de Dados
• Estruturas de Dados
– Conjunto de dados que representa uma situação real
– Abstração da realidade
• Estruturas de Dados e Algoritmos estão intimamente ligados
© R. O. Prates
DCC/UFMG
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
– Usuário só “enxerga” a interface, não a implementação
© R. O. Prates
DCC/UFMG
Tipos Abstratos de Dados (TADs)
• Dessa forma, o usuário pode abstrair da
implementação