1.3 · Las bases del WLangage (variables, condiciones, bucles)

Nivel 1 · Principiante: primera aplicación

1.3Las bases del WLangage (variables, condiciones, bucles)

Objetivo: Dominar los ladrillos básicos del WLangage — variables tipadas, operadores, condiciones, bucles — y los reflejos de legibilidad.
Tiempo estimado: 12 min · lectura autónoma · Si solo tienes 5 min: lee «Lo esencial en 30s» + el esquema.

Lo esencial en 30 segundos

  • Una variable tiene un tipo: entero, real, monetario, cadena, booleano, fecha… El tipo correcto evita cálculos y comparaciones falsos.
  • La condición SI…ALORS…SINON…FIN ejecuta un bloque según una prueba: es el ladrillo de toda lógica de negocio.
  • Los bucles POUR y TANTQUE repiten un tratamiento (número conocido o no); nombrar, indentar y comentar hacen el código mantenible.

Mini-caso guiado — Yacine escribe su primera regla de descuento

Yacine tiene ahora un análisis (1.1) y una ventana (1.2). Quiere aplicar su primera regla de negocio: conceder un 5 % de descuento a los pedidos de más de diez artículos y bloquear la validación si el cliente tiene impagos. Declara variables tipadas: MontantHT en monetario, Remise en real, NbArticles en entero. Escribe una CONDICIÓN SI…ALORS…SINON: si el saldo del cliente es positivo (impago), bloquea; si no, prueba el número de artículos. Añade un BUCLE POUR para acumular el importe de las líneas de artículos. Nombra claramente sus variables (no x ni tmp), indenta sus bloques y comenta el PORQUÉ del descuento. El código se lee como una frase. Yacine retiene: variables tipadas, condiciones y bucles son los ladrillos de toda lógica — y la legibilidad marca la diferencia.

Caso autónomo de esta sección: vuelve en el curso, el esquema, el script y el reto 48 h de la sección 1.3.

1. Variables y tipos

El WLANGAGE es el lenguaje de WinDev. Sus fundamentos son los de todo lenguaje, con una sintaxis deliberadamente simple y en francés. Las VARIABLES son emplazamientos nombrados que almacenan un valor; se declaran con su TIPO: entero, real, monetario, cadena, booleano, fecha, hora, duración.

Ejemplo: MonTotal est un monétaire. La elección del tipo sigue siendo importante: un importe en monetario, un contador en entero, un texto en cadena — nunca todo en cadena, so pena de cálculos falsos.

2. Operadores y condiciones

Los OPERADORES son aritméticos (+, -, *, /), de comparación (=, <, >, <=, >=, <>) y lógicos (ET, OU, PAS). Los comentarios (// al inicio de línea) explican el PORQUÉ de un tratamiento.

La CONDICIÓN SI … ALORS … SINON … FIN ejecuta un bloque u otro según que una prueba sea verdadera o falsa. Es el ladrillo de toda lógica de negocio: si el saldo es negativo, aplicar un descuento, etc. La bifurcación múltiple SELON gestiona varios casos de un mismo valor.

3. Bucles y legibilidad

Los BUCLES repiten un tratamiento: POUR (número conocido de repeticiones, con contador), TANTQUE (mientras una condición siga siendo verdadera) y BOUCLE (con salida explícita).

Dos principios de calidad desde el principio: nombrar claramente las variables (Total, NombreArticles — no x, y, tmp) e indentar el código para hacer visible la estructura. Reflejo valioso: la tecla F1, que abre la ayuda del WLangage con ejemplos, en francés.

Error frecuente de interpretación: «El WLangage está en francés, así que el rigor es opcional». No. La sintaxis simple no dispensa de tipar correctamente (todo en cadena hace falsos los cálculos), de nombrar las variables y de indentar los bloques. Otro error: apilar SI dentro de SI hasta la ilegibilidad. Yacine nombra explícitamente, indenta, comenta el porqué y elige el tipo correcto para cada variable.
La ejecución de un tratamiento Variables tipadas, una condición que elige, un bucle que repite. Variables tipadas Monetario,cadena, booleano…Condición SI…ALORS…SINON Elegir unbloque según una pruebaBucles POUR / TANTQUE Repetirun tratamiento
Variables tipadas, una condición que elige, un bucle que repite.
Versión en texto del esquema (SEO / lectores de pantalla / traducción): 1) Yacine, desarrollador WinDev en una PYME de comercio de material eléctrico en Orán, quiere escribir su primera regla de negocio: 5 % de descuento a partir de diez artículos, validación bloqueada si el cliente tiene impagos. 2) Declara variables tipadas (MontantHT en monetario, Remise en real, NbArticles en entero), escribe una condición SI Client.Solde > 0 ALORS … SINON … FIN y un bucle POUR para acumular las líneas. 3) Nombra claramente sus variables, indenta sus bloques y comenta el porqué del descuento. Lección: variables tipadas, condiciones y bucles son los ladrillos de toda lógica — con la legibilidad como exigencia.

