SlideShare uma empresa Scribd logo
1 de 2
Baixar para ler offline
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 <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 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 <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¸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
<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 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> < − <constante> 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+3
A/2.5
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 <constante1>. Depois ´e feita a condi¸c˜ao. Se o passo est´a
1
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 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 <var> de <constante1> ate <constante2>
[passo <constante3>] 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<-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 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
2

Mais conteúdo relacionado

Mais procurados

Aula 6 relações semânticas entre os conectivos da lógica proposicional
Aula 6   relações semânticas entre os conectivos da lógica proposicionalAula 6   relações semânticas entre os conectivos da lógica proposicional
Aula 6 relações semânticas entre os conectivos da lógica proposicionalPaulo Cesar Diniz Bicudo
 
C++ apostila c++ nivel basico
C++   apostila c++ nivel basicoC++   apostila c++ nivel basico
C++ apostila c++ nivel basicorobinhoct
 
Lógica para ciencia da computaçao joao nunes souza
Lógica para ciencia da computaçao   joao nunes souzaLógica para ciencia da computaçao   joao nunes souza
Lógica para ciencia da computaçao joao nunes souzaPaulo Cesar Diniz Bicudo
 
Tutorial formulas excell
Tutorial formulas excellTutorial formulas excell
Tutorial formulas excellgusmao2010
 
Eeep aderson borges phpmysql 20112020 operadores em php
Eeep aderson borges phpmysql 20112020 operadores em phpEeep aderson borges phpmysql 20112020 operadores em php
Eeep aderson borges phpmysql 20112020 operadores em phpEliane Oliveira
 
Apostila condição se visu alg
Apostila condição se visu algApostila condição se visu alg
Apostila condição se visu algLucila Nascimento
 
Aula 3 MAT
Aula 3 MATAula 3 MAT
Aula 3 MATgsbq
 
15080590 aula6-estrutura-de-repeticao
15080590 aula6-estrutura-de-repeticao15080590 aula6-estrutura-de-repeticao
15080590 aula6-estrutura-de-repeticaoLee Aragão
 
Guia Rápido de Referência Java
Guia Rápido de Referência JavaGuia Rápido de Referência Java
Guia Rápido de Referência JavaMario Jorge Pereira
 
Aula 2 MAT
Aula 2 MATAula 2 MAT
Aula 2 MATgsbq
 
Aula 1 MAT
Aula 1 MATAula 1 MAT
Aula 1 MATgsbq
 
Estruturas de controle if/else switch PHP
Estruturas de controle if/else switch PHPEstruturas de controle if/else switch PHP
Estruturas de controle if/else switch PHPSedu
 
Algoritmos e lp parte3-pseudocódigo
Algoritmos e lp parte3-pseudocódigoAlgoritmos e lp parte3-pseudocódigo
Algoritmos e lp parte3-pseudocódigoMauro Pereira
 

Mais procurados (20)

Aula 6 relações semânticas entre os conectivos da lógica proposicional
Aula 6   relações semânticas entre os conectivos da lógica proposicionalAula 6   relações semânticas entre os conectivos da lógica proposicional
Aula 6 relações semânticas entre os conectivos da lógica proposicional
 
C++ apostila c++ nivel basico
C++   apostila c++ nivel basicoC++   apostila c++ nivel basico
C++ apostila c++ nivel basico
 
Lógica para ciencia da computaçao joao nunes souza
Lógica para ciencia da computaçao   joao nunes souzaLógica para ciencia da computaçao   joao nunes souza
Lógica para ciencia da computaçao joao nunes souza
 
Tutorial formulas excell
Tutorial formulas excellTutorial formulas excell
Tutorial formulas excell
 
Broffice calc aula1
Broffice calc aula1Broffice calc aula1
Broffice calc aula1
 
1qtwjeaa5f7s
1qtwjeaa5f7s1qtwjeaa5f7s
1qtwjeaa5f7s
 
