Algoritmos Aula 05: Portugol Studio - Introdução, Estrutura de programas, Comentários, Funções e saída de dados

Tela do site Portugol Webstudio
Tela do site Portugol Webstudio Fonte: https://portugol.dev/

Introdução ao Portugol

    Com já dissemos na primeira aula, o Portugol é uma linguagem de pseudocódigo muito utilizada para o aprendizado de algoritmos e lógica de programação. Existem algumas ferramentas no mercado para uso dessa linguagem, no entanto usaremos o Portugol Studio devido a sua semelhança na estruturação de programas com linguagens de programação utilizadas atualmente.

    Cabe lembrar que o Portugol é um linguagem interpretada, isto é, precisará de um programa interpretador para ler o nosso código e interpretá-lo para a linguagem da máquina. 

    No caso precisaremos da IDE Portugol Studio que pode ser instalada localmente, sendo obtida no link oficial https://univali-lite.github.io/Portugol-Studio/, no entanto eu sugiro o uso da versão Web disponível em https://portugol.dev/, para evitar problemas de instalação e por ela ser menos exigente quanto ao código e gerar menos erros. 

    Alerto que os códigos que serão mostrados aqui foram testados apenas na versão Web, podendo apresentar erros na versão local. Entrando na versão Web, encontraremos na tela inicial do site as seguintes opções:

  • Novo arquivo - Para criar um novo algoritmo;
  • Abrir arquivo - Para abrir um algoritmo já criado
  • Abrir exemplo - Onde encontraremos algoritmos de exemplos disponíveis para o aluno
    Peço que você clique em ABRIR EXEMPLO, em seguida em ENTRADA E SAÍDA, depois em OLÁ MUNDO e por último no botão ABRIR, para vermos a estrutura de um programa no Portugol Studio    

Tela abrindo exemplos no Portugol Webstudio
Tela abrindo exemplos no Portugol Webstudio

