Utilizando A Sintaxe Do Portugol Studio - Comandos do Portugol Studio by Luis David on Prezi
Comandos do Portugol Studio by Luis David on Prezi

O que é e por que ainda se usa

Portugol Studio é uma IDE educacional que traduz pseudocódigo para algoritmos executáveis visualmente. Ele existe desde 2008, mantido pela USP de São Carlos, e continua sendo a ferramenta padrão em cursos introdutórios de lógica de programação no Brasil. O que ele oferece de útil não tem muito a ver com produção real — serve para entender o fluxo de execução passo a passo.

utilizando a sintaxe do portugol studio

A sintaxe segue uma estrutura bem específica. Comece sempre com algoritmo, dê um nome ao programa, abra o fimAlgoritmo no final. Dentro disso, os comandos básicos são var para declaração, inicio para abrir o bloco principal, escreva para saída e leia para entrada. Um exemplo mínimo de estrutura que funciona sem erro:

algoritmo "soma-basica"
var
a, b, resultado: inteiro
inicio
escreval("Digite o primeiro numero")
leia(a)
escreval("Digite o segundo numero")
leia(b)
resultado <- a + b
escreval("O resultado e: ", resultado)
fimalgoritmo O operador de atribuição é -. Isso é importante porque muita gente vem de Python ou C e tenta usar =, e o compilador simplesmente não compila. Já vi gente gastar 40 minutos debugando algo que era só isso.

Para estruturas condicionais, use se ... entao ... senao ... fimse. Para repetição, enquanto, para, ou repita. Cada um tem seu caso. Aqui vai uma estrutura condicional completa:

algoritmo "verificador-de-nota"
var
nota: real
inicio
escreval("Informe a nota do aluno")
leia(nota)
se (nota >= 7) entao
escreval("Aprovado")
senao
se (nota >= 5) entao
escreval("Recuperacao")
senao
escreval("Reprovado")
fimse
fimse
fimalgoritmo Repita esse padrão até decorar. A lógica é a mesma em qualquer linguagem, só muda a palavra-chave.

Vetores e matrizes

Aqui é onde a maioria trava. Declaração de vetor em Portugol Studio segue o formato nome: vetor[1..n] de tipo. Para matriz, nome: vetor[nx] de tipo dentro de vetor[1..m]. Vetor unidimensional:

var
notas: vetor[1..5] de real
i: inteiro Para preencher e somar os elementos:

para i de 1 ate 5 faca
escreval("Nota do aluno ", i)
leia(notas[i])
fimpara Nota importante: o índice começa em 1, não em 0 como em C ou Java. Isso causa erro frequentemente quando o estudante tenta acessar a posição 0 do vetor e o programa peta.

👉 Clique no botão abaixo para saber mais sobre o assunto!

Matriz 3x3: var
matriz: vetor[1..3] de vetor[1..3] de inteiro
lin, col: inteiro

Para preencher: para lin de 1 ate 3 faca
para col de 1 ate 3 faca
escreval("Elemento [", lin, ",", col, "]")
leia(matriz[lin, col])
fimpara
fimpara

O problema que ninguém explica

O maior dor de cabeça prática que encontrei ao trabalhar com Portugol Studio tem a ver com declaração de variáveis em escopo. O parser é estritamente sequencial. Se você tentar declarar uma variável após um comando de leitura ou escrita, ele não aceita. A ordem obrigatória é: declaración de variáveis, depois comandos. Não adianta declarar no meio do código como faria em JavaScript. Outro problema específico: quando você usa encaixe de blocos se dentro de para, o compilador às vezes não reconhece o fimpara correto se os fimse não estiverem perfeitamente alinhados. A solução é sempre fechar na ordem inversa de abertura e deixar o código recuado corretamente. Gastei uma tarde inteira num bug que era só um fimse faltando antes de um fimpara. O erro Reported era algo como "fim esperado" em uma linha que não tinha nada a ver com o problema.

Dicas práticas que economizam tempo

O atalho Ctrl+Shift+B executa o algoritmo em modo passo a passo. Use isso sempre. Tentar depurar lendo o código mentalmente é lento e errático — o executório mostra exatamente onde o fluxo desvia. No modo passo a passo, cada variável é atualizada na tela lateral em tempo real, então você vê o valor mudar linha por linha. O modo de desenho, acessível pelo menu Ver -> Desenho, permite visualizar a lógica com fluxogramas. Pode parecer enrolação no início, mas ajuda muito a entender laços aninhados. Eu recomendo ativar sempre que estiver treinando condições compostas com e, ou, nao.

Para expressões condicionais compostas, use parênteses sempre. se (nota >= 5 e media >= 7) entao funciona, mas sem parênteses o interpretador pode avaliar a precedência de forma inesperada em alguns casos extremos.

Limitações reais

Portugol Studio não suporta funções recursivas de forma confiável. Já tentei implementar uma função de fatorial recursivo e o simulador entrava em loop infinito ou estourava a pilha sem erro claro. Se precisa ensinar recursão, use outra ferramenta. Também não trata bem strings com acentuação em todas as versões. Em máquinas com configuracao regional diferente do padrão brasileiro, caracteres como ç, ã, é podem gerar erros de compilação. A workaround é usar ASCII puro nos nomes de variáveis e strings — é feio, mas funciona.

A versão mais estável atualmente é a 5.0.2. Versões mais antigas (4.x) têm bugs conhecidos em loops para com passo negativo. Para quem já domina a lógica básica e quer avançar para programação real, a transição natural é para Python ou C. Portugol Studio é útil nas primeiras semanas de curso, mas não se prende a ele além disso. O tempo gasto aprendendo sintaxe dele não se converte diretamente em habilidade em nenhuma linguagem profissional.

Onde baixar

O download oficial fica em portugolstudioweb.com. Baixe direto do site, pois versões de terceiros podem ter sido modificadas. A instalação leva menos de 2 minutos e não requer Java — ele já vem empacotado com o runtime necessário. Após instalar, abra o programa, vá em Arquivo -> Novo e comece colando os exemplos acima. Teste cada um, rode em modo passo a passo e observe o que acontece quando você altera os valores. Isso é mais eficiente do que ler documentação.