Eeep aderson borges phpmysql 20112020 operadores em php
Eeep aderson borges phpmysql 20112020 operadores em phpEeep aderson borges phpmysql 20112020 operadores em php
Eeep aderson borges phpmysql 20112020 operadores em php
 
Apostila condição se visu alg
Apostila condição se visu algApostila condição se visu alg
Apostila condição se visu alg
 
Guia rapido java v2
Guia rapido java v2Guia rapido java v2
Guia rapido java v2
 
Aula 3 MAT
Aula 3 MATAula 3 MAT
Aula 3 MAT
 
15080590 aula6-estrutura-de-repeticao
15080590 aula6-estrutura-de-repeticao15080590 aula6-estrutura-de-repeticao
15080590 aula6-estrutura-de-repeticao
 
Aula algoritmo
Aula algoritmoAula algoritmo
Aula algoritmo
 
Guia Rápido de Referência Java
Guia Rápido de Referência JavaGuia Rápido de Referência Java
Guia Rápido de Referência Java
 
Compiladores 2
Compiladores 2Compiladores 2
Compiladores 2
 
Aula 2 MAT
Aula 2 MATAula 2 MAT
Aula 2 MAT
 
Aula 1 MAT
Aula 1 MATAula 1 MAT
Aula 1 MAT
 
Apostila excel-avancado-senac
Apostila excel-avancado-senacApostila excel-avancado-senac
Apostila excel-avancado-senac
 
Estruturas de controle if/else switch PHP
Estruturas de controle if/else switch PHPEstruturas de controle if/else switch PHP
Estruturas de controle if/else switch PHP
 
Algoritmos e lp parte3-pseudocódigo
Algoritmos e lp parte3-pseudocódigoAlgoritmos e lp parte3-pseudocódigo
Algoritmos e lp parte3-pseudocódigo
 
Compiladores 4
Compiladores 4Compiladores 4
Compiladores 4
 

Semelhante a Visual g comandos

Aula de apresentação Python explicando conceitos e aplicações.
Aula de apresentação Python explicando conceitos e aplicações.Aula de apresentação Python explicando conceitos e aplicações.
Aula de apresentação Python explicando conceitos e aplicações.merciaregina6
 
Pseudocódigo - Estrutura de Repetição (Lógica de Programação)
Pseudocódigo - Estrutura de Repetição (Lógica de Programação)Pseudocódigo - Estrutura de Repetição (Lógica de Programação)
Pseudocódigo - Estrutura de Repetição (Lógica de Programação)Gercélia Ramos
 
Excel Avançado - Aulas
Excel Avançado - AulasExcel Avançado - Aulas
Excel Avançado - AulasGustavo Sousa
 
Capítulo 07 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
Capítulo 07 Livro Algoritmos e Programação de Computadores Autores JR., Diler...Capítulo 07 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
Capítulo 07 Livro Algoritmos e Programação de Computadores Autores JR., Diler...Os Fantasmas !
 
Aula 9 - Resultado Operandos Matemáticos, Operadores Aritmeticos, Relacionais...
Aula 9 - Resultado Operandos Matemáticos, Operadores Aritmeticos, Relacionais...Aula 9 - Resultado Operandos Matemáticos, Operadores Aritmeticos, Relacionais...
Aula 9 - Resultado Operandos Matemáticos, Operadores Aritmeticos, Relacionais...André Constantino da Silva
 
Algoritmos 1 - Semana 2
Algoritmos 1 - Semana 2Algoritmos 1 - Semana 2
Algoritmos 1 - Semana 2Eder Samaniego
 
Tipos, literais, operadoes e controle de fluxo
Tipos, literais, operadoes e controle de fluxoTipos, literais, operadoes e controle de fluxo
Tipos, literais, operadoes e controle de fluxoDenis L Presciliano
 
