Você está na página 1de 16

VisuAlg

O VisuAlg um programa que edita, interpreta e executa algoritmos com uma


linguagem prxima do portugus estruturado como um programa normal de
computador. um programa de livre uso e distribuio, empregado no ensino de
programao em vrias escolas e universidades no Brasil e no exterior.

A Linguagem de Programao do VisuAlg


A linguagem que o VisuAlg interpreta bem simples: uma verso portuguesa dos
pseudocdigos largamente utilizados nos livros de introduo programao,
conhecida como "Portugol". Tomei a liberdade de acrescentar-lhe alguns comandos
novos, com o intuito de criar facilidades especficas para o ensino de tcnicas de
elaborao de algoritmos. Inicialmente, pensava em criar uma sintaxe muito simples e
"liberal", para que o usurio se preocupasse apenas com a lgica da resoluo dos
problemas e no com as palavras-chave, pontos e vrgulas, etc. No entanto, cheguei
depois concluso de que alguma formalidade seria no s necessria como til, para
criar um sentido de disciplina na elaborao do "cdigo-fonte".
A linguagem do VisuAlg permite apenas um comando por linha: desse modo, no h
necessidade de tokens separadores de estruturas, como o ponto e vrgula em Pascal.
Tambm no existe o conceito de blocos de comandos (que correspondem ao begin e
end do Pascal e ao { e } do C), nem comandos de desvio incondicional como o go to. Na
verso atual do VisuAlg, com exceo das rotinas de entrada e sada, no h nenhum
subprograma embutido, tal como Inc(), Sqr(), Ord(), Chr(), Pos(), Copy() ou outro.
Importante: para facilitar a digitao e evitar confuses, todas as palavras-chave do
VisuAlg foram implementadas sem acentos, cedilha, etc. Portanto, o tipo de dados
lgico definido como logico, o comando se..ento..seno definido como
se..entao..senao, e assim por diante. O VisuAlg tambm no distingue maisculas e
minsculas no reconhecimento de palavras-chave e nomes de variveis.

Formato Bsico do Pseudocdigo e Incluso de Comentrios


O formato bsico do nosso pseudocdigo o seguinte:
algoritmo "semnome"
// Funo :
// Autor :
// Data :
// Seo de Declaraes

Texto retirado do site Apoio Informtica, desenvolvedor do VisuAlg. Acesso em Agosto de 2016.
Disponvel em: http://www.apoioinformatica.inf.br/produtos/visualg

inicio
// Seo de Comandos
fimalgoritmo

A primeira linha composta pela palavra-chave algoritmo seguida do seu nome


delimitado por aspas duplas. Este nome ser usado como ttulo nas janelas de leitura
de dados (nas futuras verses do VisuAlg, talvez utilizemos este dado de outras
formas). A seo que se segue a de declarao de variveis, que termina com a linha
que contm a palavra-chave inicio. Deste ponto em diante est a seo de comandos,
que continua at a linha em que se encontre a palavra-chave fimalgoritmo. Esta ltima
linha marca o final do pseudocdigo: todo texto existente a partir dela ignorado pelo
interpretador.
O VisuAlg permite a incluso de comentrios: qualquer texto precedido de "//"
ignorado, at se atingir o final da sua linha. Por este motivo, os comentrios no se
estendem por mais de uma linha. Quando se deseja escrever comentrios mais longos,
que ocupem vrias linhas, cada uma delas dever comear por "//".

Tipos de Dados
O VisuAlg prev quatro tipos de dados: inteiro, real, cadeia de caracteres e lgico (ou
booleano). As palavras-chave que os definem so as seguintes (observe que elas no
tm acentuao):
inteiro: define variveis numricas do tipo inteiro, ou seja, sem casas decimais.
real: define variveis numricas do tipo real, ou seja, com casas decimais.
caractere: define variveis do tipo string, ou seja, cadeia de caracteres.
logico: define variveis do tipo booleano, ou seja, com valor VERDADEIRO ou FALSO.

