introduc¸ao a programas f˜ ´ısico-matematicos livres´modo script (textos de programac¸ao) e...

9
148 Revista Brasileira de Ensino de F´ ısica, vol. 25, no. 2, Junho, 2003 Introduc ¸˜ ao a Programas F´ ısico-Matem´ aticos Livres Introduction to Physical–Mathematical Free Software Margarete Oliveira Domingues CPTEC/INPE, Cx. P. 515, 12201-970, S˜ ao Jos´ e dos Campos, SP [email protected] Odim Mendes Jr. CEA/INPE, Cx. P. 515, 12201-970, S˜ ao Jos´ e dos Campos, SP [email protected], http://www.dge.inpe.br/wotan Recebido em 20 de janeiro, 2003. Aceito em 4 de abril, 2003. Atualmente encontram-se dispon´ ıveis excelentes programas de livre distribuic ¸˜ ao e/ou de distribuic ¸˜ ao gratuita para a realizac ¸˜ ao das mais diversas atividades de pesquisa, de ensino ou mesmo de produtividade. Entre es- ses existem programas f´ ısico-matem´ aticos poderosos. Com o objetivo de motivar professores e estudantes, de arios n´ ıveis, e pesquisadores a trabalharem com tais ferramentas, neste trabalho s˜ ao apresentados os progra- mas GNU/OCTAVE, que lida fundamentalmente com c´ alculos num´ ericos; GNU/MAXIMA, que tamb´ em lida com computac ¸˜ ao simb´ olica; OPENDX, que executa visualizac ¸˜ oes 3D; e RCS, que auxilia o gerenciamento de c´ odigos fontes. Exceto pela ´ ultima, essas ferramentas s˜ ao capazes de gerar gr´ aficos e permitem ainda, em decorrˆ encia da habilidade crescente do usu´ ario interessado, alcanc ¸ar n´ ıveis de programac ¸˜ ao avanc ¸ados e utilizac ¸˜ oes gr´ aficas sofisticadas. Nowadays there are excelent free softwares available to many activities in science, in teaching and even to productivity. Among those, there are powerful physical mathematical softwares. In order to motivate teachers and students, in all levels, and researchers to deal with those tools, the GNU/OCTAVE software, that works in principle with numerical calculus, GNU/MAXIMA software, that also works with symbolic computation, OPENDX, for scientific visualization, and RCS, a system for revised version, are presented. Except for the last tool, the other tools can create graphics and allow, with the increasing ability of the interested user, to reach advanced programming levels and sophisticated graphical uses. I Introduc ¸˜ ao Existem dispon´ ıveis, atualmente, excelentes programas de livre distribuic ¸˜ ao e/ou de distribuic ¸˜ ao gratuita para a realizac ¸˜ ao das mais diversas atividades de pesquisa, de en- sino ou mesmo de produtividade. Esses programas s˜ ao desenvolvidos por milhares de pessoas no mundo inteiro e tornam–se cada vez mais de maior interesse da comu- nidade cient´ ıfica e do p´ ublico em geral. A utilizac ¸˜ ao de tais ferramentas computacionais ainda ´ e muito modesta em arios segmentos da comunidade cient´ ıfica brasileira. A divulgac ¸˜ ao de algumas dessas ferramentas ´ e o objetivo deste trabalho, atento ao lema: investir em conhecimento, aumen- tar o desempenho e reduzir custos. Como muitas das atividades cient´ ıficas e, sobretudo, de ensino nos cursos de F´ ısica, Matem´ atica e ´ areas afins s˜ ao de- senvolvidas utilizando programas propriet´ arios, decorre da´ ı a motivac ¸˜ ao e o foco deste texto: apresentar alternativas de trabalho. Pois, muitos desses programas possuem simila- res gratuitos que podem auxiliar a reduzir os custos do uso de tais ferramentas computacionais, ao mesmo tempo que a acesso irrestrito a ferramentas robustas. Para o desen- volvimento de suas atividades de pesquisa em Ciˆ encias At- mosf´ ericas e Espaciais, os autores tˆ em estruturado um La- borat´ orio Num´ erico de An´ alise e de Simulac ¸˜ ao com uso de programas livres. Assim, com este prop´ osito, quatro dos programas de interesse s˜ ao aqui apresentados. Inicial- mente discutem–se o GNU/OCTAVE, que permite lidar com alculos num´ ericos; e o GNU/MAXIMA, que permite lidar tamb´ em com computac ¸˜ ao simb´ olica. Um tutorial sobre es- sas ferramentas foi apresentado em [1]. As outras duas fer- ramentas s˜ ao o OPENDX, para a visualizac ¸˜ ao de alta qua- lidade de dados tridimensionais e tamb´ em bidimensionais, e o RCS, para gerenciar os c´ odigos de programas e textos L A T E X. A finalidade dessa an´ alise ´ e encorajar qualquer usu´ ario, desde o professor ou o estudante do secund´ ario at´ e o pesqui- sador leigo em inform´ atica, uma iniciac ¸˜ ao no uso desses re- cursos. Para aqueles que desejem aprofundar–se nessas fer- ramentas, n´ ıveis avanc ¸ados de programac ¸˜ ao e de utilizac ¸˜ oes gr´ aficas sofisticadas podem ser alcanc ¸ados. Assim, para cada ferramenta, o conte´ udo exposto envolve a an´ alise da sua apresentac ¸˜ ao b´ asica e alguns exemplos. O programa GNU/OCTAVE, que utiliza o programa

