JOAO PAVAO MARTINS / MARIA DOS REMEDIOS CRAVO
Informática
ISBN: 9789728469320
Editora: IST PRESS
Ano/Mês: 2007/12
N.º de Páginas: 534
"O livro está muito bem redigido, é de leitura agradável, tem um bom ritmo de introdução das matérias e uma boa cobertura de conceitos. Há a preocupação de apresentar os assuntos com precisão mas sem excessivo formalismo. (...) É um texto de qualidade para o ensino da programação com base no paradigma funcional, que pode também ser útil a um programador que desconheça este paradigma ou a linguagem Scheme."Luís MonteiroProfessor Catedrático da Faculdade de Ciências e TecnologiaUniversidade Nova de LisboaÍNDICEPREFÁCIO xv1 NOÇÕES BÁSICAS 11.1 Algoritmos 51.2 O Desenvolvimento de Programas 81.3 Programas em Scheme 111.3.1 Sintaxe e semântica 131.3.2 Construção de formas 151.4 Expressões 161.4.1 Constantes 161.4.2 Combinações 181.5 Avaliação de Expressões - Primeira Abordagem 231.6 Nomes 311.7 Formas Especiais 341.8 Resumo 351.8.1 Conceitos apresentados 361.8.2 Primitivas apresentadas 371.9 Exercícios 372 PROCEDIMENTOS COMPOSTOS 392.1 A Definição e Utilização de Procedimentos 412.1.1 Definição de procedimentos em Scheme 432.1.2 Aplicação de procedimentos em Scheme 442.1.3 Nomeação de procedimentos 452.1.4 Procedimentos e abstracção 462.2 Avaliação de Expressões - Segunda Abordagem 482.3 Expressões Condicionais 502.4 Exemplos 552.4.1 Cálculo de potências 552.4.2 Cálculo do máximo divisor comum 572.4.3 Cálculo do arco de tangente 602.5 Nomes Locais 642.6 Estrutura de Blocos 702.6.1 Nomes globais, livres e locais 772.7 Resumo 802.7.1 Conceitos apresentados 802.7.2 Primitivas apresentadas 802.8 Exercícios 813 PROCESSOS GERADOS POR PROCEDIMENTOS 873.1 Recursão Linear 893.1.1 Cálculo de potências 903.1.2 Cálculo de factoriais 913.1.3 Cálculo da divisão inteira 923.1.4 Caracterização de um processo recursivo linear 933.2 Iteração Linear 943.2.1 Cálculo de potências 943.2.2 Cálculo de factoriais 963.2.3 Cálculo da divisão inteira 973.2.4 Caracterização de um processo iterativo linear 983.3 Recursão em Processos e em Procedimentos 993.4 Recursão em Árvore 993.4.1 Os números de Fibonacci 993.4.2 A Torre de Hanói 1053.5 Sequenciação 1093.6 Ordens de Crescimento 1103.6.1 Potência rápida 1143.7 Resumo 1153.7.1 Conceitos apresentados 1153.7.2 Primitivas apresentadas 1153.8 Exercícios 1154 PROCEDIMENTOS DE ORDEM SUPERIOR 1194.1 Procedimentos Como Parâmetros 1224.1.1 Procedimentos como métodos gerais 1274.2 Procedimentos Produzidos Por Procedimentos 1304.2.1 Cálculo de derivadas 1304.2.2 Raízes pelo método de Newton 1324.3 Resumo 1344.3.1 Conceitos apresentados 1354.4 Exercícios 1355 ABSTRACÇÃO DE DADOS 1395.1 Aritmética dos Números Complexos 1435.1.1 Complexos como procedimentos 1465.1.2 Essência da abstracção de dados 1485.1.3 O tipo par 1495.1.4 Complexos como pares 1545.2 Tipos Abstractos de Informação 1555.2.1 Identificação das operações básicas 1565.2.2 Axiomatização 1585.2.3 Escolha da representação 1585.2.4 Realização das operações básicas 1585.2.5 Barreiras de abstracção 1615.3 A Lista Como Tipo Abstracto 1645.3.1 Listas simplificadas 1655.3.2 Exemplos de utilização de listas 1715.3.3 Listas completas 1745.4 Funcionais Sobre Listas 1795.5 A Árvore Como Tipo Abstracto 1815.5.1 Operações básicas para árvores 1835.5.2 Axiomatização 1855.5.3 Representação de árvores 1865.5.4 Realização das operações básicas sobre árvores 1865.6 Ordenação Por árvore 1895.7 Número Arbitrário de Argumentos 1935.8 O Tipo Símbolo 1955.9 Resumo 1985.9.1 Conceitos apresentados 1985.9.2 Primitivas apresentadas 1995.10 Exercícios 1996 O DESENVOLVIMENTO DE PROGRAMAS 2096.1 A Análise do Problema 2136.2 O Desenvolvimento da Solução 2146.3 A Programação da Solução 2166.3.1 A depuração 2176.3.2 A finalização da documentação 2196.4 A Fase de Testes 2216.5 A Manutenção 2236.6 Sumário 2246.6.1 Conceitos apresentados 2256.7 Exercícios 2257 PROGRAMAÇÃO IMPERATIVA 2277.1 Operador de Atribuição 2307.2 O Tipo Caixa 2337.3 Caixas Face a Variáveis 2367.4 Métodos de Passagem de Parâmetros 2367.4.1 Passagem por valor 2377.4.2 Passagem por referência 2377.5 Ordem de Execução de Instruções 2397.6 Procedimentos Com Estado Interno 2407.7 O Tipo Vector 2427.8 Aplicações de Vectores 2447.8.1 Procura 2447.8.2 Ordenação 2467.9 Resumo 2507.9.1 Conceitos apresentados 2517.9.2 Primitivas apresentadas 2527.10 Exercícios 2528 AVALIAÇÃO BASEADA EM AMBIENTES 2578.1 A Noção de Ambiente 2598.2 Criação de Procedimentos 2638.3 Aplicação de Procedimentos 2648.3.1 Avaliação de procedimentos simples 2658.3.2 Avaliação com variáveis locais 2708.3.3 Avaliação com definições internas 2748.4 Mecanismo de Avaliação 2808.5 Resumo 2828.5.1 Conceitos apresentados 2828.6 Exercícios 2839 ESTRUTURAS MUTÁVEIS 2859.1 Filas 2879.1.1 Operações básicas para filas 2879.1.2 Axiomatização 2909.1.3 Representação de filas como listas 2909.1.4 Realização das operações básicas 2919.1.5 Problemas com a representação escolhida 2939.1.6 Modificadores para pares 2949.1.7 Filas com indicação do início e do fim 2959.2 Pilhas 3019.2.1 Operações básicas para pilhas 3019.2.2 Axiomatização 3049.2.3 Representação de pilhas 3049.2.4 Realização das operaçoes básicas sobre pilhas 3059.2.5 Utilização de pilhas 3079.3 Ponteiros 3109.4 Gestão de Memória 3149.5 Resumo 3159.5.1 Conceitos apresentados 3169.5.2 Primitivas apresentadas 3169.6 Exercícios 31610 PROGRAMAÇÃO COM OBJECTOS 32110.1 O Conceito de Objecto 32910.2 Classes e Instãncias 33010.2.1 Identidade e igualdade 33110.3 Classes, Subclasses e Herança 33310.4 Herança Múltipla 33910.5 Pilhas Como Objectos 34210.6 Resumo 34510.6.1 Conceitos apresentados 34510.6.2 Primitivas apresentadas 34510.7 Exercícios 34611 EPÍLOGO 34911.1 Programas 35211.1.1 Algoritmos 35211.1.2 Linguagens 35411.1.3 Construção de abstracções 35711.2 Programação 36011.2.1 Arquitectura de programas 36011.2.2 Paradigmas de programação 36111.2.3 Técnicas usadas em programação 36511.2.4 Sistemas operativos 36911.3 Notas Finais 371A MANUAL DE SOBREVIVÊNCIA EM SCHEME 373A.1 Obtenção do Scheme 375A.2 Janelas e Menus 376A.2.1 Janela de interacção 378A.2.2 Janela de definições 379A.2.3 Ligação entre as janelas 380A.3 Auxílio na Depuração 380A.3.1 Detecção da origem de erros 380A.3.2 Rastreio de procedimentos 382A.3.3 Interrupção da execução 385A.4 Avaliação Por Passos 385A.5 Informação de Ajuda 387B ESTUDO DE UM CASO 389B.1 Análise do Problema 391B.1.1 O conceito de polinómio 391B.1.2 Polinómios reduzidos 392B.1.3 Operações a realizar 393B.1.4 Planeamento do projecto 394B.2 Desenvolvimento da Solução 395B.2.1 Tipos abstractos de informação 395B.2.2 Algoritmos 402B.3 Programação da Solução 411B.3.1 Representação interna dos tipos 411B.3.2 Programa 412B.4 Manual do Utilizador 441B.4.1 Carregamento 441B.4.2 Comandos disponíveis 442B.4.3 Exemplo de interacção 443B.4.4 Limitações 443B.5 Testes 444B.5.1 Testes de módulos 444B.5.2 Testes para operações 447C SOLUÇOES DE EXERCÍCIOS SELECCIONADOS 451C.1 Exercícios do Capítulo 1 453C.2 Exercícios do Capítulo 2 453C.3 Exercícios do Capítulo 3 455C.4 Exercícios do Capítulo 4 457C.5 Exercícios do Capítulo 5 459C.6 Exercícios do Capítulo 7 464C.7 Exercícios do Capítulo 9 479D EXEMPLOS DE PROJECTOS 487D.1 Manipulação de Figuras Geométricas 489D.1.1 Principais objectivos 489D.1.2 Tipos a implementar 489D.1.3 Duas representações para as figuras 496D.1.4 Organização do código do projecto 497D.1.5 Relatório 497D.1.6 Trabalho a desenvolver 498D.1.7 Código disponibilizado 499D.2 Robot Explorador 502D.2.1 Descrição do problema 502D.2.2 Características do ambiente 502D.2.3 Capacidades do robot 504D.2.4 Tipos a implementar 505D.2.5 Campeonato de robots 509D.2.6 Relatório 510D.2.7 Trabalho a desenvolver 510D.3 Bases de Dados Dedutivas 510D.3.1 Projecto 512D.3.2 Passos a seguir 514D.3.3 Interrogações com variáveis 515D.3.4 Dados para teste do programa 520REFERÊNCIAS BIBLIOGRÁFICAS 521ÍNDICE REMISSIVO 527
Livros da mesma categoria que lhe podem interessar.