01 · Panorama
Sobre Égua
Égua es un lenguaje de programación interpretado, con palabras clave y mensajes en portugués. Su sitio oficial lo presenta como una forma accesible de practicar conceptos de programación sin depender del vocabulario en inglés; su implementación combina recursos imperativos y funcionales con orientación a objetos.
Esta página organiza la sintaxis y las funciones descritas en la documentación oficial. Es una guía de consulta, no sustituye la documentación completa del lenguaje.
02 · Organización
Archivo y escritura del código
Un programa se compone de instrucciones y bloques entre llaves. La documentación del proyecto usa archivos .egua, comentarios que comienzan con // y punto y coma para terminar las instrucciones. La ejecución puede comenzar directamente con instrucciones en el archivo; las funciones y clases se declaran donde se necesiten.
// Primer programa
var nome = "Ana";
escreva("Hola, " + nome);Entre las palabras reservadas principales están var, se, senão, para, função, retorna y classe. La escritura en portugués forma parte de la sintaxis.
03 · Datos
Variables y ámbito
var declara una variable, con o sin valor inicial. La asignación posterior usa =. Las variables pueden tener ámbito global o local dentro de un bloque entre llaves; una variable externa es visible en bloques internos, pero una variable local no está disponible fuera del bloque donde se declaró.
var pontos = 0;
pontos = pontos + 1;
se (pontos > 0) {
var mensagem = "Hay puntos";
escreva(mensagem);
}Égua determina el tipo a partir del valor en ejecución; no se escribe un tipo junto al nombre. Usa nombres descriptivos y mantén cada variable en el ámbito más pequeño que necesite el algoritmo.
04 · Valores
Tipos y colecciones
Los valores incluyen números enteros o decimales, textos entre comillas simples o dobles, valores lógicos verdadeiro y falso, y el valor ausente nulo. Las listas son ordenadas y usan corchetes; los diccionarios asocian claves con valores y usan llaves.
| Forma | Ejemplo | Observación |
|---|---|---|
| Número | 12, 3.5 | Entero o punto flotante. |
| Texto | "Hola", 'a' | Secuencia entre comillas. |
| Lógico | verdadeiro, falso | Se usa en condiciones. |
| Lista | [4, "cinco"] | Índices desde cero; tamaño variable. |
| Diccionario | {'nome': 'Ana'} | Acceso mediante clave. |
var notas = [8, 6.5, 9];
var cadastro = {"nome": "Ana"};
escreva(notas[0]);
escreva(cadastro["nome"]);Las listas y los textos se indexan desde cero. La documentación también describe índices negativos para textos, contados desde el final; leer un índice inexistente de una lista produce un error, mientras que asignar después del final puede ampliarla y rellenar las posiciones intermedias con nulo.
05 · Expresiones
Operadores y comparaciones
| Grupo | Operadores | Uso |
|---|---|---|
| Aritméticos | ** * / + - % | Potencia, cálculos y resto. |
| Comparación | > >= < <= == != | Compara valores; la igualdad exige mismo tipo y valor. |
| Lógicos | e ou | Conjunción y disyunción. |
| Pertenencia | em | Comprueba si un valor está en una lista, texto o clave de diccionario. |
| Bit a bit | << >> & ^ | | Desplazamientos y operaciones sobre bits. |
var resultado = 2 ** 3 + 1;
var aprovado = resultado >= 8 e resultado < 10;
var tem_nota = 8 em [6, 8, 9];
escreva(aprovado);La prioridad de los operadores determina el orden de evaluación. Usa paréntesis cuando una expresión combine varias categorías.
06 · Flujo
Condiciones y repeticiones
se, senão se y senão seleccionan un bloque. Los bucles incluyen enquanto y para; la forma de para se parece a un bucle con inicialización, prueba y actualización. Las condiciones usan valores lógicos.
var notas = [8, 5.5, 9];
para (var i = 0; i < tamanho(notas); i = i + 1) {
se (notas[i] >= 7) {
escreva("Aprobado");
} senão se (notas[i] >= 5) {
escreva("Recuperación");
} senão {
escreva("No aprobado");
}
}
var contador = 0;
enquanto (contador < 2) {
escreva(contador);
contador = contador + 1;
}verdadeiro y los valores distintos de falso y nulo se evalúan como verdaderos según las reglas descritas en la documentación.
07 · Reutilización
Funciones
Una función con nombre se declara con função, parámetros entre paréntesis y un bloque entre llaves. retorna entrega un valor al punto de llamada. Las funciones anónimas pueden almacenarse o pasarse a otras funciones, por ejemplo para transformar elementos de una lista.
função classificar(nota) {
se (nota >= 7) {
retorna("Aprobado");
} senão {
retorna("Sigue estudiando");
}
}
var resultado = classificar(8);
escreva(resultado);Los parámetros se separan con comas. Una función puede devolver listas, textos, números u otros valores; las funciones integradas mapear, filtrar y para_cada reciben funciones como argumento.
08 · Modelado
Clases y objetos
classe declara una estructura con métodos. Crear una instancia llama el nombre de la clase con paréntesis; los métodos se llaman desde la instancia con punto. El método especial construtor se ejecuta al crearla y isto hace referencia a la instancia actual. La documentación también presenta herencia con herda y acceso a la implementación padre con super.
classe Contador {
construtor(valor) {
isto.valor = valor;
}
avancar() {
isto.valor = isto.valor + 1;
retorna isto.valor;
}
}
var contador = Contador(2);
escreva(contador.avancar());Usa clases para agrupar datos y comportamientos relacionados; para transformaciones breves, una función sencilla suele bastar.
09 · Recursos integrados
Funciones y bibliotecas
escreva muestra valores. Entre las funciones integradas documentadas están aleatório, aleatório_entre, inteiro, real, tamanho, para_cada, mapear, filtrar y ordenar. Consulta las páginas oficiales para la lista completa y las reglas de cada función.
Las bibliotecas estándar se cargan explícitamente con importar(...). La documentación oficial presenta bibliotecas para matemáticas, textos, tiempo y solicitudes HTTP.
var tempo = importar("tempo");
escreva(tempo.agora());
var dobro = mapear([1, 2, 3], função(valor) {
retorna valor * 2;
});
escreva(dobro);10 · Aplicación
Ejemplo completo
Este programa clasifica una lista de resultados y muestra cuántos elementos alcanzaron el promedio esperado.
função aprovado(nota) {
retorna nota >= 7;
}
var notas = [8, 5.5, 9, 6];
var aprovadas = filtrar(notas, função(nota) {
retorna aprovado(nota);
});
escreva("Notas: ", notas);
escreva("Aprobadas: ", aprovadas);
escreva("Cantidad: ", tamanho(aprovadas));11 · Fuentes