Nomes de Variveis e sua Declarao


Os nomes das variveis devem comear por uma letra e depois conter letras, nmeros
ou underline, at um limite de 30 caracteres. As variveis podem ser simples ou
estruturadas (na verso atual, os vetores podem ser de uma ou duas dimenses). No
pode haver duas variveis com o mesmo nome, com a natural exceo dos elementos
de um mesmo vetor.

Texto retirado do site Apoio Informtica, desenvolvedor do VisuAlg. Acesso em Agosto de 2016.
Disponvel em: http://www.apoioinformatica.inf.br/produtos/visualg

A seo de declarao de variveis comea com a palavra-chave var, e continua com as


seguintes sintaxes:
<lista-de-variveis> : <tipo-de-dado>
<lista-de-variveis> : vetor "["<lista-de-intervalos>"]" de <tipo-de-dado>
Na <lista-de-variveis>, os nomes das variveis esto separados por vrgulas. Na <listade-intervalos>, os <intervalos> so separados por vrgulas, e tm a seguinte sintaxe:
<intervalo>: <valor-inicial> .. <valor-final>
Na verso atual do VisuAlg, tanto <valor-inicial> como <valor-final> devem ser inteiros.
Alm disso, exige-se evidentemente que <valor-final> seja maior do que <valor-inicial>.
Exemplos:
var a: inteiro
Valor1, Valor2: real
vet: vetor [1..10] de real
matriz: vetor [0..4,8..10] de inteiro
nome_do_aluno: caractere
sinalizador: logico

Note que no h a necessidade de ponto e vrgula aps cada declarao: basta pular
linha. A declarao de vetores anloga linguagem Pascal: a varivel vet acima tem
10 elementos, com os ndices de [1] a [10], enquanto matriz corresponde a 15
elementos com ndices [0,8], [0,9], [0,10], [1,8], [1,9], [1,10], ... at [4,10]. O nmero
total de variveis suportado pelo VisuAlg 500 (cada elemento de um vetor contado
individualmente).

Constantes e Comando de Atribuio


O VisuAlg tem trs tipos de constantes:
Numricos: so valores numricos escritos na forma usual das linguagens de
programao. Podem ser inteiros ou reais. Neste ltimo caso, o separador de decimais
o ponto e no a vrgula, independente da configurao regional do computador onde
o VisuAlg est sendo executado. O VisuAlg tambm no suporta separadores de
milhares.
Caracteres: qualquer cadeia de caracteres delimitada por aspas duplas ( ).
Lgicos: admite os valores VERDADEIRO ou FALSO.
Texto retirado do site Apoio Informtica, desenvolvedor do VisuAlg. Acesso em Agosto de 2016.
Disponvel em: http://www.apoioinformatica.inf.br/produtos/visualg

A atribuio de valores a variveis feita com o operador <-. Do seu lado esquerdo fica
a varivel qual est sendo atribudo o valor, e sua direita pode-se colocar qualquer
expresso (constantes, variveis, expresses numricas), desde que seu resultado
tenha tipo igual ao da varivel.
Alguns exemplos de atribuies, usando as variveis declaradas acima:
a <- 3
Valor1 <- 1.5
Valor2 <- Valor1 + a
vet[1] <- vet[1] + (a * 3)
matriz[3,9] <- a/4 - 5
nome_do_aluno <- "Jos da Silva"
sinalizador <- FALSO

