Cobol Foro

Cobol Foro (https://www.cobolforo.es/index.php)
-   COBOL - General (https://www.cobolforo.es/forumdisplay.php?f=44)
-   -   [Sintaxis] Duda con Initialize (https://www.cobolforo.es/showthread.php?t=1475)

MatematicaMente 27 de abril de 2022 09:48

Duda con Initialize
 
Buenos días/tardes/noches.
Recién comienzo en el mundo de COBOL y tengo dudas acerca de la instrucción INITIALIZE.
¿Cuándo y con qué objetivo se usa?, ¿qué tipo de datos tiene sentido inicializar?

Gracias de antemano, un saludo.


L.

Josber 27 de abril de 2022 11:27

El verbo o instrucción INITIALIZE, "vacía" una o varias variables sin tener que "mirar" si son numéricas o alfanuméricas, es una instrucción que se añadió a la versión de 1985 de COBOL, y supuso el quitar muuuuucho trabajo a los programadores, su equivalente es MOVE ZEROS o MOVE SPACES TO ....

Imagina que tienes una variable que declarada de la siguiente manera

Código COBOL:
  1. 01 DATOS_ECONOMICOS.
  2.      03  SALDO                 PIC S9(9)V999.
  3.      03  DEBE                    PIC S9(9)V999.
  4.      03  HABER                 PIC S9(9)V999.
  5.      03  TIPO                     PIC X.

y necesitas inicializarlos, (borrar su contenido), no puedes hacer un MOVE ZEROS TO DATOS_ECONOMICOS, porque a SALDO, DEBE y HABER, lo haces bien, pero TIPO, tendría desde ese momento, el valor "0", por lo que no es correcto, tendrías que hacerlo de la siguiente manera

Código COBOL:
  1. MOVE ZEROS  TO SALDO DEBE HABER.
  2. MOVE SPACES TO TIPO.

Sin embargo, con INITIALIZE, no tienes problemas, el compilador es el que se encarga de ver qué tipo de variable es y cómo debe de inicializarla, la forma sería

Código COBOL:
  1. INITIALIZE DATOS_ECONOMICOS.

Un salu2.-

MatematicaMente 27 de abril de 2022 12:29

Muchas gracias por tu respuesta, explicación muy clara!


La franja horaria es GMT +2. Ahora son las 08:28.

Powered by: vBulletin, Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.