Desenvolvimento de uma biblioteca de objetos para uso em programas de estatística e de matemática - Machado, Amauri de Almeida (1993)
A finalidade do presente trabalho foi construir uma biblioteca de objetos e outras rotinas que pudessem ser úteis para desenvolvimento de programas nas áreas de matemática e estatística. A linguagem utilizada foi Pascal, ambiente Turbo Pascal versão 6.0, e os programas foram todos escritos para utilização num equipamento IBM-PC ou compatível com sistema operacional MS-DOS ou compatível. A biblioteca de objetos foi toda desenvolvida como uma extensão da biblioteca Turbo Vision fornecida juntamente com a versão 6.0 do Turbo Pascal. O desenvolvimento de uma biblioteca, tal como a que se propõe, deve-se a dois contextos muito interligados. O primeiro é o avanço da programação orientada a objetos (POO) como metodologia de programação e o segundo é a tendência atual de construção de bibliotecas para áreas específicas (frameworks). A POO se presta muito bem para a construção de bases para programas maiores, pois coloca um novo patamar aumentando a abstração e, consequentemente, a facilidade de desenvolvimento. As áreas específicas que se busca atingir neste caso são as de matemática e estatística. Assim, ela poderá ser muito útil como instrumento de apoio para programadores que atuam nessas áreas e como material didático em disciplinas de matemática numérica e estatística computacional. Construiu-se um conjunto de objetos para tratar arquivos de dados estatísticos que serve também para exemplificar em detalhes a construção de uma aplicação Turbo Vision. Para tanto, foram desenvolvidos métodos para edição de dados, geração de novas colunas, acesso indexado e condicional ao disco, ordenação, seleção de chaves, acesso a dispositivos de entrada e saída, etc. Como toda aplicação Turbo Vision, é totalmente interativa e possui suporte para mouse, menus suspensos (pull-down), linha de status, cores, etc. Faz uso intensivo das ferramentas de interface fornecidas pelo Turbo Vision. Foram desenvolvidos também objetos para a manipulação de matrizes e para a geração de variáveis aleatórias. O objeto para manipulação de matrizes sabe dimensionar-se e redimensionar-se seja quanto ao aumento de linhas ou de colunas, guardar-se e recuperar-se de um dispositivo de entrada e saída além de uma vasta gama de rotinas implementadas na forma de métodos cuja finalidade é dotar o objeto de um conjunto de ações que normalmente são efetuadas sobre matrizes. Outro objeto associado à matrizes estabelece uma lista ligada de matrizes sobre as quais poderão ser definidos procedimentos matriciais particulares ou gerais. Os objetos destinados à geração de variáveis aleatórias estão definidos para gerar variáveis uniformes segundo três metodologias diferentes e gerar variáveis de distribuição normal, gama, binomial e de Poisson. Um outro gerador de variáveis uniformes pode ser introduzido sem qualquer alteração na estrutura. Além disso, os objetos são facilmente extensíveis de modo que variáveis de outras distribuições possam ser geradas, aproveitando toda a estrutura já existente. Todos os objetos poderão ser utilizados tal corno se encontram, ou seja, todos eles são dotados de funcionalidade para muitas aplicações, embora a sua extensão seja possível e até desejável em muitos casos. Também foi desenvolvido um conjunto completo de rotinas para a avaliação de funções, incluindo funções de distribuição de probabilidade, avaliação de expressões matemáticas e tratamento de cadeias de caracteres.