Operadores
Operadores Aritmticos
+, Operadores unrios, isto , so aplicados a um nico operando. So os
operadores aritmticos de maior precedncia. Exemplos: -3, +x. Enquanto o operador
unrio - inverte o sinal do seu operando, o operador + no altera o valor em nada o
seu valor.
\
Operador de diviso inteira. Por exemplo, 5 \ 2 = 2. Tem a mesma precedncia
do operador de diviso tradicional.
+, -, *, /
Operadores aritmticos tradicionais de adio, subtrao, multiplicao
e diviso. Por conveno, * e / tm precedncia sobre + e -. Para modificar a ordem de
avaliao das operaes, necessrio usar parnteses como em qualquer expresso
aritmtica.
MOD ou % Operador de mdulo (isto , resto da diviso inteira). Por exemplo, 8
MOD 3 = 2. Tem a mesma precedncia do operador de diviso tradicional.
^
Operador de potenciao. Por exemplo, 5 ^ 2 = 25. Tem a maior precedncia
entre os operadores aritmticos binrios (aqueles que tm dois operandos).

Texto retirado do site Apoio Informtica, desenvolvedor do VisuAlg. Acesso em Agosto de 2016.
Disponvel em: http://www.apoioinformatica.inf.br/produtos/visualg

Operadores de Caracteres
+
Operador de concatenao de strings (isto , cadeias de caracteres), quando
usado com dois valores (variveis ou constantes) do tipo caractere. Por exemplo: "Rio "
+ " de Janeiro" = "Rio de Janeiro".
Operadores Relacionais
=, <, >, <=, >=, <>
Respectivamente: igual, menor que, maior que, menor ou igual
a, maior ou igual a, diferente de. So utilizados em expresses lgicas para se testar a
relao entre dois valores do mesmo tipo. Exemplos: 3 = 3 ( 3 igual a 3?) resulta em
VERDADEIRO ; "A" > "B" ("A" est depois de "B" na ordem alfabtica?) resulta em
FALSO.
Importante: No VisuAlg, as comparaes entre strings no diferenciam as letras
maisculas das minsculas. Assim, "ABC" igual a "abc". Valores lgicos obedecem
seguinte ordem: FALSO < VERDADEIRO.
Operadores Lgicos
nao Operador unrio de negao. nao VERDADEIRO = FALSO, e nao FALSO =
VERDADEIRO. Tem a maior precedncia entre os operadores lgicos. Equivale ao NOT
do Pascal.
ou
Operador que resulta VERDADEIRO quando um dos seus operandos lgicos for
verdadeiro. Equivale ao OR do Pascal.
e
Operador que resulta VERDADEIRO somente se seus dois operandos lgicos
forem verdadeiros. Equivale ao AND do Pascal.
xou Operador que resulta VERDADEIRO se seus dois operandos lgicos forem
diferentes, e FALSO se forem iguais. Equivale ao XOR do Pascal.

Comandos de Sada de Dados


escreva (<lista-de-expresses>)
Escreve no dispositivo de sada padro (isto , na rea direita da metade inferior da
tela do VisuAlg) o contedo de cada uma das expresses que compem <lista-deexpresses>. As expresses dentro desta lista devem estar separadas por vrgulas;
depois de serem avaliadas, seus resultados so impressos na ordem indicada.
equivalente ao comando write do Pascal.

Texto retirado do site Apoio Informtica, desenvolvedor do VisuAlg. Acesso em Agosto de 2016.
Disponvel em: http://www.apoioinformatica.inf.br/produtos/visualg

De modo semelhante a Pascal, possvel especificar o nmero de espaos no qual se


deseja escrever um determinado valor. Por exemplo, o comando escreva(x:5) escreve
o valor da varivel x em 5 espaos, alinhado-o direita. Para variveis reais, pode-se
tambm especificar o nmero de casas fracionrias que sero exibidas. Por exemplo,
considerando y como uma varivel real, o comando escreva(y:6:2) escreve seu valor
em 6 espaos colocando 2 casas decimais.
escreval (<lista-de-expresses>).
Idem ao anterior, com a nica diferena que pula uma linha em seguida. equivalente
ao writeln do Pascal.
Exemplos:
algoritmo "exemplo"
var x: real
y: inteiro
a: caractere
l: logico
inicio
x <- 2.5
y <- 6
a <- "teste"
l <- VERDADEIRO
escreval ("x", x:4:1, y+3:4) // Escreve: x 2.5
9
escreval (a, "ok")
// Escreve: testeok (e depois
pula linha)
escreval (a, " ok")
// Escreve: teste ok (e depois
pula linha)
escreval (a + " ok")
// Escreve: teste ok (e depois
pula linha)
escreva (l)
// Escreve: VERDADEIRO
fimalgoritmo