🔎 Ejemplo concreto — 🔎 Ejemplo concreto — El descuento de Yacine

La primera regla de negocio de la aplicación, en WLangage:

// Remise fidélité — Yacine, négoce de matériel électrique
MontantHT est un monétaire = 0
Remise    est un réel      = 0

SI Client.Solde > 0 ALORS
	Info("Impayés : validation de la commande bloquée.")
SINON
	// 5 % de remise au-delà de 10 articles
	SI Commande.NbArticles > 10 ALORS
		Remise = 5
	FIN
FIN

POUR i = 1 À Commande.NbArticles
	MontantHT += LigneCommande[i].PrixHT * LigneCommande[i].Quantite
FIN

Lectura: variables tipadas, una condición que bloquea por impago, una segunda que decide el descuento, un bucle que acumula el importe.

Reflejo: nombres explícitos, indentación de los bloques, comentario del porqué — el código se lee como una frase.

Vocabulario de la sección

Variable y tipo
Emplazamiento nombrado que almacena un valor, declarado con su tipo: entero, real, monetario, cadena, booleano, fecha, hora, duración.

Ejemplo sencillo: Yacine declara MontantHT est un monétaire y NbArticles est un entier.

Lo que no es: almacenar un importe en cadena y después intentar sumarlo.

Reflejo: un dato → un tipo adecuado.

Operadores
Aritméticos (+, -, *, /), de comparación (=, <, >, <=, >=, <>) y lógicos (ET, OU, PAS), en francés.

Ejemplo sencillo: Yacine prueba Commande.NbArticles > 10 ET Client.Solde = 0.

Lo que no es: comparar dos cadenas para sumar importes.

Reflejo: una prueba → el operador correcto.

Condición SI…ALORS…SINON
Estructura que ejecuta un bloque u otro según que una prueba sea verdadera o falsa; ladrillo básico de toda lógica de negocio.

Ejemplo sencillo: Si el cliente tiene impagos, Yacine bloquea la validación.

Lo que no es: encadenar SI anidados hasta hacer el código ilegible.

Reflejo: decidir → una condición SI.

Bucles (POUR, TANTQUE)
POUR repite un número conocido de veces (con contador); TANTQUE repite mientras una condición siga siendo verdadera; SELON gestiona una bifurcación múltiple.

Ejemplo sencillo: Yacine acumula las líneas de pedido con un bucle POUR.

Lo que no es: copiar veinte veces la misma línea en lugar de un bucle.

Reflejo: repetir → un bucle POUR o TANTQUE.

Legibilidad (nombres + indentación)
Nombrar claramente las variables, indentar los bloques, comentar el porqué: lo que hace el código mantenible.

Ejemplo sencillo: Yacine escribe MontantTotalHT y no m, e indenta cada bloque.

Lo que no es: variables x, tmp1, tmp2 y ningún desplazamiento de los bloques.

Reflejo: código legible → nombres claros + indentación.

En la práctica — En la práctica — Escribir sus primeras líneas de WLangage

  1. Declare variables con el TIPO correcto (un importe en monetario, un contador en entero, un texto en cadena, una prueba en booleano).
  2. Escriba una CONDICIÓN SI…ALORS…SINON…FIN que traduzca una regla de negocio simple (si el importe supera un umbral, aplicar un descuento).
  3. Escriba un BUCLE POUR para repetir un tratamiento un número conocido de veces, y un bucle TANTQUE para un número desconocido de antemano.
  4. Nombre claramente sus variables, INDENTE los bloques, comente el PORQUÉ y utilice F1 ante cualquier función desconocida.
Domina los ladrillos básicos del WLangage (variables tipadas, operadores, condiciones, bucles) y los reflejos de legibilidad que hacen el código mantenible — los que Yacine aplica desde su primera regla de descuento.

Script paso a paso — escribir la regla de descuento como Yacine (5 min)