Upload: others

Post on 18-Feb-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Introduc¸ao a Programas F˜ ´ısico-Matematicos Livres´modo script (textos de programac¸ao) e permite incorporar˜ m´odulos escritos nas liguagens C++, C, Fortran e outras. O

148 Revista Brasileira de Ensino de Fısica, vol. 25, no. 2, Junho, 2003

Introduc ao a Programas Fısico-Matematicos LivresIntroduction to Physical–Mathematical Free Software

Margarete Oliveira DominguesCPTEC/INPE, Cx. P. 515, 12201-970, Sao Jose dos Campos, SP

[email protected]

Odim Mendes Jr.CEA/INPE, Cx. P. 515, 12201-970, Sao Jose dos Campos, SP

[email protected], http://www.dge.inpe.br/wotan

Recebido em 20 de janeiro, 2003. Aceito em 4 de abril, 2003.

Atualmente encontram-se disponıveis excelentes programas de livre distribuicao e/ou de distribuicao gratuitapara a realizacao das mais diversas atividades de pesquisa, de ensino ou mesmo de produtividade. Entre es-ses existem programas fısico-matematicos poderosos. Com o objetivo de motivar professores e estudantes, devarios nıveis, e pesquisadores a trabalharem com tais ferramentas, neste trabalho sao apresentados os progra-masGNU/OCTAVE, que lida fundamentalmente com calculos numericos;GNU/MAXIMA , que tambem lidacom computacao simbolica; OPENDX, que executa visualizacoes 3D; eRCS, que auxilia o gerenciamentode codigos fontes. Exceto pelaultima, essas ferramentas sao capazes de gerar graficos e permitem ainda,em decorrencia da habilidade crescente do usuario interessado, alcancar nıveis de programacao avancados eutilizacoes graficas sofisticadas.

Nowadays there are excelent free softwares available to many activities in science, in teaching and even toproductivity. Among those, there are powerful physical mathematical softwares. In order to motivate teachersand students, in all levels, and researchers to deal with those tools, theGNU/OCTAVE software, that worksin principle with numerical calculus,GNU/MAXIMA software, that also works with symbolic computation,OPENDX, for scientific visualization, andRCS, a system for revised version, are presented. Except for the lasttool, the other tools can create graphics and allow, with the increasing ability of the interested user, to reachadvanced programming levels and sophisticated graphical uses.

I Introduc ao

Existem disponıveis, atualmente, excelentes programasde livre distribuicao e/ou de distribuicao gratuita para arealizacao das mais diversas atividades de pesquisa, de en-sino ou mesmo de produtividade. Esses programas saodesenvolvidos por milhares de pessoas no mundo inteiroe tornam–se cada vez mais de maior interesse da comu-nidade cientıfica e do publico em geral. A utilizacao detais ferramentas computacionais aindae muito modesta emvarios segmentos da comunidade cientıfica brasileira. Adivulgacao de algumas dessas ferramentase o objetivo destetrabalho, atento ao lema: investir em conhecimento, aumen-tar o desempenho e reduzir custos.

Como muitas das atividades cientıficas e, sobretudo, deensino nos cursos de Fısica, Matematica eareas afins sao de-senvolvidas utilizando programas proprietarios, decorre daıa motivacao e o foco deste texto: apresentar alternativas detrabalho. Pois, muitos desses programas possuem simila-res gratuitos que podem auxiliar a reduzir os custos do usode tais ferramentas computacionais, ao mesmo tempo queda acesso irrestrito a ferramentas robustas. Para o desen-

