|

 |
Algoritmia e Estruturas de Dados -
Programação nas Linguagens C e Java Autores: José Braga de Vasconcelos, Vidal de
Carvalho
Nº Páginas: 328
ISBN: 989-615-012-5
Dep Legal: 232.222/05
Preço (papel):
22,20 Euros
Data da 1ª Edição: Set/2005
Colecção: Tecnologias
|
|
|
O mais completo e actualizado livro português sobre
algoritmos e estruturas de dados, lineares e não lineares, com
dezenas de exemplos em pseudocódigo e nas linguagens de programação
C e Java. Destinado quer a estudantes quer a profissionais do sector
das Tecnologias da Informação.
Este livro foi preparado e concebido para ser utilizado como objecto
de estudo em diferentes áreas de conhecimento, dado que apresenta a
disciplina de algoritmia como requisito fundamental à resolução de
problemas do mundo real. Contudo, tem especial interesse para
docentes, alunos e formandos nas áreas das ciências da computação,
nomeadamente sistemas de informação, matemáticas aplicadas e cursos
de engenharia.
Este livro procura dotar futuros profissionais com as componentes de
raciocínio e abstracção necessárias à resolução de problemas.
Explora a análise e as técnicas essenciais à concepção de algoritmos
e à especificação formal de estruturas de dados lineares e não
lineares. Neste sentido, os autores introduzem uma componente
prática baseada na apresentação de um conjunto alargado de
algoritmos resolvidos. A implementação dos algoritmos é efectuada
através das linguagens de programação C e Java, também apresentadas
neste livro. |
ÍNDICE DE FIGURAS
ÍNDICE DE TABELAS
1. ALGORITMIA E A MODELAÇÃO DE PROBLEMAS |
| |
1.1 A noção formal de algoritmo
1.2 A Algoritmia como Ciência da Computação
1.3 Algoritmos, computadores e programação
1.4 Características de um Algoritmo
1.5 Modelação algorítmica e a resolução de problemas
1.5.1 A Algoritmia e a Engenharia de Software
1.5.2 Aproximação descendente
1.6 Componentes de um algoritmo
1.7 Linguagens de representação algorítmica
1.7.1 Linguagem natural
1.7.2 Pseudocódigo
1.7.3 Notação gráfica
1.8 Métodos de concepção algorítmica
1.8.1 Método iterativo
1.8.2 Método recursivo
1.8.3 Iteração vs recursão
1.9 Análise da complexidade algorítmica
1.9.1 Objectivos da análise algorítmica
1.9.2 Métodos de avaliação algorítmica
1.9.3 Avaliação da complexidade de um algoritmo |
|
2. TIPOS E ESTRUTURAS DE DADOS |
| |
2.1 Estruturas de Dados
2.2 Tipos de dados e estruturas de dados
2.2.1 Tipo de dados booleano
2.2.2 Tipo de dados numérico
2.2.3 Tipo de dados alfanumérico
2.2.4 Ponteiros
2.3 Representação dos dados em memória
2.3.1 Representação Simbólica
2.3.2 Representação Numérica
2.3.3 Informação Contextual
2.4 Estruturas de dados complexas
2.4.1 Vectores
2.4.2 Matrizes
2.5 Conjuntos e Dicionários
2.6 Tipos de Dados Abstractos |
|
3. REPRESENTAÇÃO E NOTAÇÃO ALGORÍTMICA |
| |
3.1 Pseudocódigo e programação estruturada
3.1.1 Desenvolvimento de um algoritmo
3.2 Notação algorítmica
3.2.1 Identificadores
3.2.2 Variáveis
3.2.3 Constantes
3.2.4 Instrução de atribuição
3.2.5 Leitura e escrita de dados
3.2.6 Operações e Expressões Aritméticas
3.2.7 Operadores e operações relacionais
3.2.8 Operadores e operações lógicas
3.2.9 Finalização do Algoritmo
3.3 Estruturas Lógicas de um Algoritmo
3.3.1 Estrutura sequencial
3.3.2 Estrutura condicional
3.3.3 Estruturas de repetição
3.4 Modularização - Definição de subalgoritmos
3.4.1 Funções
3.4.2 Procedimentos
3.4.3 Parâmetros de entrada e saída
3.5 Notação Gráfica (Fluxogramas)
3.5.1 Fluxogramas vs. Estruturas de controlo
3.6 Prova e Teste de Algoritmos
3.7 Algoritmos propostos |
|
4. ORDENAÇÃO E PESQUISA |
| |
4.1 Ordenação
4.1.1 Ordenação Bubble sort
4.1.2 Ordenação Quick Sort
4.1.3 Ordenação Selection Sort
4.1.4 Ordenação insertion Sort
4.1.5 Análise comparativa de desempenho
4.2 Pesquisa
4.2.1 Pesquisa Sequencial (linear)
4.2.2 Pesquisa Binária
4.2.3 Análise comparativa de desempenho
4.3 Algoritmos propostos |
|
5. PILHAS E FILAS |
| |
5.1 Pilhas
5.1.1 Campos de aplicação das pilhas
5.1.2 Implementação da pilha com vector
5.1.3 Operações básicas das pilhas
5.2 Filas
5.2.1 Campos de aplicação das filas
5.2.2 Implementação de fila com vector
5.2.3 Operações básicas das filas
5.2.4 Fila circular
5.2.5 Fila dupla
5.3 Algoritmos propostos |
|
6. REPRESENTAÇÃO ENCADEADA DE ESTRUTURAS DE DADOS
LINEARES |
| |
6.1 Estruturas de dados encadeadas
6.1.1 Tipos de listas
6.1.2 Variáveis ponteiro
6.1.3 Pilha de nodos disponíveis
6.2 Listas lineares simplesmente encadeadas
6.3 Listas lineares circulares simplesmente encadeadas
6.4 Listas lineares duplamente encadeadas
6.5 Listas lineares duplamente encadeadas circulares
6.6 Algoritmos propostos |
|
7. ESTRUTURAS DE DADOS NÃO LINEARES |
| |
7.1 Árvores e Grafos
7.1.1 Definição recursiva de árvore
7.1.2 Notação, terminologia e propriedades
7.1.3 Formas de representação de árvores M-árias
7.2 Árvores Binárias
7.2.1 Definição e características
7.2.3 Representação encadeada de árvores binárias
7.2.4 Travessia de árvores binárias
7.2.5 Travessia com Algoritmos iterativos
7.2.6 Travessia com Algoritmos recursivos
7.2.7 Inserção ordenada
7.2.8 Árvores binárias de pesquisa
7.3 Grafos
7.3.1 Tipos e características de um grafo
7.3.2 Representação de grafos
7.3.3 Algoritmos para travessia de um grafo
7.4 Algoritmos propostos |
|
8. ALGORITMIA E PROGRAMAÇÃO |
| |
8.1 Estruturas de dados, algoritmos e programação
8.2 Linguagem de Programação C
8.2.1 Características da Linguagem C
8.2.2 Estrutura de um programa em C
8.2.3 Tipos primitivos de dados
8.2.4 Constantes
8.2.5 Variáveis
8.2.6 Expressões
8.2.7 Comandos básicos
8.2.8 Estruturas de controlo
8.2.9 Matrizes (arrays)
8.2.10 Cadeias de caracteres (strings)
8.2.11 Ponteiros e endereços
8.2.12 Subalgoritmos
8.2.13 Estruturas
8.2.14 Algoritmos de ordenação em C
8.2.15 Algoritmos de pesquisa em C
8.2.16 Algoritmos de manipulação de pilhas em C
8.2.17 Algoritmos de manipulação de filas em C
8.2.18 Algoritmos de manipulação de listas em C
8.2.19 Outros Algoritmos
8.3 Linguagem de Programação JAVA
8.3.1 JAVA Virtual MACHINE
8.3.2 JAVA: Linguagem orientada aos objectos
8.3.3 Estrutura de um programa JAVA
8.3.4 Exemplos de codificação e implementação de classes JAVA
8.3.5 Especificação de tipos
BIBLIOGRAFIA |
|
|
José Braga de Vasconcelos é doutorado em Ciências da
Computação pela Universidade de York (UK). Após o doutoramento
produziu e apresentou diversas publicações em conferências e
revistas científicas na área de Gestão de Conhecimento
Organizacional. Actualmente é Professor Associado na Faculdade de
Ciência e Tecnologia da Universidade Fernando Pessoa, e membro
fundador do Grupo de Investigação e Desenvolvimento (I&D) em
Informática Médica (GIMED). Prestou também consultoria em Sistemas
de Informação e Engenharia de Software em empresas. Ultimamente,
além da sua área de investigação em Gestão e Modelação de
Competências Organizacionais, tem vindo a exercer I&D na área de
Sistemas de Informação para a Saúde. João Vidal de Carvalho
é mestre em Informática de Gestão pela Escola de Engenharia da
Universidade do Minho. Eq. Prof. Adjunto no Instituto Politécnico do
Porto (ISCAP), onde lecciona desde 1998. Responsável pelas
disciplinas da área de Informática para a Gestão. Actualmente
desenvolve investigação na área de Sistemas de Informação. É
co-autor dos livros Desenho e
Implementação de Bases de Dados com Microsoft Access e Microsoft
Access 2003 igualmente editados pelo Centro Atlântico.
|
'Algoritmia e Estruturas de Dados'
é um livro bem conseguido, escrito por
dois professores experientes em diversas áreas das ciências da
computação.
Este livro poderá servir tanto para entrar no mundo da
algoritmia, como de referência para trabalhos futuros.
revista Programar - Novembro de 2006
|
|
|
|
|
|
|