01 · Visão geral
Sobre Calango
Calango é uma pseudolinguagem e ambiente de apoio ao ensino de algoritmos. Os comandos em português permitem concentrar o estudo na sequência de passos, nas condições e nos dados antes de avançar para a sintaxe de outras linguagens. Materiais da Universidade de Brasília descrevem o uso didático do Calango, a execução interpretada e a depuração passo a passo.
Esta referência combina essa finalidade educacional com as estruturas de Calango descritas nas fontes ao final da página.
02 · Organização
Estrutura do algoritmo
O cabeçalho começa com algoritmo, seguido do nome e de ponto e vírgula. O bloco principal abre com principal e termina em fimPrincipal. Funções e procedimentos ficam fora desse bloco.
algoritmo boasVindas;
principal
texto nome;
escreva("Qual é o seu nome?");
leia(nome);
escreval("Olá, ", nome);
fimPrincipalUma linha iniciada por // é um comentário. O corpo pode conter declarações e comandos; cada instrução simples termina com ponto e vírgula.
03 · Dados
Tipos, variáveis e vetores
Declare uma variável escrevendo o tipo seguido do nome. Os tipos básicos incluem inteiro, real, logico, caracter e texto. Literais de texto usam aspas duplas; números reais usam ponto decimal; valores lógicos são verdadeiro e falso.
inteiro quantidade;
real preco;
logico disponivel;
caracter inicial;
texto titulo;
inteiro notas[5];
quantidade = 3;
preco = 2.5;
disponivel = verdadeiro;
titulo = "Algoritmos";
notas[0] = 10;Vetores são declarados acrescentando dimensões entre colchetes ao nome. Acesso a um elemento também usa colchetes. O interpretador aceita vetores de mais de uma dimensão; cada índice deve ser inteiro.
04 · Expressões
Atribuição e operadores
Atribuições usam =. Parênteses agrupam operações. A tabela reúne as formas aritméticas, comparações e conectivos disponíveis na sintaxe documentada.
| Categoria | Operadores | Uso |
|---|---|---|
| Aritméticos | + - * / \ % mod | Cálculos, divisão e resto. |
| Comparação | = == != <> < <= > >= | Comparar valores. |
| Lógicos | nao e ou | Negar, combinar por conjunção ou disjunção. |
real total;
total = preco * quantidade;
se (quantidade > 0 e disponivel) entao
escreva("Total: ", total);
fimSeUse mod ou % para obter o resto. A precedência segue a prioridade matemática e lógica; parênteses tornam expressões longas mais fáceis de ler.
05 · Interação
Entrada e saída
escreva(...) exibe valores sem avançar obrigatoriamente a linha; escreval(...) acrescenta uma quebra de linha. Ambos aceitam expressões separadas por vírgulas. leia(...) recebe um dado para uma variável, e leiaCaracter(...) é a forma específica para leitura de caractere.
texto nome;
inteiro idade;
escreva("Nome: ");
leia(nome);
escreva("Idade: ");
leia(idade);
escreval("Olá, ", nome, " — ", idade, " anos.");limpaTela(); limpa a área de saída. A entrada deve ser compatível com o tipo declarado para a variável de destino.
06 · Decisões
Condições e escolha
se inicia um bloco condicional; senaoSe permite testar outra condição e senao define o ramo final. O bloco encerra com fimSe. escolha compara uma expressão com alternativas caso e pode incluir outroCaso.
se (nota >= 7) entao
escreval("Aprovado");
senaoSe (nota >= 5) entao
escreval("Recuperação");
senao
escreval("Reprovado");
fimSe
escolha opcao
caso 1
escreval("Novo exercício");
outroCaso
escreval("Opção não reconhecida");
fimEscolhaAs condições precisam resultar em valor lógico. Um caso executa o bloco associado ao valor correspondente.
07 · Repetição
Enquanto, faça-enquanto e para
enquanto testa a condição antes do corpo. faca ... enquanto executa primeiro e testa no final. para percorre uma sequência numérica com início, fim e passo explicitados.
inteiro i;
i = 1;
enquanto (i <= 3) faca
escreval(i);
i = i + 1;
fimEnquanto
para i de 1 ate 3 passo 1 faca
escreval(i);
fimParainterrompa; encerra imediatamente o laço mais interno. Evite condições que nunca se tornam falsas em laços condicionais.
08 · Reuso
Funções, procedimentos e parâmetros
Uma função declara seu tipo de retorno antes do nome e encerra com fimFuncao. Um procedimento não declara valor de retorno e termina com fimProcedimento. Parâmetros aparecem entre parênteses com tipo e nome; ref indica passagem por referência. retorna devolve o resultado de uma função.
funcao inteiro dobro(inteiro valor)
retorna valor * 2;
fimFuncao
procedimento mostrar(texto mensagem)
escreval(mensagem);
fimProcedimento
principal
escreval(dobro(4));
mostrar("Pratique um passo por vez");
fimPrincipalUma rotina pode ser chamada pelo nome e pelos argumentos esperados. Use parâmetros por referência quando a rotina deve atualizar a variável recebida.
09 · Aplicação
Exemplo completo
Este programa lê três notas, calcula a média e informa o resultado usando vetor, repetição e condição.
algoritmo mediaTurma;
principal
inteiro i;
real notas[3];
real soma;
soma = 0;
para i de 0 ate 2 passo 1 faca
escreva("Nota: ");
leia(notas[i]);
soma = soma + notas[i];
fimPara
se (soma / 3 >= 7) entao
escreval("Aprovado");
senao
escreval("Continue estudando");
fimSe
fimPrincipal10 · Fontes
Referências consultadas
- Repositório oficial de Calango.
- Ambiente de Algoritmo — Universidade de Brasília, sobre interpretação, execução e uso didático.
Os exemplos desta página foram redigidos para explicar a sintaxe e não reproduzem trechos extensos dos materiais de referência.