Introducción
El RPG de Formato Libre es una evolución del lenguaje RPG que permite a los programadores escribir código de una manera más moderna y legible. A diferencia del formato fijo tradicional, el formato libre elimina las restricciones de columnas y permite una mayor flexibilidad en la escritura del código.
Objetivos de esta sección:
- Comprender las diferencias entre el formato fijo y el formato libre.
- Aprender la sintaxis básica del RPG de Formato Libre.
- Escribir y ejecutar un programa simple en formato libre.
Diferencias entre Formato Fijo y Formato Libre
Formato Fijo
- Columnas específicas: El código debe estar alineado en columnas específicas.
- Estructura rígida: Cada tipo de declaración tiene una posición fija.
- Legibilidad: Puede ser difícil de leer y mantener.
Formato Libre
- Sin restricciones de columnas: El código puede comenzar en cualquier columna.
- Estructura flexible: Permite una escritura más natural y moderna.
- Legibilidad: Más fácil de leer y mantener.
| Característica | Formato Fijo | Formato Libre |
|---|---|---|
| Columnas específicas | Sí | No |
| Estructura | Rígida | Flexible |
| Legibilidad | Menos legible | Más legible |
Sintaxis Básica del RPG de Formato Libre
Declaración de Variables
En formato libre, las declaraciones de variables se realizan de manera más intuitiva.
Formato Fijo:
Formato Libre:
Estructuras de Control
Las estructuras de control como if, else, do, for, etc., se escriben de manera similar a otros lenguajes de programación modernos.
Formato Fijo:
Formato Libre:
Funciones y Procedimientos
La definición de funciones y procedimientos también se simplifica en el formato libre.
Formato Fijo:
Formato Libre:
dcl-proc AddNumbers;
dcl-pi *n int(10);
Num1 int(10);
Num2 int(10);
end-pi;
return Num1 + Num2;
end-proc;Ejemplo Práctico: Programa Hola Mundo en Formato Libre
Vamos a escribir un programa simple que imprime "Hola Mundo" en la consola.
Código
**free ctl-opt main(Main); dcl-proc Main; dcl-s Message char(50); Message = 'Hola Mundo'; dsply Message; end-proc;
Explicación del Código
**free: Indica que el código está en formato libre.ctl-opt main(Main);: Define la entrada principal del programa.dcl-proc Main;: Declara el procedimiento principal.dcl-s Message char(50);: Declara una variable de tipo carácter con una longitud de 50.Message = 'Hola Mundo';: Asigna el valor "Hola Mundo" a la variableMessage.dsply Message;: Muestra el contenido deMessageen la consola.end-proc;: Finaliza el procedimiento.
Ejercicio Práctico
Ejercicio
Escribe un programa en formato libre que solicite al usuario su nombre y edad, y luego imprima un mensaje personalizado.
Solución
**free ctl-opt main(Main); dcl-proc Main; dcl-s Name char(50); dcl-s Age int(3); dcl-s Message char(100); dsply 'Ingrese su nombre: '; accept Name; dsply 'Ingrese su edad: '; accept Age; Message = 'Hola ' + %trim(Name) + ', tienes ' + %char(Age) + ' años.'; dsply Message; end-proc;
Explicación del Código
dsply 'Ingrese su nombre: ';: Muestra el mensaje para solicitar el nombre.accept Name;: Acepta la entrada del usuario y la almacena enName.dsply 'Ingrese su edad: ';: Muestra el mensaje para solicitar la edad.accept Age;: Acepta la entrada del usuario y la almacena enAge.Message = 'Hola ' + %trim(Name) + ', tienes ' + %char(Age) + ' años.';: Construye el mensaje personalizado.dsply Message;: Muestra el mensaje personalizado.
Conclusión
En esta sección, hemos aprendido las diferencias entre el formato fijo y el formato libre en RPG, la sintaxis básica del formato libre y cómo escribir un programa simple. El formato libre facilita la escritura y el mantenimiento del código, haciéndolo más legible y moderno. En la próxima sección, exploraremos los conceptos de ILE y cómo integrarlos en nuestros programas RPG.
Curso de Programación RPG
Módulo 1: Introducción a la Programación RPG
- ¿Qué es RPG?
- Configuración de tu Entorno de Desarrollo
- Sintaxis y Estructura Básica
- Programa Hola Mundo
Módulo 2: Conceptos Básicos
- Tipos de Datos y Variables
- Operadores y Expresiones
- Estructuras de Control
- Funciones y Procedimientos
Módulo 3: Trabajando con Datos
Módulo 4: Técnicas Avanzadas de Programación
Módulo 5: RPG IV y Más Allá
Módulo 6: Integrando RPG con Tecnologías Modernas
Módulo 7: Aplicaciones del Mundo Real
- Construyendo una Aplicación Simple
- Estudio de Caso: Sistema de Gestión de Inventarios
- Estudio de Caso: Sistema de Nómina
- Mejores Prácticas y Revisión de Código