volvimento de suas atividades de pesquisa em Ciencias At-mosfericas e Espaciais, os autores tem estruturado umLa-boratorio Numerico de Analise e de Simulacao com usode programas livres. Assim, com este proposito, quatrodos programas de interesse sao aqui apresentados. Inicial-mente discutem–se oGNU/OCTAVE, que permite lidar comcalculos numericos; e oGNU/MAXIMA , que permite lidartambem com computacao simbolica. Um tutorial sobre es-sas ferramentas foi apresentado em [1]. As outras duas fer-ramentas sao oOPENDX, para a visualizacao de alta qua-lidade de dados tridimensionais e tambem bidimensionais,e o RCS, para gerenciar os codigos de programas e textosLATEX.

A finalidade dessa analisee encorajar qualquer usuario,desde o professor ou o estudante do secundario ate o pesqui-sador leigo em informatica, uma iniciacao no uso desses re-cursos. Para aqueles que desejem aprofundar–se nessas fer-ramentas, nıveis avancados de programacao e de utilizacoesgraficas sofisticadas podem ser alcancados. Assim, paracada ferramenta, o conteudo exposto envolve a analise dasua apresentacao basica e alguns exemplos.

O programaGNU/OCTAVE, que utiliza o programa

Page 2: Introduc¸ao a Programas F˜ ´ısico-Matematicos Livres´modo script (textos de programac¸ao) e permite incorporar˜ m´odulos escritos nas liguagens C++, C, Fortran e outras. O

Margarete Oliveira Domingues e Odim Mendes Jr. 149

GNUPLOT, e o RCSja vem disponıveis nos CDROMs dasprincipais distribuicoesGNU/LINUX . O GNU/MAXIMA eo OPENDX devem ser obtido em lugares especıficos da In-ternet. Neste trabalho sobre programas fısico-matematicos,divulgam–se tambem materiais didaticos ja disponıveis paraaqueles interessados em se aprofundarem nessas ferramen-tas. Na Tabela 1 estao apresentados os enderecos das fer-ramentas aqui tratadas e de alguns outros programas e re-ferencias de interesse nesse contexto. Em geral, versoes

