Cobol en español
  Página de Inicio Recomiéndala Contáctame Usuarios en Linea
16
     Crea Una cuenta  
Video 1
Video 2
Video 3

Si te ha servido la web
o te han gustado los videos, colabora haciendo click en el botón.

MANUALES
TEMATICOS
BASES DE DATOS
COBOL / WINDOWS
COBOL / UNIX
HISTORIA /DOCS
 
BUSCADOR
PROGRAMANDO-Dos
TRUCOS
AÑO 2.000
TEORIA POWCOB-3
PROG. POWCOB-3
TEORIA POWCOB-5
PROG. POWCOB-5
OCX-ESCOBOL
RUTINAS/MANUALES
OCX / JUEGOS
HERRAMIENTAS
COMPILADORES
ENCUESTAS
ENLACES
FOROS
TOP 10

CHAT   Usuarios: 0
Manuales
TEMARIOIntroducción
Identification Division
Environment Division
Data Division
Procedure Division
Instr. de Cálculo
Instr. de Archivos
Instr. de Pantalla
Instr. de Variables
Instrucción Perform

Instr. de Variables

página(s) : 1/5
(5707 palabras totales en este texto)
(108505 Lecturas)   Versión Imprimible



Daré cabida en esta sección a la explicación de todas las instrucciones que hacen referencia a las variables y sus valores. Como todas, este grupo de instrucciones tiene su vital importancia en la programación y son usadas habitualmente.



MOVE, es la instrucción que usaremos para enviar datos de una variable a otra u otras.
Lo que en realidad hace es que la una variable adquiera un valor determinado, ya sea procedente de otra variable o bien desde un valor fijo o constante.

Estos son los dos formatos que posee:

Formato 1:

MOVE variable, valor TOvariable, variable, variable, ....


    Con el primer formato las variables que siguen al TO tomarán el dato de la variable o del valor que le preceden. De todo se verá al final una serie de ejemplos bien detallados.
    Siempre tendremos una serie de normas o restricciones para asegurarnos de que los valores han pasado correctamente.

  • Los campos numéricos siempre se van a alinear a la derecha, respetando la posición del punto decimal si lo hubiera. Si la variable que recibe el campo es mas pequeña, evidentemente se perderán los que no quepan y si es mas grande el resto se pondrá a ceros.
  • Si además el campo al que se mueven los datos es de edición, al hacer el paso del valor, este a su vez se formateará con la edición declarada en la WORKING.
  • Si son alfanuméricos la alineación se efectuará a la izquierda a menos que se haya especificado en la WORKING, al definirla, una justificación a la derecha (JUST RIGHT). Al igual que en los numéricos si es mas pequeño se perderán los caracteres que no quepan y si es mas grande el resto irá relleno de espacios en blanco.

  • ...
    WORKING-STORAGE SECTION.
    77  NUMERO1   PIC 9(6).
    77  NUMERO2   PIC 9(8)V99.
    77  NUMERO3   PIC ZZZ.ZZZ,ZZ.
    77  TEXTO1     PIC X(15)  VALUE "LENGUAJE COBOL".
    77  TEXTO2     PIC X(10).
    77  TEXTO3     PIC X(20) JUST RIGHT.
    ...
    PROCEDURE DIVISION.
    INICIO.
           MOVE 1536 TO NUMERO1.
           MOVE NUMERO1 TO NUMERO2 NUMERO3.
           MOVE TEXTO1 TO TEXTO2 TEXTO3.
    ...

    Nota:
    Después de aplicar estas sentencias, éste sería el resultado:


         NUMERO1=001536
         NUMERO2=0000153600 (La coma decimal es virtual)
         NUMERO3=  1.536,00

         TEXTO1=LENGUAJE COBOL
         TEXTO2=LENGUAJE C
         TEXTO3=      LENGUAJE COBOL



    Formato 2:

    MOVE CORR Identificador1 TO Identificador2

    Agregando CORR a la instrucción conseguimos mover de una sola vez un valor entre identificadores siempre que los campos que contengan tengan el mismo nombre. Estos identificadores no pueden ir en niveles 66, 77 ni 88. El efecto es el mismo que si hicieramos tantos MOVE normales como campos iguales tuviera el identificador. No es muy usual, pero si hay casos en los que puede ser razonable su uso.

    No es necesario que tengan el mismo PIC, ni que estén en el mismo orden, solo que coincidan en su nombre.

    ...
    WORKING-STORAGE SECTION.
    01  DATOS1.
         02  NOMBRE   PIC X(30).
         02  REGION   PIC X(20).
         02  PAIS       PIC X(15).
    01  DATOS2.
         02  PAIS       PIC X(10).
         02  REGION    PIC X(10).
         02  NOMBRE   PIC X(10).
    ...
    PROCEDURE DIVISION.
    INICIO.
           MOVE "ANDRES MONTES" TO NOMBRE IN DATOS1.
           MOVE "ANDALUCIA" TO REGION IN DATOS1.
           MOVE "ESPAÑA" TO PAIS IN DATOS1.
           MOVE CORR DATOS1 TO DATOS2.
    ...

    Nota:
    Para partir con unos valores, primero los he movido a las variables del primer grupo (DATOS1). Después de aplicar el MOVE CORR, el valor de las variables de DATOS2 sería:

         DATOS2:
            PAIS=ESPAÑA
            REGION=ANDALUCIA
            NOMBRE=ANDRES MON


    Fijaros que aunque el orden ni el tamaño era el mismo, el resultado es el que queríamos.

       Inicio de Página    | Siguiente (2/5)
    Sitio desarrollado con PHP-Nuke. Todos los Derechos Reservados.
    PHP-Nuke es un Software Libre realizado con licencia GNU/GPL.
    Página creada en Junio de 1.998, con el proposito de difundir el lenguaje Cobol en nuestra lengua.
    Andres Montes [98/11]