Introdução

Portugol, também conhecido como Português Estruturado, é uma pseudolinguagem em português, com o intuito de ensinar lógica de programação para iniciantes. Foi criada pelos professores Antonio Carlos Nicolodi e Antonio Manso em 1986.

O Visualg 3.0, interpretador desta linguagem, também foi criado pelo professor Nicolodi. No entanto, nesta documentação será usado o Portugol Studio.

Portugol Studio
Instalação

Após fazer o download do Portugol Studio, basta abrir o arquivo executável se estiver usando Windows. As instruções para a instalação no Ubuntu podem ser lidas aqui.

Uso do programa

O uso do Portugol Studio é bem intuitivo, com diversas dicas para os iniciantes. Abra um novo arquivo no canto superior esquerdo. Ao fazer isto, verá que já existe uma estrutura inicial, o "hello world" em português. Execute-o clicando no ícone do Play ou apertando Shift + F6. O comando da função escreva() faz com que o console retorne o texto dentro do parênteses. Salve o algoritmo clicando no ícone de Pen Drive ou apertando Ctrl + S.

Todo algoritmo criado nesta linguagem deve ser estruturado desta forma:


      programa
        {
          funcao inicio()
          {
            **Seus comandos entram aqui**
          }
        }
          
Entrada e Saída de dados

Entrada de dados é o fornecimento de informações externas para o programa. Digitar, mover o mouse por cima de algum elemento são exemplos de entrada de dados, embora cada efeito no seu programa vá ser diferente.

Já a saída de dados é o que é retornado de um programa para o exterior, seja na tela, em uma impressão ou algo do tipo.

Saída de dados:

Como vimos anteriormente, o uso da função escreva() retorna algo no console. Isso, por si só, já é saída de dados. E esta função não se limita a texto, obviamente. É possível inserir variáveis e operações, e termos a resposta no console. Observe o exemplo abaixo:


      inteiro pontos = 10
      escreva("Você fez ", pontos, " pontos!")
          

Uma variável, como a variável pontos, se trata de um espaço na memória que guarda uma informação. No código acima, declaramos que a variável é 10, e ao invocá-la no escreva(), fazemos com que a informação dentro dela seja trazida para o console.

Entrada de dados:

A entrada de dados é feita com o comando leia(). Observe o exemplo abaixo:


      inteiro x, y, idade
      escreva("Digite a sua idade\n")
      leia(idade)
      escreva("Digite as suas coordenadas\n")
      leia(x, y)
      escreva("Coordenadas:\n", x, " e ", y, "\n")
      escreva("Idade:\n", idade, "\n")
          

Observe que as variáveis x, y e idade foram declaradas, mas ao contrário do exemplo anterior a este, não lhes foi atribuído qualquer valor. E logo abaixo, o comando leia() aceita estas variáveis como argumentos. Isso significa que quem irá atribuir o valor às variáveis é o usuário, por meio do console. Ou seja, entrada de dados.

Observe o passo a passo do algoritmo abaixo:

  1. Solicita que o usuário digite uma idade.
  2. Lê esta idade digitada com o comando leia().
  3. Solicita duas coordenadas e as lê com o comando leia(). Observe que as duas variáveis são solicitadas em um comando, e é preciso entrar com uma vírgula separando as duas.
  4. Usa o comando escreva() para retornar as variáveis no console.
Variáveis
Declaração

Cada linguagem de programação tem suas peculiaridades. Em muitas, é preciso declarar a variável. Isso, no entanto, não é uma regra. A declaração é uma instrução que fornece um identificador, precedida, no caso do Portugol, do tipo da variável (veremos sobre tipagem logo mais) Aqui estão alguns exemplos de declaração:


          real altura
          real peso = 54.4
          inteiro contagem, deficit
        

Existem 3 tipos de declaração nestes exemplos:

Tipos de dados

O tipo de dado de uma variável está associado ao conjunto de valores que ela pode assumir. Os tipos de dados podem ser classificados em várias categorias, de acordo com as características deles. Podem ser escalares, que representam um único valor, ou compostos, que podem significar múltiplos valores.