Buscar

VISUALG3

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

VISUALG3/dicas.ini
[Dicas]
NumDicas=18
MostrarDicas=0
MensagemV2=1
[Dica001]
Linha001={\rtf1\ansi\ansicpg1252\deff0\deflang1046{\fonttbl{\f0\fswiss\fcharset0 Arial;}}
Linha002=\viewkind4\uc1\pard\f0\fs20 
Linha003=O \b Visualg\b0 pode corrigir a indentação de seu algoritmo automaticamente. Basta teclar \b Ctrl+G\b0.}
[Dica002]
Linha001={\rtf1\ansi\ansicpg1252\deff0\deflang1046{\fonttbl{\f0\fswiss\fcharset0 Arial;}}
Linha002=\viewkind4\uc1\pard\f0\fs20 
Linha003=Digite \b dcn\b0 , \b dcc\b0 ou \b dcl\b0 e tecle \b Ctrl+Space\b0 para que o \b Visualg\b0 o ajude nas declarações de variáveis.}
[Dica003]
Linha001={\rtf1\ansi\ansicpg1252\deff0\deflang1046{\fonttbl{\f0\fswiss\fcharset0 Arial;}}
Linha002=\viewkind4\uc1\pard\f0\fs20 
Linha003=Depois de executar um algoritmo, você pode teclar \b F7\b0 para ver quantas vezes cada linha foi executada.}
[Dica004]
Linha001={\rtf1\ansi\ansicpg1252\deff0\deflang1046{\fonttbl{\f0\fswiss\fcharset0 Arial;}}
Linha002=\viewkind4\uc1\pard\f0\fs20 
Linha003=Use o comando \b pausa\b0 em uma linha para parar o algoritmo naquela linha.\par
Linha004=Você poderá examinar o valor das variáveis e examinar a "tela" do programa.\par
Linha005=Depois, tecle \b F9\b0 para continuar a execução.}
[Dica005]
Linha001={\rtf1\ansi\ansicpg1252\deff0\deflang1046{\fonttbl{\f0\fswiss\fcharset0 Arial;}}
Linha002={\colortbl ;\red0\green0\blue255;}\viewkind4\uc1\pard\f0\fs20 Para reportar um problema ou dar uma sugestão sobre o\b Visualg\b0, envie e-mail para \cf1\b contato@apoioinformatica.inf.br.\cf0\b0}
[Dica006]
Linha001={\rtf1\ansi\ansicpg1252\deff0\deflang1046{\fonttbl{\f0\fswiss\fcharset0 Arial;}}
Linha002={\colortbl ;\red0\green0\blue255;}\viewkind4\uc1\pard\f0\fs20 Visite 
Linha003=\cf1\b http://www.apoioinformatica.inf.br/visualg\cf0\b0 regularmente para obter atualiza\'e7\'f5es e mais exemplos para o \b Visualg\b0 .\par}
[Dica007]
Linha001={\rtf1\ansi\ansicpg1252\deff0\deflang1046{\fonttbl{\f0\fswiss\fcharset0 Arial;}{\f1\fnil\fcharset2 Symbol;}}
Linha002=\viewkind4\uc1\pard\f0\fs20 O \b Visualg\b0 tem dois operadores de divis\'e3o:\par
Linha003=\pard{\pntext\f1\'B7\tab}{\*\pn\pnlvlblt\pnf1\pnindent0{\pntxtb\'B7}}\fi-720\li720\b /\b0 - para divis\'e3o real: 7 / 2 = 3.5\par
Linha004=\b{\pntext\f1\'B7\tab}\\\b0 - para divis\'e3o inteira: 7 \\ 2 = 3\par}
[Dica008]
Linha001={\rtf1\ansi\ansicpg1252\deff0\deflang1046{\fonttbl{\f0\fswiss\fcharset0 Arial;}{\f1\fnil\fcharset2 Symbol;}}
Linha002=\viewkind4\uc1\pard\f0\fs20 O operador de exponencia\'e7\'e3o do Visualg \'e9 o \b ^\b0 (acento circunflexo);\par
Linha003=o operador de m\'f3dulo (resto da divis\'e3o inteira) \'e9 o \b %\b0 (sinal de percentual). Veja os exemplos:\par
Linha004=\pard{\pntext\f1\'B7\tab}{\*\pn\pnlvlblt\pnf1\pnindent0{\pntxtb\'B7}}\fi-720\li720 4 ^ 2 = 16\par
Linha005={\pntext\f1\'B7\tab}25 % 3 = 1 (25 dividido por 3 = 8, resto 1)\par}
[Dica009]
Linha001={\rtf1\ansi\ansicpg1252\deff0\deflang1046{\fonttbl{\f0\fswiss\fcharset0 Arial;}}
Linha002=\viewkind4\uc1\pard\f0\fs20 
Linha003=O \b Visualg\b0 não diferencia maiúsculas de minúsculas no nome das variáveis.\par 
Linha004=Assim, \b SALARIOBRUTO\b0 e \b SalarioBruto\b0 se referem à mesma variável.}
[Dica010]
Linha001={\rtf1\ansi\ansicpg1252\deff0\deflang1046{\fonttbl{\f0\fswiss\fcharset0 Arial;}}
Linha002=\viewkind4\uc1\pard\f0\fs20 
Linha003=Use o comando \b timer on\b0 em uma linha para executar o algoritmo em "câmera lenta" a partir daquele ponto.\par
Linha004=Use o comando \b timer off\b0 para voltar à execução normal.\par
Linha005=Esta dica é útil se você quer ver o fluxo de execução do algoritmo.}
[Dica011]
Linha001={\rtf1\ansi\ansicpg1252\deff0\deflang1046{\fonttbl{\f0\fswiss\fcharset0 Arial;}}
Linha002=\viewkind4\uc1\pard\f0\fs20 
Linha003=Use a tecla \b F8\b0 para executar um algoritmo passo a passo (uma linha por vez).\par
Linha004=A qualquer momento você pode usar a tecla \b F9 \b0 para continuar a execução normal do algoritmo.}
[Dica012]
Linha001={\rtf1\ansi\ansicpg1252\deff0\deflang1046{\fonttbl{\f0\fswiss\fcharset0 Arial;}{\f1\fnil\fcharset2 Symbol;}}
Linha002=\viewkind4\uc1\pard\f0\fs20 Para encerrar a execução de um algoritmo no \b Visualg\b0 voc\'ea pode:\par
Linha003=\pard{\pntext\f1\'B7\tab}{\*\pn\pnlvlblt\pnf1\pnindent0{\pntxtb\'B7}}\fi-720\li720 teclar \b Ctrl+F2\b0 durante uma pausa ou na execução passo a passo;\par
Linha004={\pntext\f1\'B7\tab}teclar \b ESC\b0 (ou clicar o bot\'e3o Cancelar) durante uma leitura de dados.\par
Linha005=\pard No simulador da tela do computador uma linha dizendo "Execução terminada pelo usuário" indicará que o programa foi interrompido.\par}
[Dica013]
Linha001={\rtf1\ansi\ansicpg1252\deff0\deflang1046{\fonttbl{\f0\fswiss\fcharset0 Arial;}{\f1\froman\fcharset0 Times New Roman;}{\f2\fswiss\fcharset0 Courier New;}}
Linha002=\viewkind4\uc1\pard\sb100\sa100\lang1033\b\f0\fs20 Tipos de Dados\b0\f1\fs24\par
Linha003=\f0\fs20 O \b Visualg\b0 prev\'ea tr\'eas tipos de dados: num\'e9rico, caracter e l\'f3gico (booleano). As palavras-chave que os definem s\'e3o as seguintes (observe que elas n\'e3o t\'eam acentua\'e7\'e3o):\f1\fs24\par
Linha004=\pard\li360\ri360\sb100\sa100\f2\fs20 numerico\f0 : define vari\'e1veis do tipo inteiro ou real (para o Visualg todos os num\'e9ricos s\'e3o reais)\line\f2 caracter\f0 : define vari\'e1veis do tipo "string"\line\f2 logico\f0 : define vari\'e1veis do tipo booleano\f1\fs24\par
Linha005=\pard\sb100\sa100\f0\fs20 Os nomes das vari\'e1veis devem come\'e7ar por uma letra e depois conter letras, n\'fameros ou sublinhado, at\'e9 um limite de 30 caracteres. As vari\'e1veis podem ser do tipo simples ou vetores (nesta vers\'e3o, os vetores podem ser de uma ou duas dimens\'f5es). N\'e3o pode haver duas vari\'e1veis com o mesmo nome, \'e0 exce\'e7\'e3o, naturalmente, dos elementos de um vetor.\f1\fs24\par
Linha006=\pard\lang1046\f0\fs20\par}
[Dica014]
Linha001={\rtf1\ansi\ansicpg1252\deff0\deflang1046{\fonttbl{\f0\fswiss\fcharset0 Arial;}{\f1\fswiss\fcharset0 Courier New;}{\f2\froman\fcharset0 Times New Roman;}}
Linha002=\viewkind4\uc1\pard\sb100\sa100\lang1033\f0\fs20 No \b Visualg\b0 as compara\'e7\'f5es com caracteres n\'e3o levam em conta se s\'e3o ma\'edusculos ou min\'fasculos. Assim, \f1 "ABC"\f0 \'e9 igual a \f1 "abc"\f0 .\par
Linha003=Valores l\'f3gicos obedecem \'e0 seguinte ordem : \f1 FALSO < VERDADEIRO\f0 .\f2\fs24\par
Linha004=\pard\lang1046\f0\fs20\par}
[Dica015]
Linha001={\rtf1\ansi\ansicpg1252\deff0\deflang1046{\fonttbl{\f0\fswiss\fcharset0 Arial;}{\f1\fswiss\fcharset0 Courier New;}{\f2\froman\fcharset0 Times New Roman;}{\f3\fnil\fcharset2 Symbol;}}
Linha002=\viewkind4\uc1\pard\sb100\sa100\lang1033\f0\fs20 O \b Visualg\b0 implementa os tr\'eas comandos de repeti\'e7\'e3o usuais nas linguagens de programa\'e7\'e3o:\par
Linha003=\pard{\pntext\f3\'B7\tab}{\*\pn\pnlvlblt\pnf3\pnindent0{\pntxtb\'B7}}\fi-720\li720\sb100\sa100\f1 para..faca\f0 (similar ao \f1 for ... to ... do\f0 do Pascal);\par
Linha004=\f1{\pntext\f3\'B7\tab}enquanto...faca\f0 (similar ao \f1 while...do\f0 ), e\par
Linha005=\f1{\pntext\f3\'B7\tab}repita...ate\f0 (similar ao \f1 repeat...until\f0 ).\f2\fs24\par
Linha006=\pard\lang1046\f0\fs20\par}
[Dica016]
Linha001={\rtf1\ansi\ansicpg1252\deff0\deflang1046{\fonttbl{\f0\fswiss\fcharset0 Arial;}}
Linha002=\viewkind4\uc1\pard\lang1033\f0\fs20 No menu Ajuda do \b Visualg\b0 , escolha a op\'e7\'e3o "A Linguagem do Visualg" para uma vis\'e3o geral das capacidades do interpretador.\par
Linha003=Voc\'ea tamb\'e9m pode teclar \b F1\b0 para ter acesso \'e0 ajuda on-line do programa.\par}
[Dica017]
Linha001={\rtf1\ansi\ansicpg1252\deff0\deflang1046{\fonttbl{\f0\fswiss\fcharset0 Arial;}{\f1\froman\fcharset0 Times New Roman;}{\f2\fnil\fcharset0 Courier;}}
Linha002=\viewkind4\uc1\pard\sb100\sa100\lang1033\b\f0\fs20 Sugest\'e3o de Digita\'e7\'e3o\b0\f1\fs24\par
Linha003=\f0\fs20 A sugest\'e3o de digita\'e7\'e3o \'e9 acessada
atrav\'e9s das teclas \f2 Ctrl-J\f0 . V
Linha004=oc\'ea come\'e7a uma palavra, tecla \f2 Ctrl-J\f0 e o \b Visualg\b0 mostra uma lista sugerindo pa
Linha005=lavras-chave que completam o que voc\'ea digitou. Voc\'ea ent\'e3o pode dar um duplo-clique sobr
Linha006=e a op\'e7\'e3o desejada, ou selecion\'e1-la com as setas e teclar \f2 Enter\f0 . Ao aparecer a lista, s
Linha007=e voc\'ea continuar digitando, o \b Visualg\b0 continua procurando palavras que completam o que voc\'ea digitou
Linha008=. Se voc\'ea teclar \f2 Esc\f0 ou clicar fora da lista, ela desaparece.\par}
[Dica018]
Linha001={\rtf1\ansi\ansicpg1252\deff0\deflang1046{\fonttbl{\f0\fswiss\fcharset0 Arial;}{\f1\froman\fcharset0 Times New Roman;}{\f2\fmodern\fprq1\fcharset0 Courier;}}
Linha002=\viewkind4\uc1\pard\sb100\sa100\lang1033\b\f0\fs20 Automatizando a Entrada de Dados\par
Linha003=\b0\'c0s vezes precisamos repetir testes em um programa com uma s\'e9rie igual de dados v\'e1rias vezes at\'e9 chegar a uma vers\'e3o correta.
Linha004=\line Neste caso, o \b Visualg\b0 permite que voc\'ea armazene estes dados em um arquivo-texto na ordem exata e
Linha005=m que eles ser\'e3o pedidos no programa, e quando for ser executado um comando leia, o \b Visualg\b0 obter\'e1 os d
Linha006=ados deste arquivo, e n\'e3o atrav\'e9s de digita\'e7\'e3o. Esta característica funciona da seguinte maneira:
Linha007=\line 1) se o arquivo cujo nome for dado \b não existir\b0 , o \b Visualg\b0 fará a leitura de dados via digitação e armazenará os dados neste arquivo, na ordem com que forem fornecidos;
Linha008=\line 2) se o arquivo \b existir\b0 , o \b Visualg\b0 obterá os dados deste arquivo até o seu fim, e então voltará a pedir os dados via digitação;
Linha009=\line 3) apenas um comando arquivo pode ser empregado (se preciso) em cada algoritmo, e ele deve estar na se\'e7\'e3o de declara\'e7\'f5es;
Linha010=\line 4) caso não seja fornecido um caminho, o \b Visualg\b0 vai procurar o arquivo na pasta de trabalho corrente (geralmente é a pasta onde o VISUALG.EXE está). O nome em si do arquivo deve ser completo, inclusive com extensão (por exemplo, .txt, .dat, etc.), porque este comando não prevê uma extensão padrão.\f1\fs24\par
Linha011=\f0\fs20 A sintaxe do comando \'e9 \par
Linha012=\f2 arquivo "dados.txt"}
VISUALG3/Exemplos/ACHA_EXPOENTE.alg
Algoritmo "semnome"
// Disciplina : [Linguagem e Lógica de Programação] 
// Professor : Antonio Carlos Nicolodi 
// Descrição : Aqui você descreve o que o programa faz! (função)
// Autor(a) : Nome do(a) aluno(a)
// Data atual : 25/06/2016
Var
// Seção de Declarações das variáveis 
 x : real
 
funcao Expoente(v: real;x:inteiro):Real
var i:inteiro
 vv:real
inicio
 vv := v
 Se x >= 1 ENTAO
 para i de 1 ate x-1 faca
 vv := vv * v
 fimpara
 FIMSE
 retorne vv
fimfuncao
Inicio
// Seção de Comandos, procedimento, funções, operadores, etc...
 x := 2
 Escreval(Expoente(3,X))
Fimalgoritmo
VISUALG3/Exemplos/Araizquadrada.alg
//
Algoritmo "Equacao2Grau"
// Disciplina : [Linguagem e Lógica de Programação]
// Professor(a): Antonio Carlos Nicolodi
// Descrição : Função --> Resolver uma equação do 2º grau.
// Autor(a) : Eu mesmo
// Data atual : 09/10/2015
Var
 // Seção de Declarações das variáveis
 xraiz, x1, x2, delta, a, b, c, B2 :real
inicio
// Seção de Comandos, procedimento, funções, operadores, etc...
 Limpatela
 Escreva("Digite o valor de 'A': ")
 Leia(a)
 Escreva("Digite o valor de 'B': ")
 Leia(b)
 Escreva("Digite o valor de 'C': ")
 Leia(c)
 b2 := b*b // ou use o B2 := B ^ 2
 xraiz := ((4 * a) * c)
 delta := b2 - xraiz
 SE a = 0 ENTÃO
 Escreva("'A' tem que ser diferente de (0)")
 SENÃO
 SE delta > 0 ENTÃO
 Escreval("Existem duas raizes 'possíveis' ")
 x1 := (-b+RaizQ(delta)) / (2 * a )
 x2 := (-b-RaizQ(delta)) / (2 * a )
 Escreval("A Primeira raiz X': ", x1)
 Escreval("A Segunda raiz X'': ", x2)
 SENÃO
 SE delta = 0 ENTÃO
 Escreval("As Duas raizes são iguais ")
 x1 := (-b+RaizQ(delta)) / (2 * a )
 x2 := (-b-RaizQ(delta)) / (2 * a )
 Escreval("A Primeira raiz X': ", x1)
 Escreval("A Segunda raiz X'': ", x2)
 SENÃO
 SE delta < 0 ENTÃO
 Escreva("Não pertence aos números reais")
 FIMSE
 FIMSE
 FIMSE
 FIMSE
Fimalgoritmo
VISUALG3/Exemplos/Arquivo.ALG
Algoritmo "arquivo"
// Disciplina : [Linguagem e Lógica de Programação] 
// Professor : Antonio Carlos Nicolodi 
// Descrição : Aqui você descreve o que o programa faz! (função)
// Autor(a) : Nome do(a) aluno(a)
// Data atual : 08/06/2016
Var
// Seção de Declarações das variáveis 
 ARQUIVO "TESTE.TXT"
 Y : CARACTER
 X : INTEIRO
Inicio
// Seção de Comandos, procedimento, funções, operadores, etc... 
 PARA X DE 1 ATE 100
 LEIA(Y)
 ESCREVAL(Y)
 FIMPARA
Fimalgoritmo
VISUALG3/Exemplos/avaliacao.alg
// ---------------
//
Algoritmo "semnome"
// Disciplina : [Linguagem e Lógica de Programação]
// Professor(a): Antonio Carlos Nicolodi
// Descrição : Aqui você descreve o que o programa faz! (função)
// Autor(a) : Nome do(a) aluno(a)
// Data atual : 02/10/2015
Var
 // Seção de Declarações das variáveis
 ano : vetor[1..10] de inteiro
 i,a,x : inteiro
 med,xm : real
Inicio
 // Seção de Comandos, procedimento, funções, operadores, etc...
 Limpatela
 Escreval("Digite os anos com 4 numeros '9999' ou 0 para encerrar")
 PARA I DE 1 ATÉ 10 FAÇA
 Escreva("Digite o ano da pessoa (",i,"): ")
 LEIA(a)
 SE a > 0 ENTÃO
 ano[i] := 2015 - a
 SENÃO
 INTERROMPA
 FIMSE
 FIMPARA
 i := i - 1
 PARA x DE 1 ATÉ i FAÇA
 Escreval("A idade da ",x:2," pessoa é: ",ano[x])
 MED := (MED + ano[x])
 FIMPARA
 xM:= MED / i
 Escreval("Soma total das idades é: ",MED:4:1)
 Escreval("Número Total de pessoas: ",i:2)
 Escreval("A idade média calculada: ",xM:4:1)
Fimalgoritmo
VISUALG3/Exemplos/BASE16.alg
algoritmo "semnome"
// Função :
// Autor :
// Data : 06/04/2016
// Seção de Declarações
var
XP, DECIMAL, XRESTO :INTEIRO
BASE, INDICE :INTEIRO
LETRAS, XC : CARACTER
inicio
// Seção de Comandos
 ESCREVA("Digite um número decimal : ")
 LEIA(DECIMAL) // ESTE COMANDO FAZ A LEITURA DE
 BASE <- 16
 LETRAS <- "ABCDEF"
PARA indice DE 1 ATE 4 FACA
 XRESTO <- (DECIMAL MOD BASE)
 SE XRESTO = 0 ENTAO
 XC <- "0" + XC
 SENAO
 SE XRESTO > 9 ENTAO
 XP <- XRESTO - 9
 XC <- COPIA(LETRAS,XP,1) + XC
 SENAO
 XC <- NUMPCARAC(XRESTO) + XC
 FIMSE
 FIMSE
 DECIMAL <- (DECIMAL DIV BASE)
FIMPARA
ESCREVAL("O NÚMERO EM HEXADECIMAL É: ",XC)
fimalgoritmo
VISUALG3/Exemplos/BASE2.alg
algoritmo "semnome"
// Função :
// Autor :
// Data : 06/04/2016
// Seção de Declarações
var
XP, DECIMAL, XRESTO :INTEIRO
BASE, INDICE :INTEIRO
LETRAS, XC : CARACTER
inicio
// Seção de Comandos
 ESCREVA("Digite um número decimal : ")
 LEIA(DECIMAL) // ESTE COMANDO FAZ A LEITURA DE
 BASE <- 2
PARA indice DE 1 ATE 8 FACA
 XRESTO <- (DECIMAL MOD BASE)
 SE XRESTO = 0 ENTAO
 XC <- "0" + XC
 SENAO
 XC <- "1" + XC
 FIMSE
 DECIMAL <- (DECIMAL DIV BASE)
FIMPARA
ESCREVAL("O NÚMERO EM BIN É: ",XC)
fimalgoritmo
VISUALG3/Exemplos/bbsort.alg
algoritmo "Bubble Sort"
// Disciplina: [Linguagem e Lógica de programaçao] 
// Algoritmo BUBBLESORT
// Função : Demonstração para o programa VisuAlg
// Autor : Claudio Morgado de Souza
// Data : 08/09/2002
Dos
var
 a, b : inteiro
 temp : real
 x : vetor[1..10] de real
inicio
// Leitura dos dados
aleatorio 0,100,3
para a de 1 ate 10 faca
 leia(x[a])
fimpara
// Ordenação
para a de 1 ate 10 faca
 para b de 1 ate 9 faca
 se x[b] > x[b+1] entao
 temp <- x[b]
 x[b] <- x[b+1]
 x[b+1] <- temp
 fimse
 fimpara
fimpara
// Impressão dos dados ordenados
para a de 1 ate 10 faca
 escreval(a:3," - ", x[a] : 10 : 3)
fimpara
fimalgoritmo
VISUALG3/Exemplos/bbsortp.alg
algoritmo "Bubble Sort"
// Disciplina: [Linguagem e Lógica de programaçao] 
// Algoritmo BUBBLESORT
// Função : Demonstração para o programa VisuAlg 3.03
// Autor : Claudio Morgado de Souza
// Data : 08/09/2002
// Algoritmo BUBBLESORT
// Função : Demonstração para o programa VisuAlg 2.0
// Autor : Claudio Morgado de Souza
// Data : 08/09/2002
// Força a execução do programa na janela DOS
dos
var
 a, b : inteiro
 x : vetor[1..10] de real
procedimento troca( var a, b : real )
var t : real
inicio
 t <- a
 a <- b
 b <- t
fimprocedimento
inicio
// Leitura dos dados
// Gerar numeros aleatorios entre 0 e 100, com 3 casas decimais
aleatorio 0,100,3
para a de 1 ate 10 faca
 leia(x[a])
fimpara
// Ordenação
para a de 1 ate 10 faca
 para b de 1 ate 9 faca
 se x[b] > x[b+1] entao
 troca(x[b],x[b+1])
 fimse
 fimpara
fimpara
// Impressão dos dados ordenados
para a de 1 ate 10 faca
 escreval(a:3," - ", x[a] : 10 : 3)
fimpara
fimalgoritmo
VISUALG3/Exemplos/bbsortreg.alg
// Algoritmo BUBBLESORT Usando Registros
// Função : Demonstração para o programa VisuAlg 3.03
// Autor : Claudio Morgado de Souza
// Data : 27/02/2007
algoritmo "BubbleSortComRegistros"
const
 MAX_ITENS = 10
tipo
 tdados = registro
 codigo: inteiro
 nome: caractere
 fimregistro
var
 dados : vetor[1..MAX_ITENS] de tdados
procedimento leituradosdados
var i: inteiro
inicio
 //Caso você mesmo queira digitar os valores, comente as linhas
 // aleatorio on e aleatorio off abaixo
 aleatorio on
 para i de 1 ate MAX_ITENS faca
 escreva("Digite o codigo do ",i,"o registro:")
 leia(dados[i].codigo)
 escreva("Digite o nome do ",i,"o registro:")
 leia(dados[i].nome)
 fimpara
 aleatorio off
fimprocedimento
procedimento ordenapornome
var a,b: inteiro
 temp: tdados
inicio
 // Ordenação
 para a de 1 ate MAX_ITENS faca
 para b de 1 ate MAX_ITENS-1 faca
 se dados[b].nome > dados[b+1].nome entao
 // Atribuicao do registro inteiro
 temp <- dados[b]
 dados[b] <- dados[b+1]
 dados[b+1] <- temp
 
 fimse
 fimpara
 fimpara
fimprocedimento
procedimento ordenaporcodigo
var a,b: inteiro
 temp: tdados
inicio
 // Ordenação
 para a de 1 ate MAX_ITENS faca
 para b de 1 ate MAX_ITENS-1 faca
 se dados[b].codigo > dados[b+1].codigo entao
 // Atribuicao do registro campo a campo
 temp.codigo <- dados[b].codigo
 temp.nome <- dados[b].nome
 
 dados[b] <- dados[b+1]
 dados[b+1] <- temp
 
 fimse
 fimpara
 fimpara
fimprocedimento
procedimento imprime
var a: inteiro
inicio
 // Impressão dos dados ordenados
 escreval("Item - Codigo Nome")
 para a de 1 ate MAX_ITENS faca
 escreval(a:4," - ", dados[a].codigo : 6, " ", dados[a].nome)
 fimpara
fimprocedimento
inicio
 leituradosdados
 ordenapornome
 imprime
 ordenaporcodigo
 imprime
fimalgoritmo
VISUALG3/Exemplos/bubblrec.alg
// Disciplina: [Linguagem e Lógica de programaçao] 
// Algoritmo BUBBLESORT
// Função : Demonstração para o programa VisuAlg 3.03
// Autor : Claudio Morgado de Souza
// Data : 08/09/2002
// Autor : Claudio Morgado de Souza
// Data : (corrigido em 27/02/2007)
Algoritmo "BubbleSortComRegistros"
const
 MAX_ITENS = 10
tipo
 tdados = registro
 codigo: inteiro
 nome: caractere
 fimregistro
procedimento leituradosdados
var i: inteiro
inicio
 //Caso você mesmo queira digitar os valores, comente as linhas
 // aleatorio on e aleatorio off abaixo
 aleatorio on
 para i de 1 ate MAX_ITENS faca
 escreva("Digite o codigo do ",i,"o registro:")
 leia(dados[i].codigo)
 escreva("Digite o nome do ",i,"o registro:")
 leia(dados[i].nome)
 fimpara
 aleatorio off
fimprocedimento
procedimento ordenapornome
var a,b: inteiro
 temp: tdados
inicio
 // Ordenação
 para a de 1 ate MAX_ITENS faca
 para b de 1 ate MAX_ITENS-1 faca
 se dados[b].nome > dados[b+1].nome entao
 // Atribuicao do registro inteiro
 temp <- dados[b]
 dados[b] <- dados[b+1]
 dados[b+1] <- temp
 
 fimse
 fimpara
 fimpara
fimprocedimento
procedimento ordenaporcodigo
var a,b: inteiro
 temp: tdados
inicio
 // Ordenação
 para a de 1 ate MAX_ITENS faca
 para b de 1 ate MAX_ITENS-1 faca
 se dados[b].codigo > dados[b+1].codigo entao
 // Atribuicao do registro campo a campo
 temp.codigo <- dados[b].codigo
 temp.nome <- dados[b].nome
 
 dados[b] <- dados[b+1]
 dados[b+1] <- temp
 
 fimse
 fimpara
 fimpara
fimprocedimento
procedimento imprime
var a: inteiro
inicio
 // Impressão dos dados ordenados
 escreval("Item - Codigo Nome")
 para a de 1 ate MAX_ITENS faca
 escreval(a:4," - ", dados[a].codigo : 6, " ", dados[a].nome)
 fimpara
fimprocedimento
var
 dados : vetor[1..MAX_ITENS] de tdados
inicio
 leituradosdados()
 ordenapornome()
 imprime()
 ordenaporcodigo()
 imprime()
 // Leitura dos dados
fimalgoritmo
VISUALG3/Exemplos/buscabin.alg
algoritmo "buscabin"
// Disciplina: [Linguagem e Lógica de programaçao] 
// Algoritmo BUBBLESORT
// Função : Demonstração para o programa VisuAlg 3.03
// Data : 08/09/2002
// Função : Exemplo de Busca Binaria
// Autor : Cláudio Morgado de Souza
// Data : (corrigido: 15/09/2002 )
// Força a entrada em modo DOS
dos
// Seção de Declarações
var
 li,ls,j,vbusca, ind : inteiro
 v : vetor[1..20] de inteiro
 achou : logico
inicio
// Preenche um vetor com 20 números aleatórios, entre 0 e 100
aleatorio 0, 100
para j de 1 ate 20 faca
 leia(v[j])
fimpara
aleatorio off
// Ordena o vetor, usando Bubblesort e reaproveitando as variáveis
para li de 1 ate 20 faca
 para ls de 1 ate 19 faca
 se v[ls] > v[ls+1] entao
 vbusca <- v[ls]
 v[ls] <- v[ls+1]
 v[ls+1] <- vbusca
 fimse
 fimpara
fimpara
// Busca binária
repita
 escreva( "Valor para busca (ESC ou menor que 0 termina) : ")
 leia( vbusca)
 se vbusca >= 0 entao
 li <- 1
 ls <- 20
 achou <- Falso
 enquanto (nao achou) e (li <= ls) faca
 ind <- (li+ls) \ 2
 se v[ind] = vbusca entao
 achou <- verdadeiro
 senao
 se v[ind] < vbusca entao
 li <- ind + 1
 senao
 ls <- ind - 1
 fimse
 fimse
 fimenquanto
 se achou entao
 escreval( "Valor encontrado na posição ", ind)
 senao
 escreval( "O valor ", vbusca, " não está na lista.")
 fimse
 // Pausa o programa. Tecle F9 neste ponto para continuar
 pausa
 fimse
ate vbusca < 0
fimalgoritmo
VISUALG3/Exemplos/buscaseq.alg
algoritmo "semnome"
// Disciplina: [Linguagem e Lógica de programaçao] 
// Função : Demonstração para o programa VisuAlg 3.03
// Data : 08/09/2002
// Função : Busca Seqüencial
// Autor : Cláudio Morgado de Souza
// Data : 01/05/03 (correção)
dos
var
 j,k, vb : inteiro
 v : vetor[1..10] de inteiro
 achou : logico
procedimento preenchevetor
// Preenche o vetor com numeros aleatorios entre 0 e 100
var j : inteiro
inicio
para j de 1 ate 10 faca
 v[j]
<- randi(100)
 escreval(j:5,v[j]:5)
fimpara
fimprocedimento
inicio
preenchevetor
escreva("Entre com o valor de busca (ESC termina) :")
leia(vb)
// Busca Seqüencial
j <- 1
repita
 se v[j] = vb entao
 achou <- verdadeiro
 senao
 J <- j+1
 fimse
ate (achou=verdadeiro) ou (j>10)
se achou entao
 escreval("Achei ", vb , " na posição ", j)
senao
 escreval("Nao achei.")
fimse
fimalgoritmo
VISUALG3/Exemplos/buscaseqreg.alg
algoritmo "BuscaSeqRegistro"
// Função : Busca Seqüencial com Registros - Demonstração do Visualg
// Autor : Cláudio Morgado de Souza
// Data : 25/02/2007
dos
tipo
 tlistafunc = registro
 codigo: inteiro
 salario: real
 fimregistro
 
var
 j,k, vb : inteiro
 dados : vetor[1..10] de tlistafunc
 achou : logico
procedimento preenchevetor
// Preenche o vetor com numeros aleatorios entre 0 e 100
var j : inteiro
inicio
para j de 1 ate 10 faca
 dados[j].codigo <- randi(100) // cria codigos aleartorios
 dados[j].salario <- int(rand * 100000)/100 // cria salarios aleatorios
 escreval(j:5,dados[j].codigo:5,dados[j].salario:10:2)
fimpara
fimprocedimento
inicio
preenchevetor
escreva("Entre com o valor de busca (ESC termina) :")
leia(vb)
// Busca Seqüencial
j <- 1
repita
 se dados[j].codigo = vb entao
 achou <- verdadeiro
 senao
 J <- j+1
 fimse
ate (achou=verdadeiro) ou (j>10)
se achou entao
 escreval("Achei o funcionario ", vb , " na posição ", j, " o salario é : ", dados[j].salario:10:2)
senao
 escreval("Nao achei.")
fimse
fimalgoritmo
VISUALG3/Exemplos/buscbinr.alg
algoritmo "buscabinr"
// Função : Exemplo de Busca Binaria Recursiva, Procedimentos, etc.
// Autor : Cláudio Morgado de Souza
// Data : 15/09/2002
// Força a entrada em modo DOS
dos
// Seção de Declarações
var
 v : vetor[1..20] de inteiro
 vbusca, ind : inteiro
funcao buscabinrec( vbusca, li,ls : inteiro ; var ind: inteiro ) : logico
// Busca binária
var achou : logico
inicio
 achou <- falso
 ind <- (li+ls) div 2
 se (li > ls) entao
 retorne falso
 senao
 se v[ind] = vbusca entao
 retorne verdadeiro
 senao
 se v[ind] < vbusca entao
 li <- ind + 1
 senao
 ls <- ind - 1
 fimse
 retorne buscabinrec( vbusca, li,ls,ind )
 fimse
 fimse
fimfuncao
procedimento troca( var a, b : inteiro )
var t : inteiro
inicio
 t <- a
 a <- b
 b <- t
fimprocedimento
procedimento ordena
var a,b : inteiro
inicio
// Ordena o vetor, usando Bubblesort e reaproveitando as variáveis
para a de 1 ate 20 faca
 para b de 1 ate 19 faca
 se v[b] > v[b+1] entao
 troca(v[b],v[b+1])
 fimse
 fimpara
fimpara
fimprocedimento
procedimento carregavetor
var j : inteiro
inicio
// Preenche o vetor com 20 números inteiros aleatórios, entre 0 e 100
para j de 1 ate 20 faca
 v[j] <- randi(100)
fimpara
fimprocedimento
procedimento exibevetor
var j : inteiro
inicio
para j de 1 ate 20 faca
 escreval(j:5,v[j]:5)
fimpara
fimprocedimento
inicio
carregavetor
ordena
exibevetor
repita
 escreva( "Valor para busca (ESC ou menor que 0 termina) : ")
 leia( vbusca)
 se vbusca >= 0 entao
 se buscabinrec(vbusca, 1,20,ind) entao
 escreval( "Valor encontrado na posição ", ind)
 senao
 escreval( "O valor ", vbusca, " não está na lista.")
 fimse
 fimse
ate vbusca < 0
fimalgoritmo
VISUALG3/Exemplos/CAIXA.alg
algoritmo "teste"
// variáveis globais podes aumentar [1..?] pra quantos quiser
Var
 produto: vetor[1..2] de Caracter
 preco: vetor[1..2] de real
 menu: caracter
 itens: inteiro
procedimento cadastrar
// variáveis locais
var
 ler_op: caracter
 opcao: logico
inicio
 opcao := Verdadeiro
 enquanto opcao faca
 limpatela
 escreval("Cadastro de Produtos")
 escreval("--------------------")
 escreval(" ")
 escreva("Produto: ")
 leia(produto[itens])
 escreval(" ")
 escreva("Preco: R$ ")
 leia(preco[itens])
 itens := itens + 1
 se itens <= 2 entao
 opcao := verdadeiro
 escreval(" ")
 escreval("Deseja cadastrar mais Produtos? (s/n): ")
 leia(ler_op)
 se ((ler_op <> "s") ou (ler_op <> "S")) entao
 opcao := falso
 fimse
 senao
 opcao := falso
 fimse
 fimenquanto
fimprocedimento
procedimento consultar
// variáveis locais
var
 opcao: logico
 xi: inteiro
inicio
 opcao := Verdadeiro
 limpatela
 escreval("Mostra os Produtos")
 escreval("--------------------")
 para xi de 1 ate itens - 1 faca
 escreval("Produto: ",produto[xi]," - Preco: R$ ",preco[xi])
 fimpara
 //
 escreval(" ")
 escreval("Tecle <<enter>> pra continuar ")
 leia(opcao)
fimprocedimento
procedimento abrircaixa
// variáveis locais
var
 opcao: logico
inicio
 //
 // aqui você coloca o procedimento
 //
 // o começo eu já fiz
 escreval("Tecle <<enter>> pra continuar ")
 leia(opcao)
fimprocedimento
// inicia o programa
inicio
 itens := 1
 enquanto menu < "4" faca
 limpatela
 escreval("---------Menu-----------")
 escreval("1- Cadastrar produto")
 escreval("2- Consultar produto")
 escreval("3- Abrir caixa")
 escreval("4- Sair")
 escreval("-------------------------")
 escreva("Escolha uma opcao: ")
 leia(menu)
 escolha menu
 caso "1"
 cadastrar
 caso "2"
 consultar
 caso "3"
 abrircaixa // ==> isso é com você
 caso "4"
 interrompa
 outrocaso
 escreval("Opcao invalida")
 fimescolha
 fimenquanto
fimalgoritmo
VISUALG3/Exemplos/Calculo_media2.alg
Algoritmo "Calculo_Media2"
// Disciplina: [Linguagem e Lógica de programaçao] 
// Função : calculo da média aritimética verificando o resultado for maior ou igual a 7; 
// se Sim mostre o aluno xxxx passou
// se Não mostre o aluno xxxx reprovou
// Autor : Professor Antonio
// Data : 05/04/2015
// Seção de Declarações
var
 Nota1, Nota2, Nota3, Nota4, Nota5, Media: Real
 Aluno : Caracter
Inicio
// Seção de Comandos
Escreva ("Digite o nome do aluno: ")
 Leia (Aluno)
Escreva ("Digite a Primeira nota: ")
 Leia (Nota1)
Escreva ("Digite a Segunda nota: ")
 Leia (Nota2)
Escreva ("Digite a Terceira nota: ")
 Leia (Nota3)
Escreva ("Digite a Quarta nota: ")
 Leia (Nota4)
Escreva ("Digite a Quarta nota: ")
 Leia (Nota5)
Media <- (Nota1+ Nota2+ Nota3+ Nota4+ Nota5) / 5
 Escreva ("A Média eh: ", Media)
Se Media >=7 entao
 Escreva(" O Aluno ",Aluno, " Passou !!!")
Senao
 Escreva(" O Aluno ",Aluno, " Reprovou !!!")
fimse
Fimalgoritmo
VISUALG3/Exemplos/Calculo_media2.alg.ALG
Agoritmo "Calculo_Media2"
// Disciplina: [Linguagem e Lógica de programaçao] 
// Professor: Antonio Carlos Nicolodi
// Função : calculo da média aritimética verificando o resultado for maior ou igual a 7; 
 se Sim mostre o aluno xxxx passou
 se Não mostre o aluno xxxx reprovou 
// Autor : Professor Antonio
// Data : 05/04/2015
// Seção de Declarações
var
 Nota1, Nota2, Nota3, Nota4, Nota5, Media: Real
 Aluno : Caracter
Inicio
// Seção de Comandos
Escreva ("Digite o nome do aluno: ")
 Leia (Aluno)
Escreva ("Digite a Primeira nota: ")
 Leia (Nota1)
 Escreva ("Digite a Segunda nota: ")
 Leia (Nota2)
 Escreva ("Digite a Terceira nota: ")
 Leia (Nota3)
Escreva ("Digite a Quarta nota: ")
 Leia (Nota4)
Media <- (Nota1+ Nota2+ Nota3+ Nota4+ Nota5) / 5
 Escreva ("A Média eh: ", Media)
Se Media >=7 entao
 Escreva(" O Aluno ",Aluno, "Passou")
Senao
 Escreva(" O Aluno ",Aluno,
"Reprovou")
fimse
Fimalgoritmo
VISUALG3/Exemplos/CALCULOMEDIA2.ALG
Algoritmo "CalculoMedia2"
// Disciplina: Lógica de programação
// Professor : Antonio Carlos Nicolodi
// Descrição : calculo da média aritimética
// Autor : Professor Antonio
// Data atual: 01/04/2015
var
// Seção de Declarações
 Nota1, Nota2, Nota3, Nota4, Nota5 : Inteiro
 Media: Real
 Aluno : Caracter
Inicio
// Seção dos Comandos
 Escreva ("Digite o nome do aluno: ")
 Leia (Aluno)
 Escreva ("Digite a Primeira nota: ")
 Leia (Nota1)
 Escreva ("Digite a Segunda nota : ")
 Leia (Nota2)
 Escreva ("Digite a Terceira nota: ")
 Leia (Nota3)
 Escreva ("Digite a Quarta nota : ")
 Leia (Nota4)
 Escreva ("Digite a Quint nota : ")
 Leia (Nota5)
 Media <- (Nota1+ Nota2+ Nota3+ Nota4+ Nota5) / 5
 Escreval (" ===================== ")
 Escreval (" ")
 Escreval ("A Média final é: ", Media)
 Escreval (" ")
 Se Media >= 7 entao
 Escreval(" O Aluno ",Aluno, " Passou !")
 Senao
 Escreval(" O Aluno ",Aluno, " Reprovou")
 fimse
Fimalgoritmo
VISUALG3/Exemplos/CALENDARIO.ALG
Algoritmo "CALENDARIO"
// Disciplina: [Linguagem e Lógica de programaçao] 
// Professor: Antonio Carlos Nicolodi
// Função : Mostra um calendário a partir de uma data
// Autor : Antonio Carlos Nicolodi
// Data : 19/05/2015
var
// Seção de Declarações das variáveis 
 AM : vetor[1..6, 1..7] DE CARACTER // A matriz 6X7
 vt : vetor[0..6] de caracter // valor da tabela
dia,mes,ano : INTEIRO
 i,j,k,t,d : INTEIRO
linha,coluna: INTEIRO
 Ultimo : Inteiro
 a,y,m,q : REAL
aa,yy,mm,qq : REAL
 Flag : Logico
pd,sx,xm,xs : CARACTER
//
// Funçoes do programa
//
Funcao Data_ok(xm : Caracter) : Logico
Var
Bisext,Resp : Logico
dia,mes,ano : Inteiro
xBar1,xbar2 : Inteiro
Tamh,Ultimo : Inteiro
B1,B2,Barra : caracter
Inicio
// Valores iniciais das variáveis
 Resp:= Verdadeiro
 Tamh:= Compr(xm)
 Barra:= "/"
 Bisext:= Falso
 Se Tamh = 10 Entao
 Dia := CaracpNum(copia(xm,1,2))
 B1 := copia(xm,3,1)
 Mes := CaracpNum(copia(xm,4,2))
 B2 := copia(xm,6,1)
 Ano := CaracpNum(copia(xm,7,4))
 Senao
 Resp:= Falso
 Fimse
// Compara se o ano está (foi) digitado corretamente
 Se Resp Entao
 xBar1 := Pos(B1,Barra)//volta 0 se não achar 1ª Barra
 xBar2 := Pos(B2,Barra)//volta 0 se não achar 2ª Barra
 Se ((xBar1 > 0) e (xBar2 > 0)) entao // verifica
 Resp := Verdadeiro
 Senao
 Resp := Falso
 Fimse
 SE ((Ano < 1900) ou (Ano>2350)) Entao
 Resp := Falso
 Senao
 Bisext := ((Ano mod 4) = 0)
 FimSe
 SE ((Mes < 1) ou (Mes>12)) Entao
 Resp := Falso
 FimSe
// Compara se o mes está (foi) digitado corretamente
 Ultimo := 31
 SE (Mes = 2) Entao
 Ultimo := 28
 Se Bisext Entao
 Ultimo := Ultimo + 1 // Ou seja 29
 Fimse
 Fimse
// Compara se o dia está (foi) digitado corretamente
 SE ((Dia < 1) ou (Dia> Ultimo)) Entao
 Resp := Falso
 FimSe
 Fimse
// Retorna Verdadeiro ou Falso
 Retorne Resp
Fimfuncao
Funcao StrZero(Numero,Qtde: Inteiro) : Caracter
Var
 Resp : Caracter
 i : inteiro
Inicio
// Preenche a resposta com Quantidade - 1 zeros a esquerda
 Para i de 1 ate Qtde-1 faca
 Resp := "0" + Resp
 Fimpara
 SE Numero < 10 entao
// Se o numero for menor que 10 coloca um zero na frente.
 Resp := Resp + NumpCarac(Numero)
 SENAO
// Transforma em caracter
 Resp := NumpCarac(Numero)
 FIMSE
// Retorna a resposta 01,02,03...09,10,11,12..31
 Retorne Resp
Fimfuncao
inicio
// Preenche a variável com os últimos dias de cada mes
 sx := "31,28,31,30,31,30,31,31,30,31,30,31"
// Preenche o vetor com os dias da semana
 vt[0] := "Dom"
 vt[1] := "Seg"
 vt[2] := "Ter"
 vt[3] := "Qua"
 vt[4] := "Qui"
 vt[5] := "Sex"
 vt[6] := "Sab"
// Entra em um laço (loop) pra pedir a data correta
 Flag := Verdadeiro
 Enquanto Flag Faca
 LimpaTela
 Escreva("Digite A DATA 99/99/9999 dia,mes,ano : ")
 Leia(xm)
 Se Nao(Data_ok(xm)) Entao
 Escreval("Data Invalida !!! - Tecle <ENTER>")
 Leia(xm)
 Flag := Verdadeiro
 senao
 Flag := Falso
 fimse
 FimEnquanto
//Desmonta a data em pedaços (dia, mês, ano) conf. a mascara
 Dia := CARACPNUM(COPIA(XM,1,2))
 Mes := CARACPNUM(COPIA(XM,4,2))
 Ano := CARACPNUM(COPIA(XM,7,4))
// Calcula o primeiro dia do mes para montar o calendário
 A := int((14 - Mes) / 12)
 Y := Ano - A
 M := Mes + (12 * A) - 2
// q := Dia+int((31*M)/12)+y+int(y/4)-int(y/100)+int(y/400)
 q := 01+int((31*M)/12)+y+int(y/4)-int(y/100)+int(y/400)
// mm:= int((31 * M)/12)
// qq:= int(y/4)
// aa:= int(y/100)
// yy:= int(y/400)
// q := Dia + mm + y + qq - aa + yy
// Observação PRA ACHAR O MOD (tem q ser inteiro)
// nessa fórmula vai retornar de 0-6
 d := Int(q) // Transroma o 'q' em inteiro = int(q)
 d := (d mod 7) //(resto da divisão por 7)
 xs := vt[d] // 'd' é real mas no vetor tem q ser
 // um valor inteiro
// Formula pra calcular a posição do ultimo dia/mês
 K := (Mes * 3) - 2
 Ultimo := CaracPNum(Copia(sx,K,2))
// Monta a matriz vazia
 para i de 1 ate 6 faca
 para j de 1 ate 7 faca
 am[i,j] := "__"
 fimpara
 fimpara
// Preenche a matriz com os dias
 T := 1
 Linha := 1
 Coluna := d + 1 //acrescenta de 1 (Um) p/ posicionar certo
 Enquanto T <= Ultimo faca
 Se T = 1 Entao
 Pd:= "1º"
 senao
 Pd:= StrZero(T,2)
 Fimse
 SE ((T > 1) e (T = DIA)) Entao
 Pd := "><"
 Fimse
 am[Linha,Coluna] := Pd // carrega o número do dia
 T := T + 1
 Coluna := Coluna + 1
 SE Coluna > 7 entao
 Coluna := 1
 Linha := Linha + 1
 SE Linha > 6 entao
 Linha := 1
 FIMSE
 FIMSE
 FIMENQUANTO
 LimpaTela
// Mostra o cabeçalho do calendário
 Escreval("Data: ",xm)
 Para i de 0 ate 6 faca
 Escreva(vt[i]," ")
 FimPara
// Mostrar o calendário na tela
 para i de 1 ate 6 faca
 Escreval(" ")
 para j de 1 ate 7 faca
 Escreva(" ",am[i,j]," ")
 fimpara
 fimpara
 Escreval(" ")
//
fimalgoritmo
VISUALG3/Exemplos/caracfun.alg
Algoritmo "semnome"
// Disciplina: [Linguagem e Lógica de programaçao] 
// Professor: Antonio Carlos Nicolodi
// Função : Demonstrar o uso das varias funcoes de caracteres do Visualg 3.03
// Autor :
// Data : 31/12/2003
// Seção de Declarações 
var t : caracter
funcao replicar(s : caracter ; n : inteiro ) : caracter
// Replica a cadeia de caracteres S, N vezes
var t : caracter
 J : inteiro
inicio
 t <- ""
 para j de 1 ate n faca
 t <- t + s
 fimpara
 retorne t
fimfuncao
funcao esquerda(s : caracter ; n : inteiro) : caracter
inicio
 retorne copia(s,1,n)
fimfuncao
funcao direita(s : caracter ; n : inteiro) : caracter
inicio
 retorne copia(s,compr(s)-n+1 ,n)
fimfuncao
funcao numpcaraczero( v, c : inteiro) : caracter
inicio
 retorne direita( replicar("0",c) + numpcarac(v),c)
fimfuncao
procedimento insere( var s : caracter ; subs : caracter ; posic : inteiro )
// Insere a cadeia de caracteres SUBS na variavel S, a partir de POSIC
var x,y : caracter
inicio
 x <- esquerda(s,posic-1)
 y <- direita(s,compr(s)-posic+1)
 s <- x + subs + y
fimprocedimento
inicio
escreval(numpcaraczero(12,6))
t <- "RioJaneiro"
insere(t," de ",4)
escreva(t)
fimalgoritmo
VISUALG3/Exemplos/CARACOL.ALG
Algoritmo "Caracol"
// Disciplina: [Linguagem
e Lógica de programaçao] 
// Professor: Antonio Carlos Nicolodi
// Função: Calcula os passos de um caracol para subir o poço
// Autor : Professor Antonio
// Data : 05/04/2015 
Var 
 Sobe, Desce: Real 
 Dias, Total : Inteiro
 
Inicio
 Sobe <- 0.0
 Desce <- 0.5
 Dias <- 0
 Total <- 10
 Limpatela		
 Escreval("Cálcular os passos de um Caracol")
 Escreval("================================")
 Escreval(" ")
 Para Dias de 0 ate Total faca
 se Sobe <= Total entao
 Sobe <- Sobe + 2 - Desce
 Escreval("Sobe = ",Sobe)
 senao
 interrompa
 fimse
 fimpara
 Escreval(" ")
 Escreval("O Caracol levou ",Dias," dias")
 Escreval(" ")
 
fimAlgoritmo
VISUALG3/Exemplos/Caracol2.ALG
Algoritmo "Caracol"
// Disciplina: [Linguagem e Lógica de programaçao] 
// Professor: Antonio Carlos Nicolodi
// Função: Calcula os passos de um caracol para subir o poço
// Autor : Antonio Carlos Nicolodi
// Data : 05/04/2015 
Var 
 Sobe, Desce: Real 
 Dias, Total : Inteiro
 
Inicio
 Sobe <- 0.0
 Desce <- 0.5
 Dias <- 0
 Total <- 10
 Limpatela		
 Escreval("Um dia um caracol estava andando e caio em um poço")
 Escreval("Cálcular o tempo que ele levaria pra sair desse poço")
 Escreval("========================================================")
 Escreval(" ")
 Para Dias de 0 ate Total faca
 se Sobe <= Total entao
 Sobe <- Sobe + 2 - Desce
 Escreval("Subiu 2 mts p/dia e baixou ",Desce," mts a noite, ficando ",Sobe," mts")
 senao
 interrompa
 fimse
 fimpara
 Escreval(" ")
 Escreval("O Caracol levou ",Dias," dias")
 Escreval(" ")
 
fimAlgoritmo
VISUALG3/Exemplos/cntsort.alg
Algoritmo "countsort"
// Disciplina: [Linguagem e Lógica de programaçao] 
// Função : Demonstração do método COUNTSORT de ordenação.
// Autor : Cláudio Morgado de Souza
// Data : 08/03/2003
// Seção de Declarações
var
v1 : vetor[1..100] de inteiro
v2 : vetor[1..20] de inteiro
j, i, k : inteiro
inicio
// Liga a geracao de dados aleatorios de entrada, limitando-os de 1 a 100 (inclusive)
aleatorio 1,100
// Desliga o eco da leitura de dados na "tela" do computador.
eco off
para j de 1 ate 20 faca
 leia(v2[j])
fimpara
// Conta quantas vezes cada valor de 1 a 100 aparece em v2[]
para j de 1 ate 20 faca
 v1[v2[j]] <- v1[v2[j]] + 1
fimpara
// Inicia a contagem do tempo para a ordenação
cronometro on
k <- 1
para i de 1 ate 100 faca
 para j de 1 ate v1[i] faca
 v2[k] <- i
 k <- k + 1
 fimpara
fimpara
// Termina a contagem de tempo
cronometro off
// Escreve o vetor ordenado
para j de 1 ate 20 faca
 escreval("v2[",j,"] = ", v2[j])
fimpara
fimalgoritmo
VISUALG3/Exemplos/combin.alg
Algoritmo "semnome"
// Disciplina: [Linguagem e Lógica de programaçao] 
// Função : Calcular combinacao de n p a p
// Autor : Cláudio Morgado de Souza
// Data : 14/09/2002
// Seção de Declarações 
var
 n,p,t, u : inteiro
inicio
// Seção de Comandos 
escreva("Número : ")
leia(n)
escreva("Taxa : ")
leia(p)
u <- 1
para t de n-p+1 ate n faca
 u <- u * t
fimpara
para t de 2 ate p faca
 u <- u div t
fimpara
escreval( "Combinação de" , n , " elementos", p , " a" , p , " =" , u )
fimalgoritmo
VISUALG3/Exemplos/const.alg
algoritmo "semnome"
// Função :
// Autor :
// Data : 09/10/2015
// Seção de Declarações 
const x = 10
var
inicio
// Seção de Comandos 
 Escreval(x)
fimalgoritmo
VISUALG3/Exemplos/CPF.ALG
algoritmo "Cpf"
// Disciplina: [Linguagem e Lógica de Programação]
// Professor(a): Antonio Carlos Nicolodi
// Autor : Antonio
// Data : 09/08/2015
var
 cont,dv1,dv2,s1,s2:inteiro
 cpf:caracter
inicio
 // Seção de Comandos
 escreval("Digite CPF:")
 leia(cpf)
 para cont de 1 ate 9 faca
 s1<-s1+(cont*caracpnum(copia(cpf,cont,1)))
 fimpara
 dv1<-s1 mod 11
 se dv1=10 entao
 dv1<-0
 fimse
 se dv1=caracpnum(copia(cpf,10,1)) entao
 para cont de 0 ate 9 faca
 s2<-s2+(cont*caracpnum(copia(cpf,cont+1,1)))
 fimpara
 dv2<-s2 mod 11
 se dv2=10 entao
 dv2<-0
 fimse
 se dv2=caracpnum(copia(cpf,11,1)) entao
 escreval("valido")
 senao
 escreval("invalido")
 fimse
 senao
 escreval("invalido")
 fimse
fimalgoritmo
VISUALG3/Exemplos/Cronometro.alg
Algoritmo "Cronometro"
// Disciplina: [Linguagem e Lógica de programaçao] 
// Professor: Antonio Carlos Nicolodi
// Autor : Wallace S. Maia
// Data : 02/04/2004
// Seção de Declarações 
var
 Hora, Minuto, Segundo: inteiro
funcao replicar(s : caracter ; n : inteiro ) : caracter
// Replica a cadeia de caracteres S, N vezes
var t : caracter
 J : inteiro
inicio
 t <- ""
 para j de 1 ate n faca
 t <- t + s
 fimpara
 retorne t
fimfuncao
funcao direita(s : caracter ; n : inteiro) : caracter
inicio
 retorne copia(s,compr(s)-n+1 ,n)
fimfuncao
funcao numpcaraczero( v, c : inteiro) : caracter
inicio
 retorne direita( replicar("0",c) + numpcarac(v),c)
fimfuncao
inicio
 Hora <- 0
 Minuto <- 0
 Segundo <- 0
 enquanto Hora < 25 faca
 timer 1000
 timer 0
 segundo <- segundo + 1
 se segundo > 59 entao
 Segundo <- 0
 Minuto <- Minuto + 1
 se Minuto > 59 entao
 Minuto <- 0
 Hora <- Hora + 1
 se Hora > 24 entao
 Hora <- 0
 fimse
 fimse
 fimse
 limpatela
 escreva(numpcaraczero(Hora,2),":",numpcaraczero(Minuto,2),":",numpcaraczero(Segundo,2))
 fimenquanto
fimalgoritmo
VISUALG3/Exemplos/decomp.alg
Algoritmo "decompor"
// Disciplina: [Linguagem e Lógica de programaçao] 
// Função : Decompõe um número em seus fatores primos
// Autor : Cláudio Morgado de Souza
// Data : 31/10/2002
// Seção de Declarações 
var j, valor : inteiro
 p, ex : vetor [1..10] de inteiro
inicio
// Seção de Comandos
p[1] <- 2
p[2] <- 3
p[3] <- 5
p[4] <- 7
p[5] <- 11
p[6] <- 13
p[7] <- 17
p[8] <- 19
p[9] <- 23
p[10] <- 29
para j de 1 ate 10 faca
 ex[j] <- 0
fimpara
repita
 leia(valor)
ate valor > 0
para J de 1 ate 10 faca
 repita
 se valor mod p[j] = 0 entao
 valor <- valor div p[j]
 ex[j] <- ex[j] + 1
 fimse
 ate valor mod p[j] <> 0
fimpara
para j de 1 ate 10 faca
 escreval( p[j], ex[j] )
fimpara
fimalgoritmo
VISUALG3/Exemplos/dectobin.alg
Algoritmo "dectobin"
// Algoritmo : DECIMAL PARA BINARIO
// Disciplina: [Linguagem e Lógica de programaçao] 
// Função : Demonstração para o programa VisuAlg 3.03
// Autor : Claudio Morgado de Souza
// Data : 08/09/2002
// Seção de Declarações
var
x : caracter
y,d : inteiro
inicio
// Seção de Comandos
escreva("Entre com um número inteiro :")
leia(y)
d <- y
enquanto y > 0 faca
 se (y mod 2) = 0 entao
 x <- "0" + x
 senao
 x <- "1" + x
 fimse
 y <- y div 2
fimenquanto
escreval("A representação binária de", d, " é ", x)
fimalgoritmo
VISUALG3/Exemplos/dectohex.alg
Algoritmo "dectohex"
// Disciplina: [Linguagem e Lógica de programaçao] 
// Função : Demonstração para o programa VisuAlg 3.03
// Autor : Claudio Morgado de Souza
// Data : 08/09/2002
// Função : Demonstração para o programa VisuAlg, usando a estrutura
// escolha...caso...fimescolha
// Autor : Claudio Morgado de Souza
// Data : 13/04/2003
// Seção de Declarações
var
 x : caracter
 y,d : inteiro
inicio
// Seção de Comandos
escreval("Programa de Conversão Decimal para Hexadecimal")
escreva("Entre com um número inteiro:")
leia(y)
d <- y
se y < 0 entao
 y <- 65536 + y
fimse
enquanto y > 0 faca
 escolha y mod 16
 caso 0
 x <- "0" + x
 caso 1
 x <- "1" + x
 caso 2
 x <- "2" + x
 caso 3
 x <- "3" + x
 caso 4
 x <- "4" + x
 caso 5
 x <- "5" + x
 caso 6
 x <- "6" + x
 caso 7
 x <- "7" + x
 caso 8
 x <- "8" + x
 caso 9
 x <- "9" + x
 caso 10
 x <- "A" + x
 caso 11
 x <- "B" + x
 caso 12
 x <- "C" + x
 caso 13
 x <- "D" + x
 caso 14
 x <- "E" + x
 caso 15
 x <- "F" + x
 fimescolha
 y <- y div 16
fimenquanto
escreval( "A representação hexadecimal de", d, " é ", x,"h")
fimalgoritmo
VISUALG3/Exemplos/DESTAQUES.ALG
Algoritmo "destaques"
// Disciplina : [Linguagem e Lógica de Programação]
// Professor(a): Antonio Carlos Nicolodi
// Descrição : Gerar até 10 números e escolher (qual e qtos) são destaques
// Autor(a) : Eu
// Data atual : 12/09/2015
Var
 // Seção de Declarações das variáveis
 NUMEROS : VETOR[1..10] DE INTEIRO
 REMOVIDO: VETOR[1..10] DE INTEIRO
 INDICE,R1,CONTA,R2,XINS,G1 : INTEIRO
Inicio
 // Seção de Comandos, procedimento, funções, operadores, etc...
MUDACOR("AMARELO","FRENTE")
LIMPATELA
R2 := 0
CONTA := 0
ESCREVAL(" ")
ESCREVAL(" ============================================== ")
ESCREVA("QUANTOS NUMEROS (1-10): ")
LEIA(XINS)
SE XINS <= 10 ENTÃO
 PARA INDICE DE 1 ATÉ XINS FAÇA
 ENQUANTO G1 = 0 FAÇA
 G1 := RANDI(10)
 FIMENQUANTO
 NUMEROS[INDICE] := G1
 G1 := 0
 FIMPARA
 ESCREVA("Digite o destaque: ")
 LEIA(R1)
 PARA INDICE DE 1 ATÉ XINS FAÇA
 SE (NUMEROS[INDICE] = R1) ENTAO
 CONTA := CONTA + 1
 SENÃO
 R2 := R2 + 1
 SE R2 <= XINS ENTÃO
 REMOVIDO[R2] := NUMEROS[INDICE]
 FIMSE
 FIMSE
 FIMPARA
 ESCREVAL(" ")
 ESCREVAL("A SEQUENCIA É ")
 PARA INDICE DE 1 ATÉ XINS FAÇA
 ESCREVA(NUMEROS[INDICE])
 FIMPARA
 ESCREVAL(" ")
 ESCREVAL("O NUMERO DE REPETIÇÕES FOI: ",CONTA)
 ESCREVAL(" ")
 ESCREVAL("RESTOU A SEQUENCIA: ")
 G1 := 0 // REAPROVEITANDO A VARIÁVEL
 PARA INDICE DE 1 ATÉ XINS FAÇA
 G1 := REMOVIDO[INDICE]
 SE G1 <> 0 ENTÃO
 ESCREVA(G1)
 FIMSE
 FIMPARA
FIMSE
Fimalgoritmo
VISUALG3/Exemplos/escolha.alg
Algoritmo "semnome"
// Disciplina: [Linguagem e Lógica de programaçao] 
// Função :
// Autor : Cláudio
// Data : 29/12/2003
// Seção de Declarações 
var
nota : inteiro
inicio
 escreva("Entre com a nota do aluno:")
 leia(nota)
 escolha nota
 caso 0,1,2,3
 escreval("Reprovado.")
 caso 5 ate 7, 4
 // A lista não precisa estar em uma ordem específica
 // Só na cláusula ATE o primeiro valor precisam ser menor que o segundo
 escreval("Em final.")
 caso 8 ate 10
 escreval("Aprovado")
 outrocaso
 escreval("Nota inválida.")
 fimescolha
fimalgoritmo
VISUALG3/Exemplos/Escolha_caso_2.alg
Algoritmo "semnome"
// Disciplina : [Linguagem e Lógica de Programação] 
// Professor(a): Antonio Carlos Nicolodi 
// Descrição : Aqui você descreve o que o programa faz! (função)
// Autor(a) : Nome do(a) aluno(a)
// Data atual : 19/08/2015
Var
// Seção de Declarações das variáveis 
nota : Caracter
Inicio
// Seção de Comandos, procedimento, funções, operadores, etc... 
 escreva("Entre com a nota do aluno:")
 leia(nota)
 escolha nota
 caso "0", "1", "2", "3"
 escreval("Reprovado.")
 caso "5" ATÉ "7", "4"
 // A lista não precisa estar em uma ordem específica
 // Só na cláusula ATE o primeiro valor precisam ser menor que o segundo
 escreval("Em final (exame).")
 caso "8", "9", "10"
 escreval("Aprovado")
 outrocaso
 escreval("Nota inválida.")
 fimescolha
Fimalgoritmo
VISUALG3/Exemplos/estcivil.alg
Algoritmo "estcivil"
// Disciplina: [Linguagem e Lógica de programaçao] 
// Algoritmo : ESTCIVIL
// Função : Calcula a distribuição dos estados civis numa lista de 20 valores
// O estado civil está codificado da seguinte maneira:
// C - Casado, S - Solteiro, V - Viúvo
// Exemplifica o uso do comando escolha...caso...fimescolha
// Autor : Cláudio morgado de Souza
// Data : 14/09/2002
// Seção de Declarações 
var
 ec : caracter
 x,cs,cc,cv : numerico
inicio
// Seção de Comandos
cs <- 0
cv <- 0
cc <- 0
para x de 1 ate 20 faca
 repita
 escreva("Item ",x," Estado Civil (s/c/v):")
 leia(ec)
 ate (ec="s") ou (ec="c") ou (ec="v")
 escolha ec
 caso "c"
 cc <- cc + 1
 caso "s"
 cs <- cs + 1
 outrocaso
 cv <- cv + 1
 fimescolha
fimpara
escreval("Solteiros : ", cs)
escreval("Casados : ", cc)
escreval("Viúvos : ", cv)
fimalgoritmo
VISUALG3/Exemplos/exemplo de pesquisa.alg
Algoritmo "semnome"
// Disciplina : [Linguagem e Lógica de Programação] 
// Professor : Antonio Carlos Nicolodi 
// Descrição : Aqui você descreve o que o programa faz! (função)
// Autor(a) : Nome do(a) aluno(a)
// Data atual : 29/02/2016
Var
// Seção de Declarações das variáveis 
XV : VETOR[1..5] DE CARACTER
I : INTEIRO
FUNÇÃO PESQUISA(X: CARACTER):LOGICO
VAR J : INTEIRO
 K : CARACTER
INICIO
 PARA J DE 1 ATÉ 5 FAÇA
 K := XV[J]
 SE K = X ENTÃO
 RETORNE VERDADEIRO
 INTERROMPA
 SENÃO
 RETORNE FALSO
 FIMSE
 FIMPARA
FIMFUNÇÃO
Inicio
// Seção de Comandos, procedimento, funções, operadores, etc... 
 PARA I DE 1 ATÉ 5 FAÇA
 XV[I] := CARAC(I+64)
 ESCREVAL(XV[I])
 FIMPARA
 ESCREVAL(PESQUISA("D"))
 
Fimalgoritmo
VISUALG3/Exemplos/EXEMPLO1.alg
Algoritmo "EXMPLO1"
// Disciplina: [Linguagem e Lógica de programaçao] 
// Professor : Antonio Carlos Nicolodi 
// Função :
// Autor : Antonio
// Data : 01/06/2015
var
// Seção de Declarações das variáveis 
 A,B,C,X,J,K,TEMP : INTEIRO
 XVET : VETOR[1..3] DE CARACTER
inicio
// Seção de Comandos, procedimento, funções, operadores, etc... 
 ESCREVAL("Digite 3 numeros inteiro!")
 ESCREVA("Primeiro numero: ")
 LEIA(A)
 ESCREVA("Segundo numero: ")
 LEIA(B)
 ESCREVA("Terceiro numero: ")
 LEIA(C)
 
 xvet[1] := A
 xvet[2] := B
 xvet[3] := C
 PARA J DE 1 ATÉ 3 FAÇA
 PARA K DE J ATÉ 3 FAÇA
 SE xvet[J] > xvet[K] ENTÃO
 TEMP := xvet[J]
 xvet[J] := xvet[K]
 xvet[K] := TEMP
 FIMSE
 FIMPARA
 FIMPARA
 ESCREVAL("ESCOLHA AS OPÇOES ABAIXO")
 ESCREVAL("1 - ORDEM CRESCENTE")
 ESCREVAL("2 - ORDEM DECRESCENTE")
 ESCREVAL("3 - ORDEM DE ENTRADA")
 ESCREVA("Digite: ")
 LEIA(X)
 SE X >= 1 E X <= 3 ENTÃO
 SE X = 1 ENTÃO
 ESCREVAL("ORDEM ALFABÉTICA CRESCENTE !!!")
 PARA J DE 1 ATÉ 3 FAÇA
 ESCREVAL(J," VALOR ",xvet[J])
 FIMPARA
 FIMSE
 SE X = 2 ENTÃO
 ESCREVAL("ORDEM ALFABÉTICA DECRESCENTE !!!")
 PARA J DE 3 ATÉ 1 PASSO -1 FAÇA
 ESCREVAL(J," VALOR ",xvet[J])
 FIMPARA
 FIMSE
 SE X = 3 ENTÃO
 ESCREVAL("ORDEM DE ENTRADA !!!")
 ESCREVAL(1," VALOR ",A)
 ESCREVAL(2," VALOR ",B)
 ESCREVAL(3," VALOR ",C)
 FIMSE
 FIMSE
fimalgoritmo
VISUALG3/Exemplos/EXEMPLO1.alg.ALG
algoritmo "EXMPLO1"
// Disciplina: [Linguagem e Lógica de programaçao] 
// Professor : Antonio Carlos Nicolodi
// Função :
// Autor : Antonio
// Data : 01/06/2015
var
// Seção de Declarações das variáveis 
 A,B,C,TEMP : REAL
 X,J,K : INTEIRO
 XVET : VETOR[1..3] DE REAL
inicio
//
Seção de Comandos, procedimento, funções, operadores, etc... 
 ESCREVAL("Digite 3 numeros inteiro!")
 ESCREVA("Primeiro numero: ")
 LEIA(A)
 ESCREVA("Segundo numero: ")
 LEIA(B)
 ESCREVA("Terceiro numero: ")
 LEIA(C)
 
 xvet[1] := A
 xvet[2] := B
 xvet[3] := C
 PARA J DE 1 ATÉ 3 FAÇA
 PARA K DE J ATÉ 3 FAÇA
 SE (xvet[J] > xvet[K]) ENTÃO
 TEMP := xvet[J]
 xvet[J] := xvet[K]
 xvet[K] := TEMP
 FIMSE
 FIMPARA
 FIMPARA
 ESCREVAL("ESCOLHA AS OPÇOES ABAIXO")
 ESCREVAL("1 - ORDEM CRESCENTE")
 ESCREVAL("2 - ORDEM DECRESCENTE")
 ESCREVAL("3 - ORDEM DE ENTRADA")
 ESCREVA("Digite: ")
 LEIA(X)
 SE (X >= 1) E (X <= 3) ENTÃO
 SE (X = 1) ENTÃO
 ESCREVAL("ORDEM ALFABÉTICA CRESCENTE !!!")
 PARA J DE 1 ATÉ 3 FAÇA
 ESCREVAL(J," VALOR ",xvet[J])
 FIMPARA
 FIMSE
 SE (X = 2) ENTÃO
 ESCREVAL("ORDEM ALFABÉTICA DECRESCENTE !!!")
 PARA J DE 3 ATÉ 1 PASSO -1 FAÇA
 ESCREVAL(J," VALOR ",xvet[J])
 FIMPARA
 FIMSE
 SE (X = 3) ENTÃO
 ESCREVAL("ORDEM DE ENTRADA !!!")
 ESCREVAL(1," VALOR ",A)
 ESCREVAL(2," VALOR ",B)
 ESCREVAL(3," VALOR ",C)
 FIMSE
 FIMSE
fimalgoritmo
VISUALG3/Exemplos/EXERCICIO24.ALG
Algoritmo "exercicio24"
// Disciplina: [Linguagem e Lógica de Programação]
// Professor(a): Antonio Carlos Nicolodi
// Faça um algoritmo que receba N números e mostre positivo,
// negativo ou zero para cada número.
Var
 // Seção de Declarações das variáveis
 op,n:inteiro
Inicio
 // Seção de Comandos, procedimento, funções, operadores, etc...
 op<-1
 enquanto op=1 faca
 escreval("Insira um numero")
 leia(n)
 se n<0 entao
 escreval(" Numero Negativo")
 senao
 se n=0 entao
 escreval("Numero igual a zero")
 senao
 se n>0 entao
 escreval("Numero positivo")
 fimse
 fimse
 fimse
 escreval("1- Continuar 2- Sair")
 leia(op)
 fimenquanto
 fimalgoritmo
VISUALG3/Exemplos/EXTENSO4.ALG
algoritmo "Extenso4"
// Disciplina: [Linguagem e Lógica de programaçao] 
// Professor: Antonio Carlos Nicolodi
// Função: Calcula os passos de um caracol para subir o poço
// Autor : Antonio Carlos Nicolodi
// Data : 20/04/2015 
var
 ate20: vetor[1..19] de literal
 dezena: vetor[1..9] de literal
 centena: vetor[1..9] de literal
 Milhar: vetor[1..3] de literal
 XPARTES: vetor[1..4] de literal
 MONTAGEM, XPRIM, XSECN, XTERC, XDECIMAL, STRING: Caracter
 xval, i, x, valor, XCOMPt: Inteiro
inicio
 Textos <- ""
 Escreva("Informe o valor: ")
 leia (valor)
 STRING := NUMPCARAC(VALOR)
 XCOMPt := COMPR(VALOR)
 XVAL := 11 - XCOMPt
 xdecimal := DECIMAL(STRING)
 STRING := ESPACO(XVAL)+STRING
 MONTAGEM := ""
 XPRIM := COPIA(STRING,1,3) // CENTENAS/DEZENA/UNIDADE DE MILHOES
 XSECN := COPIA(STRING,1,3) // CENTENAS/DEZENA/UNIDADE DE MILHARES
 XTERC := COPIA(STRING,1,3) // CENTENAS/DEZENA/UNIDADE DE UNIDADE
 
 xPARTES[1] := XPRIM
 xPARTES[2] := XSECN
 xPARTES[3] := XTERC
 xPARTES[4] := XDECIMAL
 PARA I DE 1 TO 4 FACA
 SE (nao Vazio(xprim)) entao
 X := 1
 ENQUANTO (X < 4) FACA
 CAR := COPIA(XPRIM,X,1)
 Escolha X
 Caso 1:
 SE (E_NUM(CAR) E (X = 1)) ENTAO
 Ccc := CaracpNum(Car)
 Car := Centena[Ccc]
 FIMSE
 Montagem1 := Montagem1 + Car
 X := X + 1
 FIMENQUANTO
 Escreval(Textos)
fimalgoritmo
 
 
// FUNCOES GERAIS
Funcao Vazia(STRING : caracter) : logico
Var
 sVAZ : caracter
 nVAZ : inteiro
 vVAZ : logico
inicio
 vVAZ <- Falso
 sVAZ <- STRING
 sVAZ <- Ltrim(Rtrim(sVAZ))
 nVAZ <- Compr(sVAZ)
 se nVAZ = 0 entao
 vVAZ <- Verdadeiro
 fimse
Retorne vVAZ
Fimfuncao
Funcao E_Num(String: Caracter) : Logico
Var xpos : Inteiro
 xverd: Logico
 indx : Caracter
Inicio
 se Compr(String) < 1 entao
 String := " "
 fimse
 xpos := 0
 xverd := Falso
 indx := "0123456789"
 xpos := POS(String,indx)
 se xpos > 0 entao
 xverd := Verdadeiro
 fimse
Retorne xverd
Fimfuncao
//
Funcao Espaco(Qtde: Inteiro) : Caracter
Var xCar : caracter
 indx : Inteiro
Inicio
 se Qtde < 1 entao
 Qtde := 1
 fimse
 xCar := ""
 Para indx de 1 ate Qtde faca
 xCar := xCar + " "
 Fimpara
Retorne xCar
Fimfuncao
Funcao Decimal(Valor: Caracter) : Caracter
Var xCar, xRET : caracter
 indx : Inteiro
 R_Valor, R_V: Real
Inicio
 se Vazio(Valor) entao
 XRET := "00"
 fimse
 xCar := ""
 R_valor := CaracpNum(Valor)
 indx := Int(R_valor)
 R_v := Int(((R_valor - indx)+0.001)*100)/100
 xRet := NumpCarac(R_v)
Retorne xRet
Fimfuncao
// FUNCAO EXCLUSIVA DESSE PROGRAMA
Funcao AbaixoMil(Valor: Real ) : Caracter
Var
 xcomp : inteiro
 xtext_vazio : Logico
Inicio
 xtext_vazio <- Falso
 Val <- Int(Valor)
 xcomp <- compr(Textos)
 se xcomp = 0 entao
 xtext_vazio <- Verdadeiro
 fimse
 se val = 0 entao
 se nao MaiorQ entao
 Textos <- "Zero"
 fimse
 senao
 se ((Val > 0) e (val < 20)) entao
 se val = 1 entao
 se nao MaiorQ entao
 Textos <- "Hum"
 senao
 se nao xtext_vazio entao
 Textos <- Textos+" e um"
 senao
 Textos <- " um"
 fimse
 fimse
 senao
 se nao xtext_vazio entao
 Textos <- Textos + " e " + ate20[val]
 senao
 Textos <- ate20[val]
 fimse
 val <- p - val
 fimse
 senao
 se (val < 100) entao
 i <- Int(val / 10)
 Textos <- Textos + dezena[i]
 val <- Int(val % 10)
 se (val > 0) entao
 se nao xtext_vazio entao
 Textos <- Textos + " e " + ate20[val]
 senao
 Textos <- ate20[val]
 fimse
 fimse
 senao
 se (val = 100) entao
 Textos <- "Cem"
 senao
 i <- Int(val / 100)
 se i > 0 entao
 Textos <- centena[i]
 xmul <- Int(val - (i * 100))
 val <- xmul
 i <- Int(val / 10)
 se i > 0 entao
 xmul <- Int(val - (i * 10))
 se nao xtext_vazio entao
 Textos <- Textos + " e " + ate20[val]
 senao
 Textos <- ate20[val]
 fimse
 val <- xmul
 se (val > 0) entao
 se nao xtext_vazio entao
 Textos <- Textos + " e " + ate20[val]
 senao
 Textos <- ate20[val]
 fimse
 fimse
 fimse
 fimse
 fimse
 fimse
 fimse
 fimse
Retorne Textos
Fimfuncao
// ate20[0] <- "zero"
 ate20[1] <- "um"
 ate20[2] <- "dois"
 ate20[3] <- "três"
 ate20[4] <- "quatro"
 ate20[5] <- "cinco"
 ate20[6] <- "seis"
 ate20[7] <- "sete"
 ate20[8] <- "oito"
 ate20[9] <- "nove"
 ate20[10] <- "dez"
 ate20[11] <- "onze"
 ate20[12] <- "doze"
 ate20[13] <- "treze"
 ate20[14] <- "quatorze"
 ate20[15] <- "quinze"
 ate20[16] <- "dezesseis"
 ate20[17] <- "dezessete"
ate20[18] <- "dezoito"
 ate20[19] <- "dezenove"
 dezena[1] <- "dez"
 dezena[2] <- "vinte"
 dezena[3] <- "trinta"
 dezena[4] <- "quarenta"
 dezena[5] <- "cinquenta"
 dezena[6] <- "sessenta"
 dezena[7] <- "setenta"
 dezena[8] <- "oitenta"
 dezena[9] <- "noventa"
 centena[1] <- "Cento"
 centena[2] <- "Duzentos"
 centena[3] <- "trezentos
 centena[4] <- "quatrocentos"
 centena[5] <- "quinhentos"
 centena[6] <- "seiscentos"
 centena[7] <- "setecentos"
 centena[8] <- "oitocentos"
 centena[9] <- "novecentos"
// CENTAVOS ,99
 Milhar[1] <- "mil" // 999
 Milhar[2] <- "milhão" // 999.999
 Milhar[3] <- "Bilhão" // 999.999.999
VISUALG3/Exemplos/FAIXA_ETARIA.alg
Algoritmo "semnome"
// Disciplina : [Linguagem e Lógica de Programação] 
// Professor : Antonio Carlos Nicolodi 
// Descrição : Aqui você descreve o que o programa faz! (função)
// Autor(a) : Nome do(a) aluno(a)
// Data atual : 12/06/2016
Var
// Seção de Declarações das variáveis 
 pessoas : vetor[1..10] de Inteiro
 Faixa1,Faixa2,Faixa3,Faixa4,Faixa5: Inteiro
 Contar: Inteiro
 esperar: Logico
Inicio
// Seção de Comandos, procedimento, funções, operadores, etc... 
 Limpatela
 Escreval("Digite as idades de até 10 pessoas ")
 Escreval
 Escreval
// Solicitando os dados na tela
 PARA Contar de 1 ate 10 faca
 Escreva("Digite a ",Contar,"a. Pessoa: ")
 Leia(Pessoas[Contar])
 FIMPARA
 Escreval
 Escreval
// Verificando as faixas de idades
 PARA Contar de 1 ate 10 Faca
 SE Pessoas[Contar] <= 15 ENTAO
 Faixa1 <- Faixa1 + 1
 SENAO
 SE (Pessoas[Contar] > 15) E (Pessoas[Contar] <= 30) ENTAO
 Faixa2 <- Faixa2 + 1
 FIMSE
 SE (Pessoas[Contar] > 31) E (Pessoas[Contar] <= 45) ENTAO
 Faixa3 <- Faixa3 + 1
 FIMSE
 SE (Pessoas[Contar] > 46) E (Pessoas[Contar] <= 60) ENTAO
 Faixa4 <- Faixa4 + 1
 FIMSE
 SE (Pessoas[Contar] > 60) ENTAO
 Faixa5 <- Faixa5 + 1
 FIMSE
 FIMSE
 FIMPARA
// MOSTRA NA TELA
 LIMPATELA
 Escreval("As Faixas de Idades apresentadas ")
 Escreval
 Escreval("1o. faixa com <= 15 anos : ",Faixa1:3)
 Escreval
 Escreval("2o. faixa de 16 à 30 anos: ",Faixa2:3)
 Escreval
 Escreval("3o. faixa de 31 à 45 anos: ",Faixa3:3)
 Escreval
 Escreval("4o. faixa de 46 à 60 anos: ",Faixa4:3)
 Escreval
 Escreval("5o. faixa acima de 60 anos: ",Faixa5:3)
Fimalgoritmo
VISUALG3/Exemplos/fatorial.alg
Algoritmo "semnome"
// Função : Demonstrar a capacidade de recursividade do Visualg versão 3.03
// bem como o uso de variáveis locais
// Autor : Cláudio Morgado de Souza
// Data : 29/12/2003
// Seção de Declarações 
var valor : inteiro
procedimento obtervalor
var x : inteiro
inicio
escreva("Digite um número:")
leia(x)
valor <- x
fimprocedimento
funcao fatorial(v:inteiro) : inteiro
inicio
se v <= 2 entao
 retorne v
senao
 retorne v * fatorial(v-1)
fimse
fimfuncao
inicio
// Corpo principal do programa
obtervalor
escreva("O fatorial de ",valor," é ",fatorial(valor))
fimalgoritmo
VISUALG3/Exemplos/fatorial2.alg
Algoritmo "semnome"
// Função : Demonstrar a capacidade de recursividade do Visualg versão 3.03
// bem como o uso parametros passados por referencia
// Autor : Cláudio Morgado de Souza
// Data : 29/12/2003
// Seção de Declarações 
var valor : inteiro
procedimento obtervalor(var x : inteiro)
inicio
escreva("Digite um número:")
leia(x)
fimprocedimento
funcao fatorial(v:inteiro) : inteiro
inicio
se v <= 2 entao
 retorne v
senao
 retorne v * fatorial(v-1)
fimse
fimfuncao
inicio
// Corpo principal do programa
obtervalor(valor)
escreva("O fatorial de ",valor," é ",fatorial(valor))
fimalgoritmo
VISUALG3/Exemplos/FIBONACCI.ALG
Algoritmo "FIBONACCI"
// Disciplina : [Linguagem e Lógica de Programação] 
// Professor(a): Antonio Carlos Nicolodi 
// Descrição : Sequencia Fibonacci
// Autor(a) : Nome do(a) aluno(a)
// Data atual : 12/10/2015
Var
// Seção de Declarações das variáveis 
 termo1,termo2,novoTermo,i : inteiro
Inicio
// Seção de Comandos, procedimento, funções, operadores, etc... 
 termo1 := 0
 termo2 := 1
 novoTermo := 0
 Escreval(" 1o. termo = ", termo1)
 Escreval(" 2o. termo = ", termo2)
 PARA i DE 3 ATÉ 10 FAÇA
 novoTermo := termo1 + termo2
 Escreval(i,"o. Termo = ", novoTermo)
 termo1 := termo2
 termo2 := novoTermo
 FIMPARA
Fimalgoritmo
VISUALG3/Exemplos/inssort.alg
algoritmo "sort_insercao"
// Disciplina: [Linguagem e Lógica de programaçao] 
// Função : Algoritmo de SORT por inserção
// Autor : Cláudio Morgado de Souza
// Data : 7/6/2003
// Seção de Declarações 
var
 v : vetor [1..20] de inteiro
 j,k,i,temp : inteiro
inicio
// Seção de Comandos
 aleatorio 1,100
 eco off
 para j de 1 ate 20 faca
 leia(v[j])
 fimpara
 para j de 1 ate 19 faca
 k <- j
 para i de (j+1) ate 20 faca
 se v[i] < v[k] entao
 k <- i
 fimse
 fimpara
 se k > j entao
 temp <- v[j]
 v[j] <- v[k]
 v[k] <- temp
 fimse
 fimpara
 para j de 1 ate 20 faca
 escreval(v[j])
 fimpara
fimalgoritmo
VISUALG3/Exemplos/interrompa.alg
Algoritmo "interrompa"
// Disciplina: [Linguagem e Lógica de programaçao] 
// Função : Demonstrar o uso dos comandos interrompa e fimrepita
// Autor :
// Data : 04/01/2004
// Seção de Declarações 
var x : inteiro
inicio
x <- 0
repita
 x <- x + 1
 escreva(x)
 se x = 10 entao
 interrompa // não estruturado, mas usado por alguns autores...
 fimse
fimrepita
escreval()
// O trecho acima é o mesmo que:
x <- 0
repita
 x <- x + 1
 escreva(x)
ate x = 10
fimalgoritmo
VISUALG3/Exemplos/Jogo_velha.alg
Algoritmo "semnome"
// Disciplina: [Linguagem e Lógica de programaçao] 
// Data : 24/4/2015
// Seção de Declarações
var
i,xc,xl : inteiro
l,f : logico
s,x,xcl : caracter
A11,A12,A13,A21,A22,A23,A31,A32,A33 : caracter
Funcao Randomico(Num : inteiro) : Inteiro
VAR
 Ds : Inteiro
Inicio
ECO OFF
Aleatorio on
Aleatorio 1,3
Leia(Ds)
Aleatorio off
Retorne Ds
ECO ON
Fimfuncao
Procedimento Erro
Var
D : Literal
Inicio
Escreval("Campo já está ocupado !!!")
Leia(D)
FimProcedimento
Procedimento Acha_O
Var
Inicio
Enquanto f faca
 xcl <- ""
 i <- 3
 xc <- i
 xcl <- xcl + Numpcarac(i)
 i <- 3
 xl <- i
 xcl <- xcl + Numpcarac(i)
 S <- xcl
 x <- "O"
 se S = "11" entao
 se A11 = "_" entao
 A11 <- X
 f <- Falso
 fimse
 fimse
 se S = "12" entao
 se A12 = "_" entao
 A12 <- X
 f <- Falso
 fimse
 fimse
 se S = "13" entao
 se A13 = "_" entao
 A13 <- X
 f <- Falso
 fimse
 fimse
 se S = "21" entao
 se A21 = "_" entao
 A21 <- X
 f <- Falso
 fimse
 fimse
 se S = "22" entao
 se A22 = "_" entao
 A22 <- X
 f <- Falso
 fimse
 fimse
 se S = "23" entao
 se A23 = "_" entao
 A23 <- X
 f <- Falso
 fimse
 fimse
 se S = "31" entao
 se A31 = "_" entao
 A31 <- X
 f <- Falso
 fimse
 fimse
 se S = "32" entao
 se A32 = "_" entao
 A32 <- X
 f <- Falso
 fimse
 fimse
 se S = "33" entao
 se A33 = "_" entao
 A33 <- X
 f <- Falso
 fimse
 fimse
fimenquanto
Fimprocedimento
Procedimento Mostra_tela
Var
Inicio
 limpatela
 Escreval(" Jogo da Velha em visualG ")
 Escreval(" ")
 Escreval(" ")
Escreval(" 1 2 3 ")
 Escreval(" +-----+------+------+")
 Escreval("1 | ",A11," | ",A12," | ",A13," |")
 Escreval(" |-----+------+------|")
 Escreval("2 | ",A21," | ",A22," | ",A23," |")
 Escreval(" |-----+------+------|")
 Escreval("3 | ",A31," | ",A32," | ",A33," |")
 Escreval(" |-----+------+------|")
 Escreval(" ")
 Escreval(" ")
 Escreva(" Digite a linha e coluna: ")
FimProcedimento
inicio
// Seção de Comandos
l <- verdadeiro
A11 <- "_"
A12 <- "_"
A13 <- "_"
A21 <- "_"
A22 <- "_"
A23 <- "_"
A31 <- "_"
A32 <- "_"
A33 <- "_"
f <- Falso
enquanto l faca
 f <- (nao f)
 Acha_O
 Mostra_tela
 
 Leia(s)
 SE Compr(S) = 1 entao
 se (S = "F") entao
 l <- Falso
 Interrompa
 fimse
 senao
 SE Compr(S) = 2 entao
 se S = "11" entao
 se A11 = "_" entao
 A11 <- "X"
 senao
 Erro
 fimse
 fimse
 se S = "12" entao
 // A12 <- "X"
 se A12 = "_" entao
 A12 <- "X"
 senao
 Erro
 fimse
 fimse
 se S = "13" entao
 // A13 <- "X"
 se A13 = "_" entao
 A13 <- "X"
 senao
 Erro
 fimse
 fimse
 se S = "21" entao
 // A21 <- "X"
 se A21 = "_" entao
 A21 <- "X"
 senao
 Erro
 fimse
 fimse
 se S = "22" entao
 // A22 <- "X"
 se A22 = "_" entao
 A22 <- "X"
 senao
 Erro
 fimse
 fimse
 se S = "23" entao
 // A23 <- "X"
 se A23 = "_" entao
 A23 <- "X"
 senao
 Erro
 fimse
 fimse
 se S = "31" entao
 // A31 <- "X"
 se A31 = "_" entao
 A31 <- "X"
 senao
 Erro
 fimse
 fimse
 se S = "32" entao
 // A32 <- "X"
 se A32 = "_" entao
 A32 <- "X"
 senao
 Erro
 fimse
 fimse
 se S = "33" entao
 // A33 <- "X"
 se A33 = "_" entao
 A33 <- "X"
 senao
 Erro
 fimse
 fimse
 fimse
 Fimse
 Escreval(" ")
 Escreval(" ")
 Escreval(" ")
 Escreval(" escolha <Ann> ou <Bnn> ou <<F> para finalizar>")
fimenquanto
fimalgoritmo
VISUALG3/Exemplos/matriz 3x3.alg
Algoritmo "semnome"
// Disciplna : [Linguagem e Lógica de Programação] 
// Professor : Antonio Carlos Nicolodi 
// Descrição : Aqui você descreve o que o programa faz! (função)
// Autor(a) : Nome do(a) aluno(a)
// Data atual : 24/11/2015
Var
// Seção de Declarações das variáveis 
i,xc,xl : inteiro
l,f : logico
s,x,xcl : caracter
A11,A12,A13,A21,A22,A23,A31,A32,A33 : caracter
Funcao Randomico(Num : inteiro) : Inteiro
VAR
 Ds : Inteiro
Inicio
ECO OFF
Aleatorio on
Aleatorio 1,3
Leia(Ds)
Aleatorio off
Retorne Ds
ECO ON
Fimfuncao
Procedimento Erro
Var
D : Literal
Inicio
Escreval("Campo já está ocupado !!!")
Leia(D)
FimProcedimento
Procedimento Acha_O
Var
Inicio
Enquanto f faca
 xcl <- ""
 i <- 3
 xc <- i
 xcl <- xcl + Numpcarac(i)
 i <- 3
 xl <- i
 xcl <- xcl + Numpcarac(i)
 S <- xcl
 x <- "O"
 se S = "11" entao
 se A11 = "_" entao
 A11 <- X
 f <- Falso
 fimse
 fimse
 se S = "12" entao
 se A12 = "_" entao
 A12 <- X
 f <- Falso
 fimse
 fimse
 se S = "13" entao
 se A13 = "_" entao
 A13 <- X
 f <- Falso
 fimse
 fimse
 se S = "21" entao
 se A21 = "_" entao
 A21 <- X
 f <- Falso
 fimse
 fimse
 se S = "22" entao
 se A22 = "_" entao
 A22 <- X
 f <- Falso
 fimse
 fimse
 se S = "23" entao
 se A23 = "_" entao
 A23 <- X
 f <- Falso
 fimse
 fimse
 se S = "31" entao
 se A31 = "_" entao
 A31 <- X
 f <- Falso
 fimse
 fimse
 se S = "32" entao
 se A32 = "_" entao
 A32 <- X
 f <- Falso
 fimse
 fimse
 se S = "33" entao
 se A33 = "_" entao
 A33 <- X
 f <- Falso
 fimse
 fimse
fimenquanto
Fimprocedimento
Procedimento Mostra_tela
Var
Inicio
 limpatela
 Escreval(" Jogo da Velha em visualG ")
 Escreval(" ")
 Escreval(" ")
 Escreval(" 1 2 3 ")
 Escreval(" +-----+------+------+")
 Escreval("1 | ",A11," | ",A12," | ",A13," |")
 Escreval(" |-----+------+------|")
 Escreval("2 | ",A21," | ",A22," | ",A23," |")
 Escreval(" |-----+------+------|")
 Escreval("3 | ",A31," | ",A32," | ",A33," |")
 Escreval(" |-----+------+------|")
 Escreval(" ")
 Escreval(" ")
 Escreva(" Digite a linha e coluna: ")
FimProcedimento
Inicio
// Seção de Comandos, procedimento, funções, operadores, etc... 
l <- verdadeiro
A11 <- "_"
A12 <- "_"
A13 <- "_"
A21 <- "_"
A22 <- "_"
A23 <- "_"
A31 <- "_"
A32 <- "_"
A33 <- "_"
f <- Falso
enquanto l faca
 f <- (nao f)
 Acha_O
 Mostra_tela
 Leia(s)
 SE Compr(S) = 1 entao
 se (S = "F") entao
 l <- Falso
 Interrompa
 fimse
 senao
 SE Compr(S) = 2 entao
 se S = "11" entao
 se A11 = "_" entao
 A11 <- "X"
 senao
 Erro
 fimse
 fimse
 se S = "12" entao
 // A12 <- "X"
 se A12 = "_" entao
 A12 <- "X"
 senao
 Erro
 fimse
 fimse
 se S = "13" entao
 // A13 <- "X"
 se A13 = "_" entao
 A13 <- "X"
 senao
 Erro
 fimse
 fimse
 se S = "21" entao
 // A21 <- "X"
 se A21 = "_" entao
 A21 <- "X"
 senao
 Erro
 fimse
 fimse
 se S = "22" entao
 // A22 <- "X"
 se A22 = "_" entao
 A22 <- "X"
 senao
 Erro
 fimse
 fimse
 se S = "23" entao
 // A23 <- "X"
 se A23 = "_" entao
 A23 <- "X"
 senao
 Erro
 fimse
 fimse
 se S = "31" entao
 // A31 <- "X"
 se A31 = "_" entao
 A31 <- "X"
 senao
 Erro
 fimse
 fimse
 se S = "32" entao
 // A32 <- "X"
 se A32 = "_" entao
 A32 <- "X"
 senao
 Erro
 fimse
 fimse
 se S = "33" entao
 // A33 <- "X"
 se A33 = "_" entao
 A33 <- "X"
 senao
 Erro
 fimse
 fimse
 fimse
 Fimse
 Escreval(" ")
 Escreval(" ")
 Escreval(" ")
 Escreval(" escolha <Ann> ou <Bnn> ou <<F> para finalizar>")
fimenquanto
Fimalgoritmo
VISUALG3/Exemplos/matriz.alg
//
//
Algoritmo "semnome"
// Disciplna : [Linguagem e Lógica de Programação] 
// Professor : Antonio Carlos Nicolodi 
// Descrição : Aqui você descreve o que o programa faz! (função)
// Autor(a) : Nome do(a) aluno(a)
// Data atual : 07/11/2015
Var
// Seção de Declarações

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Continue navegando