Note que o VisuAlg separa expresses do tipo numrico e lgico com um espao
esquerda, mas no as expresses do tipo caractere, para que assim possa haver a
concatenao. Quando se deseja separar expresses do tipo caractere, necessrio
acrescentar espaos nos locais adequados.

Comando de Entrada de Dados


leia (<lista-de-variveis>)

Texto retirado do site Apoio Informtica, desenvolvedor do VisuAlg. Acesso em Agosto de 2016.
Disponvel em: http://www.apoioinformatica.inf.br/produtos/visualg

Recebe valores digitados pelos usurio, atribuindo-os s variveis cujos nomes esto
em <lista-de-variveis> ( respeitada a ordem especificada nesta lista). anlogo ao
comando read do Pascal.
Veja no exemplo abaixo o resultado:
algoritmo "exemplo 1"
var x: inteiro;
inicio
leia (x)
escreva (x)
fimalgoritmo

Comando de Desvio Condicional


se <expresso-lgica> entao
<seqncia-de-comandos>
fimse
Ao encontrar este comando, o VisuAlg analisa a <expresso-lgica>. Se o seu resultado
for VERDADEIRO, todos os comandos da <seqncia-de-comandos> (entre esta linha e
a linha com fimse) so executados. Se o resultado for FALSO, estes comandos so
desprezados e a execuo do algoritmo continua a partir da primeira linha depois do
fimse.
se <expresso-lgica> entao
<seqncia-de-comandos-1>
senao
<seqncia-de-comandos-2>
fimse
Nesta outra forma do comando, se o resultado da avaliao de <expresso-lgica> for
VERDADEIRO, todos os comandos da <sequncia-de-comandos-1> (entre esta linha e a
linha com senao) so executados, e a execuo continua depois a partir da primeira
linha depois do fimse. Se o resultado for FALSO, estes comandos so desprezados e o
algoritmo continua a ser executado a partir da primeira linha depois do senao,
executando todos os comandos da <seqncia-de-comandos-2> (at a linha com
fimse).
Estes comandos equivalem ao if...then e if...then...else do Pascal. Note que no h
necessidade de delimitadores de bloco (como begin e end), pois as seqncias de
Texto retirado do site Apoio Informtica, desenvolvedor do VisuAlg. Acesso em Agosto de 2016.
Disponvel em: http://www.apoioinformatica.inf.br/produtos/visualg

comandos j esto delimitadas pelas palavras-chave senao e fimse. O VisuAlg permite


o aninhamento desses comandos de desvio condicional.

Comando de Seleo Mltipla


O VisuAlg implementa (com certas variaes) o comando case do Pascal. A sintaxe a
seguinte:
escolha <expresso-de-seleo>
caso <exp11>, <exp12>, ..., <exp1n>
<seqncia-de-comandos-1>
caso <exp21>, <exp22>, ..., <exp2n>
<seqncia-de-comandos-2>
...
outrocaso
<seqncia-de-comandos-extra>
fimescolha
Veja o exemplo a seguir, que ilustra bem o que faz este comando:
algoritmo "Times"
var time: caractere
inicio
escreva ("Entre com o nome de um time de futebol: ")
leia (time)
escolha time
caso "Flamengo", "Fluminense", "Vasco", "Botafogo"
escreval (" um time carioca.")
caso "So Paulo", "Palmeiras", "Santos", "Corinthians"
escreval (" um time paulista.")
outrocaso
escreval (" de outro estado.")
fimescolha
fimalgoritmo

