Você está na página 1de 2

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

Qualquer combinao ca compat vel gerando um unico resultado numrico. e


O que faz o usual da aritmtica e n~o usa nmeros decimais a u o resto da divis~o inteira a o valor absoluto de a arco xxx Exemplo A+3 A/2.5

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

xxx pode ser cos, sen e tan

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

E a unidade bsica de escrita de algoritmos. a


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

--->local da defini~o de fun~o ca ca | inicio | <comandos> fimalgoritmo

Comentrios so caracterizados por comear por \\. a a c

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

combinao ca compat vel unico resultado lgico. o


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

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

Os tipos poss veis so 4: inteiro, real, lgico, caracter. a o


Contedo u qualquer nmero inteiro, variando entre u e + qualquer nmero inteiro ou n~o inteiro u a uma cadeia 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~o explcito a e A : 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 variveis numricas, pode-se especicar var:tamanho:decimais. a e

<

Este comando permite inicializar uma varivel ou alterar-lhe o a conte do. u


Formato <varivel> < <varivel> OU a a <varivel> < <constante> OU a <varivel> < <express~o> OU a a Exemplo A < B B < "CURITIBA" C < A + 23

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

Você também pode gostar