Você está na página 1de 16

VisuAlg - Editor e Interpretador de Pseudocdigos

Instalao e Requerimentos de Hardware O VisuAlg um programa simples, que no depende de DLLs, OCXs ou outros componentes. Sua instalao no copia arquivos para nen uma outra pasta a no ser aquela em que !or instalado, e e"ige cerca de # $% de espao em disco. &ode ser e"ecutado so' (indo)s *+ ou posterior, e tem mel or apar,ncia com resoluo de v-deo de .//"0// ou maior. Abrir ( trl-A!" A're um arquivo anteriormente gravado, su'stituindo o te"to presente no editor. Se este tiver sido modi!icado, o VisuAlg pedir1 sua con!irmao para salv12lo antes que se3a so'reposto. #o$o ( trl-#!" Cria um novo 4esqueleto4 de pseudoc5digo, su'stituindo o te"to presente no editor. Se este tiver sido modi!icado, o VisuAlg pedir1 sua con!irmao para salv12lo antes que se3a so'reposto. %al$ar ( trl-%!" 6rava imediatamente o te"to presente no editor. 7a primeira ve8 que um novo te"to gravado, o VisuAlg pede seu nome e locali8ao. Imprimir" 9mprime imediatamente na impressora padro o te"to presente no editor. &ara con!igurar a impresso, use o comando 9mprimir do menu Arquivo :acess-vel tam'm pelo atal o Ctrl-P;. ortar ( trl-&!" Apaga te"to selecionado, arma8enando2o em uma 1rea de trans!er,ncia. opiar ( trl- !" Copia o te"to selecionado para a 1rea de trans!er,ncia. olar ( trl-V!" Copia te"to da 1rea de trans!er,ncia para o local em que est1 o cursor. 'ra$ar bloco de te(to" &ermite a gravao em arquivo de um te"to selecionado no editor. A e"tenso sugerida para o nome do arquivo .inc. Inserir bloco de te(to" &ermite a insero do conte<do de um arquivo. A e"tenso sugerida para o nome do arquivo .inc. )es*a+er ( trl-,!" Des!a8 <ltimo comando e!etuado. Re*a+er (%-i*t- trl-,!" =e!a8 <ltimo comando des!eito. .ocali+ar ( trl-.!" Locali8a no te"to presente no editor determinada palavra especi!icada. %ubstituir ( trl-/!" Locali8a no te"to presente no editor determinada palavra especi!icada, su'stituindo2a por outra. orrigir Indentao ( trl-'!> Corrige automaticamente a indentao :ou ta'ulao; do pseudoc5digo, ta'ulando cada comando interno com espaos ? esquerda. #umerar lin-as" Ativa ou desativa a e"i'io dos n<meros das lin as na 1rea ? esquerda do editor. A lin a e a coluna do editor em que o cursor est1 em um determinado momento tam'm so mostradas na 'arra de status :parte in!erior da tela;. &or motivos tcnicos, esta opo automaticamente desativada durante a e"ecuo do pseudoc5digo, mas volta a ser ativada logo em seguida. 0ostrar $ari1$eis modi*icadas> Ativa ou desativa a e"i'io da vari1vel que est1 sendo modi!icada. Como o n<mero de vari1veis pode ser grande, muitas podem estar !ora da 3anela de visuali8ao@ quando esta caracter-stica est1 ativada, o VisuAlg rola a grade de e"i'io de modo que cada vari1vel !ique vis-vel no momento em est1 sendo modi!icada. Aste recurso especialmente <til quando se e"ecuta um pseudoc5digo passo a passo. &or questBes de desempen o, a con!igurao padro desta caracter-stica desativada, quando o pseudoc5digo est1 sendo e"ecutado automaticamente. 7o entanto, 'asta clicar este 'oto para e"ecut12lo automaticamente com a e"i'io ativada. 7o !inal da e"ecuo, a con!igurao volta a ser desativada. Restaurar tela inicial" CCC