Comandos de Repetio
O VisuAlg implementa as trs estruturas de repetio usuais nas linguagens de
programao: o lao contado para...ate...faca (similar ao for...to...do do Pascal), e os
laos condicionados enquanto...faca (similar ao while...do) e repita...ate (similar ao
repeat...until).

Texto retirado do site Apoio Informtica, desenvolvedor do VisuAlg. Acesso em Agosto de 2016.
Disponvel em: http://www.apoioinformatica.inf.br/produtos/visualg

A sintaxe destes comandos explicada a seguir:


Para ... faa
Esta estrutura repete uma seqncia de comandos um determinado nmero de vezes.
para <varivel> de <valor-inicial> ate <valor-limite> [passo <incremento>] faca
<seqncia-de-comandos>
fimpara

Comando Interrompa
As trs estruturas de repetio acima permitem o uso do comando interrompa, que
causa uma sada imediata do lao. Embora esta tcnica esteja de certa forma em
desacordo com os princpios da programao estruturada, o comando interrompa foi
includo no VisuAlg por ser encontrado na literatura de introduo programao e
mesmo em linguagens como o Object Pascal (Delphi/Kylix), Clipper, VB, etc. Seu uso
exemplificado a seguir:
algoritmo "Nmeros de 1 a 10 (com interrompa)"
var x: inteiro
inicio
x <- 0
repita
x <- x + 1
escreva (x:3)
se x = 10 entao
interrompa
fimse
ate falso
fimalgoritmo

O VisuAlg permite ainda uma forma alternativa do comando repita...ate, com a


seguinte sintaxe:
algoritmo "Nmeros de 1 a 10 (com interrompa) II"
var x: inteiro
inicio
x <- 0
repita
x <- x + 1
escreva (x:3)
se x = 10 entao

Texto retirado do site Apoio Informtica, desenvolvedor do VisuAlg. Acesso em Agosto de 2016.
Disponvel em: http://www.apoioinformatica.inf.br/produtos/visualg

interrompa
fimse
fimrepita
fimalgoritmo

Com esta sintaxe alternativa, o uso do interrompa obrigatrio, pois a nica maneira
de se sair do lao repita...fimrepita; caso contrrio, este lao seria executado
indeterminadamente.

Comando Arquivo
Muitas vezes necessrio repetir os testes de um programa com uma srie igual de
dados. Para casos como este, o VisuAlg permite o armazenamento de dados em um
arquivo-texto, obtendo deles os dados ao executar os comandos leia.
Esta caracterstica funciona da seguinte maneira:
1) Se no existir o arquivo com nome especificado, o VisuAlg far uma leitura de
dados atravs da digitao, armazenando os dados lidos neste arquivo, na
ordem em que forem fornecidos;
2) Se o arquivo existir, o VisuAlg obter os dados deste arquivo at chegar ao seu
fim. Da em diante, far as leituras de dados atravs da digitao;
3) Somente um comando arquivo pode ser empregado em cada pseudocdigo, e
ele dever estar na seo de declaraes (dependendo do "sucesso" desta
caracterstica, em futuras verses ela poder ser melhorada...);
4) Caso no seja fornecido um caminho, o VisuAlg ir procurar este arquivo na
pasta de trabalho corrente (geralmente, a pasta onde o programa
VISUALG.EXE est). Este comando no prev uma extenso padro; portanto, a
especificao do nome do arquivo deve ser completa, inclusive com sua
extenso (por exemplo, .txt, .dat, etc.).
A sintaxe do comando :
arquivo <nome-de-arquivo>
<nome-de-arquivo> uma constante caractere (entre aspas duplas).
Veja o exemplo a seguir:

Texto retirado do site Apoio Informtica, desenvolvedor do VisuAlg. Acesso em Agosto de 2016.
Disponvel em: http://www.apoioinformatica.inf.br/produtos/visualg

