En este tema, aprenderemos sobre los tipos de datos y las variables en RPG. Estos son conceptos fundamentales que te permitirán almacenar y manipular datos en tus programas.

  1. ¿Qué es una Variable?

Una variable es un espacio en la memoria que se utiliza para almacenar datos que pueden cambiar durante la ejecución de un programa. Cada variable tiene un nombre, un tipo de dato y un valor.

Ejemplo de Declaración de Variables

Dcl-S nombre TipoDeDato;

  1. Tipos de Datos en RPG

RPG soporta varios tipos de datos que se pueden utilizar para declarar variables. A continuación, se presentan los tipos de datos más comunes:

2.1 Tipos de Datos Numéricos

  • Enteros (Integer): Se utilizan para almacenar números enteros.

    • Zoned Decimal (ZONED): Números decimales con signo.
    • Packed Decimal (PACKED): Números decimales empaquetados.
    • Binary (BINARY): Números binarios.
  • Ejemplo:

Dcl-S numeroEntero Zoned(5);
Dcl-S numeroEmpaquetado Packed(7:2);
Dcl-S numeroBinario Binary(4);

2.2 Tipos de Datos de Punto Flotante

  • Float: Se utilizan para almacenar números con decimales.

    • Float (FLOAT): Números de punto flotante.
  • Ejemplo:

Dcl-S numeroFlotante Float(8);

2.3 Tipos de Datos de Caracteres

  • Caracteres (Character): Se utilizan para almacenar cadenas de texto.

    • Character (CHAR): Cadenas de caracteres de longitud fija.
    • Variable Length Character (VARCHAR): Cadenas de caracteres de longitud variable.
  • Ejemplo:

Dcl-S nombre Char(20);
Dcl-S descripcion Varchar(50);

2.4 Tipos de Datos de Fecha y Hora

  • Fecha y Hora (Date/Time): Se utilizan para almacenar fechas y horas.

    • Date (DATE): Fechas.
    • Time (TIME): Horas.
    • Timestamp (TIMESTAMP): Marca de tiempo (fecha y hora).
  • Ejemplo:

Dcl-S fechaNacimiento Date;
Dcl-S horaActual Time;
Dcl-S marcaTiempo Timestamp;

  1. Declaración y Asignación de Variables

3.1 Declaración de Variables

Para declarar una variable en RPG, se utiliza la instrucción Dcl-S seguida del nombre de la variable y su tipo de dato.

  • Ejemplo:
Dcl-S edad Zoned(3);
Dcl-S salario Packed(7:2);
Dcl-S nombre Char(20);

3.2 Asignación de Valores a Variables

Para asignar un valor a una variable, se utiliza el operador de asignación =.

  • Ejemplo:
edad = 25;
salario = 3500.50;
nombre = 'Juan Perez';

  1. Ejemplo Práctico

Vamos a crear un programa simple que declare varias variables, les asigne valores y luego imprima esos valores.

Código del Programa

**free
Dcl-S edad Zoned(3);
Dcl-S salario Packed(7:2);
Dcl-S nombre Char(20);
Dcl-S fechaNacimiento Date;
Dcl-S horaActual Time;

edad = 30;
salario = 4500.75;
nombre = 'Ana Gomez';
fechaNacimiento = %date('1990-05-15');
horaActual = %time('14:30:00');

Dsply ('Nombre: ' + nombre);
Dsply ('Edad: ' + %char(edad));
Dsply ('Salario: ' + %char(salario));
Dsply ('Fecha de Nacimiento: ' + %char(fechaNacimiento));
Dsply ('Hora Actual: ' + %char(horaActual));

*inlr = *on;

Explicación del Código

  1. Declaración de Variables:

    • Se declaran variables de diferentes tipos de datos: edad, salario, nombre, fechaNacimiento y horaActual.
  2. Asignación de Valores:

    • Se asignan valores a las variables utilizando el operador =.
  3. Impresión de Valores:

    • Se utilizan las funciones Dsply y %char para convertir los valores a cadenas de texto y mostrarlos en pantalla.
  4. Finalización del Programa:

    • Se establece *inlr = *on para indicar el final del programa.

  1. Ejercicios Prácticos

Ejercicio 1

Declara una variable de tipo Zoned para almacenar la edad de una persona y asígnale el valor 28. Luego, imprime el valor de la variable.

Ejercicio 2

Declara una variable de tipo Char para almacenar el nombre de una persona y asígnale el valor Carlos. Luego, imprime el valor de la variable.

Ejercicio 3

Declara una variable de tipo Date para almacenar la fecha de nacimiento de una persona y asígnale el valor 2000-01-01. Luego, imprime el valor de la variable.

Soluciones

Solución Ejercicio 1

**free
Dcl-S edad Zoned(3);
edad = 28;
Dsply ('Edad: ' + %char(edad));
*inlr = *on;

Solución Ejercicio 2

**free
Dcl-S nombre Char(20);
nombre = 'Carlos';
Dsply ('Nombre: ' + nombre);
*inlr = *on;

Solución Ejercicio 3

**free
Dcl-S fechaNacimiento Date;
fechaNacimiento = %date('2000-01-01');
Dsply ('Fecha de Nacimiento: ' + %char(fechaNacimiento));
*inlr = *on;

Conclusión

En esta sección, hemos aprendido sobre los tipos de datos y las variables en RPG. Hemos visto cómo declarar variables, asignarles valores y cómo imprimir esos valores. Estos conceptos son fundamentales para cualquier programa en RPG y te preparan para los temas más avanzados que veremos en los siguientes módulos.

© Copyright 2024. Todos los derechos reservados