Baixe o app para aproveitar ainda mais
Prévia do material em texto
Curso de Redes de Computadores Lógica de Programação Unidade 2 : VISUALG 2.0 Profª Esp. Kércia Maria Clementino Santos VisuAlg é um programa que interpreta e executa algoritmos como um "programa" normal de computador. Baseado em uma linguagem parecida com o "Portugol" ensinado em cursos em todo o Brasil, possui recursos como : simulação da "tela" do computador, visualização de variáveis, "breakpoints", ajuda on-line, impressão dos fontes e outras características que auxiliam o aprendizado das técnicas de programação. Existem vários sites na Internet para baixar o VisuAlg 2.0 , como por exemplo: http://www.baixaki.com.br/download/visualg.htm A tela do VisuAlg compõe-se da barra de tarefas, do editor de textos (que toma toda a sua metade superior), do quadro de variáveis (no lado esquerdo da metade inferior), do simulador de saída (no correspondente lado direito) e da barra de status. Quando o programa é carregado, já apresenta no editor um "esqueleto" de pseudocódigo, com a intenção de poupar trabalho ao usuário e de mostrar o formato básico que deve ser seguido. Explicaremos a seguir cada componente da interface do VisuAlg. Editor de Textos Quadro de variáveis Simulador de saída Barra de Status Editor de Textos Quadro de variáveis Simulador de saída Barra de Status TELA DO VISUALG Menu do VISUALG 2.0 Arquivo: Possui os comandos para se abrir, salvar e imprimir algoritmos: Novo: Cria um novo "esqueleto" de pseudocódigo, substituindo o texto existente no editor. Se este texto anterior tiver sido modificado, o VisuAlg pedirá sua confirmação para salvá-lo antes que seja sobreposto. Abrir: Abre o texto de um pseudocódigo anteriormente gravado, substituindo o texto existente no editor. Se este tiver sido modificado, o VisuAlg pedirá sua confirmação para salvá-lo antes que seja sobreposto. Salvar: Salva imediatamente o texto presente no editor. Caso seja a primeira vez que um novo texto é gravado, o VisuAlg pedirá o nome do arquivo e sua localização. Salvar como: Permite salvar o texto presente no editor exibindo antes uma janela na qual se pode escolher o nome do arquivo e sua localização. Enviar por email: Permite o envio por email do texto presente no editor. Imprimir: Permite a impressão do algoritmo corrente, mostrando antes a janela de configuração de impressão (o correspondente botão da barra de tarefas imprime imediatamente o texto do pseudocódigo na impressora padrão). Sair: Abandona o VisuAlg. Editar: Além dos conhecidos comandos de um editor de texto (copiar, cortar, colar, desfazer, refazer, selecionar tudo, localizar, localizar de novo, substituir), há também as seguintes opções: Corrigir indentação: Corrige automaticamente a indentação do pseudocódigo, tabulando cada comando interno com espaços à esquerda. Gravar bloco de texto: Permite a gravação em arquivo de um texto selecionado no editor. A extensão sugerida para o nome do arquivo é .inc. Inserir bloco de texto: Permite a inserção do conteúdo de um arquivo. A extensão sugerida para o nome do arquivo é .inc Exibir: Possui os comandos para ativar/desativar as seguintes características: Número de linhas: Ativa/desativa a exibição da numeração das linhas na área à esquerda do editor. A numeração corrente da posição do cursor também é mostrada na primeira parte da barra de status, situada na parte inferior da tela. Por motivos técnicas, a numeração é desativada durante a execução do pseudocódigo, voltando à situação anterior logo em seguida. Variáveis modificadas: Ativa/desativa a exibição da variável que está sendo modificada. Como o número de variáveis pode ser grande, muitas podem estar fora da janela de visualização; quando esta característica está ativada, o VisuAlg rola a grade de exibição de modo que cada variável fique visível no momento em está sendo modificada. Este recurso é especialmente útil quando se executa um pseudocódigo passo a passo. Por questões de desempenho, a configuração padrão desta característica é desativada, quando o pseudocódigo está sendo executado automaticamente. No entanto, basta clicar este botão para executá-lo automaticamente com a exibição . No final da execução, a configuração volta a ser desativada. Algoritmo: Contém os comandos relativos à execução do algoritmo: Executar: Inicia (ou continua) a execução automática do pseudocódigo. Passo a passo: Inicia (ou continua) a execução linha por linha do pseudocódigo, dando ao usuário a oportunidade de acompanhar o fluxo de execução, os valores das variáveis e a pilha de ativação dos subprogramas. Executar com timer: Insere um atraso (que pode ser especificado) antes da execução de cada linha. Também realça em fundo azul o comando que está sendo executado, da mesma forma que na execução passo a passo. Parar: Termina imediatamente a execução do pseudocódigo. Evidentemente, este item fica desabilitado quando o pseudocódigo não está sendo executado. Liga/desliga breakpoint: Insere/remove um ponto de parada na linha em que esteja o cursor. Estes pontos de parada são úteis para a depuração e acompanhamento da execução dos pseudocódigos, pois permitem a verificação dos valores das variáveis e da pilha de ativação de subprogramas. Desmarcar todos os breakpoints: Desativa todos os breakpoints que estejam ativados naquele momento. Executar em modo DOS: Com esta opção ativada, tanto a entrada como a saída-padrão passa a ser uma janela que imita o DOS, simulando a execução de um programa neste ambiente. Gerar valores aleatórios: Ativa a geração de valores aleatórios que substituem a digitação de dados. A faixa padrão de valores gerados é de 0 a 100 inclusive, mas pode ser modificada. Para a geração de dados do tipo caractere, não há uma faixa pré-estabelecida: os dados gerados serão sempre strings de 5 letras maiúsculas. Perfil: Após a execução de um pseudocódigo, exibe o número de vezes que cada umas das suas linhas foi executada. É útil para a análise de eficiência (por exemplo, nos métodos de ordenação) Pilha de ativação: Exibe a pilha de subprogramas ativados num dado momento. Convém utilizar este comando em conjunto com breakpoints ou com a execução passo a passo. Código: Permite a tradução automática do pseudocódigo presente no editor para outras linguagens de programação. Atualmente, apenas a tradução para Pascal está implementada, mas ainda em fase de testes. Ferramentas: Neste menu, é possível configurar algumas opções do VisuAlg: cores e tipos de letras na exibição do pseudocódigo, número de espaços para indentação automática, etc. Ajuda: Entre outras coisas, possibilita acesso às páginas de ajuda e às informações sobre o VisuAlg. A Linguagem A linguagem que o VisuAlg interpreta é bem simples: é uma versão portuguesa dos pseudocódigos largamente utilizados nos livros de introdução à programação, conhecida como "Portugol". Importante: para facilitar a digitação e evitar confusões, todas as palavras-chave do VisuAlg foram implementadas sem acentos, cedilha, etc. Portanto, o tipo de dados lógico é definido como logico, o comando se..então..senão é definido como se..entao..senao, e assim por diante. O VisuAlg também não distingue maiúsculas e minúsculas no reconhecimento de palavras-chave e nomes de variáveis. Criando um Algoritmo Os passos necessários para a construção de um algoritmo: ler atentamente o enunciado do problema, compreendendo-o e destacando os pontos mais importantes; definir os dados de entrada, ou seja, quais dados serão fornecidos; definir os dados de saída, ou seja, quais dados serão gerados depois do processamento; definir o processamento, ou seja, quais cálculos serão efetuados e quais as restrições para esses cálculos. O processamento é responsável pela obtenção dos dados de saída com base nos dados de entrada; definir as variáveis necessárias para armazenar as entradas e efetuar do processamento; elaborar o algoritmo. Estrutura de um Algoritmo no VisuAlg NOME DO ALGORITMO VAR declaração de variáveis .. . INICIO DO ALGORITMO bloco de comandos . . . FIM DO ALGORITMO algoritmo "soma dois numeros" var n1, n2, s: inteiro inicio escreval("Digite dois numeros:") leia(n1) leia(n2) s<-n1+n2 escreva("A soma eh igual a :", s) fimalgoritmo Comandos Do VisuAlg Declaração de variáveis. Var n1, n2: inteiro d: real k: caractere sinal: logico Comando de atribuição é o <- n1 <- 3 n2 <- n1+ 4 k <- “teste de atribuição” sinal <- verdadeiro Comandos Do VisuAlg Entrada de dados. Sintaxe leia (<lista de variáveis>) Exemplos: leia (n1) - O valor digitado será armazenado na variável n1. leia (k) - Um ou vários caracteres digitados serão armazenados na variável k (definida como caractere). No caso de utilizar leia (<lista de variáveis>), será respeitada a ordem da lista de variáveis, da esquerda para direita. Exemplo: leia (n1, k, n2) Comandos Do VisuAlg Saída de dados. Sintaxe escreva (<lista-de-variáveis>) OU escreval (<lista-de-variáveis>) Obs: escreval imprime a variável na tela e o cursor vai para uma nova linha. Exemplos: escreva (n1) - Será mostrado na tela o conteúdo da variável n1. escreva (“O texto digitado foi ”, k) - Será mostrado o texto entre “” e depois o conteúdo da variável k. Estruturas de Controle de Fluxo SEQUENCIAL Algoritmo que lê o nome de um aluno, as notas de suas três provas e calcula e exibe a média aritmética das notas Algoritmo "MediaAritmetica" VAR N1,N2,N3,M: REAL nome: CARACTER Inicio escreva ("Entre com o nome do aluno: ") leia (nome) escreval ("Entre com as notas das três provas") escreva ("Digite a primeira nota: ") leia (N1) escreva ("Digite a segunda nota: ") leia (N2) escreva ("Digite a terceira nota: ") leia (N3) M <- (N1+N2+N3)/3 escreval ("A média aritmética do aluno: ", nome, " é ", M) FimAlgoritmo CONDICIONAL Considere um problema que exija uma decisão. Tomemos como exemplo uma divisão, onde haja a necessidade de que o algoritmo verifique se o divisor é igual ou diferente de zero. Se for igual não é possível dividir. Se for diferente é possível dividir. Sintaxe: se (<expressão-lógica>) entao <sequência de comandos> senao <seqüência de comandos> fimse Exemplo: Algoritmo "Divisão " // efetua e mostra a divisão de dois números inteiros var n1, n2: inteiro resultado: real inicio escreva ("Digite o dividendo : ") leia (n1) escreva ("Digite o divisor: ") leia (n2) se (n2 = 0) entao escreva ("impossível dividir por 0") senao resultado <- n1/n2 escreva ("O resultado é: ", resultado) fimse fimalgoritmo Comando de Seleção Múltipla Sintaxe: escolha (<variável>) caso <valor11>, <valor12>, ..., <valor1n> <seqüência-de-comandos-1> caso <valor21>, <valor22>, ..., <valor2m> <seqüência-de-comandos-2> ... outrocaso <seqüência-de-comandos-extra> fimescolha Algoritmo " Exemplo Seleção Múltipla" var time: caractere inicio escreva ("Entre com o nome de um time de futebol: ") leia (time) escolha (time) caso "Sport", "Santa Cruz", "Nautico", "Petrolina" escreval ("É um time pernambucano.") caso "Vitoria da Conquista", "Bahia de Feira“, "Camaçari","Feirense" escreval ("É um time baiano.") outrocaso escreval ("É de outro estado.") fimescolha fimalgoritmo Estruturas de Repetição Existem três tipos de estruturas de repetição : Estrutura de repetição para um número indefinido de repetições e teste no início: estrutura enquanto O comando enquanto caracteriza-se por uma verificação de encerramento de atividades antes de se iniciar (ou reiniciar) a execução de seu bloco de instruções. Estrutura de repetição para um número indefinido de repetições e teste no final: estrutura repita O comando repita funciona de forma similar ao comando enquanto, exceto pelo fato de que a condição de controle só é testada após a execução do bloco de comandos e não antes, como é o caso do comando enquanto. Outra diferença é que os comandos serão repetidos pelo menos uma vez, já que a condição de parada se encontra no final Estrutura de repetição para um número definido de repetições: estrutura com o comando para Estruturas de Repetição Algoritmo(pseudocódigo) que efetua e mostra a soma dos números compreendidos no intervalo de 1 até 10 algoritmo "exemplo_enquanto" var soma, num : inteiro inicio soma <- 0 num <- 1 enquanto num <= 10 faca soma <- soma + num num <- num + 1 fimenquanto escreval ("A soma dos números compreendidos no intervalo de 1 a 10 é:" , soma ) fimalgoritmo algoritmo "exemplo repita" var soma, num : inteiro inicio soma <- 0 num <- 1 repita soma <- soma + num num <- num + 1 ate num>10 escreval ("A soma dos números compreendidos no intervalo de 1 a 10 é:", soma ) fimalgoritmo algoritmo "exemplo para" var soma, num : inteiro inicio soma <- 0 para num de 1 ate 10 faca soma <- soma + num fimpara escreval ("A soma dos números compreendidos no intervalo de 1 a 10 é:", soma ) fimalgoritmo Aprender as palavras e regras que fazem parte da sintaxe do VisuAlg é fundamental, no entanto, não é o maior objetivo da nossa disciplina. O que realmente exigirá um grande esforço por parte do estudante é aprender a resolver problemas utilizando a linguagem. Para isso, há somente um caminho: resolver muitos problemas. O processo é semelhante ao de tornar-se competente em um jogo qualquer: aprender as regras do jogo (a sintaxe) é só o primeiro passo, tornar-se um bom jogador (programador) exige tempo, muito exercício e dedicação.
Compartilhar