algoritmo "lendo do arquivo"


arquivo "teste.txt"
var x,y: inteiro
inicio
para x de 1 ate 5 faca
leia (y)
fimpara
fimalgoritmo

Comando Timer
Embora o VisuAlg seja um interpretador de pseudocdigo, seu desempenho muito
bom: o tempo gasto para interpretar cada linha digitada apenas uma frao de
segundo. Entretanto, por motivos educacionais, pode ser conveniente exibir o fluxo de
execuo do pseudocdigo comando por comando, em "cmera lenta". O comando
timer serve para este propsito: insere um atraso (que pode ser especificado) antes da
execuo de cada linha. Alm disso, reala em fundo azul o comando que est sendo
executado, da mesma forma que na execuo passo a passo. Sua sintaxe a seguinte:
timer on

Ativa o timer;

timer <tempo-de-atraso> Ativa o timer estabelecendo seu tempo de atraso em


milissegundos. O valor padro 500, que equivale a meio segundo. O argumento
<tempo-de-atraso> deve ser uma constante inteira com valor entre 0 e 10000. Valores
menores que 0 so corrigidos para 0, e maiores que 10000 para 10000;
timer off

Desativa o timer.

Ao longo do pseudocdigo, pode haver vrios comandos timer. Todos eles devem
estar na seo de comandos. Uma vez ativado, o atraso na execuo dos comandos
ser mantido at se chegar ao final do pseudocdigo ou at ser encontrado um
comando timer off.

Comandos de Depurao
Nenhum ambiente de desenvolvimento est completo se no houver a possibilidade
de se inserir pontos de interrupo (breakpoints) no pseudocdigo para fins de
depurao. VisuAlg implementa dois comandos que auxiliam a depurao ou anlise
de um pseudocdigo: o comando pausa e o comando debug.

Texto retirado do site Apoio Informtica, desenvolvedor do VisuAlg. Acesso em Agosto de 2016.
Disponvel em: http://www.apoioinformatica.inf.br/produtos/visualg

Comando Pausa

Sua sintaxe simplesmente:


pausa
Este comando insere uma interrupo incondicional no pseudocdigo. Quando ele
encontrado, o VisuAlg pra a execuo do pseudocdigo e espera alguma ao do
programador. Neste momento, possvel: analisar os valores das variveis ou das
sadas produzidas at o momento; executar o pseudocdigo passo a passo (com F8);
prosseguir sua execuo normalmente (com F9); ou simplesmente termin-lo (com
Ctrl-F2). Com exceo da alterao do texto do pseudocdigo, todas as funes do
VisuAlg esto disponveis.
Comando Debug

Sua sintaxe :
debug <expresso-lgica>
Se a avaliao de <expresso-lgica> resultar em valor VERDADEIRO, a execuo do
pseudocdigo ser interrompida como no comando pausa. Dessa forma, possvel a
insero de um breakpoint condicional no pseudocdigo.

Comando Eco
Sua sintaxe :
eco on | off
Este comando ativa (eco on) ou desativa (eco off) a impresso dos dados de entrada na
sada-padro do VisuAlg, ou seja, na rea direita da parte inferior da tela. Esta
caracterstica pode ser til quando houver uma grande quantidade de dados de
entrada, e se deseja apenas analisar a sada produzida. Convm utiliz-la tambm
quando os dados de entrada provm de um arquivo j conhecido.

Comando Cronmetro
Sua sintaxe :
cronometro on | off

Texto retirado do site Apoio Informtica, desenvolvedor do VisuAlg. Acesso em Agosto de 2016.
Disponvel em: http://www.apoioinformatica.inf.br/produtos/visualg

Este comando ativa (cronometro on) ou desativa (cronometro off) o cronmetro


