Escolar Documentos
Profissional Documentos
Cultura Documentos
Portugal/2005
geral@centroatlantico.pt
www.centroatlantico.pt
/05
Marcas registadas: Todos os termos mencionados neste livro conhecidos como sendo marcas
registadas de produtos e servios foram apropriadamente capitalizados. A utilizao de um termo
neste livro no deve ser encarada como afectando a validade de alguma marca registada de produto ou servio.
O Editor e os Autores no se responsabilizam por possveis danos morais ou fsicos causados pelas instrues contidas no livro nem por endereos Internet que no correspondam s Home-Pages
pretendidas.
ndice
NDICE
9
3.4.2 Procedimentos............................................................................. 84
3.4.3 Parmetros de entrada e sada ................................................... 85
10
7.3 Grafos........................................................................................229
7.3.1 Tipos e caractersticas de um grafo........................................... 229
7.3.2 Representao de grafos .......................................................... 232
7.3.3 Algoritmos para travessia de um grafo ...................................... 235
NDICE
11
BIBLIOGRAFIA .........................................................................327
ndice de Figuras
14
Figura 5.13: Func. conceptual de uma fila dupla para as operaes de insero e eliminao .... 159
Figura 6.1: Estrutura de um Nodo de uma Lista ............................................................................. 170
Figura 6.2: Exemplo de uma lista linear simplesmente encadeada ................................................ 171
Figura 6.3: Estrutura de um nodo de uma lista linear duplamente encadeada............................... 172
Figura 6.4: Processo de obteno de um nodo da pilha de disponveis......................................... 173
Figura 6.5: Processo de eliminao de um nodo e sua devoluo pilha de disponveis ............. 174
Figura 6.6: Insero de um novo nodo no incio de uma LLSE. ..................................................... 175
Figura 6.7: Insero de um novo nodo no fim de uma LLSE. ......................................................... 176
Figura 6.8: Insero ordenada de um nodo. ................................................................................... 177
Figura 6.9: Eliminao de um nodo de uma lista e sua restituio pilha dos disponveis ........... 180
Figura 6.10: Representao grfica de uma lista linear circular simplesmente encadeada ........... 181
Figura 6.11: Lista circular vazia e com um nodo............................................................................. 182
Figura 6.12: Repres. grfica de uma lista linear simplesmente encadeada circular encabeada .. 182
Figura 6.13: Representao grfica de uma lista circular encabeada vazia................................. 183
Figura 6.14: Insero de um novo nodo no incio de uma LLSE circular encabeada. .................. 184
Figura 6.15: Insero de um novo nodo no fim de uma LLSE circular encabeada....................... 185
Figura 6.16: Insero ordenada numa LLSE circular encabeada. ................................................ 186
Figura 6.17: Estrutura dos nodos de uma lista duplamente encadeada......................................... 187
Figura 6.18: Exemplo de uma lista linear duplamente encadeada ................................................. 188
Figura 6.19: Pilha de disponveis para listas lineares duplamente encadeadas............................. 188
Figura 6.20: insero de um nodo esquerda de um nodo especificado ...................................... 189
Figura 6.21: Eliminao de um nodo de uma lista linear duplamente encadeada.......................... 191
Figura 6.22: Representao grfica de uma lista duplamente encadeada circular ........................ 193
Figura 6.23: Representao grfica de uma lista duplamente encadeada circular encabeada ... 194
Figura 6.24: Lista vazia ................................................................................................................... 194
Figura 6.25: Insero de um nodo no incio da lista........................................................................ 194
Figura 7.1: Exemplo de uma rvore ................................................................................................ 200
Figura 7.2: Exemplo de rvore m-ria e respectivo vocabulrio ..................................................... 202
Figura 7.3: Altura de uma rvore m-ria.......................................................................................... 202
Figura 7.4: rvore m-ria ordenada ................................................................................................ 203
Figura 7.5: Representao em grafo............................................................................................... 203
Figura 7.6: Representao atravs de um diagrama de Venn........................................................ 204
Figura 7.7: Representao atravs de parntesis imbricados ........................................................ 204
Figura 7.8: Representao em rvore de uma expresso matemtica .......................................... 204
Figura 7.9: Exemplo de uma rvore binria .................................................................................... 205
NDICE DE FIGURAS
15
16
NDICE DE FIGURAS
17
ndice de tabelas
Tabela 1.1: Enquadramento da algoritmia com outras disciplinas das cincias da computao......22
Tabela 1.2: Passos genricos de uma aproximao descendente (top-down) .................................30
Tabela 1.3: Especificao de uma tarefa numa aproximao descendente .....................................31
Tabela 1.4: Passos de uma aproximao descendente ....................................................................31
Tabela 1.5: Algoritmo (top-down) para o clculo do mximo divisor comum ....................................32
Tabela 2.1: Exemplos de dados alfanumricos com os respectivos comprimentos .........................51
Tabela 3.1: Regras para definio dos identificadores......................................................................69
Tabela 3.2: Descrio dos operadores lgicos usados na construo de expresses .....................74
Tabela 3.3:Principais smbolos utilizados na construo de fluxogramas.........................................86
Tabela 4.1: Tamanho do vector em cada repetio em que a parte considerada na pesquisa
dividida a metade.........................................................................................................134
Tabela 5.1: Repercusses das diferentes operaes numa pilha que armazena valores
alfanumricos (letras) ..................................................................................................144
Tabela 5.2: Repercusses das diferentes operaes numa fila que armazena valores
alfanumricos (letras) ..................................................................................................151
Tabela 8.1: Tipos de dados e a respectiva gama de valores ..........................................................252
Tabela 8.2: Operadores Aritmticos, Relacionais e Lgicos usados em C.....................................255
Tabela 8.3: Abreviao das expresses aritmticas em C..............................................................256
Tabela 8.4: Especificador de formato e respectivo tipo de argumento para a entrada de dados ...256
Tabela 8.5: Especificador e respectivo tipo de argumento para a sada de dados .........................258
Tabela 8.6: Associatividade do operador de atribuio ...................................................................259
Tabela 8.7: Alguns exemplos de Packages Java standard .............................................................302
1. Algoritmia e a Modelao de
Problemas
Este captulo tem por objectivo efectuar um enquadramento da disciplina de algoritmia no contexto
das cincias da computao. Mais concretamente,
visa apresentar as principais caractersticas de um
algoritmo, assim como a definio e modelao de
problemas do mundo real e respectivas representaes algortmicas. Pretende-se tambm apresentar
as diferentes notaes algortmicas existentes e
efectuar uma transio genrica para as linguagens
de programao.
20
al Khawarizmi
21
A cincia da computao pode ser interpretada como o conjunto de teorias, regras, prticas, mtodos e ferramentas que permitem a anlise, a
representao e a implementao de processos sistemticos que descrevem e transformam dados em informao. A cincia da computao
envolve um conjunto significativo de disciplinas (tabela 1.1) que estudam e utilizam algoritmos e respectivas estruturas de dados. Um programa de computador uma implementao (codificao) de um conjunto de algoritmos e respectivas estruturas de dados atravs de uma
determinada linguagem de programao.
A algoritmia uma disciplina basilar na rea das cincias da computao, e o seu entendimento poder ser muito relevante no desenvolvimento de competncias noutras reas do conhecimento.
22
Disciplina
Anlise de Sistemas
Sistemas de Informao
Engenharia de Software
Linguagens de Programao
Inteligncia Artificial
Tabela 1.1: Enquadramento da algoritmia com outras disciplinas das cincias da computao
23
24
Entrada de dados
Leitura de dados de entrada representativos de valores, quantidades, ou
atributos inicialmente especificados (por exemplo, atravs de instrues
de leitura). Uma entrada de dados define uma instncia do problema
para a qual o algoritmo dever dar uma resposta (sada de resultados).
essencial definir com preciso o mbito (ou espao de informao) de
entrada de dados para um determinado algoritmo.