Você está na página 1de 2

Visualg

Em visualg, valem as regras:


. cada comando de visualg deve estar em uma linha
. n
ao h
a separadores (;), nem blocos (como { e {) nem goto
. n
ao h
a fun
c
oes como sqr(), sqrt()
. todas as palavras reservadas n
ao tem acentos ou cedilha
. n
ao h
a separa
ca
o entre mai
usculas e min
usculas nos comandos ou
vari
aveis
. o limite de vari
aveis
e de 500 (cada item de vetor conta como 1 vari
avel)
. o ponto decimal
e o ponto
. valores caractere est
ao entre aspas duplas
. O smbolo de atribui
ca
o
e <. Existe recursividade

Algoritmo
|

<vari
aveis>

--->local da defini
c~
ao de fun
c~
ao
|
inicio
|

<comandos>

Exemplo
algoritmo TESTE
| var
|
N : inteiro
| inicio
|
leia (N)
|
escreva (N 2)
fimalgoritmo

fimalgoritmo

Fun
c
ao

A fun
c
ao
e uma unidade n
ao aut
onoma de programa
ca
o. Ela
sempre precisa receber seus dados (atrav
es de uma lista de par
ametros)
e devolver um resultado a quem a chamou. Em Visualg s
ao colocadas imediatamente antes da palavra inicio do bloco a que se referem.

|
|

<variaveis locais>
inicio

Exemplo
fun
ca
~o TESTE (N:inteiro) :
var
inicio
| retorne N 2
fimfun
ca
~o

acabem

fun
co
es

que

Qualquer
combina
c
ao
compatvel
gerando um u
nico resultado num
erico.

Formato
adi
c~
ao (+), subtra
c~
ao (),
multiplica
c~
ao (), divis~
ao real (/)
divis~
ao inteira (barra ao contr
ario)
resto (percentagem)
abs(a:real):real
arcxxxx(a:real):real

O que faz
o usual da aritm
etica

asc(s:caracter):inteiro
carac(c:inteiro):caracter
caracpnum(c:caracter):inteiro ou real
compr(c:caracter):inteiro
copia(c:caracter;
p,n:inteiro):caracter
xxx(a:real):real

converte o caracter s em inteiro


converte o byte c em caracter

numpcarac(n:inteiro ou real):caracter
pi:real
pos(subc,c:caracter):inteiro
quad(a:real):real
radpgrau(a:real):real
raizq(a:real):real

Coment
arios s
ao caracterizados por come
car por \\.

Formato
funcao <nome>( <parametros>) :
<tipo-res>
| var

Num
erica

de

a div b
exp(b,e)
grauprad(a:real):real
int(a:real):inteiro
log(a:real):real
logn(a:real):real
maiusc(c:caracter):caracter
minusc(c:caracter):caracter
a mod b

a unidade b
E
asica de escrita de algoritmos.

Formato
algoritmo <nome>
|
var

Express
ao

Express
ao
de

rela
c
oes

acabem

Formato
Igual (=)

inteiro

Diferente (<>)
Maior (>)

<comandos>
Menor (>)

fimfuncao

O <nome-de-fun
ca
o> obedece as mesmas regras de nomenclatura das
vari
aveis. Por outro lado, a <seq
u
encia-de-declara
co
es-de-par
ametros>
e
uma seq
u
encia de
[var] <seq
u
encia-de-par
ametros>: <tipo-de-dado>
separadas por ponto e vrgula. A presen
ca (opcional) da palavra-chave var
indica passagem de par
ametros por refer
encia; caso contr
ario, a passagem
ser
a por valor.

n~
ao usa n
umeros decimais
o resto da divis~
ao inteira
o valor absoluto de a
arco xxx

Maior ou igual (>=)


Menor ou igual (<=)

xxx pode ser


cos, sen e
tan

deve ser o comprimento do string


copia um substring
funcao trigonometrica

xxx pode ser


sen,cos,tan,cotan

divisao inteira de a po b
eleva a base ao expoente
converte graus em radianos
converte real em inteiro
logaritmo base 10
logaritmo base e
converte para maiuscula
converte para minuscula
resto da divisao inteira de a
por b
converte numerica a caracter
devolve o valor de pi
devolve a posicao de subc em c
devolve o quadrado de a
converte radiano para grau
devolve a raiz quadrada

Relacional
que

Exemplo
A+3
A/2.5

Qualquer
gerando um

combina
c
ao
compatvel
u
nico resultado l
ogico.

O que faz
devolve VERDADEIRO se seus operandos s~
ao
iguais e FALSO sen~
ao
devolve VERDADEIRO se seus operandos s~
ao
diferentes e FALSO sen~
ao
Em A
>
B devolve VERDADEIRO se A
e
maior do que B
Em A
<
B devolve VERDADEIRO se A
e
menor do que B
Em A >= B devolve VERDADEIRO se A
e
maior ou igual do que B
Em A <= B devolve VERDADEIRO se A
e
menor ou igual do que B

Exemplo
3=3
e VERDADEIRO
3<>3
e FALSO
3>4
e FALSO
3<4
e VERDADEIRO
3>=3
e
VERDADEIRO
3<=3
e
VERDADEIRO

Express
ao L
ogica

Qualquer combina
ca
o compatvel de express
oes
relacionais e/ou l
ogicas que acabem gerando um u
nico resultado l
ogico.

Nomes

Ao construir algoritmos
e necess
ario dar nomes a muitas coisas. A regra de constru
c
ao de nomes
e
. Uma u
nica palavra
. Composta de letras e n
umeros
. Come
cando com uma letra
. Escrita em mai
usculo

Formato
E

O que faz
Em A E B, devolve VERDADEIRO se A e B
s~
ao verdadeiros e devolve FALSO sen~
ao

Ou

Em A OU B, devolve VERDADEIRO se A ou B
ou ambos s~
ao VERDADEIRO e devolve FALSO
sen~
ao
Inverte o valor l
ogico do operando

N~
ao (NAO)

Exemplo
VERDADEIRO E VERDADEIRO
e
VERDADEIRO Todas as outras
combina
c~
oes d~
ao FALSO
FALSO OU FALSO
e FALSO Todas
as outras combina
c~
oes d~
ao
VERDADEIRO
NAO VERDADEIRO
e FALSO e NAO
FALSO
e VERDADEIRO

Se

Tipos

Este comando
e denominado alternativo, pois permite escolher
caminhos da programa
ca
o dependendo de uma condi
ca
o (express
ao
l
ogica).
Note que o trecho entre sen~
ao e o comando imediatamente anterior a fimse s
ao opcionais, raz
ao pela qual no formato
eles aparecem entre colchetes. Os comandos entre ent~
ao e sen~
ao ou
fimse (se n
ao houver sen
ao) ser
ao executados apenas se a condi
ca
o
do comando for verdadeira.
Se houver comandos entre sen~
ao e
fimse os mesmos ser
ao executados apenas se a condi
c
ao for falsa.

Os tipos possveis s
ao 4: inteiro, real, l
ogico, caracter.

Tipo
inteiro
real

Conte
udo
qualquer n
umero inteiro, variando entre
e +
qualquer n
umero inteiro ou n~
ao inteiro

caracter

uma cadeia

logico

somente pode conter os valores


VERDADEIRO e FALSO

Exemplo
inteiro A
A,B,C : inteiro
A : real
X,Y,Z : real
A : caracter // o tamanho
n~
ao
e expl
cito
A : logico

Formato
se (<condi
c~
ao>) ent~
ao
| <comando-1>
| <comando-2>
| <...>
[senao
| <comando-1>
| <comando-2>
| <...>]
fimse

Vetor

Um vetor (ou matriz)


e definido, escrevendo-se o nome, dois pontos (:) a palavra vetor e as especifica
co
es de repeti
c
ao. Veja nos exemplos:
Formato
<nome> : vetor [inicio..fim]
[inicio..fim] ... de <tipo>

Exemplo
AAA : vetor [1..10] de real
BBB : vetor [0..4] [1..8] de inteiro

Enquanto

Este comando permite a realiza


ca
o de la
cos (loops)
dentro de programas.
Come
cando o comando, a condi
c
ao
e avaliada.
Se ela for falsa, h
a um desvio para o comando seguinte ao
fimenquanto.
Se a condi
c
ao for verdadeira os comando internos ao
enquanto s
ao executados. Ao se encontrar o fimenquanto h
a um desvio incondicional ao incio do enquanto e a condi
c
ao inicial
e reavaliada.

Comandos

Os comandos em pseudo-c
odigo s
ao: < (recebe), leia,
escreva, se...fimse, enquanto...fimenquanto, para...fimpara, repita...at
e, retorne e abandone.

Formato
enquanto (<condi
ca
~o>) fa
ca
| <comando-1>
| <comando-2>
| <...>
fimenquanto

Leia

Serve para introduzir um dado externo para dentro do algoritmo.


As vari
aveis citadas no comando j
a ter
ao que ter sido definidas e tipadas.
Formato
leia (<lista de vari
aveis>)

Exemplo
leia (A)

Serve para produzir um dado como resposta do algoritmo. As


vari
aveis citadas no comando j
a ter
ao que ter sido devidamente atribudas.

Formato
repita
| <comando-1>
| <comando-2>
| <...>
ate (<condi
c~
ao>)

Exemplo
escreva (A, B, C)

Para vari
aveis num
ericas, pode-se especificar var:tamanho:decimais.

<

Este comando permite inicializar uma vari


avel ou alterar-lhe o
conte
udo.
Formato
<vari
avel> < <vari
avel> OU
<vari
avel> < <constante> OU
<vari
avel> < <express~
ao> OU

Exemplo
A 5
enquanto (A 9) ent~
ao
| escreva (A)
| A A + 3
fimenquanto
Ser~
ao impressos os valores 5 e 8.

Repita Este comando tambem permite a realizacao de lacos (loops)


dentro de programas.

Escreva

Formato
escreva (<lista de vari
aveis>)

Exemplo
se (A 4) ent~
ao
| B B + 1
| C C + D + A
senao
| escreva (N 2)
fimse

Para

Exemplo
A 5
repita
| escreva (A)
| A A + 3
ate (A > 9)
Ser~
ao impressos os valores 5 e 8.

Este comando tamb


em permite a realiza
ca
o de la
cos (loops) dentro de programas. No incio a vari
avel citada no comando
e inicializada com <constante1>. Depois
e feita a condi
c
ao. Se o passo est
a

Exemplo
A < B
B < "CURITIBA"
C < A + 23

Exemplo 2

ausente ou
e positivo, a variavel
e testada para <constante2>. (Se
o passo
e negativo, o teste
e com ). Se o resultado
e VERDADEIRO
os comandos internos s
ao executados. Ao final deles, a vari
avel
e incrementada (ou decrementada se o passo
e negativo) e depois h
a um
retorno ao teste inicial. Quando o passo n
ao
e explicito, ele vale 1.
Formato
para <var> de <constante1> ate <constante2>
[passo <constante3>] fa
ca
| <comando-1>
| <comando-2>
| <...>
fimpara

algoritmo "palito"
var
N,SEQ,J,TV:inteiro
inicio
N<-0
enquanto ((N<20) ou (N>30)) faca
escreval ("com quanto comecamos ?")
leia (N)
fimenquanto
enquanto (N>0) faca
SEQ <- 1
enquanto ((N-SEQ)>=0) faca
SEQ <- SEQ + 4
//
escreval ("depuracao... N=",N," SEQ=",SEQ)
fimenquanto
J<-4+(N-SEQ)
se (J=0) entao
J<-1
fimse
escreval ("eu joguei ",J)
N<-N-J
escreval ("Existem ",N," palitos")
se (N<=0) entao
escreva ("por incrivel que pareca,... perdi,... babaca")
interrompa
fimse
TV<-0
enquanto ((TV<1) ou (TV>3)) faca
escreval ("jogue")
leia (TV)
fimenquanto
N <- N - TV
escreval("existem ",N," palitos")
se (N<=0) entao
escreval("burrao, eu ganhei...")
interrompa
fimse
fimenquanto
fimalgoritmo

Exemplo
para K de 3 ate 8 passo 2 fa
ca
| escreva (A)
fimpara
Ser~
ao impressos os valores 3, 5 e 7.

Retorne

Usado exclusivamente dentro de fun


c
oes, tem a finalidade de devolver um resultado a quem chamou esta fun
ca
o.
Ao
contr
ario do C, n
ao necessariamente encerra a execu
c
ao da fun
ca
o.
Formato
retorne <express~
ao compat
vel>

Exemplo
se A > 5 ent~
ao
|
retorne A
fim{se}

Outros Comandos

aleatorio
arquivo <nome-de-arquivo>
algoritmo lendo do arquivoarquivo teste.txt
timer on / timer off
pausa
debug
eco
cron
ometro

Exemplo 1
algoritmo "primos"
var
J,K,R: inteiro
funcao QP(N: inteiro): inteiro
var
A,B:inteiro
inicio
A <- 2
B <- 1
enquanto B <= N faca
se EPRIMO(A) entao
B <- B + 1
fimse
A <- A + 1
fimenquanto
retorne A - 1
fimfuncao

Exemplo 3
algoritmo "raiz quadrada"
var
a:real
funcao sqrt(N:real):real
retorne teste(N,1)
fimfuncao
funcao teste(X,G:real):real
inicio
se perto((X/G),G) entao
retorne G
senao
retorne teste(X, melhor(X,G))
fimse
fimfuncao
funcao melhor(X,G:real):real
inicio
retorne (G+(X/G))/2 //a media entre G e X/G
fimfuncao

funcao EPRIMO(M: inteiro): logico


var
QT,DI:inteiro
inicio
QT <- 0
DI <- 2
enquanto DI < M faca
se M % DI = 0 entao
QT<- QT + 1
fimse
DI <- DI + 1
fimenquanto
retorne QT = 0
fimfuncao

funcao perto(A,B:real):logico
inicio
retorne (B*0.001) > abs(A-B)
fimfuncao
inicio
leia(a)
escreval(a, sqrt(a))
fimalgoritmo

inicio
leia (J,K)
R <- QP(K)-QP(J)
escreva (R)
escreva (QP(K))
escreva (QP(J))
fimalgoritmo

Você também pode gostar