interno do VisuAlg. Quando o comando cronometro on encontrado, o VisuAlg
imprime na sada-padro a informao "Cronmetro iniciado.", e comea a contar o
tempo em milissegundos. Quando o comando cronometro off encontrado, o VisuAlg
imprime na sada-padro a informao "Cronmetro terminado. Tempo decorrido: xx
segundo(s) e xx ms". Este comando til na anlise de desempenho de algoritmos
(ordenao, busca, etc.).

Comando Limpatela
Sua sintaxe
Limpatela
Este comando simplesmente limpa a tela DOS do Visualg (a simulao da tela do
computador). Ele no afeta a "tela" que existe na parte inferior direita da janela
principal do Visualg.

Funes do Visualg
Toda linguagem de programao j vem com um grupo de funes que facilitam a vida
do programador. Estas funes realizam os clculos aritmticos, trigonomtricos e de
manipulao e converso de dados mais comuns; assim, o programador no tem que
reinventar a roda a cada programa que faz. A este grupo de funes d-se s vezes o
nome de biblioteca.
Como usar uma funo? Em termos simples, uma funo pode ser usada em qualquer
lugar onde uma varivel tambm pode, a no ser, naturalmente, no "lado esquerdo da
seta" em um comando de atribuio - uma funo produz (diz-se no linguajar dos
programadores retorna) um valor, e no o recebe.
Funes numricas, algbricas e trigonomtricas

Abs(expresso) - Retorna o valor absoluto de uma expresso do tipo inteiro ou real.


Equivale a | expresso | na lgebra.
ArcCos(expresso) - Retorna o ngulo (em radianos) cujo co-seno representado por
expresso.
ArcSen(expresso) - Retorna o ngulo (em radianos) cujo seno representado por
expresso.
ArcTan(expresso) - Retorna o ngulo (em radianos) cuja tangente representada por
expresso.
Texto retirado do site Apoio Informtica, desenvolvedor do VisuAlg. Acesso em Agosto de 2016.
Disponvel em: http://www.apoioinformatica.inf.br/produtos/visualg

Cos(expresso) - Retorna o co-seno do ngulo (em radianos) representado por


expresso.
CoTan(expresso) - Retorna a co-tangente do ngulo (em radianos) representado por
expresso.
Exp(base, expoente) - Retorna o valor de base elevado a expoente, sendo ambos
expresses do tipo real.
GraupRad(expresso) - Retorna o valor em radianos correspondente ao valor em graus
representado por expresso.
Int(expresso) - Retorna a parte inteira do valor representado por expresso.
Log(expresso) - Retorna o logaritmo na base 10 do valor representado por expresso.
LogN(expresso) - Retorna o logaritmo neperiano (base e) do valor representado por
expresso.
Pi - Retorna o valor 3,141592.
Quad(expresso) - Retorna quadrado do valor representado por expresso.
RadpGrau(expresso) - Retorna o valor em graus correspondente ao valor em radianos
representado por expresso.
RaizQ(expresso) - Retorna a raiz quadrada do valor representado por expresso.
Rand - Retorna um nmero real gerado aleatoriamente, maior ou igual a zero e menor
que um.
RandI(limite) - Retorna um nmero inteiro gerado aleatoriamente, maior ou igual a
zero e menor que limite.
Sen(expresso) - Retorna o seno do ngulo (em radianos) representado por expresso.
Tan(expresso) - Retorna a tangente do ngulo (em radianos) representado por
expresso.
Os valores que esto entre parnteses, representados pelas palavras como expresso,
base e expoente, so os parmetros, ou como dizem alguns autores, os argumentos
que passamos para a funo para que realize seus clculos e retorne um outro, que
usaremos no programa. Algumas funes, como Pi e Rand, no precisam de
parmetros, mas a maioria tem um ou mais. O valor dos parmetros naturalmente
altera o valor retornado pela funo.

Texto retirado do site Apoio Informtica, desenvolvedor do VisuAlg. Acesso em Agosto de 2016.
Disponvel em: http://www.apoioinformatica.inf.br/produtos/visualg