1) Declare las variables con el tipo correcto (MontantHT en monetario, Remise en real, NbArticles en entero). 2) Escriba la condición SI Client.Solde > 0 ALORS bloquear SINON probar el descuento FIN. 3) Añada la condición anidada SI NbArticles > 10 ALORS Remise = 5 FIN. 4) Acumule el importe con un bucle POUR sobre las líneas. 5) Nombre, indente y comente, y después pruebe con F1 como apoyo.

Los conceptos (variables, condiciones, bucles) son universales: lo que cambia de un lenguaje a otro es la sintaxis.

Modelo para copiar y pegar — la estructura de tratamiento de Yacine

// 1. Variables typées
Total est un monétaire = 0
Compteur est un entier = 0

// 2. Condition
SI  ALORS
	// action si vrai
SINON
	// action si faux
FIN

// 3. Boucle
POUR i = 1 À 
	// traitement répété
FIN

// Réflexes : noms clairs, blocs indentés, commentaire du POURQUOI

Descuento por tramos

Yacine sustituye el SI simple por un SELON: 3 % a partir de 5 artículos, 5 % a partir de 10, 8 % a partir de 20.

Número desconocido

Para recorrer los pedidos de un cliente, Yacine utiliza un bucle TANTQUE en lugar de un POUR.

Control de existencias

Antes de validar una línea, Yacine escribe una condición que rechaza una cantidad superior a la existencia disponible.

Acumulación

Para calcular el importe total de un pedido, Yacine acumula las líneas con un bucle POUR y una variable monetaria.

✓ Buenas prácticas

  • Declarar cada variable con el tipo adecuado.
  • Nombrar claramente e indentar los bloques para la legibilidad.
  • Utilizar F1 ante cualquier función desconocida: la ayuda es rica y está en francés.

✗ Errores frecuentes

  • Almacenarlo todo en cadena: cálculos y comparaciones falsos.
  • Variables x, tmp1, tmp2 incomprensibles.
  • Apilar SI anidados hasta la ilegibilidad.

Puntos clave

  • El WLangage se apoya en los fundamentos universales, con una sintaxis simple en francés.
  • Las variables se declaran con un TIPO: un importe en monetario, un contador en entero, una fecha en fecha.
  • La condición SI…ALORS…SINON…FIN y los bucles POUR / TANTQUE / SELON dirigen la ejecución.
  • Reflejos de calidad: NOMBRAR, INDENTAR, COMENTAR el porqué y apoyarse en F1.

Reto 48 h — aplícalo mañana

Escriba en WLangage, como Yacine, una pequeña regla de negocio: unas variables tipadas, una condición SI…ALORS…SINON y un bucle POUR. Por ejemplo: aplicar un descuento a partir de un umbral y acumular un importe. Escriba en una frase por qué es importante la elección del tipo de una variable.

Lista de salida de la sección
  • Declaro variables con el tipo correcto en WLangage.
  • Sé escribir una condición SI…ALORS…SINON…FIN.
  • Sé repetir un tratamiento con un bucle POUR o TANTQUE.
Autoevaluación 1-5: ¿elijo el tipo correcto para mis variables?Autoevaluación 1-5: ¿mi código está nombrado, indentado y comentado?

Preguntas frecuentes

¿Hay que conocer otro lenguaje antes de aprender WLangage?

No: el WLangage está concebido para ser accesible a los principiantes, con palabras clave en francés (SI, ALORS, POUR, TANTQUE), una sintaxis legible y una ayuda contextual rica. Si ya conoce un lenguaje, progresará más rápido porque los conceptos son universales — pero lo que hay que aprender sobre todo es la filosofía WinDev: el análisis en el centro, los campos vinculados a las rúbricas, las funciones HFSQL y el funcionamiento por eventos.

¿Cómo escribir código WLangage legible y mantenible?

Aplicando reglas simples pero constantes: nombrar explícitamente (MontantTotalHT, no m), indentar los bloques, comentar el PORQUÉ (no el QUÉ), dividir los tratamientos largos en procedimientos y evitar la duplicación. Un código se lee mucho más a menudo de lo que se escribe: nombres claros, una estructura visible y comentarios útiles ahorran un tiempo considerable en las futuras correcciones.

Comprueba tu comprensión

¿Qué estructuras básicas se utilizan en WLangage para repetir un tratamiento?

Recursos adicionales (opcional, para ir más allá)

Examen del nivel 1Preguntas inéditas y más difíciles para validar tus conocimientos