|
|
|
|
|
Introdução à Programação com Ada 95 Edição Especial com o Software Ada+SQL (Comandos básicos de SQL podem ser executados de forma interativa ou ainda como parte de programas seqüênciais e concorrentes) Arthur Vargas Lopes, PhD Para adquirir contate a Editora da ULBRA (Preço promocional de R$ 29,00 incluindo software e despesas postais dentro do território brasileiro) Também a venda nas Livrarias SULINA Agradecimentos Aos meus filhos Gabriel e Melissa.Prefácio A programação é uma nova arte onde o artista é o programador. Este novo tipo de artista não apenas utiliza instrumentos conhecidos para realizar seu trabalho mas principalmente desenvolve e implementa novos instrumentos. Para o programador os recursos de software e hardware são os seus instrumentos de trabalho que tem sua base em uma linguagem de programação e suas abstrações pré-definidas. Estes recursos quando bem utilizados tornam-se um instrumento dinâmico onde o desenvolvimento e a implementação de novos recursos é limitada apenas pela capacidade técnica e criativa do programador. Não é então de surpreender que a programação de computadores está sendo considerada como uma das atividades, realizadas pelo ser humano, mais sofisticadas e complexas da atualidade para não dizer a mais complexa. Esta afirmação tem sido comprovada por grupos que estudam vários aspectos da programação. De fato, estudos e publicações sérias vem afirmando que para um programador atingir o grau de especialista são necessários dez anos de intenso estudo e prática. A competência entretanto pode ser atingida a partir de quatro anos de preparação adequada onde a prática deve ser enfatizada [Winslow, 1996]. Este livro tem o objetivo de somar esforços junto aqueles que se dedicam ao ensino básico da Ciência da Computação. De acordo com o "Computing Science Acreditation Board", dos USA, a Ciência da Computação "... é a disciplina que envolve o avanço do entendimento fundamental de algoritmos e sistemas de informação em geral assim como os aspectos práticos do projeto de software e hardware eficiente e seguro de forma a satisfazer requisitos ...". A linguagem na qual os programas são demonstrados é a Ada 95. A razão desta escolha fundamenta-se na natureza desta linguagem: poderosa, moderna e coerente com os objetivos de uma programação séria e responsável. Não é de se admirar que esta linguagem está fortemente associada com a engenharia de software. Ada 95 induz à confecção de programas de qualidade onde a ênfase está na correção, robustez, disciplina e manutenbilidade. Seu uso resulta em uma redução substancial de custos de desenvolvimento e manutenção com um aumento de produtividade. Para aqueles com grandes investimentos em outras linguagens Ada 95 disponibiliza interfaces com C, FORTRAN e COBOL. Este livro irá beneficiar o estudante de inúmeras formas onde talvez a mais importante esteja no entendimento e prática de técnicas que permitem a construção de software de qualidade onde o estudo e a prática com tipos abstratos de dados é de fundamental importância para implementação do re-uso de software, para a programação de grandes projetos e sistemas críticos em especial. Os sistemas críticos são caracterizados por não poder falhar em decorrência dos danos catastróficos associados. O capítulo 1 introduz o estudo das componentes básicas de computador, sumarizando sua história e características das três primeiras gerações até chegar aos computadores atuais. O capítulo 2 apresenta os elementos básicos para a construção de programas discutindo os conceitos e aplicações dos algoritmos, fluxogramas e da codificação. São discutidos três algoritmos para solução de problemas distintos. Ao final deste capítulo é apresentado o histórico do desenvolvimento da linguagem Ada. O capítulo 3 analisa a anatomia de alguns programas simples analisando a os aspectos básicos de um conjunto de programas envolvendo seus aspectos léxicos, sintáticos e semânticos assim como também da sua documentação. A partir deste capítulo são incluídas dicas de programação. As dicas de programação visam reforçar critérios para codificação de programas com maior qualidade e também clarificar fatores operacionais envolvendo, por exemplo, a compilação de diversas unidades de compilação dispostas em um conjunto de arquivos. O capítulo 4 inicia o estudo propriamente dito da programação onde os três algoritmos discutidos no capítulo dois são transformados em programas Ada 95. A medida que cada programa é discutido novas construções da linguagem são analisadas. Estas construções envolvem os literais, packages, instanciamento de packages genéricos e cláusulas de contexto. São também estudados os comandos de atribuição, chamada de sub-programa, e de iteração. Este capítulo demonstra a codificação de um programa a partir de um algoritmo. O capítulo 5 apresenta e discute os principais tipos de dados e operadores pré-definidos da linguagem. São também estudados os comandos if, goto e as expressões. O capítulo 6 discute a programação de coleções de objetos. Os arrays são discutidos através de diversos exemplos. Um grupo de atributos também é discutido juntamente com o comando iterativo for. O capítulo 7 apresenta a construção de novos tipos de dados e sua relação com os tipos de dados abstratos discutindo também os tipos enumeráveis, para arrays e para registros. Outras estruturas estudadas são os agregados de array e registro e a cláusula use. Os comandos exit, case e loop são também estudados. O capítulo 8 discute os sub-programas. Funções e procedimentos são estudados tendo em vista o encapsulamento de algoritmos e sub-algoritmos. O escopo, overloading e o trabalho com arquivos de texto são também estudados neste capítulo. O capítulo 9 discute a programação orientada a objetos através da construção de packages e a utilização de tipos tagged. Packages são construídos tendo em vista a implementação de tipos de dados abstratos. Recursos para proteger a integridade de construções são também discutidos. O capítulo 10 discute a utilização de exceptions apresentando as exceptions pré-definidas mais comuns, a declaração de novas exceptions e o acionamento e interceptação de exceptions. O capítulo 11 introduz a programação concorrente apresentando os seus conceitos básicos e construções fundamentais para a programação de tasks assíncronas e síncronas. Cada capítulo contém ao seu final um resumo dos principais assuntos abordados e uma série de exercícios. O resumo sumariza e reforça os assuntos tratados e a série de exercícios visa provocar e estimular a reflexão, teste e o entendimento prático destes assuntos. A partir do capítulo 3 cada resumo é precedido de um conjunto de dicas de programação. O Anexo 1 apresenta a notação BNF. Esta notação é utilizada ao longo do livro, e em especial no Anexo 2, para apresentar as construções da linguagem. O Anexo 2 apresenta o sumário da sintaxe da linguagem Ada 95 com exemplos. Esta sintaxe foi adaptada do Manual de Referência da Linguagem Ada 95 elaborado pela Intermetrics, Inc. Muitas destas construções sintáticas são representadas ao longo do livro. O Anexo 3 apresenta a tabela ASCII com o código de cada símbolo exibido nas bases binária, octal, decimal e hexadecimal. O Anexo 4 descreve os procedimentos para instalação do ambiente de programação Ada+SQL. Com este recurso você poderá testar todos os programas discutidos neste livro. Estes programas encontram-se armazenados no diretório <dir>\Examples\Livro-IA sendo que <dir> representa o nome do caminho ("path") onde o sistema Ada+SQL foi instalado. O Anexo 5 apresenta os packages pré-definidos implementados pelo sistema Ada+SQL. Muitos termos e conceitos são explicados através de notas de rodapés. Estes termos e conceitos também constam do glossário apresentado ao final do livro.
Arthur Vargas Lopes Janeiro de 1997
1. Introdução
2. Elementos para a Construção de Programas
3. A Anatomia de Alguns Programas Simples
4. De Problemas para Programas
Testando o Programa Sorteia_Moeda 4.10 Instanciando um Package Genérico 4.11 Cláusulas de Contexto 4.12 Chamada de Funções 4.13 Biblioteca de Unidades de Programa 4.14 MDC - Maior Divisor Comum Testando o Programa Maior_Divisor_Comun 4.15 Atributo Integer'Image 4.16 Concatenando Strings 4.17 Concatenando Caracteres 4.18 Literais Caractere 4.19 O Operador mod 4.20 Expressão Relacional 4.21 O Comando while Passo de Inicialização Passo de Modificação Loop Infinito Dicas Resumo Exercícios
5. Tipos de Dados Pré-Definidos
Testando o Programa Demonstra_Conversao 5.17 A Pragma List 5.18 O Comando if Testando o Programa Comando_If 5.19 Encontrando Números Primos Encontra números primos entre dois números Testando o Programa Numeros_Primos 5.20 O Comando goto 5.21 Expressões Testando o Programa Demonstra_Algumas_Expressoes Prioridade dos Operadores 5.22 Operadores Relacionais Universais 5.23 Atributos Max e Min Testando o Programa Mostra_Max_Min Dicas Resumo Exercícios
6. Trabalhando com Coleções Testando o Programa Requer_Array Testando o Programa Array_Uma_Dimensao 6.1 Arrays Vetores Agregado de Array Matrizes 6.3 O Atributo Range 6.4 O Atributo First 6.5 O Atributo Last 6.6 O Atributo Val 6.7 O Atributo Pos 6.8 Calculando o Número de Dias Entre Duas Datas Calcula o número de dias entre duas datas Testando o Programa Total_De_Dias_Entre_Duas_Datas6.9 Aprimorando um Algoritmo Calcula o número de dias entre duas datas - Forma Otimizada. Testando o Programa Total_De_Dias_Entre_Duas_Datas26.10 O Comando for A Opção reverseLoops Aninhados Dicas Resumo Exercícios
7. Novos Tipos de Dados Sub_Tipo_1 Testando o Programa Sub_Tipo_27.2 A Construção type 7.3 Tipos Enumeráveis Testando o Programa Enumera_17.5 O Comando exit Testando o Programa Exit_17.6 O Comando case Testando o Programa Case_1Testando o Programa Case_27.7 O Tipo array 7.8 Pesquisando a Existência de Nomes em Tabelas Implementa a Pesquisa Seqüencial em Tabelas Testando o Programa Pesquisa_1 7.9 Agregado de array 7.10 O Comando loop 7.11 Tipos para Registros 7.12 Pesquisando o Saldo de Uma Conta Testando o Programa Pesquisa_2 7.13 A Cláusula use 7.14 Agregado de Registros 7.15 Os Atributos Pred e Succ Testando o Programa Pred_Succ Dicas Resumo Exercícios
8. Sub-Programas
Atualiza e Consulta Estoque Sub-algoritmo Inicia (Nome, Tab) Sub-algoritmo Atualiza (Tab) Sub-algoritmo Cadastra Sub-algoritmo Consulta Sub-algoritmo Exclui Sub-algoritmo Exibe Sub-algoritmo Saida Sub-algoritmo Entrada Sub-algoritmo Conclui (Nome, Tab) Testando o Programa Estoque
Dicas Resumo Exercícios
9. Packages Testa_Extensao 9.5 Slices 9.6 Package Cara_Coroa 9.7 Visibilidade de Packages 9.8 Cláusula use type Testando o Programa Use_Type9.9 O Atributo Length 9.10 Packages Hierárquicos Testando o Programa Testa_Package_Hierarquico9.11Comando de Bloco 9.12 Tipos tagged Testando o Programa Testa_TaggedDicas Resumo Exercícios
10. Exceptions Teste do Package Tabela_Para_Inteiros_2 Testando o Programa Testa_Tabela_Para_Inteiros_2 Dicas Resumo Exercícios
11. Programação Concorrente
Anexo 1 - A Notação BNF Anexo 2 - Ada 95 Sintaxe com Exemplos Anexo 3 - A Tabela ASCII Anexo 4 - Ada+SQL
Anexo 5 - Packages Pré-Definidos
Bibliografia Glossário Índice Last Updated: 02 Oct 2007 04:02:46 -0000 (C) 2002-2007 Arthur V. Lopes |
|
|