Você está na página 1de 11

Algoritmos com VisuAlg

Prof. Gerson Volney Lagemann Depto. Eng. de Produo e Sistemas UDESC - CCT

Eng. de Produo e Sistemas

APG

Algoritmos com VisuAlg


Introduo

A linguagem VisuAlg simples, seu objetivo disponibilizar um ambiente de programao no idioma portugus do Brasil utilizando para tal o Portugol muito usado na bibliografia da rea. Entre as principais caractersticas estruturais da linguagem vale destacar: O VisuAlg permite apenas um comando por linha; Todas as palavras-chave do VisuAlg foram implementadas sem acentos, cedilha, etc. O VisuAlg no distingue maisculas e minsculas no reconhecimento de palavras-chave e nomes de variveis. permitida a incluso de comentrios: qualquer texto precedido de "//" ignorado, at se atingir o final da sua linha. O formato bsico do pseudocdigo o seguinte: algoritmo "semnome" // Funo: // Autor: // Data: //Seo de Declaraes inicio // Seo de Comandos fimalgoritmo

Tipos de Dados

inteiro: define variveis numricas do tipo inteiro, ou seja, sem casas decimais. Ex. idade, nmero de filhos, quantidade de estados do Brasil.

real: define variveis numricas do tipo real, ou seja, com casas decimais. Ex. salrio, peso, temperatura. caractere: define variveis do tipo string, ou seja, cadeia de caracteres. 2

Eng. de Produo e Sistemas

APG

Ex. nome, endereo, frase

logico: define variveis do tipo booleano, ou seja, com valor VERDADEIRO ou


FALSO.

O VisuAlg permite tambm a declarao de variveis estruturadas atravs da palavrachave vetor.

Nomes de Variveis

Os nomes das variveis devem obrigatoriamente comear por uma letra. Aps a primeira letra poder conter letras, nmeros ou underline ( _ ), at um limite de 30 caracteres. As variveis podem ser simples ou estruturadas (vetores de uma ou duas dimenses). Variveis no podem ter nomes iguais. Iniciar a declarao de variveis obrigatoriamente com o termo var, seguir com os nomes das variveis separados por ,, colocar o sinal : e finalmente informar o tipo daquela varivel ou lista de variveis. Ex.: var a: inteiro valor1, valor2 : real nome_aluno : caractere

Obs: A identao da linha 1 para a linha 2 no obrigatria, mas recomendvel para melhor visualizao.

Constantes

