Baixe o app para aproveitar ainda mais
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
Compartilhar