01 · Panorama
Sobre Calango
Calango es un pseudolenguaje y entorno de apoyo para enseñar algoritmos. Sus comandos en portugués permiten centrarse en la secuencia de pasos, las condiciones y los datos antes de pasar a la sintaxis de otros lenguajes. Los materiales de la Universidad de Brasilia describen su uso didáctico, la ejecución interpretada y la depuración paso a paso.
Esta referencia combina ese propósito educativo con las estructuras de Calango descritas en las fuentes al final de la página.
02 · Organización
Estructura del algoritmo
El encabezado comienza con algoritmo, seguido del nombre y un punto y coma. El bloque principal comienza con principal y termina con fimPrincipal. Las funciones y los procedimientos se escriben fuera de este bloque.
algoritmo boasVindas;
principal
texto nome;
escreva("¿Cómo te llamas?");
leia(nome);
escreval("Hola, ", nome);
fimPrincipalUna línea que comienza con // es un comentario. El cuerpo puede contener declaraciones y comandos; cada instrucción simple termina con punto y coma.
03 · Datos
Tipos, variables y vectores
Declara una variable escribiendo el tipo seguido del nombre. Los tipos básicos incluyen inteiro, real, logico, caracter y texto. Los literales de texto usan comillas dobles; los números reales usan punto decimal; los valores lógicos son verdadeiro y falso.
inteiro cantidad;
real precio;
logico disponible;
caracter inicial;
texto titulo;
inteiro notas[5];
cantidad = 3;
precio = 2.5;
disponible = verdadeiro;
titulo = "Algoritmos";
notas[0] = 10;Los vectores se declaran añadiendo dimensiones entre corchetes al nombre. El acceso a un elemento también usa corchetes. Se admiten varias dimensiones; cada índice debe ser entero.
04 · Expresiones
Asignación y operadores
La asignación usa =. Los paréntesis agrupan operaciones. La tabla resume las formas aritméticas, comparaciones y conectores disponibles en la sintaxis documentada.
| Categoría | Operadores | Uso |
|---|---|---|
| Aritméticos | + - * / \ % mod | Cálculos, división y resto. |
| Comparación | = == != <> < <= > >= | Comparar valores. |
| Lógicos | nao e ou | Negar o combinar por conjunción o disyunción. |
real total;
total = precio * cantidad;
se (cantidad > 0 e disponible) entao
escreva("Total: ", total);
fimSeUsa mod o % para obtener el resto. La precedencia sigue la prioridad matemática y lógica; los paréntesis facilitan la lectura de expresiones largas.
05 · Interacción
Entrada y salida
escreva(...) muestra valores; escreval(...) añade un salto de línea. Ambas aceptan expresiones separadas por comas. leia(...) recibe un dato para una variable, y leiaCaracter(...) es la forma específica para leer un carácter.
texto nome;
inteiro idade;
escreva("Nombre: ");
leia(nome);
escreva("Edad: ");
leia(idade);
escreval("Hola, ", nome, " — ", idade, " años.");limpaTela(); limpia el área de salida. La entrada debe ser compatible con el tipo declarado para la variable de destino.
06 · Decisiones
Condiciones y elección
se inicia un bloque condicional; senaoSe permite probar otra condición y senao define la alternativa final. El bloque termina con fimSe. escolha compara una expresión con varias opciones caso y puede incluir outroCaso.
se (nota >= 7) entao
escreval("Aprobado");
senaoSe (nota >= 5) entao
escreval("Recuperación");
senao
escreval("No aprobado");
fimSe
escolha opcion
caso 1
escreval("Nuevo ejercicio");
outroCaso
escreval("Opción no reconocida");
fimEscolhaLas condiciones deben producir un valor lógico. Cada caso ejecuta el bloque asociado al valor correspondiente.
07 · Repetición
Enquanto, faça-enquanto y para
enquanto comprueba la condición antes del cuerpo. faca ... enquanto ejecuta primero y comprueba al final. para recorre una secuencia numérica con inicio, fin y paso explícitos.
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; termina de inmediato el bucle más interno. Evita condiciones que nunca llegan a ser falsas.
08 · Reutilización
Funciones, procedimientos y parámetros
Una función declara el tipo de retorno antes del nombre y termina con fimFuncao. Un procedimiento no declara valor de retorno y termina con fimProcedimento. Los parámetros se escriben entre paréntesis con tipo y nombre; ref indica paso por referencia. retorna devuelve el resultado de una función.
funcao inteiro dobro(inteiro valor)
retorna valor * 2;
fimFuncao
procedimento mostrar(texto mensagem)
escreval(mensagem);
fimProcedimento
principal
escreval(dobro(4));
mostrar("Practica un paso a la vez");
fimPrincipalLlama a cada rutina por su nombre y con los argumentos que espera. Usa parámetros por referencia cuando la rutina deba actualizar la variable recibida.
09 · Aplicación
Ejemplo completo
Este programa lee tres notas, calcula el promedio e informa el resultado con un vector, un bucle y una condición.
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("Aprobado");
senao
escreval("Sigue estudiando");
fimSe
fimPrincipal10 · Fuentes
Referencias consultadas
- Repositorio oficial de Calango.
- Ambiente de Algoritmo — Universidad de Brasilia, sobre interpretación, ejecución y uso didáctico.
Los ejemplos de esta página se escribieron para explicar la sintaxis y no reproducen fragmentos extensos de las fuentes.