ÍNDICE. PREFÁCIO xv. 3 PROCESSOS GERADOS POR PROCEDIMENTOS Recursão Linear Cálculo de potências Cálculo de factoriais 91

Documentos relacionados
Lista de Figuras Figura 1 1: Figura 1 2: Figura 1 3: Figura 1 4: Figura 1 5: Figura 1 6: Figura 1 7: Figura 2 1: Figura 2 2: Figura 2 3: Figura 2 4:

ao paradigma imperativo

Anual Obrigatória X Semestral X Opcional. Regime Diurno Nocturno Horas/semana T Teórica 2 Ano 1 1 T/P Teórico/Prática 4 Semestre 1 1 P- Prática

Sumário. Capítulo 1 Introdução 29. Capítulo 2 Utilizando Objetos 59

1 Elementos Básicos da Linguagem C Parte 1: Revisão da Linguagem C

Trabalho de Linguagens Formais e Compilação

Fundamentos de Programação

PLANIFICAÇÃO ANUAL. 1. Introdução à Programação e Algoritmia. Tempos letivos previstos (45) Período escolar

I LINGUAGENS E PROCESSADORES: INTRODUÇÃO 1

Introdução à Programação

Fundamentos da Programação

Fundamentos da Programação

PLANO DE UNIDADE DIDÁTICA- PUD

Tipo de argumentos. valor. argumentos

Curso Profissional de Técnico de Informática - Sistemas

# Estrutura de Dados # Aula 08 Recursão (conceito, utilização, exemplos) Prof. Leinylson Fontinele Pereira

DOSSIER DA DISCIPLINA

Computadores e Programação