A seguir temos alguns exemplos que ilustram o uso destas funes.


algoritmo "exemplo_funcoes"
var a, b, c : real
inicio
a <- 2
b <- 9
escreval( b - a ) // ser escrito 7 na tela
escreval( abs( a - b ) ) // tambm ser escrito 7 na tela
c <- raizq( b ) // c recebe 3, a raiz quadrada de b, que
9
// A frmula da rea do crculo pi (3.1416) vezes raio ao
quadrado...
escreval("A rea do circulo com raio " , c , " " , pi *
quad(c) )
// Um pouco de trigonometria...
escreval("Um ngulo de 90 graus tem " , grauprad(90) , "
radianos" )
escreval( exp(a,b) ) // escreve 2 elevado 9, que 512
// escreve 1, que a parte inteira de 1.8, resultado de
9/(3+2)
escreval( int( b / ( a + c ) ) )
fimalgoritmo

Funes para manipulao de cadeias de caracteres (strings)

Asc (s : caracter) - Retorna um inteiro com o cdigo ASCII do primeiro caractere da


expresso.
Carac (c : inteiro) - Retorna o caractere cujo cdigo ASCII corresponde expresso.
Caracpnum (c : caracter) - Retorna o inteiro ou real representado pela expresso.
Corresponde a StrToInt() ou StrToFloat() do Delphi, Val() do Basic ou Clipper, etc.
Compr (c : caracter) - Retorna um inteiro contendo o comprimento (quantidade de
caracteres) da expresso.
Copia (c : caracter ; p, n : inteiro) - Retorna um valor do tipo caractere contendo uma
cpia parcial da expresso, a partir do caractere p, contendo n caracteres. Os
caracteres so numerados da esquerda para a direita, comeando de 1. Corresponde a
Copy() do Delphi, Mid$() do Basic ou Substr() do Clipper.
Maiusc (c : caracter) - Retorna um valor caractere contendo a expresso em
maisculas.

Texto retirado do site Apoio Informtica, desenvolvedor do VisuAlg. Acesso em Agosto de 2016.
Disponvel em: http://www.apoioinformatica.inf.br/produtos/visualg

Minusc (c : caracter) - Retorna um valor caractere contendo a expresso em


minsculas.
Numpcarac (n : inteiro ou real) : Retorna um valor caractere contendo a
representao de n como uma cadeia de caracteres. Corresponde a IntToStr() ou
FloatToStr() do Delphi, Str() do Basic ou Clipper.
Pos (subc, c : caracter) : Retorna um inteiro que indica a posio em que a cadeia subc
se encontra em c, ou zero se subc no estiver contida em c. Corresponde
funcionalmente a Pos() do Delphi, Instr() do Basic ou At() do Clipper, embora a ordem
dos parmetros possa ser diferente em algumas destas linguagens.

A seguir temos alguns exemplos que ilustram o uso destas funes.


algoritmo "exemplo_funcoes2"
var
a, b, c : caracter
inicio
a <- "2"
b <- "9"
escreval( b + a ) // ser escrito "92" na tela
escreval( caracpnum(b) + caracpnum(a) ) // ser escrito 11
na tela
escreval( numpcarac(3+3) + a ) // ser escrito "62" na tela
c <- "Brasil"
escreval(maiusc(c)) // ser escrito "BRASIL" na tela
escreval(compr(c)) // ser escrito 6 na tela
b <- "O melhor do Brasil"
escreval(pos(c,b)) // ser escrito 13 na tela
escreval(asc(c)) // ser escrito 66 na tela - cdigo ASCII
de "B"
a <- carac(65) + carac(66) + carac(67)
escreval(a) // ser escrito "ABC" na tela
fimalgoritmo

Texto retirado do site Apoio Informtica, desenvolvedor do VisuAlg. Acesso em Agosto de 2016.
Disponvel em: http://www.apoioinformatica.inf.br/produtos/visualg