E(ecutar (23!" 9nicia :ou continua; a e"ecuo autom1tica do pseudoc5digo. E(ecutar com timer (%-i*t-23!"> 9nsere um atraso :que pode ser especi!icado no intervalo ao lado; antes da e"ecuo de cada lin a. Dam'm reala em !undo a8ul o comando que est1 sendo e"ecutado, da mesma !orma que na e"ecuo passo a passo. Inter$alo do timer" Atraso em cada lin a, para quando se dese3a e"ecutar o pseudoc5digo com timer. Passo (24!" 9nicia :ou continua; a e"ecuo lin a por lin a do pseudoc5digo, dando ao usu1rio a oportunidade de acompan ar o !lu"o de e"ecuo, os valores das vari1veis e a pil a de ativao dos su'programas. Parar ( trl-25!" Dermina imediatamente a e"ecuo do pseudoc5digo. Avidentemente, este 'oto !ica desa'ilitado quando o pseudoc5digo no est1 sendo e"ecutado. .iga6desliga breakpoint (27!" 9nsereEremove um ponto de parada na lin a em que este3a o cursor. Astes pontos de parada so <teis para a depurao e acompan amento da e"ecuo dos pseudoc5digos, pois permitem a

veri!icao dos valores das vari1veis e da pil a de ativao de su'programas. )esmarcar todos os breakpoints ( trl-27!" Desativa todos os breakpoints que este3am ativados naquele momento. E(ecutar em modo )8%" Com esta opo ativada, tanto a entrada como a sa-da2padro passa a ser uma 3anela que imita o DOS, simulando a e"ecuo de um programa neste am'iente. 'erar $alores aleatrios" Ativa a gerao de valores aleat5rios que su'stituem a digitao de dados. A !ai"a padro de valores gerados de / a #// inclusive, mas pode ser modi!icada :'asta alterar intervalo ao lado;. &ara a gerao de dados do tipo caractere, no 1 uma !ai"a pr2esta'elecida> os dados gerados sero sempre strings de + letras mai<sculas. Inter$alo dos $alores aleatrios" Fai"a de valores que sero gerados automaticamente, quando esta opo estiver ativada. Per*il (29!" Ap5s a e"ecuo de um pseudoc5digo, e"i'e o n<mero de ve8es que cada umas das suas lin as !oi e"ecutada. G <til para a an1lise de e!ici,ncia :por e"emplo, nos mtodos de ordenao;. 0ostrar pil-a de ati$ao ( trl-2:!" A"i'e a pil a de su'programas ativados num dado momento. Convm utili8ar este comando em con3unto com breakpoints ou com a e"ecuo passo a passo. A;uda (2<!" &ossi'ilita acesso ?s p1ginas de a3uda e ?s in!ormaBes so're o VisuAlg. =uadro de Vari1$eis G !ormado por uma grade na qual so mostrados o escopo de cada vari1vel :se !or do programa principal, ser1 glo'al@ se !or local, ser1 apresentado o nome do su'programa onde !oi declarada;, seus nomes :tam'm com os -ndices, nos casos em que se3am vetores;, seu tipo :494 para inteiro, 4=4 para real, 4C4 para caractere e 4L4 para l5gico; e o seu valor corrente. A verso atual do VisuAlg permite a visuali8ao de at +// vari1veis :contando individualmente cada elemento dos vetores;. A >arra de Status Situada na parte in!erior da tela, esta 'arra contm dois painis> o primeiro mostra a lin a e a coluna onde o cursor est1, e o segundo mostra a palavra Modificado no caso em que o pseudoc5digo ten a sido alterado desde que !oi carregado ou salvo pela <ltima ve8. 7esta 'arra, 1 ainda um terceiro painel dispon-vel, que ainda no tem um uso espec-!ico na atual verso.

$enu do VisuAlg
Aste menu compBe2se de H partes> Arqui$o" &ossui os comandos para se a'rir, salvar e imprimir algoritmos> #o$o" Cria um novo 4esqueleto4 de pseudoc5digo, su'stituindo o te"to e"istente no editor. Se este te"to anterior tiver sido modi!icado, o VisuAlg pedir1 sua con!irmao para salv12lo antes que se3a so'reposto. Abrir" A're o te"to de um pseudoc5digo anteriormente gravado, su'stituindo o te"to e"istente no editor. Se este tiver sido modi!icado, o VisuAlg pedir1 sua con!irmao para salv12lo antes que se3a so'reposto. %al$ar" Salva imediatamente o te"to presente no editor. Caso se3a a primeira ve8 que um novo te"to gravado, o VisuAlg pedir1 o nome do arquivo e sua locali8ao. %al$ar como" &ermite salvar o te"to presente no editor e"i'indo antes uma 3anela na qual se pode escol er o nome do arquivo e sua locali8ao. En$iar por email" &ermite o envio por email do te"to presente no editor. Imprimir" &ermite a impresso do algoritmo corrente, mostrando antes a 3anela de con!igurao de impresso :o correspondente 'oto da 'arra de tare!as imprime imediatamente o te"to do pseudoc5digo na impressora padro;. %air" A'andona o VisuAlg. Alm destes comandos, 1 ainda a lista dos + <ltimos algoritmos utili8ados, que podem ser a'ertos diretamente ao se escol er o seu nome. Editar" Alm dos con ecidos comandos de um editor de te"to :copiar, cortar, colar, des!a8er, re!a8er, selecionar tudo, locali8ar, locali8ar de novo, su'stituir;, 1 tam'm as seguintes opBes> orrigir indentao" Corrige automaticamente a indentao do pseudoc5digo, ta'ulando cada comando interno com espaos ? esquerda. 'ra$ar bloco de te(to" &ermite a gravao em arquivo de um te"to selecionado no editor. A e"tenso sugerida para o nome do arquivo .inc. Inserir bloco de te(to" &ermite a insero do conte<do de um arquivo. A e"tenso sugerida para o nome do arquivo .inc. E(ibir" &ossui os comandos para ativarEdesativar as seguintes caracter-sticas> #?mero de lin-as" AtivaEdesativa a e"i'io da numerao das lin as na 1rea ? esquerda do editor. A numerao corrente da posio do cursor tam'm mostrada na primeira parte da 'arra de status, situada na parte in!erior da tela. &or motivos tcnicas, a numerao desativada durante a e"ecuo do pseudoc5digo, voltando ? situao anterior logo em seguida.

Vari1$eis modi*icadas" AtivaEdesativa a e"i'io da vari1vel que est1 sendo modi!icada. Como o n<mero de vari1veis pode ser grande, muitas podem estar !ora da 3anela de visuali8ao@ quando esta caracter-stica est1 ativada, o VisuAlg rola a grade de e"i'io de modo que cada vari1vel !ique vis-vel no momento em est1 sendo modi!icada. Aste recurso especialmente <til quando se e"ecuta um pseudoc5digo passo a passo. &or questBes de desempen o, a con!igurao padro desta caracter-stica desativada, quando o pseudoc5digo est1 sendo e"ecutado automaticamente. 7o entanto, 'asta clicar este 'oto para e"ecut12lo automaticamente com a e"i'io ativada. 7o !inal da e"ecuo, a con!igurao volta a ser desativada. Pseudocdigo" Contm os comandos relativos ? e"ecuo do algoritmo> E(ecutar" 9nicia :ou continua; a e"ecuo autom1tica do pseudoc5digo. Passo a passo" 9nicia :ou continua; a e"ecuo lin a por lin a do pseudoc5digo, dando ao usu1rio a oportunidade de acompan ar o !lu"o de e"ecuo, os valores das vari1veis e a pil a de ativao dos su'programas. E(ecutar com timer" 9nsere um atraso :que pode ser especi!icado; antes da e"ecuo de cada lin a. Dam'm reala em !undo a8ul o comando que est1 sendo e"ecutado, da mesma !orma que na e"ecuo passo a passo. Parar" Dermina imediatamente a e"ecuo do pseudoc5digo. Avidentemente, este item !ica desa'ilitado quando o pseudoc5digo no est1 sendo e"ecutado. .iga6desliga breakpoint" 9nsereEremove um ponto de parada na lin a em que este3a o cursor. Astes pontos de parada so <teis para a depurao e acompan amento da e"ecuo dos pseudoc5digos, pois permitem a veri!icao dos valores das vari1veis e da pil a de ativao de su'programas. )esmarcar todos os breakpoints" Desativa todos os breakpoints que este3am ativados naquele momento. E(ecutar em modo )8%" Com esta opo ativada, tanto a entrada como a sa-da2padro passa a ser uma 3anela que imita o DOS, simulando a e"ecuo de um programa neste am'iente. 'erar $alores aleatrios" Ativa a gerao de valores aleat5rios que su'stituem a digitao de dados. A !ai"a padro de valores gerados de / a #// inclusive, mas pode ser modi!icada. &ara a gerao de dados do tipo caractere, no 1 uma !ai"a pr2esta'elecida> os dados gerados sero sempre strings de + letras mai<sculas. Per*il" Ap5s a e"ecuo de um pseudoc5digo, e"i'e o n<mero de ve8es que cada umas das suas lin as !oi e"ecutada. G <til para a an1lise de e!ici,ncia :por e"emplo, nos mtodos de ordenao;. Pil-a de ati$ao" A"i'e a pil a de su'programas ativados num dado momento. Convm utili8ar este comando em con3unto com breakpoints ou com a e"ecuo passo a passo. .inguagens" &ermite a traduo autom1tico do pseudoc5digo presente no editor para outras linguagens de programao. Atualmente, apenas a traduo para &ascal est1 implementada, mas ainda em !ase de testes. 2erramentas" 7este menu, poss-vel con!igurar algumas opBes do VisuAlg> cores e tipos de letras na e"i'io do pseudoc5digo, n<mero de espaos para indentao autom1tica, etc. A;uda" Antre outras coisas, possi'ilita acesso ?s p1ginas de a3uda e ?s in!ormaBes so're o VisuAlg.

A Linguagem de &rogramao do VisuAlg :#;


Introduo A linguagem que o VisuAlg interpreta 'em simples> uma verso portuguesa dos pseudoc5digos largamente utili8ados nos livros de introduo ? programao, con ecida como 4&ortugol4. Domei a li'erdade de acrescentar2 l e alguns comandos novos, com o intuito de criar !acilidades espec-!icas para o ensino de tcnicas de ela'orao de algoritmos. 9nicialmente, pensava em criar uma sinta"e muito simples e 4li'eral4, para que o usu1rio se preocupasse apenas com a l5gica da resoluo dos pro'lemas e no com as palavras2c ave, pontos e v-rgulas, etc. 7o entanto, c eguei depois ? concluso de que alguma !ormalidade seria no s5 necess1ria como <til, para criar um sentido de disciplina na ela'orao do 4c5digo2!onte4.A linguagem do VisuAlg permite apenas um comando por lin-a> desse modo, no 1 necessidade de tokens separadores de estruturas, como o ponto e v-rgula em &ascal. Dam'm no e"iste o conceito de 'locos de comandos :que correspondem ao begin e end do &ascal e ao { e } do C;, nem comandos de desvio incondicional como o goto. 7a verso atual do VisuAlg, com e"ceo das rotinas de entrada e sa-da, no 1 nen um su'programa em'utido, tal como Inc(), S r(), !rd(), C"r(), Pos(), Cop#() ou outro. Importante" para !acilitar a digitao e evitar con!usBes, todas as palavras2c ave do VisuAlg !oram implementadas sem acentos, cedil a, etc. &ortanto, o tipo de dados l$gico de!inido como logico, o comando se..ento..seno de!inido como se..entao..senao, e assim por diante. O VisuAlg tam'm no distingue mai<sculas e min<sculas no recon ecimento de palavras2c ave e nomes de vari1veis. 2ormato >1sico do Pseudocdigo e Incluso de oment1rios

O !ormato '1sico do nosso pseudoc5digo o seguinte>

algoritmo "semnome" // Funo : // Autor : // Data : // Seo de Declaraes inicio // Seo de Comandos fimalgoritmo A primeira lin a composta pela palavra2c ave algoritmo seguida do seu nome delimitado por aspas duplas. Aste nome ser1 usado como t-tulo nas 3anelas de leitura de dados :nas !uturas versBes do VisuAlg, talve8 utili8emos este dado de outras !ormas;. A seo que se segue a de declarao de vari1veis, que termina com a lin a que contm a palavra2c ave inicio. Deste ponto em diante est1 a seo de comandos, que continua at a lin a em que se encontre a palavra2c ave fimalgoritmo. Asta <ltima lin a marca o !inal do pseudoc5digo> todo te"to e"istente a partir dela ignorado pelo interpretador. O VisuAlg permite a incluso de coment1rios> qualquer te"to precedido de 4EE4 ignorado, at se atingir o !inal da sua lin a. &or este motivo, os coment1rios no se estendem por mais de uma lin a> quando se dese3a escrever coment1rios mais longos, que ocupem v1rias lin as, cada uma delas dever1 comear por 4EE4. @ipos de )ados O VisuAlg prev, quatro tipos de dados> inteiro, real, cadeia de caracteres e lgico :ou booleano;. As palavras2 c ave que os de!inem so as seguintes :o'serve que elas no t,m acentuao;> inteiro> de!ine vari1veis numricas do tipo inteiro, ou se3a, sem casas decimais. real> de!ine vari1veis numricas do tipo real, ou se3a, com casas decimais. caractere> de!ine vari1veis do tipo string, ou se3a, cadeia de caracteres. logico> de!ine vari1veis do tipo booleano, ou se3a, com valor VA=DADA9=O ou FALSO.

O VisuAlg permite tam'm a declarao de vari1veis estruturadas atravs da palavra2c ave vetor, como ser1 e"plicado a seguir. #omes de Vari1$eis e sua )eclarao Os nomes das vari1veis devem comear por uma letra e depois conter letras, n<meros ou underline, at um limite de I/ caracteres. As vari1veis podem ser simples ou estruturadas :na verso atual, os vetores podem ser de uma ou duas dimensBes;. 7o pode aver duas vari1veis com o mesmo nome, com a natural e"ceo dos elementos de um mesmo vetor. A seo de declarao de vari1veis comea com a palavra2c ave var, e continua com as seguintes sinta"es> <lista-de-variveis> : <tipo-de-dado> <lista-de-variveis> : vetor " "<lista-de-intervalos>"!" de <tipo-de-dado> 7a <lista-de-variveis>, os nomes das vari1veis esto separados por v-rgulas. 7a <lista-deintervalos>, os <intervalo> so separados por v-rgulas, e t,m a seguinte sinta"e> <intervalo>: <valor-inicial> .. <valor-final> 7a verso atual do VisuAlg, tanto <valor-inicial> como <valor-final> devem ser inteiros. Alm disso, e"ige2se evidentemente que <valor-final> se3a maior do que <valor-inicial>. A"emplos> var a: inteiro "alor#$ "alor%: real vet: vetor #..#&! de real matri': vetor &..($)..#&! de inteiro nome*do*aluno: caractere sinali'ador: logico 7ote que no 1 a necessidade de ponto e v-rgula ap5s cada declarao> 'asta pular lin a. A declarao de vetores an1loga ? linguagem &ascal> a vari1vel vet acima tem #/ elementos, com os -ndices de J#K a J#/K,

enquanto matri' corresponde a #+ elementos com -ndices J/,.K, J/,*K, J/,#/K, J#,.K, J#,*K, J#,#/K, ... at JL,#/K. O n<mero total de vari1veis suportado pelo VisuAlg +// :cada elemento de um vetor contado individualmente;. onstantes e omando de Atribuio O VisuAlg tem tr,s tipos de constantes> %um&ricos> so valores numricos escritos na !orma usual das linguagens de programao. &odem ser inteiros ou reais. 7este <ltimo caso, o separador de decimais o ponto e no a v-rgula, independente da con!igurao regional do computador onde o VisuAlg est1 sendo e"ecutado. O VisuAlg tam'm no suporta separadores de mil ares. Caracteres> qualquer cadeia de caracteres delimitada por aspas duplas :4;. '$gicos> admite os valores VA=DADA9=O ou FALSO.

A atri'uio de valores a vari1veis !eita com o operador +,. Do seu lado esquerdo !ica a vari1vel ? qual est1 sendo atri'u-do o valor, e ? sua direita pode2se colocar qualquer e"presso :constantes, vari1veis, e"pressBes numricas;, desde que seu resultado ten a tipo igual ao da vari1vel. Alguns e"emplos de atri'uiBes, usando as vari1veis declaradas acima> a +, "alor# +, #.. "alor% +, "alor# / a vet #! +, vet #! / 0a 1 -2 matri' -$3! +, a/( , . nome*do*aluno +, "4os5 da Silva" sinali'ador +, FA6S7

A Linguagem de &rogramao do VisuAlg :M;


8peradores AritmAticos Operadores un1rios, isto , so aplicados a um <nico operando. So os operadores aritmticos de maior preced,ncia. A"emplos> ,-$ /8. Anquanto o operador un1rio , inverte o sinal do seu operando, o operador / no altera o valor em nada o seu valor. Operador de diviso inteira. &or e"emplo, + N M O M. Dem a mesma preced,ncia do operador de diviso tradicional.

/$, 9

Operadores aritmticos tradicionais de adio, su'trao, multiplicao e diviso. &or conveno, 1 e / /$,$1$ t,m preced,ncia so're / e ,. &ara modi!icar a ordem de avaliao das operaBes, necess1rio usar / par,nteses como em qualquer e"presso aritmtica. :7D ou Operador de m5dulo :isto , resto da diviso inteira;. &or e"emplo, ) :7D - < %. Dem a mesma ; preced,ncia do operador de diviso tradicional. = Operador de potenciao. &or e"emplo, + P M O M+. Dem a maior preced,ncia entre os operadores aritmticos 'in1rios :aqueles que t,m dois operandos;. aracteres

8peradores de

Operador de concatenao de strings :isto , cadeias de caracteres;, quando usado com dois valores :vari1veis ou constantes; do tipo 4caractere4. &or e"emplo> ">io " / " de 4aneiro" < ">io de 4aneiro".

8peradores Relacionais <$ +$ ?$ +<$ ?<$ +? =espectivamente> igual, menor que, maior que, menor ou igual a, maior ou igual a, di!erente de. So utili8ados em e"pressBes l5gicas para se testar a relao entre dois valores do mesmo tipo. A"emplos> < - : I igual a IC; resulta em "@>DAD@A>7 @ "A" ? "B" :4A4 est1 depois de 4%4 na ordem al!a'ticaC; resulta em FA6S7.

Importante" 7o VisuAlg, as comparaBes entre strings no di*erenciam as letras mai<sculas das min<sculas. Assim, "ABC" igual a "aCc". Valores l5gicos o'edecem ? seguinte ordem> FA6S7 + "@>DAD@A>7.

8peradores .gicos nao ou e 8ou Operador un1rio de negao. nao "@>DAD@A>7 < FA6S7, e nao FA6S7 < "@>DAD@A>7. Dem a maior preced,ncia entre os operadores l5gicos. Aquivale ao D7E do &ascal. Operador que resulta "@>DAD@A>7 quando um dos seus operandos l5gicos !or verdadeiro. Aquivale ao 7> do &ascal. Operador que resulta "@>DAD@A>7 somente se seus dois operandos l5gicos !orem verdadeiros. Aquivale ao ADD do &ascal. Operador que resulta "@>DAD@A>7 se seus dois operandos l5gicos !orem di!erentes, e FA6S7 se !orem iguais. Aquivale ao F7> do &ascal.

omandos de %aBda de )ados escreva 0+lista-de-expresses>2 Ascreve no dispositivo de sa-da padro :isto , na 1rea ? direita da metade in!erior da tela do VisuAlg; o conte<do de cada uma das e"pressBes que compBem <lista-de-expresses>. As e"pressBes dentro desta lista devem estar separadas por v-rgulas@ depois de serem avaliadas, seus resultados so impressos na ordem indicada. G equivalente ao comando (rite do &ascal. De modo semel ante a &ascal, poss-vel especi!icar o n<mero de espaos no qual se dese3a escrever um determinado valor. &or e"emplo, o comando escreva08:.2 escreve o valor da vari1vel 8 em + espaos, alin ado2o ? direita. &ara vari1veis reais, pode2se tam'm especi!icar o n<mero de casas !racion1rias que sero e"i'idas. &or e"emplo, considerando G como uma vari1vel real, o comando escreva0G:H:%2escreve seu valor em 0 espaos colocando M casas decimais. escreval 0<lista-de-expresses>2. 9dem ao anterior, com a <nica di!erena que pula uma lin a em seguida. G equivalente ao (riteln do &ascal. A"emplos> algoritmo "e8emIlo" var 8: real G: inteiro a: caractere l: logico inicio 8 +, %.. G +, H a +, "teste" l +, "@>DAD@A>7 escreval 0"8"$ 8:(:#$ G/-:(2 // @screve: 8 %.. 3 escreval 0a$ "oJ"2 // @screve: testeoJ 0e deIois Iula linKa2 escreval 0a$ " oJ"2 // @screve: teste oJ 0e deIois Iula linKa2 escreval 0a / " oJ"2 // @screve: teste oJ 0e deIois Iula linKa2 escreva 0l2 // @screve: "@>DAD@A>7 fimalgoritmo 7ote que o VisuAlg separa e"pressBes do tipo numrico e l5gico com um espao ? esquerda, mas no as e"pressBes do tipo caractere, para que assim possa aver a concatenao. Quando se dese3a separar e"pressBes do tipo caractere, necess1rio acrescentar espaos nos locais adequados. omando de Entrada de )ados leia 0<lista-de-variveis>2 =ece'e valores digitados pelos usu1rio, atri'uindo2os ?s vari1veis cu3os nomes esto em <lista-devariveis> : respeitada a ordem especi!icada nesta lista;. G an1logo ao comando read do &ascal.

Ve3a no e"emplo a'ai"o o resultado> algoritmo "e8emIlo #" var 8: inteiroL inicio leia 082 escreva 082 fimalgoritmo O comando de leitura acima ir1 e"i'ir uma 3anela como a que se v, ao lado, com a mensagem padro> "@ntre com o valor de <nome-de-varivel>"

Se voc, clicar em Cancelar ou teclar )sc durante a leitura de dados, o programa ser1 imediatamente interrompido. omando de )es$io ondicional

se <expresso-lgica> entao <seqncia-de-comandos> fimse Ao encontrar este comando, o VisuAlg analisa a <expresso-lgica>. Se o seu resultado !or "@>DAD@A>7, todos os comandos da <seqncia-de-comandos>*:entre esta lin a e a lin a com fimse; so e"ecutados. Se o resultado !or FA6S7, estes comandos so despre8ados e a e"ecuo do algoritmo continua a partir da primeira lin a depois do fimse. se <expresso-lgica> entao <seqncia-de-comandos-1> senao <seqncia-de-comandos-2> fimse 7esta outra !orma do comando, se o resultado da avaliao de <expresso-lgica> !or "@>DAD@A>7, todos os comandos da <seqncia-de-comandos-1> :entre esta lin a e a lin a com senao; so e"ecutados, e a e"ecuo continua depois a partir da primeira lin a depois do fimse. Se o resultado !or FA6S7, estes comandos so despre8ados e o algoritmo continua a ser e"ecutado a partir da primeira lin a depois do senao, e"ecutando todos os comandos da <seqncia-de-comandos-2> :at a lin a com fimse;. Astes comandos equivalem ao if...t"en e if...t"en...else do &ascal. 7ote que no 1 necessidade de delimitadores de 'loco :como begin e end;, pois as seqR,ncias de comandos 31 esto delimitadas pelas palavras2c ave senao e fimse. O VisuAlg permite o anin amento desses comandos de desvio condicional. omando de %eleo 0?ltipla O VisuAlg implementa :com certas variaBes; o comando case do &ascal. A sinta"e a seguinte> escolKa <expresso-de-seleo> caso <exp11> !<exp12> !""" !<exp1n> <seqncia-de-comandos-1> caso <exp21> !<exp22> !""" !<exp2n> <seqncia-de-comandos-2>

... outrocaso <seqncia-de-comandos-extra> fimescolKa Ve3a o e"emplo a seguir, que ilustra 'em o que !a8 este comando> algoritmo "Eimes" var time: caractere inicio escreva 0"@ntre com o nome de um time de futeCol: "2 leia 0time2 escolKa time caso "Flamengo"$ "Fluminense"$ ""asco"$ "Botafogo" escreval 0"M um time carioca."2 caso "So Naulo"$ "Nalmeiras"$ "Santos"$ "CorOntKians" escreval 0"M um time Iaulista."2 outrocaso escreval 0"M de outro estado."2 fimescolKa fimalgoritmo

A Linguagem de &rogramao do VisuAlg :I;


omandos de Repetio O VisuAlg implementa as tr,s estruturas de repetio usuais nas linguagens de programao> o lao contado Iara...ate...faca :similar ao for...to...do do &ascal;, e os laos condicionados enPuanto...faca :similar ao ("ile...do; e reIita...ate :similar ao repeat...until;. A sinta"e destes comandos e"plicada a seguir. Para CCC *aa Asta estrutura repete uma seqR,ncia de comandos um determinado n<mero de ve8es. Iara <varivel> de <valor-inicial> ate <valor-limite> <seqncia-de-comandos> fimIara Iasso <incremento>! faca

+varivel ? <valor-inicial> <valor-limite!>

G a vari1vel contadora que controla o n<mero de repetiBes do lao. 7a verso atual, deve ser necessariamente uma vari1vel do tipo inteiro, como todas as e"pressBes deste comando. G uma e"presso que especi!ica o valor de iniciali8ao da vari1vel contadora antes da primeira repetio do lao. G uma e"presso que especi!ica o valor m1"imo que a vari1vel contadora pode alcanar. G opcional. Quando presente, precedida pela palavra Iasso, uma e"presso que especi!ica o incremento que ser1 acrescentado ? vari1vel contadora em cada repetio do lao. Quando esta opo no utili8ada, o valor padro de +incremento> #. Vale a pena ter em conta que tam'm poss-vel especi!icar valores negativos para <incremento>. &or outro lado, se a avaliao da e"presso +incremento ? resultar em valor nulo, a e"ecuo do algoritmo ser1 interrompida, com a impresso de uma mensagem de erro. 9ndica o !im da seqR,ncia de comandos a serem repetidos. Cada ve8 que o programa c ega neste ponto, acrescentado ? vari1vel contadora o valor de +incremento ?, e comparado a <valor-limite!>. Se !or menor ou igual :ou maior ou igual, quando <incremento!> !or negativo;, a seqR,ncia de comandos ser1 e"ecutada mais uma ve8@ caso contr1rio, a e"ecuo prosseguir1 a partir do primeiro comando que este3a ap5s o fimIara.

<incremento!>

fimIara

<valor-inicial!>,!<valor-limite!>!e!<incremento!> so avaliados uma ?nica $e+ antes da e"ecuo da primeira repetio, e no se alteram durante a e(ecuo do lao, mesmo que vari1veis eventualmente presentes nessas e"pressBes ten am seus valores alterados.

7o e"emplo a seguir, os n<meros de # a #/ so e"i'idos em ordem crescente. algoritmo "DQmeros de # a #&" var R: inteiro inicio Iara R de # ate #& faca escreva 0R:-2 fimIara fimalgoritmo Importante" Se, logo no in-cio da primeira repetio, <valor-inicial!> !or maior que <valor-limite!> :ou menor, quando <incremento> !or negativo;, o lao no ser1 e"ecutado nen uma ve8. O e"emplo a seguir no imprime nada. algoritmo "Dumeros de #& a # 0no funciona2" var R: inteiro inicio Iara R de #& ate # faca escreva 0R:-2 fimIara fimalgoritmo Aste outro e"empo, no entanto, !uncionar1 por causa do passo -<> algoritmo "Dumeros de #& a # 0este funciona2" var R: inteiro inicio Iara R de #& ate # Iasso ,# faca escreva 0R:-2 fimIara fimalgoritmo Enquanto CCC *aa Asta estrutura repete uma seqR,ncia de comandos enquanto uma determinada condio :especi!icada atravs de uma e"presso l5gica; !or satis!eita. enPuanto <expresso-lgica> faca <seqncia-de-comandos> fimenPuanto <expresso-lgica> Asta e"presso que avaliada antes de cada repetio do lao. Quando seu resultado !or VA=DADA9=O, <seqncia-de-comandos> e"ecutada. 9ndica o !im da <seqncia-de-comandos> que ser1 repetida. Cada ve8 que a e"ecuo atinge este ponto, volta2se ao in-cio do lao para que <expressolgica> se3a avaliada novamente. Se o resultado desta avaliao !or VA=DADA9=O, a <seqncia-de-comandos> ser1 e"ecutada mais uma ve8@ caso contr1rio, a e"ecuo prosseguir1 a partir do primeiro comando ap5s fimenPuanto.

fimenPuanto

O mesmo e"emplo anterior pode ser resolvido com esta estrutura de repetio> algoritmo "DQmeros de # a #& 0com enPuanto...faca2" var R: inteiro inicio R +, # enPuanto R +< #& faca escreva 0R:-2 R +, R / # fimenPuanto fimalgoritmo Importante" Como o lao enPuanto...faca testa sua condio de parada antes de e"ecutar sua seqR,ncia de comandos, esta seqR,ncia poder1 ser e"ecutada +ero ou mais $e+es.

Repita CCC atA Asta estrutrura repete uma seqR,ncia de comandos at que uma determinada condio :especi!icada atravs de uma e"presso l5gica; se3a satis!eita. reIita <seqncia-de-comandos> ate <expresso-lgica> reIita ate +expressolgica? 9ndica o in-cio do lao. 9ndica o !im da <seqncia-de-comandos>!a serem repetidos. Cada ve8 que o programa c ega neste ponto, <expresso-lgica> avaliada> se seu resultado !or FALSO, os comandos presentes entre esta lin a e a lin a reIita so e"ecutados@ caso contr1rio, a e"ecuo prosseguir1 a partir do primeiro comando ap5s esta lin a.

Considerando ainda o mesmo e"emplo> algoritmo "DQmeros de # a #& 0com reIita2" var R: inteiro inicio R +, # reIita escreva 0R:-2 R +, R / # ate R ? #& fimalgoritmo Importante" Como o lao reIita...ate testa sua condio de parada depois de e"ecutar sua seqR,ncia de comandos, esta seqR,ncia poder1 ser e"ecutada uma ou mais $e+es. omando Interrompa As tr,s estruturas de repetio acima permitem o uso do comando interromIa, que causa uma sa-da imediata do lao. Am'ora esta tcnica este3a de certa !orma em desacordo com os princ-pios da programao estruturada, o comando interromIa !oi inclu-do no VisuAlg por ser encontrado na literatura de introduo ? programao e mesmo em linguagens como o O'3ect &ascal :Delp iESTli";, Clipper, V%, etc. Seu uso e"empli!icado a seguir> algoritmo "DQmeros de # a #& 0com interromIa2" var 8: inteiro inicio 8 +, & reIita 8 +, 8 / # escreva 08:-2 se 8 < #& entao interromIa fimse ate falso fimalgoritmo O VisuAlg permite ainda uma !orma alternativa do comando reIita...ate, com a seguinte sinta"e> algoritmo "DQmeros de # a #& 0com interromIa2 AA" var 8: inteiro inicio 8 +, & repita 8 +, 8 / # escreva 08:-2 se 8 < #& entao interromIa fimse fimrepita fimalgoritmo

Com esta sinta"e alternativa, o uso do interromIa o'rigat5rio, pois a <nica maneira de se sair do lao reIita...fimreIita@ caso contr1rio, este lao seria e"ecutado indeterminadamente.

A Linguagem de &rogramao do VisuAlg :L;


Subprograma um programa que au"ilia o programa principal atravs da reali8ao de uma determinada su'tare!a. Dam'm costuma rece'er os nomes de sub-rotina, procedimento,*m&todo ou m$dulo. Os su'programas so c amados dentro do corpo do programa principal como se !ossem comandos. Ap5s seu trmino, a e"ecuo continua a partir do ponto onde !oi c amado. G importante compreender que a c amada de um su'programa simplesmente gera um des$io pro$isrio no *lu(o de e(ecuo. U1 um caso particular de su'programa que rece'e o nome de funo. Vma funo, alm de e"ecutar uma determinada tare!a, retorna um valor para quem a c amou, que o resultado da sua e"ecuo. &or este motivo, a c amada de uma !uno aparece no corpo do programa principal como uma e,presso, e no como um comando. Cada su'programa, alm de ter acesso ?s vari1veis do programa que o c amou :so as vari1veis globais;, pode ter suas pr5prias vari1veis :so as vari1veis locais;, que e"istem apenas durante sua c amada. Ao se c amar um su'programa, tam'm poss-vel passar2l e determinadas in!ormaBes que rece'em o nome de par-metros :so valores que, na lin a de c amada, !icam entre os par,nteses e que esto separados por v-rgulas;. A quantidade dos parWmetros, sua seqR,ncia e respectivos tipos no podem mudar> devem estar de acordo com o que !oi especi!icado na sua correspondente declarao. &ara se criar su'programas, preciso descrev,2los ap5s a declarao das vari1veis e antes do corpo do programa principal. O VisuAlg possi'ilita declarao e c amada de su'programas nos moldes da linguagem &ascal, ou se3a, procedimentos e !unBes com passagem de parWmetros por valor ou re!er,ncia. 9sso ser1 e"plicado a seguir. Procedimentos Am VisuAlg, procedimento um su'programa que no retorna nen um valor :corresponde ao procedure do &ascal;. Sua declarao, que deve estar entre o !inal da declarao de vari1veis e a lin a inicio do programa principal, segue a sinta"e a'ai"o> Irocedimento <nome-de-procedimento> // Seo de Declaraes Anternas inicio // Seo de Comandos fimIrocedimento 0<seqncia-de-declaraes-de-par#metros>2!

O <nome-de-procedimento> o'edece as mesmas regras de nomenclatura das vari1veis. &or outro lado, a <seqncia-de-declaraes-de-par#metros> uma seqR,ncia de var! <seqncia-de-par#metros>:!<tipo-de-dado> separadas por ponto e v-rgula. A presena :opcional; da palavra2c ave var indica passagem de parWmetros por re!er,ncia@ caso contr1rio, a passagem ser1 por valor. &or sua ve8, <seqncia-de-par#metros> uma seqR,ncia de nomes de parWmetros :tam'm o'edecem a mesma regra de nomenclatura de vari1veis; separados por v-rgulas. De modo an1logo ao programa principal, a seo de declarao internas comea com a palavra2c ave var, e continua com a seguinte sinta"e> <lista-de-variveis> : <tipo-de-dado> 7os pr5"imos e"emplos, atravs de um su'programa soma, ser1 calculada a soma entre os valores L e X* :ou se3a, ser1 o'tido o resultado #I; que o programa principal imprimir1 em seguida. 7o primeiro caso, um procedimento sem parDmetros utili8a uma vari1vel local au8 para arma8enar provisoriamente o resultado deste c1lculo :evidentemente, esta vari1vel desnecess1ria, mas est1 a- apenas para ilustrar o e"emplo;, antes de atri'u-2lo ? vari1vel glo'al res> Irocedimento soma var au8: inteiro

inicio // n$ m e res so variSveis gloCais au8 +, n / m res +, au8 fimIrocedimento 7o programa principal deve aver os seguintes comandos> n +, ( m +, ,3 soma escreva0res2 A mesma tare!a poderia ser e"ecutada atravs de um procedimento com parDmetros, como descrito a'ai"o> Irocedimento soma 08$G: inteiro2 inicio // res 5 variSvel gloCal res +, 8 / G fimIrocedimento 7o programa principal deve aver os seguintes comandos> n +, ( m +, ,3 soma0n$m2 escreva0res2 A passagem de parWmetros do e"emplo acima c ama2se passagem por $alor. 7este caso, o su'programa simplesmente rece'e um valor que utili8a durante sua e"ecuo. Durante essa e"ecuo, os parWmetros passados por valor so an1logos ?s suas vari1veis locais, mas com uma <nica di!erena> rece'eram um valor inicial no momento em que o su'programa !oi c amado. 2unEes Am VisuAlg, !uno um su'programa que retorna um valor :corresponde ao function do &ascal;. De modo an1logo aos procedimentos, sua declarao deve estar entre o !inal da declarao de vari1veis e a lin a inicio do programa principal, e segue a sinta"e a'ai"o> funcao <nome-de-f$no> 0<seqncia-de-declaraes-de-par#metros>2!: <tipo-de-dado> // Seo de Declaraes Anternas inicio // Seo de Comandos fimfuncao O <nome-de-f$no> o'edece as mesmas regras de nomenclatura das vari1veis. &or outro lado, a <seqncia-de-declaraes-de-par#metros> uma seqR,ncia de var! <seqncia-de-par#metros>:!<tipo-de-dado> separadas por ponto e v-rgula. A presena :opcional; da palavra2c ave var indica passagem de parWmetros por re!er,ncia@ caso contr1rio, a passagem ser1 por valor. &or sua ve8, <seqncia-de-par#metros> uma seqR,ncia de nomes de parWmetros :tam'm o'edecem a mesma regra de nomenclatura de vari1veis; separados por v-rgulas. O valor retornado pela !uno ser1 do tipo especi!icado na sua declarao :logo ap5s os dois pontos;. Am alguma parte da !uno :de modo geral, no seu !inal;, este valor deve ser retornado atravs do comando retorne. De modo an1logo ao programa principal, a seo de declarao internas comea com a palavra2c ave var, e continua com a seguinte sinta"e> <lista-de-variveis> : <tipo-de-dado> Voltando ao e"emplo anterior, no qual calculamos e imprimimos a soma entre os valores L e X*, vamos mostrar como isso poderia ser !eito atravs de uma *uno sem parDmetros. Ala tam'm utili8a uma vari1vel local au8 para arma8enar provisoriamente o resultado deste c1lculo, antes de atri'u-2lo ? vari1vel glo'al res>

funcao soma: inteiro var au8: inteiro inicio // n$ m e res so variSveis gloCais au8 +, n / m retorne au8 fimfuncao 7o programa principal deve aver os seguintes comandos> n +, ( m +, ,3 res +, soma escreva0res2 Se reali81ssemos essa mesma tare!a com uma *uno com parDmetros passados por $alor , poderia ser do seguinte modo> funcao soma 08$G: inteiro2: inteiro inicio retorne 8 / G fimfuncao 7o programa principal deve aver os seguintes comandos> n +, ( m +, ,3 res +, soma0n$m2 escreva0res2 Passagem de ParDmetros por Re*erFncia U1 ainda uma outra !orma de passagem de parWmetros para su'programas> a passagem por re!er,ncia. 7este caso, o su'programa no rece'e apenas um valor, mas sim o endereo de uma vari1vel glo'al. &ortanto, qualquer modi!icao que !or reali8ada no conte<do deste parWmetro a!etar1 tam'm a vari1vel glo'al que est1 associada a ele. Durante a e"ecuo do su'programa, os parWmetros passados por re!er,ncia so an1logos ?s vari1veis glo'ais. 7o VisuAlg, de !orma an1loga a &ascal, essa passagem !eita atravs da palavra var na declarao do parWmetro. Voltando ao e"emplo da soma, o procedimento a'ai"o reali8a a mesma tare!a utili8ando passagem de parWmetros por re!er,ncia> Irocedimento soma 08$G: inteiroL var result: inteiro2 inicio result +, 8 / G fimIrocedimento 7o programa principal deve aver os seguintes comandos> n +, ( m +, ,3 soma0n$m$res2 escreva0res2 Recurso e Anin-amento A atual verso do VisuAlg permite recurso, isto , a possi'ilidade de que um su'programa possa c amar a si mesmo. A !uno do e"emplo a'ai"o calcula recursivamente o !atorial do n<mero inteiro que rece'e como parWmetro> funcao fatorial 0v: inteiro2: inteiro inicio se v +< % entao retorne v senao retorne v 1 fatorial0v,#2 fimse fimfuncao

Am &ascal, permitido o anin amento de su'programas, isto , cada su'programa tam'm pode ter seus pr5prios su'programas. 7o entanto, esta caracter-stica di!iculta a ela'orao dos compiladores e, na pr1tica, no muito importante. &or este motivo, ela no permitida na maioria das linguagens de programao :como C, por e"emplo;, e o VisuAlg no a implementa.

A Linguagem de &rogramao do VisuAlg :+;


O VisuAlg implementa algumas e"tensBes ?s linguagens 4tradicionais4 de programao, com o intuito principal de a3udar o seu uso como !erramenta de ensino. Alas so mostradas a seguir. omando Aleatrio $uitas ve8es a digitao de dados para o teste de um programa torna2se uma tare!a entediante. Com o uso do comando aleatorio do VisuAlg, sempre que um comando leia !or encontrado, a digitao de valores numricos eEou caracteres su'stitu-da por uma gerao aleat5ria. Aste comando no a!eta a leitura de vari1veis l5gicas> com certe8a, uma coisa pouco usual em programao... Aste comando tem as seguintes sinta"es> Ativa a gerao de valores aleat5rios que su'stituem a digitao de dados. A palavra2c ave on opcional. A !ai"a padro de valores gerados de / a #// inclusive. &ara a gerao de dados do tipo caractere, no 1 uma !ai"a pr2esta'elecida> os dados gerados sero sempre strings de + letras mai<sculas. Ativa a gerao de dados numricos aleat5rios esta'elecendo uma !ai"a de valores m-nimos e m1"imos. Se apenas <!valor1>!!or !ornecido, a !ai"a ser1 de / a <valor1>!inclusive@ caso contr1rio, a !ai"a ser1 de <valor1> a <valor2> inclusive. Se <valor2> !or menor que <valor1>, o VisuAlg os trocar1 para que a !ai"a !ique correta. Importante" <valor1> e <valor2> devem ser constantes numAricas, e no e"pressBes. Desativa a gerao de valores aleat5rios. A palavra2c ave off o'rigat5ria.

aleatorio

on!

aleatorio <valor1!> <valor2!> !

aleatorio off

omando Arqui$o $uitas ve8es necess1rio repetir os testes de um programa com uma srie igual de dados. &ara casos como este, o VisuAlg permite o arma8enamento de dados em um arquivo2te"to, o'tendo deles os dados ao e"ecutar os comandos leia. Asta caracter-stica !unciona da seguinte maneira> #; Se no e(istir o arquivo com nome especi!icado, o VisuAlg !ar1 uma leitura de dados atravs da digitao, arma8enando os dados lidos neste arquivo, na ordem em que !orem !ornecidos. M; Se o arquivo e(istir, o VisuAlg o'ter1 os dados deste arquivo at c egar ao seu !im. Da- em diante, !ar1 as leituras de dados atravs da digitao. I; Somente um comando arPuivo pode ser empregado em cada pseudoc5digo, e ele dever1 estar na seo de declaraBes :dependendo do 4sucesso4 desta caracter-stica, em !uturas versBes ela poder1 ser mel orada...;. L; Caso no se3a !ornecido um camin o, o VisuAlg ir1 procurar este arquivo na pasta de tra'al o corrente :geralmente, a pasta onde o programa V9SVAL6.AXA est1;. Aste comando no prev, uma e"tenso padro@ portanto, a especi!icao do nome do arquivo deve ser completa, inclusive com sua e"tenso :por e"emplo, .t"t, .dat, etc.;. A sinta"e do comando > arPuivo <nome-de-arq$ivo> <nome-de-arq$ivo> uma constante caractere :entre aspas duplas;. Ve3a o e"emplo a seguir> algoritmo "lendo do arPuivo" arPuivo "teste.t8t" var 8$G: inteiro inicio Iara 8 de # ate . faca leia 0G2

fimIara fimalgoritm omando @imer Am'ora o VisuAlg se3a um interpretador de pseudoc5digo, seu desempen o muito 'om> o tempo gasto para interpretar cada lin a digitada apenas uma !rao de segundo. Antretanto, por motivos educacionais, pode ser conveniente e"i'ir o !lu"o de e"ecuo do pseudoc5digo comando por comando, em 4cWmera lenta4. O comando timer serve para este prop5sito> insere um atraso :que pode ser especi!icado; antes da e"ecuo de cada lin a. Alm disso, reala em !undo a8ul o comando que est1 sendo e"ecutado, da mesma !orma que na e"ecuo passo a passo. Sua sinta"e a seguinte> timer on Ativa o timer.

Ativa o timer esta'elecendo seu tempo de atraso em milissegundos. O valor padro +//, que equivale a meio segundo. O argumento +tempo-de-atraso> timer <tempo-de-atraso> deve ser uma constante inteira com valor entre / e #////. Valores menores que / so corrigidos para /, e maiores que #//// para #////. timer off Desativa o timer.

Ao longo do pseudoc5digo, pode aver v1rios comandos timer. Dodos eles devem estar na seo de comandos. Vma ve8 ativado, o atraso na e"ecuo dos comandos ser1 mantido at se c egar ao !inal do pseudoc5digo ou at ser encontrado um comando timer off. omandos de )epurao 7en um am'iente de desenvolvimento est1 completo se no ouver a possi'ilidade de se inserir pontos de interrupo :breakpoints; no pseudoc5digo para !ins de depurao. VisuAlg implementa dois comandos que au"iliam a depurao ou an1lise de um pseudoc5digo> o comando Iausa e o comando deCug. omando Pausa Sua sinta"e simplesmente> Iausa Aste comando insere uma interrupo incondicional no pseudoc5digo. Quando ele encontrado, o VisuAlg p1ra a e"ecuo do pseudoc5digo e espera alguma ao do programador. 7este momento, poss-vel> analisar os valores das vari1veis ou das sa-das produ8idas at o momento@ e"ecutar o pseudoc5digo passo a passo :com F.;@ prosseguir sua e"ecuo normalmente :com F*;@ ou simplesmente termin12lo :com Ctrl2FM;. Com e"ceo da alterao do te"to do pseudoc5digo, todas as !unBes do VisuAlg esto dispon-veis. omando )ebug Sua sinta"e > deCug +expresso-lgica? Se a avaliao de +expresso-lgica? resultar em valor VA=DADA9=O, a e"ecuo do pseudoc5digo ser1 interrompida como no comando Iausa. Dessa !orma, poss-vel a insero de um breakpoint condicional no pseudoc5digo. omando Eco Sua sinta"e > eco on T off Aste comando ativa :eco on; ou desativa :eco off; a impresso dos dados de entrada na sa-da2padro do VisuAlg, ou se3a, na 1rea ? direita da parte in!erior da tela. Asta caracter-stica pode ser <til quando ouver uma grande quantidade de dados de entrada, e se dese3a apenas analisar a sa-da produ8ida. Convm utili812la tam'm quando os dados de entrada prov,m de um arquivo 31 con ecido.

omando ronGmetro Sua sinta"e > cronometro on T off Aste comando ativa :cronometro on; ou desativa :cronometro off; o cronYmetro interno do VisuAlg. Quando o comando cronometro on encontrado, o VisuAlg imprime na sa-da2padro a in!ormao 4CronYmetro iniciado.4, e comea a contar o tempo em milissegundos. Quando o comando cronometro off encontrado, o VisuAlg imprime na sa-da2padro a in!ormao 4CronYmetro terminado. Dempo decorrido> "" segundo:s; e "" ms4. Aste comando <til na an1lise de desempen o de algoritmos :ordenao, 'usca, etc.;. omando .impatela Sua sinta"e limIatela Aste comando simplesmente limpa a tela DOS do Visualg :a simulao da tela do computador;. Ale no a!eta a 4tela4 que e"iste na parte in!erior direita da 3anela principal do Visualg.

Você também pode gostar