Você está na página 1de 3

VisuAlg O VisuAlg um programa que interpreta uma linguagem de programao bem semelhante aos pseudocdigos utilizados para aprender

r Lgica de Programao, a representao que chamamos de Portugus Estruturado ou Portugol. A linguagem do VisuAlg permite apenas um comando por linha,no preciso colocar ponto e vrgula no final das frases. Todas as palavras-chave do VisuAlg foram implementadas sem acentos, cedilha, etc. Portanto, o tipo de dados lgico definido como logico, o comando se..ento..seno definido como se..entao..senao, e assim por diante. O VisuAlg tambm no distingue maisculas e minsculas no reconhecimento de palavras-chave e nomes de variveis. Ou seja, para o programa, ABC o mesmo que abc. Formato Cdigo e Incluso de Comentrios O formato bsico do nosso pseudocdigo o seguinte: algoritmo "semnome" // Funo : // Autor : // Data : // Seo de Declaraes inicio // Seo de Comandos fimalgoritmo A primeira linha composta pela palavra-chave algoritmo seguida do seu nome delimitado por aspas duplas. Este nome ser usado como ttulo nas janelas de leitura de dados. A seo que se segue a de declarao de variveis, que termina com a linha que contm a palavra-chave inicio. Deste ponto em diante est a seo de comandos, que continua at a linha em que se encontre a palavra-chave fimalgoritmo. Esta ltima linha marca o final do pseudocdigo: todo texto existente a partir dela ignorado pelo interpretador. O VisuAlg permite a incluso de comentrios: qualquer texto precedido de "//" ignorado, at se atingir o final da sua linha. Por este motivo, os comentrios no se estendem por mais de uma linha: quando se deseja escrever comentrios mais longos, que ocupem vrias linhas, cada uma delas dever comear por "//". Tipos de Dados O VisuAlg prev quatro tipos de dados: inteiro, real, cadeia de caracteres e lgico (ou booleano). As palavraschave que os definem so as seguintes: inteiro: define variveis numricas do tipo inteiro, ou seja, sem casas decimais. real: define variveis numricas do tipo real, ou seja, com casas decimais. caractere: define variveis do tipo string, ou seja, cadeia de caracteres. logico: define variveis do tipo booleano, ou seja, com valor VERDADEIRO ou FALSO. Nomes de Variveis e sua Declarao Os nomes das variveis devem comear por uma letra e depois conter letras, nmeros ou underline, at um limite de 30 caracteres. No pode haver duas variveis com o mesmo nome, com a natural exceo dos elementos de um mesmo vetor. A seo de declarao de variveis comea com a palavra-chave var, e continua com as seguintes sintaxes: <lista-de-variveis> : <tipo-de-dado> Na <lista-de-variveis>, os nomes das variveis esto separados por vrgulas. Exemplos: var a: inteiro Valor1, Valor2: real nome_do_aluno: caractere sinalizador: logico Note que no h a necessidade de ponto e vrgula aps cada declarao: basta pular linha. O nmero total de variveis suportado pelo VisuAlg 500. Constantes e Comando de Atribuio O VisuAlg tem trs tipos de constantes: Numricos: 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, independente da configurao regional do computador onde o VisuAlg est sendo executado. O VisuAlg tambm no suporta separadores de milhares. Caracteres: qualquer cadeia de caracteres delimitada por aspas duplas ("). Lgicos: admite os valores VERDADEIRO ou FALSO. 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 resultadotenha tipo igual ao da varivel. Alguns exemplos de atribuies, usando as variveis declaradas acima: a <- 3 Valor1 <- 1.5 Valor2 <- Valor1 + a nome_do_aluno <- "Jos da Silva" sinalizador <- FALSO

Operadores Aritmticos +,Operadores unrios, isto , so aplicados a um nico operando. So os operadores aritmticos de maior precedncia. Exemplos: -3, +x. Enquanto o operador unrio - inverte o sinal do seu operando, o operador + no altera o valor em nada o seu valor. Operador de diviso inteira. Por exemplo, 5 \ 2 = 2. Tem a mesma precedncia do operador de diviso tradicional, tem a mesma caracterstica do DIV que foi estudado em Portugus Estruturado. Adio Subtrao Diviso Multiplicao Operador de mdulo, funciona como o MOD estudado em Portugus Estruturado, mostra o resto da diviso inteira. Por exemplo, 9 % 2 = 1. Operador de potenciao. Por exemplo, 5 ^ 2 = 25. Tem a maior precedncia entre os operadores aritmticos binrios (aqueles que tm dois operandos).

