Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas


VisualG Comandos, Notas de estudo de Análise de Sistemas de Engenharia

Comandos do VisualG e seus significados.

Tipologia: Notas de estudo

Antes de 2010

Compartilhado em 06/08/2010

roberto-vinicius-3
roberto-vinicius-3 🇧🇷

4.1

(7)

1 documento

1 / 2

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
Visualg
Em visualg, valem as regras:
. cada comando de visualg deve estar em uma linha
. ao a separadores (;), nem blocos (como {e{) nem goto
. ao a fun¸oes como sqr(), sqrt()
. to das as palavras reservadas ao tem acentos ou cedilha
. ao a separa¸ao 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 p onto decimal ´e o ponto
. valores caractere est˜ao entre aspas duplas
. O ımbolo de atribui¸ao ´e <-
. Existe recursividade
Algoritmo ´
E a unidade asica de escrita de algoritmos.
Formato Exemplo
algoritmo <nome>
| var
|<vari´aveis>
--->local da defini¸c~ao de fun¸c~ao
| inicio
|<comandos>
fimalgoritmo
algoritmo TESTE
| var
| N : inteiro
| inicio
| leia (N)
| escreva (N ×2)
fimalgoritmo
Coment´arios ao caracterizados por come¸car por \\.
Fun¸ao A fun¸ao ´e uma unidade ao autˆonoma de programa¸ao. Ela
sempre precisa receber seus dados (atrav´es de uma lista de parˆametros)
e devolver um resultado a quem a chamou. Em Visualg ao coloca-
das imediatamente antes da palavra inicio do bloco a que se referem.
Formato Exemplo
funcao <nome>(<parametros>) :
<tipo-res>
| var
|<variaveis locais>
| inicio
|<comandos>
fimfuncao
fun¸c~ao TESTE (N:inteiro) : inteiro
var
inicio
| retorne N ×2
fimfun¸c~ao
O<nome-de-fun¸ao>obedece as mesmas regras de nomenclatura das
vari´aveis. Por outro lado, a <seq¨encia-de-declara¸oes-de-parˆametros>´e
uma seq¨encia de
[var] <seq¨encia-de-parˆametros>:<tip o-de-dado>
separadas por ponto e ırgula. 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.
Nomes Ao construir algoritmos ´e necess´ario dar nomes a muitas coi-
sas. A regra de constru¸ao de nomes ´e
. Uma ´unica palavra
. Comp osta de letras e umeros
. Come¸cando com uma letra
. Escrita em mai ´usculo
Tipos Os tipos poss´ıveis ao 4: inteiro, real, ogico, caracter.
Tipo Conte´udo Exemplo
inteiro qualquer umero inteiro, variando entre
−∞ e+
inteiro A
A,B,C : inteiro
real qualquer umero inteiro ou n~ao inteiro A : real
X,Y,Z : real
caracter uma cadeia A : caracter // o tamanho
n~ao ´e expl´ıcito
logico somente pode conter os valores
VERDADEIRO e FALSO
A : logico
Vetor Umvetor (ou matriz) ´e definido, escrevendo-se o nome, dois pon-
tos (:) a palavra vetor e as especifica¸oes de repeti¸ao. Veja nos exemplos:
Formato Exemplo
<nome>: vetor [inicio..fim]
[inicio..fim] ... de <tipo>
AAA : vetor [1..10] de real
BBB : vetor [0..4] [1..8] de inteiro
Comandos Os comandos em pseudo-c´odigo ao: <(recebe), leia,
escreva, se...fimse, enquanto...fimenquanto, para...fimpara, repita...at´e, re-
torne e abandone.
Leia Serve para introduzir um dado externo para dentro do algoritmo.
As vari´aveis citadas no comando a ter˜ao que ter sido definidas e tipadas.
Formato Exemplo
leia (<lista de vari´aveis>) leia (A)
Escreva Serve para produzir um dado como resposta do algoritmo. As
vari´aveis citadas no comando a ter˜ao que ter sido devidamente atribu´ıdas.
Formato Exemplo
escreva (<lista de vari´aveis>) 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 Exemplo
<vari´avel> < <vari´avel>OU
<vari´avel> < <constante>OU
<vari´avel> < <express~ao>OU
A<B
B<"CURITIBA"
C<A + 23
Express˜ao Num´erica Qualquer combina¸ao compat´ıvel
de fun¸oes que acabem gerando um ´unico resultado num´erico.
Formato O que faz Exemplo
adi¸c~ao (+), subtra¸c~ao (),
multiplica¸c~ao (), divis~ao real (/)
o usual da aritm´etica A+3
A/2.5
divis~ao inteira (barra ao contr´ario) n~ao usa umeros decimais
resto (percentagem) o resto da divis~ao inteira
abs(a:real):real o valor absoluto de a
arcxxxx(a:real):real arco xxx xxx pode ser
cos, sen e
tan
asc(s:caracter):inteiro converte o caracter s em inteiro
carac(c:inteiro):caracter converte o byte c em caracter
caracpnum(c:caracter):inteiro ou real
compr(c:caracter):inteiro deve ser o comprimento do string
copia(c:caracter;
p,n:inteiro):caracter
copia um substring
xxx(a:real):real funcao trigonometrica xxx pode ser
sen,cos,tan,cotan
a div b divisao inteira de a po b
exp(b,e) eleva a base ao expoente
grauprad(a:real):real converte graus em radianos
int(a:real):inteiro converte real em inteiro
log(a:real):real logaritmo base 10
logn(a:real):real logaritmo base e
maiusc(c:caracter):caracter converte para maiuscula
minusc(c:caracter):caracter converte para minuscula
a mod b resto da divisao inteira de a
por b
numpcarac(n:inteiro ou real):caracter converte numerica a caracter
pi:real devolve o valor de pi
pos(subc,c:caracter):inteiro devolve a posicao de subc em c
quad(a:real):real devolve o quadrado de a
radpgrau(a:real):real converte radiano para grau
raizq(a:real):real devolve a raiz quadrada
Express˜ao Relacional Qualquer combina¸ao compat´ıvel
de rela¸oes que acabem gerando um ´unico resultado ogico.
Formato O que faz Exemplo
Igual (=) devolve VERDADEIRO se seus operandos s~ao
iguais e FALSO sen~ao
3=3 ´e VERDADEIRO
Diferente (<>) devolve VERDADEIRO se seus operandos s~ao
diferentes e FALSO sen~ao
3<>3 ´e FALSO
Maior (>) Em A > B devolve VERDADEIRO se A ´e
maior do que B
3>4 ´e FALSO
Menor (>) Em A < B devolve VERDADEIRO se A ´e
menor do que B
3<4 ´e VERDADEIRO
Maior ou igual (>=) Em A >=Bdevolve VERDADEIRO se A ´e
maior ou igual do que B
3>=3 ´e
VERDADEIRO
Menor ou igual (<=) Em A <=Bdevolve VERDADEIRO se A ´e
menor ou igual do que B
3<=3 ´e
VERDADEIRO
Express˜ao ogica Qualquer combina¸ao compat´ıvel de express˜oes
relacionais e/ou ogicas que acabem gerando um ´unico resultado ogico.
Formato O que faz Exemplo
E Em A E B, devolve VERDADEIRO se A e B
s~ao verdadeiros e devolve FALSO sen~ao
VERDADEIRO E VERDADEIRO ´e
VERDADEIRO Todas as outras
combina¸c~oes d~ao FALSO
Ou Em A OU B, devolve VERDADEIRO se A ou B
ou ambos s~ao VERDADEIRO e devolve FALSO
sen~ao
FALSO OU FALSO ´e FALSO Todas
as outras combina¸c~oes d~ao
VERDADEIRO
N~ao (NAO) Inverte o valor ogico do operando NAO VERDADEIRO ´e FALSO e NAO
FALSO ´e VERDADEIRO
Se Este comando ´e denominado alternativo, p ois permite escolher
caminhos da programa¸ao dependendo de uma condi¸ao (express˜ao
ogica). Note que o trecho entre sen~ao e o comando imediata-
mente anterior a fimse ao opcionais, raz˜ao pela qual no formato
eles aparecem entre colchetes. Os comandos entre ent~ao esen~ao ou
fimse (se ao houver sen˜ao) ser˜ao executados apenas se a condi¸ao
do comando for verdadeira. Se houver comandos entre sen~ao e
fimse os mesmos ser˜ao executados apenas se a condi¸ao for falsa.
Formato Exemplo
se (<condi¸c~ao>) ent~ao
|<comando-1>
|<comando-2>
|<...>
[senao
|<comando-1>
|<comando-2>
|<...>]
fimse
se (A 4) ent~ao
| B B + 1
| C C + D + A
senao
| escreva (N ×2)
fimse
Enquanto Este comando permite a realiza¸ao de la¸cos (loops)
dentro de programas. Come¸cando o comando, a condi¸ao ´e avali-
ada. Se ela for falsa, a um desvio para o comando seguinte ao
fimenquanto. Se a condi¸ao for verdadeira os comando internos ao
enquanto ao executados. Ao se encontrar o fimenquanto a um des-
vio incondicional ao in´ıcio do enquanto e a condi¸ao inicial ´e reavaliada.
Formato Exemplo
enquanto (<condi¸c~ao>) fa¸ca
|<comando-1>
|<comando-2>
|<...>
fimenquanto
A5
enquanto (A 9) ent~ao
| escreva (A)
| A A + 3
fimenquanto
Ser~ao impressos os valores 5 e 8.
Repita Este comando tamb´em permite a realiza¸ao de la¸cos (loops)
dentro de programas.
Formato Exemplo
repita
|<comando-1>
|<comando-2>
|<...>
ate (<condi¸c~ao>)
A5
repita
| escreva (A)
| A A + 3
ate (A >9)
Ser~ao impressos os valores 5 e 8.
Para Este comando tamb´em permite a realiza¸ao de la¸cos (lo ops) den-
tro de programas. No in´ıcio a vari´avel citada no comando ´e iniciali-
zada com <constante1>. Depois ´e feita a condi¸ao. Se o passo est´a
1
pf2

Pré-visualização parcial do texto

Baixe VisualG Comandos e outras Notas de estudo em PDF para Análise de Sistemas de Engenharia, somente na Docsity!

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¸c˜ao 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 s´ımbolo de atribui¸c˜ao ´e <- . Existe recursividade

Algoritmo E a unidade b´´ asica de escrita de algoritmos.

Formato Exemplo algoritmo | var | <vari´aveis> --->local da defini¸c~ao de fun¸c~ao | inicio | fimalgoritmo

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

Coment´arios s˜ao caracterizados por come¸car por \.

Fun¸c˜ao A fun¸c˜ao ´e uma unidade n˜ao autˆonoma de programa¸c˜ao. 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 coloca- das imediatamente antes da palavra inicio do bloco a que se referem. Formato Exemplo funcao ( ) : <tipo-res> | var | | inicio | fimfuncao

fun¸c~ao TESTE (N:inteiro) : inteiro var inicio | retorne N × 2 fimfun¸c~ao

O <nome-de-fun¸c˜ao> obedece as mesmas regras de nomenclatura das vari´aveis. Por outro lado, a <seq¨uˆencia-de-declara¸c˜oes-de-parˆametros> ´e uma seq¨uˆencia de [var] <seq¨uˆencia-de-parˆametros>: <tipo-de-dado> separadas por ponto e v´ırgula. 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.

Nomes Ao construir algoritmos ´e necess´ario dar nomes a muitas coi-

sas. A regra de constru¸c˜ao de nomes ´e

. Uma ´unica palavra . Composta de letras e n´umeros . Come¸cando com uma letra . Escrita em mai´usculo

Tipos Os tipos poss´ıveis s˜ao 4: inteiro, real, l´ogico, caracter.

Tipo Conte´udo Exemplo inteiro qualquer n´umero inteiro, variando entre −∞ e +∞

inteiro A A,B,C : inteiro real qualquer n´umero inteiro ou n~ao inteiro A : real X,Y,Z : real caracter uma cadeia A : caracter // o tamanho n~ao ´e expl´ıcito logico somente pode conter os valores VERDADEIRO e FALSO

A : logico

Vetor Um vetor (ou matriz) ´e definido, escrevendo-se o nome, dois pon-

tos (:) a palavra vetor e as especifica¸c˜oes de repeti¸c˜ao. Veja nos exemplos: Formato Exemplo : vetor [inicio..fim] [inicio..fim] ... de

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

Comandos Os comandos em pseudo-c´odigo s˜ao: < − (recebe), leia,

escreva, se...fimse, enquanto...fimenquanto, para...fimpara, repita...at´e, re- torne e abandone.

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 Exemplo leia (<lista de vari´aveis>) leia (A)

Escreva Serve para produzir um dado como resposta do algoritmo. As

vari´aveis citadas no comando j´a ter˜ao que ter sido devidamente atribu´ıdas. Formato Exemplo escreva (<lista de vari´aveis>) 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 Exemplo <vari´avel> < − <vari´avel> OU <vari´avel> < − OU <vari´avel> < − <express~ao> OU

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

Express˜ao Num´erica Qualquer combina¸c˜ao compat´ıvel

de fun¸c˜oes que acabem gerando um unico´ resultado num´erico. Formato O que faz Exemplo adi¸c~ao (+), subtra¸c~ao (−), multiplica¸c~ao (∗), divis~ao real (/)

o usual da aritm´etica A+ A/2. divis~ao inteira (barra ao contr´ario) n~ao usa n´umeros decimais resto (percentagem) o resto da divis~ao inteira abs(a:real):real o valor absoluto de a arcxxxx(a:real):real arco xxx xxx pode ser cos, sen e tan asc(s:caracter):inteiro converte o caracter s em inteiro carac(c:inteiro):caracter converte o byte c em caracter caracpnum(c:caracter):inteiro ou real compr(c:caracter):inteiro deve ser o comprimento do string copia(c:caracter; p,n:inteiro):caracter

copia um substring xxx(a:real):real funcao trigonometrica xxx pode ser sen,cos,tan,cotan a div b divisao inteira de a po b exp(b,e) eleva a base ao expoente grauprad(a:real):real converte graus em radianos int(a:real):inteiro converte real em inteiro log(a:real):real logaritmo base 10 logn(a:real):real logaritmo base e maiusc(c:caracter):caracter converte para maiuscula minusc(c:caracter):caracter converte para minuscula a mod b resto da divisao inteira de a por b numpcarac(n:inteiro ou real):caracter converte numerica a caracter pi:real devolve o valor de pi pos(subc,c:caracter):inteiro devolve a posicao de subc em c quad(a:real):real devolve o quadrado de a radpgrau(a:real):real converte radiano para grau raizq(a:real):real devolve a raiz quadrada

Express˜ao Relacional Qualquer combina¸c˜ao compat´ıvel

de rela¸c˜oes que acabem gerando um unico´ resultado l´ogico. Formato O que faz Exemplo Igual (=) devolve VERDADEIRO se seus operandos s~ao iguais e FALSO sen~ao

3=3 ´e VERDADEIRO Diferente (<>) devolve VERDADEIRO se seus operandos s~ao diferentes e FALSO sen~ao

3 <>3 ´e FALSO

Maior (>) Em A > B devolve VERDADEIRO se A ´e maior do que B

3 >4 ´e FALSO Menor (>) Em A < B devolve VERDADEIRO se A ´e menor do que B

3 <4 ´e VERDADEIRO Maior ou igual (>=) Em A >= B devolve VERDADEIRO se A ´e maior ou igual do que B

3 >=3 ´e VERDADEIRO Menor ou igual (<=) Em A <= B devolve VERDADEIRO se A ´e menor ou igual do que B

3 <=3 ´e VERDADEIRO

Express˜ao L´ogica Qualquer combina¸c˜ao compat´ıvel de express˜oes

relacionais e/ou l´ogicas que acabem gerando um ´unico resultado l´ogico. Formato O que faz Exemplo E Em A E B, devolve VERDADEIRO se A e B s~ao verdadeiros e devolve FALSO sen~ao

VERDADEIRO E VERDADEIRO ´e VERDADEIRO Todas as outras combina¸c~oes d~ao FALSO Ou Em A OU B, devolve VERDADEIRO se A ou B ou ambos s~ao VERDADEIRO e devolve FALSO sen~ao

FALSO OU FALSO ´e FALSO Todas as outras combina¸c~oes d~ao VERDADEIRO N~ao (NAO) Inverte o valor l´ogico do operando NAO VERDADEIRO ´e FALSO e NAO FALSO ´e VERDADEIRO

Se Este comando ´e denominado alternativo, pois permite escolher

caminhos da programa¸c˜ao dependendo de uma condi¸c˜ao (express˜ao l´ogica). Note que o trecho entre sen~ao e o comando imediata- mente 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¸c˜ao 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. Formato Exemplo se (<condi¸c~ao>) ent~ao | <comando-1> | <comando-2> | <...> [senao | <comando-1> | <comando-2> | <...>] fimse

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

Enquanto Este comando permite a realiza¸c˜ao de la¸cos (loops)

dentro de programas. Come¸cando o comando, a condi¸c˜ao ´e avali- ada. 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 des- vio incondicional ao in´ıcio do enquanto e a condi¸c˜ao inicial ´e reavaliada. Formato Exemplo enquanto (<condi¸c~ao>) fa¸ca | <comando-1> | <comando-2> | <...> fimenquanto

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

Repita Este comando tamb´em permite a realiza¸c˜ao de la¸cos (loops)

dentro de programas. Formato Exemplo repita | <comando-1> | <comando-2> | <...> ate (<condi¸c~ao>)

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

Para Este comando tamb´em permite a realiza¸c˜ao de la¸cos (loops) den-

tro de programas. No in´ıcio a vari´avel citada no comando ´e iniciali- zada com . Depois ´e feita a condi¸c˜ao. Se o passo est´a

ausente ou ´e positivo, a variavel ´e testada para ≤ . (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 in- crementada (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 Exemplo para de ate [passo ] fa¸ca | <comando-1> | <comando-2> | <...> fimpara

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 finali-

dade de devolver um resultado a quem chamou esta fun¸c˜ao. Ao contr´ario do ”C”, n˜ao necessariamente encerra a execu¸c˜ao da fun¸c˜ao. Formato Exemplo retorne <express~ao compat´ıvel> se A > 5 ent~ao | retorne A fim{se}

Outros Comandos aleatorio

arquivo <nome-de-arquivo> algoritmo ”lendo do arquivo”arquivo ”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

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

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

Exemplo 2

algoritmo "palito" var N,SEQ,J,TV:inteiro inicio N<- 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<- 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<- 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 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 perto(A,B:real):logico inicio retorne (B*0.001) > abs(A-B) fimfuncao inicio leia(a) escreval(a, sqrt(a)) fimalgoritmo