ÍNDICE GERAL PARTE I PROGRAMAÇÃO PROCEDIMENTAL INTRODUÇÃO 3 2 VISÕES (I 39 OBJETIVOS... 39

UNIVERSIDADE LUSÍADA DE LISBOA. Programa da Unidade Curricular INTRODUÇÃO AOS ALGORITMOS E ESTRUTURAS DE DADOS Ano Lectivo 2016/2017

Computação e Programação

Prof. A. G. Silva. 25 de setembro de Prof. A. G. Silva INE5603 Introdução à POO 25 de setembro de / 35

PLANIFICAÇÃO

CURSO PROFISSIONAL Técnico de Gestão e Programação de Sistemas Informáticos

MÓDULO 8 INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA POR OBJETOS O QUE É A PROGRAMAÇÃO ORIENTADA POR OBJETOS 10

Algoritmos e Modelação Computacional. Paulo Mateus MEBiom LMAC 2018

Recursividade. Objetivos do módulo. O que é recursividade

Programação imperativa

Introdução Linguagem C. UDESC - Prof. Juliano Maia 1

1 REPRESENTAÇÃO DIGITAL DE INFORMAÇÃO Bases de Numeração Representação de Números em Base 2 5

Compilador de LP3 para C3E e P3

Exercícios para Fundamentos da Programação Utilizando Múltiplos Paradigmas

UNIVERSIDADE LUSÍADA DE LISBOA. Programa da Unidade Curricular INTRODUÇÃO AOS ALGORITMOS E ESTRUTURAS DE DADOS Ano Lectivo 2014/2015

FCA - Editora de Informática xv

No final deste curso, saberás criar programas através da linguagem de programação Java.

Sintática: como é escrito cada elemento da linguagem de programação.

Fundamentos de Programação

Allen B. Downey. Novatec

Fundamentos de Programação

Engenharia de resolução de problemas

Linguagem Haskell. Universidade Estadual Santa Cruz Conceitos de Linguagens de Programação. Tiago Carneiro 19 Agosto 2013

Fundamentos da Programação de Computadores

Recursão David Déharbe

Universidade Federal do ABC Programação Estruturada Fabrício Olivetti França Lista de Exercícios 02

Programação de Computadores

INE5384 Estruturas de Dados. Sumário

Introdução a Algoritmos Parte 08

Plano de Aula - Lógica de Programação - cód Horas/Aula

Introdução à Programação. João Manuel R. S. Tavares

Planificação Anual da disciplina de Programação e Sistemas de Informação 10º 1PI

Figura 3.1: Fluxograma do algoritmo da Programação Genética.

Implementação de Linguagens

Linguagens de Programação

Programação em VB.Net 4.0 com Mobile Apps

Fundamentos de Programação

Fundamentos de Programação

Programação de Computadores

Plano de Ensino. Ementa

Ferramenta para Desenvolvimentode Sistemas EmbarcadosUtilizando Linguagem de Alto Nível p.1/25

2.1 Circuitos electrónicos analógicos Circuitos electrónicos digitais...29

Recursividade. Métodos iterativos. Prof. Cesar Augusto Tacla. Métodos iterativos utilizam estruturas de repetição

Introdução Capítulo 1: Um Olhar sobre as Funcionalidades e Interface do Microsoft Excel

Resolução Exe 2.12 Monolítico Recursivo

PROGRAMAÇÃO E ALGORITMOS (LEI) Universidade da Beira Interior, Departamento de Informática Hugo Pedro Proença, 2016/2017

Linguagem Haskell. Riocemar S. de Santana

Modelo de plano analitico

1 Elementos Básicos da Linguagem C 19

Linguagem de Programação I. Aula 10 Funções

Programação I Apresentação

Fundamentos de Programação

Introdução à Programação em C (I)

SUBGERÊNCIA DE GESTÃO EDUCACIONAL PLANO DE CURSO

Fundamentos de programação

UNIVERSIDADE LUSÍADA DE LISBOA. Programa da Unidade Curricular INTRODUÇÃO À PROGRAMAÇÃO Ano Lectivo 2017/2018

Algoritmos. Algoritmos e Linguagem de Programação - Prof Carlos Vetorazzi

Estrutura de Dados e Arquivos Ementa Objetivo Geral Conteúdo Avaliação

Programação Estruturada Orientada a Objetos

Cronograma de Aulas - Mococa 1º Módulo 23/05/2009 a 27/06/2009

CAP. VI ANÁLISE SEMÂNTICA

Estrutura de Dados Conceitos Iniciais

PROCURA E PLANEAMENTO

Fundamentos de Programação

ALGORITMOS E ESTRUTURA DE DADOS

PROCURA E PLANEAMENTO

Apresentação. !! Familiarização com os métodos de construção de compiladores de linguagens e com as técnicas de compilação mais habituais.

Paradigmas de Linguagem de Programação. Paradigma Imperativo

Prof. Jorge Cavalcanti

TECNOLOGIA EM REDES DE COMPUTADORES. computadores. Aula 4

LÓGICA DE PROGRAMAÇÃO. PROFª. M.Sc. JULIANA H Q BENACCHIO

EXAME DE CONCESSÃO DE BOLSAS - BOLSÃO 2017

Programação de Conteúdos de Matemática SPE Ensino Médio REGULAR 2013

Funções são blocos de código que podem ser nomeados e chamados de dentro de um programa.

Programação de Computadores

Sumário. Computador. Processador. Computador Noção de algoritmo Linguagem de programação Léxico, sintaxe e semântica Gramáticas Fluxogramas

Lógica de Programação Teoria. rogerioaraujo.wordpress.com - 1

Ana Paula Rocha José Magalhães Cruz Rui Camacho. 26 de Fevereiro de 2009

Conceitos de Linguagens de Programação - Características. Paavo Soeiro

2. Classes, Objectos, Herança e Polimorfismo

Transcrição:

ÍNDICE PREFÁCIO xv 1 NOÇÕES BÁSICAS 1 1.1 Algoritmos 5 1.2 O Desenvolvimento de Programas 8 1.3 Programas em Scheme 11 1.3.1 Sintaxe e semântica 13 1.3.2 Construção de formas 15 1.4 Expressões 16 1.4.1 Constantes 16 1.4.2 Combinações 18 1.5 Avaliação de Expressões - Primeira Abordagem 23 1.6 Nomes 31 1.7 Formas Especiais 34 1.8 Resumo 35 1.8.1 Conceitos apresentados 36 1.8.2 Primitivas apresentadas 37 1.9 Exercícios 37 2 PROCEDIMENTOS COMPOSTOS 39 2.1 A Definição e Utilização de Procedimentos 41 2.1.1 Definição de procedimentos em Scheme 43 2.1.2 Aplicação de procedimentos em Scheme 44 2.1.3 Nomeação de procedimentos 45 2.1.4 Procedimentos e abstracção 46 2.2 Avaliação de Expressões - Segunda Abordagem 48 2.3 Expressões Condicionais 50 2.4 Exemplos 55 2.4.1 Cálculo de potências 55 2.4.2 Cálculo do máximo divisor comum 57 2.4.3 Cálculo do arco de tangente 60 2.5 Nomes Locais 64 2.6 Estrutura de Blocos 70 2.6.1 Nomes globais, livres e locais 77 2.7 Resumo 80 2.7.1 Conceitos apresentados 80 2.7.2 Primitivas apresentadas 80 2.8 Exercícios 81 3 PROCESSOS GERADOS POR PROCEDIMENTOS 87 3.1 Recursão Linear 89 3.1.1 Cálculo de potências 90 3.1.2 Cálculo de factoriais 91

3.1.3 Cálculo da divisão inteira 92 3.1.4 Caracterização de um processo recursivo linear 93 3.2 Iteração Linear 94 3.2.1 Cálculo de potências 94 3.2.2 Cálculo de factoriais 96 3.2.3 Cálculo da divisão inteira 97 3.2.4 Caracterização de um processo iterativo linear 98 3.3 Recursão em Processos e em Procedimentos 99 3.4 Recursão em Árvore 99 3.4.1 Os números de Fibonacci 99 3.4.2 A Torre de Hanói 105 3.5 Sequenciação 109 3.6 Ordens de Crescimento 110 3.6.1 Potência rápida 114 3.7 Resumo 115 3.7.1 Conceitos apresentados 115 3.7.2 Primitivas apresentadas 115 3.8 Exercícios 115 4 PROCEDIMENTOS DE ORDEM SUPERIOR 119 4.1 Procedimentos Como Parâmetros 122 4.1.1 Procedimentos como métodos gerais 127 4.2 Procedimentos Produzidos Por Procedimentos 130 4.2.1 Cálculo de derivadas 130 4.2.2 Raízes pelo método de Newton 132 4.3 Resumo 134 4.3.1 Conceitos apresentados 135 4.4 Exercícios 135 5 ABSTRACÇÃO DE DADOS 139 5.1 Aritmética dos Números Complexos 143 5.1.1 Complexos como procedimentos 146 5.1.2 Essência da abstracção de dados 148 5.1.3 O tipo par 149 5.1.4 Complexos como pares 154 5.2 Tipos Abstractos de Informação 155 5.2.1 Identificação das operações básicas 156 5.2.2 Axiomatização 158 5.2.3 Escolha da representação 158 5.2.4 Realização das operações básicas 158 5.2.5 Barreiras de abstracção 161 5.3 A Lista Como Tipo Abstracto 164 5.3.1 Listas simplificadas 165 5.3.2 Exemplos de utilização de listas 171 5.3.3 Listas completas 174

5.4 Funcionais Sobre Listas 179 5.5 A Árvore Como Tipo Abstracto 181 5.5.1 Operações básicas para árvores 183 5.5.2 Axiomatização 185 5.5.3 Representação de árvores 186 5.5.4 Realização das operações básicas sobre árvores 186 5.6 Ordenação Por árvore 189 5.7 Número Arbitrário de Argumentos 193 5.8 O Tipo Símbolo 195 5.9 Resumo 198 5.9.1 Conceitos apresentados 198 5.9.2 Primitivas apresentadas 199 5.10 Exercícios 199 6 O DESENVOLVIMENTO DE PROGRAMAS 209 6.1 A Análise do Problema 213 6.2 O Desenvolvimento da Solução 214 6.3 A Programação da Solução 216 6.3.1 A depuração 217 6.3.2 A finalização da documentação 219 6.4 A Fase de Testes 221 6.5 A Manutenção 223 6.6 Sumário 224 6.6.1 Conceitos apresentados 225 6.7 Exercícios 225 7 PROGRAMAÇÃO IMPERATIVA 227 7.1 Operador de Atribuição 230 7.2 O Tipo Caixa 233 7.3 Caixas Face a Variáveis 236 7.4 Métodos de Passagem de Parâmetros 236 7.4.1 Passagem por valor 237 7.4.2 Passagem por referência 237 7.5 Ordem de Execução de Instruções 239 7.6 Procedimentos Com Estado Interno 240 7.7 O Tipo Vector 242 7.8 Aplicações de Vectores 244 7.8.1 Procura 244 7.8.2 Ordenação 246 7.9 Resumo 250 7.9.1 Conceitos apresentados 251 7.9.2 Primitivas apresentadas 252 7.10 Exercícios 252 8 AVALIAÇÃO BASEADA EM AMBIENTES 257

8.1 A Noção de Ambiente 259 8.2 Criação de Procedimentos 263 8.3 Aplicação de Procedimentos 264 8.3.1 Avaliação de procedimentos simples 265 8.3.2 Avaliação com variáveis locais 270 8.3.3 Avaliação com definições internas 274 8.4 Mecanismo de Avaliação 280 8.5 Resumo 282 8.5.1 Conceitos apresentados 282 8.6 Exercícios 283 9 ESTRUTURAS MUTÁVEIS 285 9.1 Filas 287 9.1.1 Operações básicas para filas 287 9.1.2 Axiomatização 290 9.1.3 Representação de filas como listas 290 9.1.4 Realização das operações básicas 291 9.1.5 Problemas com a representação escolhida 293 9.1.6 Modificadores para pares 294 9.1.7 Filas com indicação do início e do fim 295 9.2 Pilhas 301 9.2.1 Operações básicas para pilhas 301 9.2.2 Axiomatização 304 9.2.3 Representação de pilhas 304 9.2.4 Realização das operaçoes básicas sobre pilhas 305 9.2.5 Utilização de pilhas 307 9.3 Ponteiros 310 9.4 Gestão de Memória 314 9.5 Resumo 315 9.5.1 Conceitos apresentados 316 9.5.2 Primitivas apresentadas 316 9.6 Exercícios 316 10 PROGRAMAÇÃO COM OBJECTOS 321 10.1 O Conceito de Objecto 329 10.2 Classes e Instãncias 330 10.2.1 Identidade e igualdade 331 10.3 Classes, Subclasses e Herança 333 10.4 Herança Múltipla 339 10.5 Pilhas Como Objectos 342 10.6 Resumo 345 10.6.1 Conceitos apresentados 345 10.6.2 Primitivas apresentadas 345 10.7 Exercícios 346

11 EPÍLOGO 349 11.1 Programas 352 11.1.1 Algoritmos 352 11.1.2 Linguagens 354 11.1.3 Construção de abstracções 357 11.2 Programação 360 11.2.1 Arquitectura de programas 360 11.2.2 Paradigmas de programação 361 11.2.3 Técnicas usadas em programação 365 11.2.4 Sistemas operativos 369 11.3 Notas Finais 371 A MANUAL DE SOBREVIVÊNCIA EM SCHEME 373 A.1 Obtenção do Scheme 375 A.2 Janelas e Menus 376 A.2.1 Janela de interacção 378 A.2.2 Janela de definições 379 A.2.3 Ligação entre as janelas 380 A.3 Auxílio na Depuração 380 A.3.1 Detecção da origem de erros 380 A.3.2 Rastreio de procedimentos 382 A.3.3 Interrupção da execução 385 A.4 Avaliação Por Passos 385 A.5 Informação de Ajuda 387 B ESTUDO DE UM CASO 389 B.1 Análise do Problema 391 B.1.1 O conceito de polinómio 391 B.1.2 Polinómios reduzidos 392 B.1.3 Operações a realizar 393 B.1.4 Planeamento do projecto 394 B.2 Desenvolvimento da Solução 395 B.2.1 Tipos abstractos de informação 395 B.2.2 Algoritmos 402 B.3 Programação da Solução 411 B.3.1 Representação interna dos tipos 411 B.3.2 Programa 412 B.4 Manual do Utilizador 441 B.4.1 Carregamento 441 B.4.2 Comandos disponíveis 442 B.4.3 Exemplo de interacção 443 B.4.4 Limitações 443 B.5 Testes 444 B.5.1 Testes de módulos 444 B.5.2 Testes para operações 447

C SOLUÇOES DE EXERCÍCIOS SELECCIONADOS 451 C.1 Exercícios do Capítulo 1 453 C.2 Exercícios do Capítulo 2 453 C.3 Exercícios do Capítulo 3 455 C.4 Exercícios do Capítulo 4 457 C.5 Exercícios do Capítulo 5 459 C.6 Exercícios do Capítulo 7 464 C.7 Exercícios do Capítulo 9 479 D EXEMPLOS DE PROJECTOS 487 D.1 Manipulação de Figuras Geométricas 489 D.1.1 Principais objectivos 489 D.1.2 Tipos a implementar 489 D.1.3 Duas representações para as figuras 496 D.1.4 Organização do código do projecto 497 D.1.5 Relatório 497 D.1.6 Trabalho a desenvolver 498 D.1.7 Código disponibilizado 499 D.2 Robot Explorador 502 D.2.1 Descrição do problema 502 D.2.2 Características do ambiente 502 D.2.3 Capacidades do robot 504 D.2.4 Tipos a implementar 505 D.2.5 Campeonato de robots 509 D.2.6 Relatório 510 D.2.7 Trabalho a desenvolver 510 D.3 Bases de Dados Dedutivas 510 D.3.1 Projecto 512 D.3.2 Passos a seguir 514 D.3.3 Interrogações com variáveis 515 D.3.4 Dados para teste do programa 520 REFERÊNCIAS BIBLIOGRÁFICAS 521 ÍNDICE REMISSIVO 527