atualizadas sao oferecidas com muita frequencia, dessaforma e interessante consultar com certa regularidade es-ses enderecos eletronicos. Embora essas ferramentas apre-sentem um melhor desempenho em sistemas operacio-nais Unix (<http://www.unix.org/>), como oGNU/LINUX(<http://www.linux.org/> ), em geral elas estao tambemdisponıveis para outros sistemas operacionais. Um enderecointeressante em aplicacoes cientıficas emGNU/LINUX e o<http://sal.kachinatech.com/>.

Tabela 1. Enderecos na Web de algumas ferramentas e referencias de interesse

Nome da Ferramenta Endereco na WebFısico-matematicasGNU/MAXIMA http://www.ma.utexas.edu/users/wfs/maxima.htmlGNU/OCTAVE http://www.octave.orgSCILAB http://www.scilab.orgGNUPLOT http://www.gnu.orgXGFE http://www.bl.physik.uni-muenchen.de/rechner/grafik/xgfeR http://www.gnu.org/software/r/OPENDX http://www.opendx.orgEditoracao cientıficaLATEX http://www.ctan.org

http://biquinho.furg.brPROSPER(LATEX) http://prosper.sourceforge.net/Kile(LATEX) http://xm1.net.free.fr/kilepsutils http://www.go.dlr.de:8081/pdinfodv/psutils.htmlabntex(LATEX) http://abntex.codigolivre.org.br/OpenOffice http://www.openoffice.org/OrganizacaoRCS http://www.gnu.orgCVS http://www.cvshome.orgSixpack(BibTeX) http://www.openoffice.org/Criacao de diagramasDia http://www.lysator.liu.se/ alla/dia/dia.htmlXFig http://www.xfig.orgTratamento de imagensgimp http://www.gimp.org/ImageMagic http://www.imagemagick.org/Linguagens de programacaoC++ http://gcc.gnu.org/

http://www.research.att.com/ bs/C++.htmlhttp://www.cuj.com/

Fortran 90 http://www.liv.ac.uk/HPC/F90page.htmlPython http://www.python.orggtk http://gtk-sharp.sourceforge.net/gawk http://packages.debian.org/stable/devel/dpkg-awk.htmlsed http://www.gnu.org/software/sed/sed.htmlBibliotecasBLAS(Fortran) http://www.netlib.org/blas/Atlas (C++) http://www.worldforge.org/dev/eng/libraries/atlascppBlitz(C++) http://www.oonumerics.org/blitz/

II GNU/OCTAVE e GNUPLOT

O GNU/OCTAVE e uma linguagem de alto nıvel basica-mente voltada para computacao numerica. Esse programaprove uma interface por linha de comandos para solucaonumerica de problemas lineares e/ou nao–lineares e paraimplementar outros experimentos numericos usando uma

linguagem quee compatıvel com o Matlab (programacomercial). O programa pode ser utilizado tambem emmodoscript (textos de programacao) e permite incorporarmodulos escritos nas liguagensC++, C, Fortran e outras. OGNU/OCTAVE foi escrito por John W. Eaton e muitos ou-tros, estando disponıvel na forma GPL [2].

O GNU/OCTAVE tem ferramentas amplas para solucoes

Page 3: Introduc¸ao a Programas F˜ ´ısico-Matematicos Livres´modo script (textos de programac¸ao) e permite incorporar˜ m´odulos escritos nas liguagens C++, C, Fortran e outras. O

150 Revista Brasileira de Ensino de Fısica, vol. 25, no. 2, Junho, 2003

numericas de problemas comuns dealgebra linear, paraa determinacao de raızes de equacoes nao–lineares,manipulacoes polinomiais e integracao de equacoes diferen-ciais ordinarias e equacoes diferenciais algebricas.

Quando executado pelo comandooctaveem um termi-nal, oGNU/OCTAVE resulta em algumas informacoes e ini-cia um ambiente de trabalho por linha de comando. Para

se obterem saıdas graficas na telae necessario estar emum ambiente XWindow (por exemplo, noGNU/LINUX ),o GNU/OCTAVE cria automaticamente uma janela sepa-rada para a apresentacao grafica (Figura 1). Por outro lado,mesmo em ambiente texto pode-se capturar as saıdas em umarquivo que sera posteriormente visto em outro aplicativo.

Figura 1. Exemplo da interfaceGNU/OCTAVE e de uma saıda grafica.

No GNU/OCTAVE, expressoes sao blocos basicos deconstrucao de assertivas. Uma expressao calcula um va-lor, que pode ser impresso, testado, armazenado, passadoa uma funcao ou designar um novo valor para uma variavelpor meio de um operador de atribuicao. OGNU/OCTAVEconhece operacoes com numeros complexos, em queı =√−1. Outras funcoes basicas tambem sao pre-definidas,como cos, sin, tan, log,

√ e exp, e expressas da formausual. Por exemplo:

octave:1> sqrt(-6.0); octave:1>cos(pi)ans = 0.00000 + 2.44949i ans= - 1

As operacoes matriciais utilizam uma notacao de co-mandos muito similara notacao tradicional. Determinan-tes, transpostas e matrizes inversas tambem sao diretamenteobtidas, quando existentes. Por exemplo, seja A uma ma-triz m × m, o determinante deA pode ser obtido pelo co-mando det(A) e sua matriz transposta pode ser obtida pelocomando A′ . Alem disso, varias matrizes muito utilizadas,como a matriz identidade e matrizes diagonais, podem serconstruıdas diretamente por funcoes pre–definidas. Tambeme possıvel fazer operacoes elemento a elemento entre matri-zes e calcular a solucao de sistemas lineares Ax = b.

O GNU/OCTAVE possui recursos no manuseio defuncoes. Por exemplo, pode–se definir uma funcao com o

comandofunction e executa–la posteriormente na linha decomando. Pode-se calcular a solucao de um conjunto deequacoes nao–lineares e fazer o calculo da integral definidaem um intervalo para uma variavel.

A utilizacao doGNU/OCTAVE apresenta um potencialmaior quando se faz uso de recursos de programacao. Comeste proposito,e importante conhecer as formas de controlaros fluxos de calculos if , for , while e switch. O comandobreak pode ser utilizado para sair de qualquer um dessescontroles. O comandocontinue pode ser utilizado para oslacosfor ewhile quando se deseja retornara condicao desselaco. Em geral,e mais conveniente a criacao de programasem arquivos externos. Os comandos doGNU/OCTAVE po-dem ser salvos em um arquivo texto de extensao.m ou .oct,como por exemploprog.m, para posterior processamento.Para o leitor interessado, uma boa referencia sobre formasde se controlar fluxose o livro de Cortes [3].

Toda a parte grafica doGNU/OCTAVE e feita pelo pro-gramaGNUPLOT [4]. E possıvel gerar graficos bidimensio-nais e alguns tipos de graficos tridimensionais. Na Figura 2e apresentado um exemplo de grafico 3D e de curvas de nıvelno GNU/OCTAVE.

Page 4: Introduc¸ao a Programas F˜ ´ısico-Matematicos Livres´modo script (textos de programac¸ao) e permite incorporar˜ m´odulos escritos nas liguagens C++, C, Fortran e outras. O

Margarete Oliveira Domingues e Odim Mendes Jr. 151

Figura 2. Graficos 3D e de curvas de nıvel noGNU/OCTAVE.

O GNUPLOT pode ser utilizado independentemente doGNU/OCTAVE. Ele e bem simples de ser utilizado e podeproduzir figuras simples com boa qualidade grafica na telae em formatos de imagens compatıveis com o LATEX, comoo postscript1 e opng2. Ele pode ser utilizado diretamentena linha de comandos ou porscripts, acionando o comandognuplot seguido do nome doscriptsna linha de comandosdo terminal. Seus comandos sao bem intuitivos, como oplot para gerar graficos. O programaXGFE e um programatipo tela de usuario (front end) para oGNUPLOT, que auxi-lia a criar os graficos. O help doGNUPLOT e muito bom oque facilita a criacao de figuras mais elaboradas. Dentro doGNU/OCTAVE, o GNUPLOTfica sendo uma ferramenta sub-jacente. Muitos outros recursos graficos podem ser obtidosno GNU/OCTAVE, incluindo animacoes.

III GNU/M AXIMA

O GNU/MAXIMA e um programa de computador, sob alicenca GPL, para lidar com sistemas algebricos. Wil-

liam F. Shelter desenvolveu esse programa em LISP ba-seado na implementacao original doMacsymano MIT.O GNU/MAXIMA pode ser utilizado para calculos ma-tematicos, manipulacao simbolica, computacao numerica ecriacao de graficos [5,6,7]

De uma forma geral, todas as funcoes numericas dis-ponıveis no GNU/OCTAVE existem noGNU/MAXIMA .Por outro lado, oGNU/MAXIMA tem seu ponto forte naparte simbolica, o que faz com que a parte numerica sejaum pouco mais lenta que os algoritimos utilizados peloGNU/OCTAVE. E possivel combinar esses dois programas,utilizando os algoritmos doGNU/OCTAVE diretamente noGNU/MAXIMA .

Quando executado pelo comandomaxima em um ter-minal, oGNU/MAXIMA resulta em informacoes iniciais einicia um ambiente de trabalho por linha de comando. Nestaforma de execucao, para se obter saıdas graficase necessarioestar em um ambiente XWindow. Pode–se trabalhar tambempor meio de uma interface grafica conhecida comoXM A-XIMA , apresentada na Figura 3, quee acionada com o co-mandoxmaxima. Ha duas janela nessa interface, na ja-nela superior esta localizada a linha de comando interativo.Na outra janela esta localizado um tutorial de utilizacao doGNU/MAXIMA , basta clicar na palavraResultpara ativar oGNU/MAXIMA e executar os comandos em questao.

No GNU/MAXIMA , podem–se calcular fatoriais, fatorarem numeros primos, expandir e fatorar polinomios, simpli-ficar expressoes algebricas, calcular a decomposicao parcialfracionaria para expressoes fracionarias de uma forma sim-ples. Por exemplo,

expand ((x+7)*(x-7)); ⇒ x2 − 49factor (x2-49); ⇒ (x - 7)(x + 7)

partfrac (1/(x-5)*1/(x-7),x); ⇒ 12(x−7) − 1

2(x−5)

As operacoes usuais com matrizes tambem podem serfeitas simbolicamente. Por exemplo, seja

A =

a b ca− b b− c c2

1 2 3

.

Assim, para calcular o determinate da matrizA, utiliza-se o comandodeterminant(A), que resulta na expressaoalgebrica−b(3(a − b) − c2) + a(3(b − c) − 2c2) + c(c −b + 2(a− b)).

Al em disso, e possıvel definir funcoes, resolverequacoes ou sistemas para uma variavel designada, calcu-lar a derivada com respeito a uma variavel, diferenciar im-plicitamente, integrar simbolicamente ou numericamente eresolver equacoes nao–lineares. Por exemplo,

1(<http://www.adobe.com>)2(<http://www.libpng.org/pub/png/>)

Page 5: Introduc¸ao a Programas F˜ ´ısico-Matematicos Livres´modo script (textos de programac¸ao) e permite incorporar˜ m´odulos escritos nas liguagens C++, C, Fortran e outras. O

152 Revista Brasileira de Ensino de Fısica, vol. 25, no. 2, Junho, 2003

Figura 3. Exemplo da interface graficaXM AXIMA .

c

depends (y,x); ⇒ [y(x)]diff (x2 ∗ y = 9, x); ⇒ x2 dy

dx + 2xy = 0

eq1:x3 + 5 ∗ x ∗ y + y2 = 0eq2:3 ∗ x + 2 ∗ y = 1solve([eq1,eq2]); ⇒ [[y = - 0.02483745477298, x = 0.34989161849711],

[y = 0.71257391845627, x =-0.14171594563751],[y = - 7.062736205593349, x = 5.041824295922656]]

linsolve([3*x+4*y-z=7,2*x+a*y+b*z=13,x+y+z=10],[x,y,z]);

x =33b + 17a− 65

b + 4a− 10y =

23b− 18b + 4a− 10

z =23a− 53

b + 4a− 10

Os comandos doGNU/MAXIMA podem ser salvos em um arquivo texto extensao .mac, como por exemploprog.mac,para posterior processamento. Para executar esse arquivo dentro do ambiente, utiliza–se o comandobatch.

Fazer um grafico bidimensional ou tridimensional noGNU/MAXIMA tambem e simples, como mostrado no seguinteexemplo:

plot2d([cos(2*x),xˆ3],[x,-%pi,%pi]);plot3d(sin(xˆ2+yˆ2)/(xˆ2+yˆ2),[x,-5,5],[y,-5,5],[grid,45,45]);

d

Esses comandos geram um grafico apresentado na propriajanela doGNU/MAXIMA , que possui na lateral esquerdaum menu que possibilita fazer varias tarefas. Entre essas ta-refas esta salvar o arquivo no formato postscript. Um exem-plo dessas saıdase apresentado na Figura 4. Muitos outrosrecursos graficos podem ser obtidos noGNU/MAXIMA , in-cluindo animacoes.

IV OPENDX

Para trabalhos que necessitem de uma melhor qualidadegrafica dos resultados, uma opcao e o programa gratuitoOpenDX (<http://www.opendx.org>), que e semelhanteao Data Explorer da IBM. Ele consiste de um pacote de fer-ramentas para manipular, processar, transformar, visualizare animar dados em diversas plataformas computacionais epode ser utilizado tambem para visualizacao de dados noparadigma da computacao de processamento paralelo.

Page 6: Introduc¸ao a Programas F˜ ´ısico-Matematicos Livres´modo script (textos de programac¸ao) e permite incorporar˜ m´odulos escritos nas liguagens C++, C, Fortran e outras. O

Margarete Oliveira Domingues e Odim Mendes Jr. 153

(a)

(b)

Figura 4. Saıdapostscriptde graficos noGNU/MAXIMA .(a) 2D e (b) 3D.

OPENDX e uma ferramenta de visualizacao muitopoderosa pela forma de lidar com dados e permitirsuas visualizacoes. Tem como finalidades principais avisualizacao de informacoes formatadas em 2D e 3D, deforma interativa ou automatica (por meio descriptsou pelainclusao no codigo fonte de funcoes em linguagem C ou For-tran), e a criacao de filmes de visualizacao temporal de umabase de dados em formatompeg(<http://www.mpeg.org>).Uma das grandes vantagens desse recursoe sem duvida afacilidade de programacao em ambientevisual, conhecidopela sua sigla em ingles VPE, “Visual Program Evinron-ment”. Na Figura 5e ilustrado oVPE e esquematizadocomoe o processo de programacao nesse ambiente.

Essa ferramenta tem uma enorme gama de aplicacoes,desde asareas de ciencias em geral, por exemplo a Meteo-rologia e a Geofısica Espacial (<http://www.inpe.br>), atea industria. Na Figura 6 sao apresentados alguns exemplosde visualizacoes de dados noOPENDX.

Maiores informacoes sobre esse programa podem serobtidas na pagina doOPENDX e em outras paginas daInternet3. Tutoriais sobre oOPENDX sao apresentados em[8,9,10].

V Gerenciamento de codigo-fonte

O desenvolvimento das atividades de pesquisa ou didaticasexige muitas vezes a criacao de programas e textos e aatualizacao constante destes. O Sistema de Controle deRevisao (RCS) e uma ferramenta muitoutil no auxılio ao

desenvolvimento de programas ou textos ASCII, como osdo TEX e LATEX. Com essa ferramentae possıvel man-ter um historico da sequencia de etapas de construcao deum codigo, de forma organizada e sem repeticoes desne-cessarias. Desta forma, a qualidade do trabalho em desen-volvimentoe assegurada e os contratempos decorrentes dedificuldades de administracao do desenvolvimento minimi-zados [11,12,13].

O RCS e baseado em uma estrutura dearvore. Dessaforma, a primeira revisao e a raiz daarvore, que rece-bera a designacao de revisao 1.1. As revisoes poste-riores descendem linearmente naarvore e passam a teras designacoes 1.2, 1.3, · · · , conhecidas como ramos.Epossıvel tambem iniciar uma nova sequencia de revisoespara cada uma desses ramos estabelecidos, conhecida comogalhos (Figura 7). Utiliza-se entao a ferramentarcsmergepara auxiliar na consolidacao de versoes a partir de diferen-tes ramos de desenvolvimentos.

A primeira etapa a ser feitae criar um sub-diretoriocom o nomeRCS no diretorio onde esta o codigo–fonte.Introduz–se no codigo–fonte desejado uma sequencia deidentificacao da revisao, sempre entre comentarios emrelacao ao compilador em que este codigo estara sendoprocessado. Os principais caracteres de identificacao sao:$Header$, $Author$, $Date$, $Locker$, $Revision$,$Source$e $State$. E possıvel ainda colocar um identifi-cador no programa executavel resultante. Para isso, deve-seinserir no codigo-fonte

char rcsid[]=@(#);

Os dois comandos fundamentais para a utilizacao doRCSsaoci e co. O comandoci introduz uma nova versaono sub-diretorio RCSe o comandoco retorna a versao maisrecente guardada no diretorio RCS. Nesse sub-diretorio haum arquivo com o nome do programa-fonte original acres-cido de uma nova extensao ,v (vırgula letra v minuscula).Por exemplo os comandos:

$ ci -l nome-do-arquivo

geram uma revisao mais atualizada do arquivo. Com essecomando, um indicador (prompt) surge e espera uma linhade comentario sobre a revisao que esta sendo guardada. Afim de utilizar um arquivo que foi colocado noRCS, pode-se extrair, para uso, o arquivo-fonte com o comando:

$ co -l nome-do-arquivo

E possıvel tambem recuperar uma certa versao de revisao doarquivo-fonte estabelecida pelaarvore de revisao. Os indi-cadores, apos a chamada do primeiroco, geram uma seriede informacoes sobre a revisao no codigo-fonte. Ha mui-tos outros comandos e opcoes que facilitam essa tarefa degerenciamento. Assim, aprender oRCSe muito promissor,evitando perda de tempo, perda de espaco em disco e pre-servando o conteudo de versoes anteriores.

3<http://www.csse.monash.edu.au/donny/mc2/visualization/miscinfo/dxlinks.html>

Page 7: Introduc¸ao a Programas F˜ ´ısico-Matematicos Livres´modo script (textos de programac¸ao) e permite incorporar˜ m´odulos escritos nas liguagens C++, C, Fortran e outras. O

154 Revista Brasileira de Ensino de Fısica, vol. 25, no. 2, Junho, 2003

Figura 5. Ambiente de programacao visual doOPENDX.

Figura 6. Alguns exemplos de visualizacoes de dados noOPENDX.

Page 8: Introduc¸ao a Programas F˜ ´ısico-Matematicos Livres´modo script (textos de programac¸ao) e permite incorporar˜ m´odulos escritos nas liguagens C++, C, Fortran e outras. O

Margarete Oliveira Domingues e Odim Mendes Jr. 155

Figura 7.Arvore de revisao doRCS.

VI Comentarios Finais

As novidades tecnologicas tem sido marcantes no estilo devida da sociedade atual. Um dos aspectos principais dessaevolucao acelerada de recursos materiais a ser analisado,apontado por algumas pessoas proeminentes,e a qualidadede vida. Dizem os especialistas que ela deveria ser a questaoprioritaria nos proximos anos.

Essa preocupacao motiva-nos a uma analise de duplocarater das ferramentas computacionais hoje disponıveis: doponto de vista pessoal e do ponto de vista institucional.

No sentido pessoal,e uma questao de escolha de recur-sos de informatica, que da maior ou menor liberdade, maiorou menor poder a criatividade e que motiva a uma posturamais exclusivista ou mais cooperativa.

No sentido institucional, ha a possibilidade, que ja podeser pressentida, de uma dependencia forte de uma empresacom respeito a outras e uma fragilizacao de sua capaci-dade de atuacao, e isso, indiscutivelmente, afeta o seu po-der de decisao. Por isso, uma instituicao necessita ter maisconsciencia das ferramentas de trabalho que precisa. Issoexige antecipar (antever) as suas necessidades institucionaisno tempo.

Dentro do quesito “qualidade de vida” para umainstituicao, o momento presente requer analise da com-pra, instalacao e uso de produtos e servicos basicos de in-formatica. Essas aquisicoes devem atender a:a) aumento ou estabilidade de produtividade na instituicao;b) aumento ou garantia de seguranca intrınseca dos servicosda instituicao;

c) garantia de comunicacao integrada e harmoniosa entreservicos;d) insercao eficiente da instituicao na sociedade ja reapare-lhada tecnologicamente;e) eliminacao de gastos desnecessarios para permitir eco-nomia publica ou, o quee preferıvel, reinvestimentos combenefıcio publico.

Assim, algumas perguntas devem ser feitas inteligente-mente e respondidas habilmente por todos os membros ati-vos da comunidade. Hoje aepocae outra, iniciativas indi-viduais tem consequencias globalizadas. Para as decisoese necessario haver negociacao, transparencia, responsabili-dade, retreinamentos e avaliacao de serventia de produtose servicos. Quanto a questoes gerais, pergunta-se: Queposicao deve-se ter perante essa inevitavel revolucao tec-nologica e de mudanca de paradigmas? Qual a posicaoa se ter perante programas proprietarios comprados e pro-gramas de livre distribuicao com licenca publica geral?Que criterios de custo/benefıcio devem ser atendidos naaquisicao de produtos com financiamento publico?

Do ponto de vista pratico, escolhas adequadas de fer-ramentas de informatica representam diferencas de milhoesde reais ao longo do tempo. Ressalta-se ainda que a esco-lha adequada de plataformas de trabalho traduz-se em pers-pectivas de real produtividade, seguranca, eficiencia e decolaboracao para a formacao de competencia local.

Como uma consideracao final, ressalta-se que o uso des-sas alternativas de livre distribuicao possibilita ao futuroprofissional (aluno formado ou mesmo em formacao) le-var com ele esses programas em que esta sendo treinado.Isso garante continuidade mais facilitada de projetos e aampliacao das solucoes dentro do universo das ferramentasadotadas. Essas sao oportunidades que abrem perspectivasno trabalho cientıfico ou de ensino–aprendizagem muito sig-nificativas.

AgradecimentosOs autores agradecem a SBMAC e aos organizadores do

ERMAC de Natal de 2002 a motivacao e a FAPESP o su-porte financeiro dadoas pesquisas do Projeto Via-Lux (FA-PESP 1998/3860-9). Agradecem tambem ao revisor desteartigo as sugestoes muito oportunas.

Referencias

[1] M. O. Domingues and O. Jr. Mendes. Introducao a pro-gramas cientıficos de distribuicao gratuita: GNU/Octave,GNU/Maxima,LATEX e GNU/RCS. Technical Report INPE-9381-PRE/5041, INPE, 2002.<http://www.dge.inpe.br/wotan>.

[2] J. Eaton. Octave manual.<http://www.octave.org/doc/>,2001.

[3] P. L. Cortes.C auto explicativo. Erica, Sao Paulo, 1992. pp.17-54.

[4] T. Williams, C. Kelley, R. Lang, D. Kotz, J. Campbell, G. El-ber, A. Woo, and et al. Gnuplot FAQ.<http://www.ucc.ie/gnuplot/>, 2001.

[5] W. Schelter. Maxima manual.<http://www.ma.utexas.edu/users/wfs/maxima.html>,2001.

Page 9: Introduc¸ao a Programas F˜ ´ısico-Matematicos Livres´modo script (textos de programac¸ao) e permite incorporar˜ m´odulos escritos nas liguagens C++, C, Fortran e outras. O

156 Revista Brasileira de Ensino de Fısica, vol. 25, no. 2, Junho, 2003

[6] W. Schelter. Basic Maxima commands.<http://math.cochise.cc.az.us/Doc/maxima/basic−maxima.html>, 2001.

[7] ICM Institute for Computational Mathematics. Interactivedemos of mathematical computations.<http://icm.mcs.kent.edu/research/demo.html>, 2002.

[8] D. Thompsom, J. Braun, and R. Ford.Paths to Visualiza-tion. Visualization and Imagery Solutions,Inc, Estados Uni-dos, 2001.<http://www.vizsolutions.com>.

[9] E.C. Silva. Introducao ao IBM Data Explorer. Tech-

nical report, CENAPAD-SP, Campinas, SP, Ago 1997.<http://www.cenapad.unicamp.br>.

[10] R. Blaz, M. O. Domingues, and O. Jr. Mendes. Introducaoa entrada de dados no OpenDX: formatos dx, general e grib.Technical Report INPE-9558-NTC/351, INPE, 2003.

[11] GNU. RCS manual.<http://www.gnu.org>, 2002.

[12] R. Petersen.Linux - Programer’s Reference. Mc-Graw-Hill,Berkeley, 1998.

[13] M. Loukides and A. Oram.Ferramentas GNU. O’Reilly,1998.