\ + / * % ^

Operadores de Caracteres Operador de concatenao de strings (isto , cadeias de caracteres), quando usado com dois valores (variveis ou constantes) do tipo "caractere". Por exemplo: "Rio " + " de Janeiro" = "Rio de Janeiro".

Operadores Relacionais = Igual a < Menor que > Maior que <= Menor ou igual a >= Maior ou igual a <> Diferente de So utilizados em expresses lgicas para se testar a relao entre dois valores do mesmo tipo. Exemplos: 5 = 5 (5 igual a 5?) resulta em VERDADEIRO ; "B" > "C" ("B" est depois de "C" na ordem alfabtica?) resulta em FALSO. Operadores Lgicos nao Operador unrio de negao. nao VERDADEIRO = FALSO, e nao FALSO = VERDADEIRO. Tem a maior precedncia entre os operadores lgicos. ou Operador que resulta VERDADEIRO quando um dos seus operandos lgicos for verdadeiro. e Operador que resulta VERDADEIRO somente se seus dois operandos lgicos forem verdadeiros. xou Operador que resulta VERDADEIRO se seus dois operandos lgicos forem diferentes, e FALSO se forem iguais. Comandos de Sada de Dados escreva (<lista-de-expresses>) Escreve o contedo de cada uma das expresses que compem <lista-de-expresses>. As expresses dentro desta lista devem estar separadas por vrgulas; depois de serem avaliadas, seus resultados so impressos na ordem indicada. possvel especificar o nmero de espaos no qual se deseja escrever um determinado valor. Por exemplo, o comando escreva(x:5) escreve o valor da varivel x em 5 espaos, alinhado-o direita. Para variveis reais, pode-se tambm especificar o nmero de casas fracionrias que sero exibidas. Por exemplo, considerando y como uma varivel real, o comando escreva(y:6:2)escreve seu valor em 6 espaos colocando 2 casas decimais. escreval (<lista-de-expresses>). Idem ao anterior, com a nica diferena que pula uma linha em seguida. Exemplos: algoritmo "exemplo" var x: real y: inteiro a: caractere l: logico

inicio x <- 2.5 y <- 6 a <- "teste" l <- VERDADEIRO escreval ("x", x:4:1, y+3:4) // Escreve: x 2.5 9 escreval (a, "ok") // Escreve: testeok (e depois pula linha) escreval (a, " ok") // Escreve: teste ok (e depois pula linha) escreval (a + " ok") // Escreve: teste ok (e depois pula linha) escreva (l) // Escreve: VERDADEIRO fimalgoritmo Comando de Entrada de Dados leia (<lista-de-variveis>) Recebe valores digitados pelos usurio, atribuindo-os s variveis cujos nomes esto em <lista-de-variveis> ( respeitada a ordem especificada nesta lista). Veja no exemplo abaixo o resultado: algoritmo "exemplo 1" var x: inteiro; inicio leia (x) escreva (x) fimalgoritmo O comando de leitura acima ir exibir uma janela como a que se v ao lado, com a mensagem padro: "Entre com o valor de <nome-de-varivel>" Se voc clicar em Cancelar ou teclar Esc durante a leitura de dados, o programa ser imediatamente interrompido. Comando de Desvio Condicional se <expresso-lgica> entao <seqncia-de-comandos> fimse Ao encontrar este comando, o VisuAlg analisa a <expresso-lgica>. Se o seu resultado for VERDADEIRO, todos os comandos da <seqncia-de-comandos> (entre esta linha e a linha com fimse) so executados. Se o resultado for FALSO, estes comandos so desprezados e a execuo do algoritmo continua a partir da primeira linha depois do fimse. se <expresso-lgica> entao <seqncia-de-comandos-1> senao <seqncia-de-comandos-2> fimse Nesta outra forma do comando, se o resultado da avaliao de <expresso-lgica> for VERDADEIRO, todos os comandos da <seqncia-de-comandos-1> (entre esta linha e a linha com senao) so executados, e a execuo continua depois a partir da primeira linha depois do fimse. Se o resultado for FALSO, estes comandos so desprezados e o algoritmo continua a ser executado a partir da primeira linha depois do senao, executando todos os comandos da <seqncia-decomandos-2> (at a linha com fimse).