Estrutura de um programa

    Caso você tenha obtido sucesso ao abrir o exemplo solicitado, deverá estar vendo algo parecido com isso:

  1. /* Copyright (C) 2014 - UNIVALI - Universidade do Vale do Itajaí
  2.  * Este arquivo de código fonte é livre para utilização, cópia e/ou modificação
  3.  * desde que este cabeçalho, contendo os direitos autorais e a descrição do programa, 
  4.  * seja mantido.
  5.  * Descrição:
  6.  * Este exemplo utiliza a saída de dados do Portugol para exibir a 
  7.  * mensagem "Olá mundo"
  8.  * Autores:
  9.  * Giordana Maria da Costa Valle
  10.  * Carlos Alexandre Krueger
  11.  * Data: 01/06/2013
  12.  */
  13.  
  14. programa 
  15. funcao inicio () 
  16. {
  17. escreva("Olá Mundo!\n")
  18. }

    Nesse programa é possível identificar partes bem distintas do código. A região inicial de cor verde contém os chamados comentários que são linhas inertes, isto é, não produzem instruções para o programa, no entanto são importantíssimas para a documentação de um sistema, podendo conter informações de copyright, sua finalidade, sua autoria e data de criação.

    Já a partir da linha 16 vemos o programa propriamente dito que inicia com a instrução programa e um abre chaves { abaixo do qual encontraremos outras instruções. Observa-se também que a última linha contém um fecha chaves que sinaliza que o programa foi finalizado.

    Entre esse primeiro conjunto de abre {  e fecha chaves encontraremos a instrução funcao inicio () que no Portugol Studio representa o bloco principal de instruções do programa. Nela notamos outro conjunto de abre {  e fecha chaves dentro do qual serão inseridas todas as instruções.

    Cabe esclarecer que as cores utilizadas no texto em nada alteram o código e geralmente são recursos do editor para facilitar a compreensão do usuário.  Já a numeração de linhas mostradas não faz parte do código, apenas auxilia o programador na localização das instruções, facilitando sua correção em caso de erros.

    Vemos também que existe um espaçamento em relação a margem aplicado da linha 18 a 21. Tal espaçamento é chamado de indentação e serve para deixar o código mais legível ao representar uma estrutura hierárquica e o fluxo dos dados. 

    Também ajuda a finalizar instruções ao alinhar a abertura e fechamento de chaves. Em algumas linguagens como o Python, a indentação será fundamental para o seu funcionamento.

Tipos de Comentários

    A maioria das linguagens possui uma simbologia distinta para comentários feitos em várias linhas e os comentários feitos em uma única linha. No nosso exemplo os operadores /* e */  estão delimitando as múltiplas linhas de comentários no início do programa.

    Já as barras duplas // podem ser usadas para inserir um comentário em uma única linha ou no final da linha de instrução para, por exemplo, explicar sua finalidade. Exemplo:

  1. programa 
  2. funcao inicio () 
  3. {
  4. escreva("Olá Mundo!\n") // esta linha serve para mostrar uma mensagem
  5. }
Funções

    Um programa geralmente conterá muitas linhas de instruções sequenciais. Para facilitar a organização dos programas podemos agrupar essas instruções em blocos menores que podem ser chamados de Funções ou Procedimentos, dependendo do que ele faz.

  Esses blocos geralmente são identificados com um nome, assim, quando eu preciso que suas instruções sejam realizadas eu apenas "chamo" por esse nome. Essa organização facilita muito a reutilização de um código como veremos em detalhes futuramente.

Instruções por Comandos e por Funções

    Até esse momento tenho usado o termo instrução para identificar tudo quanto é ordem passada por um programa, no entanto precisamos entender que existem instruções que são chamadas de comandos e outras que são chamadas de funções.

    Para distinguir um do outro, nesse momento, usaremos apenas a presença ou não de um abre e fecha parenteses () ao lado do nome da instrução. Sendo assim a instrução programa funcao que aparecem no código são exemplos de comandos. Já  inicio () escreva() são exemplos de funções.

    Na realidade existem questões técnicas mais profundas a serem explicadas, mas para o momento atual do nível de conhecimento do aluno, isso nos basta.

Saída de dados

    No Portugol a função escreva() será utilizada toda vez que o nosso programa precisar que uma saída de dados seja escrita na tela. Para isso os parenteses são utilizados para informar à função o que deverá ser escrito. Chamamos isso de parâmetros da função. Caso esses parâmetros sejam do tipo cadeia de caracteres, deverão ser escrito entre "aspas" conforme comentamos em outras aulas.

    Assim a instrução escreva("Olá Mundo!\n"serve para escrever na tela a frase Olá Mundo! Já o caractere especial \n inserido na frase é usado para adicionar uma quebra de linha.

Executando o programa

    No canto superior direito da tela do Portugol Webstudio encontraremos o botão INICIAR EXECUÇÃO que serve para rodar o programa. Quando executado, o programa mostrará na parte inferior da tela a saída de dados, no caso a frase "Olá Mundo!"

Botão de execução e janela de saída em destaque vermelho
Botão Iniciar Execução e janela de saída em destaque vermelho

Alterando o programa

  Experimente alterar o código modificando os parâmetros passados para a função escreva(), alterando a posição do caractere especial \n dessa forma:

escreva("Olá \nMundo!")

    Tente executar novamente o programa clicando no botão INICIAR EXECUÇÃO e repare na saída de dados abaixo da tela. Agora você deve ter compreendido o que é inserir uma quebra de linha no meio de uma cadeia de caracteres, pois a frase ficou quebrada, com a palavra Olá na primeira linha e Mundo! na  linha de baixo.

  Experimente alterar agora os parâmetros da função escreva() conforme a linha abaixo e execute novamente o programa clicando no botão INICIAR EXECUÇÃO

escreva(1000)

   Se você fez tudo corretamente ele deverá mostrar apenas o número 1000. Lembrando que não foi preciso incluir "aspas" porque agora estamos passando um dado numérico do tipo inteiro.

    Vamos agora fazer uma operação matemática alterando novamente a linha e executando o programa:

escreva(1000/2)

    Ele deverá mostra o número 500 que é o resultado de 1000 dividido por 2. 

Concatenação

    Concatenação é a união de dados para formar uma frase única. No Portugol Studio isso é feito quando utilizamos o operador + junto com um dado tipo caracter ou cadeia. Exemplo:

"Tik"+"Tok" = "TikTok"

Agora vejamos como é feito uma concatenação com a função escreva() fazendo a seguinte alteração:

escreva("O Portugol é "+10)

    Se tudo deu certo o resultado será a frase O Portugol é 10, porque a função uniu a cadeia de caracteres "O Portugol é " com o número inteiro 10. Cabe esclarecer que em algumas linguagens, a concatenação de letras e números exige uma conversão prévia dos dados, mas no Portugol isso não acontece. Agora vamos concatenar o que temos com mais uma cadeia de caracteres alterando dessa forma:

escreva("O Portugol é "+10+"!!!")

    O resultado dessa concatenação será a frase O Portugol é 10!!! 

  Nas aulas seguintes veremos como o Portugol Studio trabalha com variáveis e entrada de dados. Por enquanto apenas feche a aba do Portugol Studio sem a necessidade de salvar.


Próxima Aula                                                                                                                        Aula Anterior

Referências

MANZANO, J. A. N. G. Portugol Studio: Programação de Computadores em Português. São Paulo: Propes Vivens, 2017. 86p

NOSCHANG, LUIZ et all. Portugol Studio: Uma IDE para Iniciantes em Programação. In: XXXIV Congresso da Sociedade Brasileira de Computação - CSBC, 34º, 2014, Brasília, Anais Eletrônicos do Congresso da Sociedade Brasileira de Computação, Brasília, 2014. p. 1287 - 1296. Disponível em: <https://sol.sbc.org.br/index.php/wei/article/view/10954/10824>. Acesso em: 4 ago. 2024.

PORTUGOL WEBSTUDIO. Ajuda. Disponível em: <https://portugol.dev/> Acesso em 05 ago. 2024.

PORTUGOL WEBSTUDIO. Dúvidas e Perguntas. Disponível em: <https://portugol.dev/> Acesso em 05 ago. 2024.