Escolar Documentos
Profissional Documentos
Cultura Documentos
Manual Visualg
Manual Visualg
Em visualg, valem as regras: . cada comando de visualg deve estar em uma linha . no h separadores (;), nem blocos (como { e {) nem goto a a . no h funes como sqr(), sqrt() a a co . todas as palavras reservadas no tem acentos ou cedilha a . no h separaao entre mai sculas e min sculas nos comandos ou a a c u u variveis a . o limite de variveis de 500 (cada item de vetor conta como 1 varivel) a e a . o ponto decimal o ponto e . valores caractere esto entre aspas duplas a . O s mbolo de atribuiao <c e . Existe recursividade
Expresso a
de funoes c que
Numrica e
acabem
Formato adi~o (+), subtra~o (), ca ca multiplica~o (), divis~o real (/) ca a divis~o inteira (barra ao contrrio) a a resto (percentagem) abs(a:real):real arcxxxx(a:real):real
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 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 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
converte o caracter s em inteiro converte o byte c em caracter deve ser o comprimento do string copia um substring funcao trigonometrica 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 xxx pode ser sen,cos,tan,cotan
Algoritmo
Formato algoritmo <nome> | var | <variveis> a
Funo ca
A funo uma unidade no autnoma de programaao. Ela ca e a o c sempre precisa receber seus dados (atravs de uma lista de parmetros) e a e devolver um resultado a quem a chamou. Em Visualg so colocaa das imediatamente antes da palavra inicio do bloco a que se referem.
Formato funcao <nome>( <parametros>) : <tipo-res> | var | | | <variaveis locais> inicio <comandos> Exemplo funao TESTE (N:inteiro) : c~ var inicio | retorne N 2 fimfunao c~ inteiro
Expresso a
de relaes co que
Formato Igual (=) Diferente (<>) Maior (>) Menor (>) Maior ou igual (>=) Menor ou igual (<=)
Relacional
acabem
Qualquer gerando um
fimfuncao
O <nome-de-funao> obedece as mesmas regras de nomenclatura das c variveis. Por outro lado, a <seqncia-de-declaraoes-de-parmetros> a ue c a e uma seqncia de ue [var] <seqncia-de-parmetros>: <tipo-de-dado> ue a separadas por ponto e v rgula. A presena (opcional) da palavra-chave var c indica passagem de parmetros por referncia; caso contrrio, a passagem a e a ser por valor. a
O que faz devolve VERDADEIRO se seus operandos s~o a iguais e FALSO sen~o a devolve VERDADEIRO se seus operandos s~o a diferentes e FALSO sen~o a 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
Expresso Lgica a o
Formato E
Qualquer combinaao compat c vel de expresses o relacionais e/ou lgicas que acabem gerando um unico resultado lgico. o o
O que faz Em A E B, devolve VERDADEIRO se A e B s~o verdadeiros e devolve FALSO sen~o a a Em A OU B, devolve VERDADEIRO se A ou B ou ambos s~o VERDADEIRO e devolve FALSO a sen~o a Inverte o valor lgico do operando o Exemplo VERDADEIRO E VERDADEIRO e VERDADEIRO Todas as outras combina~es d~o FALSO co a FALSO OU FALSO FALSO Todas e as outras combina~es d~o co a VERDADEIRO NAO VERDADEIRO FALSO e NAO e FALSO VERDADEIRO e
Nomes
Ao construir algoritmos necessrio dar nomes a muitas coie a sas. A regra de construo de nomes ca e . Uma unica palavra . Composta de letras e n meros u . Comeando com uma letra c . Escrita em mai sculo u
Ou
N~o (NAO) a
Tipos
Tipo inteiro real caracter logico
Este comando denominado alternativo, pois permite escolher e caminhos da programaao dependendo de uma condiao (expresso c c a lgica). o Note que o trecho entre sen~o e o comando imediataa mente anterior a fimse so opcionais, razo pela qual no formato a a eles aparecem entre colchetes. Os comandos entre ent~o e sen~o ou a a fimse (se no houver seno) sero executados apenas se a condiao a a a c do comando for verdadeira. Se houver comandos entre sen~o e a fimse os mesmos sero executados apenas se a condio for falsa. a ca
Formato se (<condi~o>) ent~o ca a | <comando-1> | <comando-2> | <...> [senao | <comando-1> | <comando-2> | <...>] fimse Exemplo se (A 4) ent~o a | B B + 1 | C C + D + A senao | escreva (N 2) fimse
Se
Vetor
Um vetor (ou matriz) denido, escrevendo-se o nome, dois pone tos (:) a palavra vetor e as especicaoes de repetio. Veja nos exemplos: c ca
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
Comandos
Os comandos em pseudo-cdigo so: < (recebe), leia, o a escreva, se...mse, enquanto...menquanto, para...mpara, repita...at, ree torne e abandone.
Este comando permite a realizaao de laos (loops) c c dentro de programas. Comeando o comando, a condio avalic ca e ada. Se ela for falsa, h um desvio para o comando seguinte ao a fimenquanto. Se a condio for verdadeira os comando internos ao ca enquanto so executados. Ao se encontrar o fimenquanto h um desa a vio incondicional ao in cio do enquanto e a condio inicial reavaliada. ca e
Formato enquanto (<condiao>) faa c~ c | <comando-1> | <comando-2> | <...> fimenquanto Exemplo A 5 enquanto (A 9) ent~o a | escreva (A) | A A + 3 fimenquanto Ser~o impressos os valores 5 e 8. a
Leia
Serve para introduzir um dado externo para dentro do algoritmo. As variveis citadas no comando j tero que ter sido denidas e tipadas. a a a
Formato leia (<lista de variveis>) a Exemplo leia (A)
Escreva
Serve para produzir um dado como resposta do algoritmo. As variveis citadas no comando j tero que ter sido devidamente atribu a a a das.
Formato escreva (<lista de variveis>) a Exemplo escreva (A, B, C)
Repita Este comando tambm permite a realizao de laos (loops) e ca c dentro de programas.
Formato repita | <comando-1> | <comando-2> | <...> ate (<condi~o>) ca Exemplo A 5 repita | escreva (A) | A A + 3 ate (A > 9) Ser~o impressos os valores 5 e 8. a
<
Para
Este comando tambm permite a realizaao de laos (loops) dene c c tro de programas. No in cio a varivel citada no comando inicialia e zada com <constante1>. Depois feita a condio. Se o passo est e ca a
ausente ou positivo, a variavel testada para <constante2>. (Se e e o passo negativo, o teste com ). Se o resultado VERDADEIRO e e e os comandos internos so executados. Ao nal deles, a varivel ina a e crementada (ou decrementada se o passo negativo) e depois h um e a retorno ao teste inicial. Quando o passo no explicito, ele vale 1. a e
Formato para <var> de <constante1> ate <constante2> [passo <constante3>] faa c | <comando-1> | <comando-2> | <...> fimpara Exemplo para K de 3 ate 8 passo 2 faa c | escreva (A) fimpara Ser~o impressos os valores 3, 5 e 7. a
Exemplo 2
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
Retorne
Usado exclusivamente dentro de funes, tem a nalico dade de devolver um resultado a quem chamou esta funao. c Ao contrrio do C, no necessariamente encerra a execuo da funao. a a ca c
Formato retorne <express~o compatvel> a Exemplo se A > 5 ent~o a | retorne A fim{se}
Outros Comandos
aleatorio arquivo <nome-de-arquivo> algoritmo lendo do arquivoarquivo teste.txt timer on / timer o pausa debug eco cronmetro o
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 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