Tipos, literais, operadoes e controle de fluxo
Tipos, literais, operadoes e controle de fluxoTipos, literais, operadoes e controle de fluxo
Tipos, literais, operadoes e controle de fluxoDenis L Presciliano
 
Alg aula 02 - algoritmos 1 tp1
Alg   aula 02 - algoritmos 1 tp1Alg   aula 02 - algoritmos 1 tp1
Alg aula 02 - algoritmos 1 tp1Thalles Anderson
 
Lista de exercicios algoritmos resolvida-
Lista de exercicios   algoritmos  resolvida-Lista de exercicios   algoritmos  resolvida-
Lista de exercicios algoritmos resolvida-Mauro Pereira
 

Semelhante a Visual g comandos (20)

Aula de apresentação Python explicando conceitos e aplicações.
Aula de apresentação Python explicando conceitos e aplicações.Aula de apresentação Python explicando conceitos e aplicações.
Aula de apresentação Python explicando conceitos e aplicações.
 
Java
JavaJava
Java
 
Java - Aula 08
Java - Aula 08Java - Aula 08
Java - Aula 08
 
Java 05
Java 05Java 05
Java 05
 
Aula04
Aula04Aula04
Aula04
 
Pseudocódigo - Estrutura de Repetição (Lógica de Programação)
Pseudocódigo - Estrutura de Repetição (Lógica de Programação)Pseudocódigo - Estrutura de Repetição (Lógica de Programação)
Pseudocódigo - Estrutura de Repetição (Lógica de Programação)
 
Excel Avançado - Aulas
Excel Avançado - AulasExcel Avançado - Aulas
Excel Avançado - Aulas
 
Matlab1
Matlab1Matlab1
Matlab1
 
Capítulo 07 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
Capítulo 07 Livro Algoritmos e Programação de Computadores Autores JR., Diler...Capítulo 07 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
Capítulo 07 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
 
Excel Básico
Excel BásicoExcel Básico
Excel Básico
 
Aulas EXCEL
Aulas EXCELAulas EXCEL
Aulas EXCEL
 
Aula03
Aula03Aula03
Aula03
 
Aula 9 - Resultado Operandos Matemáticos, Operadores Aritmeticos, Relacionais...
Aula 9 - Resultado Operandos Matemáticos, Operadores Aritmeticos, Relacionais...Aula 9 - Resultado Operandos Matemáticos, Operadores Aritmeticos, Relacionais...
Aula 9 - Resultado Operandos Matemáticos, Operadores Aritmeticos, Relacionais...
 
Visualg
VisualgVisualg
Visualg
 
Algoritmos 1 - Semana 2
Algoritmos 1 - Semana 2Algoritmos 1 - Semana 2
Algoritmos 1 - Semana 2
 
Aula01
Aula01Aula01
Aula01
 
Tipos, literais, operadoes e controle de fluxo
Tipos, literais, operadoes e controle de fluxoTipos, literais, operadoes e controle de fluxo
Tipos, literais, operadoes e controle de fluxo
 
Tipos, literais, operadoes e controle de fluxo
Tipos, literais, operadoes e controle de fluxoTipos, literais, operadoes e controle de fluxo
Tipos, literais, operadoes e controle de fluxo
 
Alg aula 02 - algoritmos 1 tp1
Alg   aula 02 - algoritmos 1 tp1Alg   aula 02 - algoritmos 1 tp1
Alg aula 02 - algoritmos 1 tp1
 
Lista de exercicios algoritmos resolvida-
Lista de exercicios   algoritmos  resolvida-Lista de exercicios   algoritmos  resolvida-
Lista de exercicios algoritmos resolvida-
 

Visual g comandos

  • 1. 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 <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 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 <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¸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 <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 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> < − <constante> 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+3 A/2.5 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 <constante1>. Depois ´e feita a condi¸c˜ao. Se o passo est´a 1
  • 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 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 <var> de <constante1> ate <constante2> [passo <constante3>] 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<-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 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 2