O VisuAlg tem trs tipos de constantes: Numricas: so valores numricos escritos na forma usual das linguagens de programao. Podem ser inteiros ou reais. Neste ltimo caso, o separador de decimais o ponto e no a vrgula. O VisuAlg no suporta separadores de milhares. Caracteres: qualquer cadeia de caracteres delimitada por aspas duplas ("). 3

Eng. de Produo e Sistemas

APG

Lgicos: admite os valores VERDADEIRO ou FALSO.

Comando de Atribuio

A atribuio de valores a variveis feita com o operador <-. Do seu lado esquerdo fica a varivel qual est sendo atribudo o valor, e sua direita pode-se colocar qualquer expresso (constantes, variveis, expresses numricas), desde que seu resultado tenha tipo igual ao da varivel. Ex. a <- 3 valor1 <- 1.5 valor2 <- valor1 + a nome_aluno <- "Jos da Silva"

Expresses Aritmticas

Operador + * / ^

Operao Adio Subtrao Multiplicao Diviso Potenciao

Exemplo 3+2 10 - 5 3*7 25 / 2 5^2

Resultado 5 5 21 12.5 25

OBS.: - No se usa o "X" para indicar a multiplicao, nem a barra horizontal de frao para indicar a diviso. - Da mesma forma que a matemtica, algumas operaes tm prioridade sobre as outras. A potenciao tem a maior prioridade entre todos os operadores. A Multiplicao e a diviso devem ser operadas antes da adio e da subtrao. Para alterar as prioridades, novamente como na matemtica, devemos usar os parnteses (). Veja alguns exemplos de atribuio e expresses aritmticas:

Eng. de Produo e Sistemas

APG

Palavras Reservadas do VisuAlg

aleatrio algoritmo arquivo asc ate carac caracpnum caractere caso compr copia cronometro debug e eco

enquanto entao escolha escreva escreval faca falso fimalgoritmo fimenquanto fimescolha fimfuncao fimpara fimprocedimento fimrepita fimse

funcao inicio int inteiro interrompa leia limpatela logico maiusc minusc mod nao numpcarac ou outrocaso

para passo pausa pos real procedimento repita retorne se senao timer var vetor verdadeiro xou

Entrada de Dados no Programa

Para passar um dado para o programa vamos usar o comando Leia. Assim, se voc precisa das notas das provas de um aluno para que o programa calcule a mdia voc deve usar esta instruo para que o usurio do programa possa digit-la e ento o programa possa calcular a mdia. A sintaxe deste comando :

Leia <Nome_De_Varivel>

Se definssemos as variveis:

var nota1, nota2, media : real

ento usaramos o comando:

Eng. de Produo e Sistemas

APG

Leia nota1 Leia nota2 ou Leia (nota1, nota2)

Supondo que o usurio digitasse 7.5" teclasse ENTER e digitasse 6.5 e teclasse ENTER, o valor "7.5" seria atribudo a varivel nota1 e o valor 6.5 a nota2, automaticamente. Quando usar leia(nota1, nota2) necessrio que aps digitar a nota1 seja teclado ENTER e ento digitada a nota2 e teclado ENTER novamente.

Sada de Dados do Programa

A lgica de qualquer programa indica que pelo menos um resultado ele deve fornecer. Podemos ter programas que no necessariamente necessitem ler algum dado para sua execuo, porm no tem sentido um programa executar e no exibir nenhuma informao a respeito do que foi processado. Nos algoritmos usamos o comando Escreva. A sintaxe deste comando a seguinte:

Escreva <Expresso1, Expresso2, etc...>

Expresso1, Expresso2 so valores de qualquer tipo, separados por vrgula. Estes valores podem ser constantes ou variveis. Caso a expresso seja uma varivel o que ser exibido o seu valor.

Comandos (algoritmo) Escreva ("Al, mundo!") Escreva (20) var nome : caracter var idade : numerico nome "Jos" idade 40

Resultado (tela do computador) Al, mundo! 20

Eng. de Produo e Sistemas

APG

Escreva (nome) Escreva ("O meu nome ", nome) Escreva ("Tenho ", idade, " anos")

Jos O meu nome Jos Tenho 40 anos

Mais exemplos:

Comando
1 var A : inteiro A 3 Escreva (A * 5) 2 var A, B : inteiro A 10 B A * 3 Escreva (B A + 1) B 40 Escreva (B A + 1) Var x inteiro Leia x Escreva (x * 2)

Comentrio
Definio de uma varivel de nome A do tipo inteiro O valor de A passa a ser 3 Ser mostrado o valor 15, pois A=3 e 3 * 5 = 15 Definio de duas variveis de nome A e B do tipo inteiro O valor de A passa a ser 10 O valor de B passa a ser 30 Ser mostrado o valor 21 (30 10 + 1) O valor de B passa a ser 40 Ser mostrado o valor 31 (40 10 + 1) Definio de uma varivel de nome x do tipo inteiro Ser obtido o nmero que ser digitado pelo usurio. Ser mostrado o dobro do valor digitado pelo usurio.

Operadores Relacionais

Nome Igual Diferente Menor Maior Menor ou igual Maior ou igual

Smbolo = <> < > <= >=

Eng. de Produo e Sistemas

APG

Instruo de Deciso SE

Forma Geral:

se

<condio> instruo_1 instruo_2 . . instruo_n

entao

senao instruo_1 instruo_2 . . instruo_n fimse

O resultado da <condio> obtida pela interpretao lgica a partir da utilizao de um dos operadores relacionais acima ou ainda de uma combinao entre eles. Veja o exemplo a seguir:

algoritmo "media" // Funo : media // Autor : Gerson // Data : 09/08/2010 // Seo de Declaraes var n1, n2: inteiro m : real inicio // Seo de Comandos Escreva ("Informe a nota1: ") leia (n1) escreva ("Informe a nota 2: ") leia (n2) 8

Eng. de Produo e Sistemas

APG

m <- (n1 + n2) / 2 escreva ("Media = ", m) se m < 7.0 entao Escreva ("Em EXAME") Senao Escreva ("APROVADO") fimse fimalgoritmo

OBS: - O deslocamento de espaos usado no exemplo acima na instruo se no obrigatria, serve somente para deixar o programa mais claro. - conveniente antes de ler algum dado do usurio exibir o que est sendo pedido que seja digitado ( Escreva ("Informe a nota1: ")).

A instruo se pode ainda aparecer sem o complemento senao. Veja:

Forma Geral:

se

<condio> instruo_1 instruo_2 . . instruo_n

entao

fimse

Instrues de Repetio

A Instruo de Repetio Enquanto_Faa

As instrues de repetio servem para que uma determinada sequncia de instrues seja repetida um nmero finito de vezes. O nmero de repeties controlado por uma instruo lgica que caso VERDADEIRA executa as instrues do lao e caso FALSA abandona o lao, seguindo para a primeira instruo aps o fimenquanto . 9

Eng. de Produo e Sistemas

APG

Forma Geral:

enquanto <expresso_lgica> faca instruo_1 instruo_2 . . instruo_n fimenquanto LAO

Veja exemplo abaixo


algoritmo "lista"

INICIO

// Funo : lista // Autor : Gerson // Data : 09/08/2010

A< 11

N FIM

// Seo de Declaraes var A: inteiro

S Escreva (A)

inicio // Seo de Comandos A <- 1 enquanto a < 11 faca escreva (A) A <- A + 1

1+1

fimenquanto fimalgoritmo

A Instruo de Repetio Para_Faa

Similar a instruo enquanto_faa a para_faa serve para que uma determinada sequncia de instrues seja repetida um nmero finito de vezes. O nmero de repeties controlado por uma instruo lgica que caso VERDADEIRA executa as instrues do lao e caso FALSA abandona o lao, seguindo para a primeira instruo aps o fimpara. A diferena entre as duas instrues est no incremento automtico que a instruo fimpara apresenta.

10

Eng. de Produo e Sistemas

APG

Forma Geral:

para

<varivel>

de

<valor_inicial>

ate

<valor_final> <passo> faca instruo_1 instruo_2 . . instruo_n fimpara LAO

Veja exemplo abaixo.

algoritmo "lista" // Funo : lista // Autor : Gerson // Data : 09/08/2010 // Seo de Declaraes var A: inteiro inicio // Seo de Comandos para A de 1 ate 10 passo 1 faca escreva (A) fimpara fimalgoritmo

Referncias Bibliogrficas

MAZIOLI, J. R. Apostila: Lgica de Programao com VisuAlg. CEET: Vila Velha ES, 2008. SOUZA, C. M. VisuAlg. http://www.apoioinformatica.inf.br/programas - acessado em 09/08/2010.

11