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 deMessage
en 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