Ü  Array

Array is collection of elements of same data type.

 

 

Ü  Types of Array

1)      Compile time array

2)      Pre-runtime array

3)      Run time array

 

1)     Compile time array

·         The compile time array means the elements of the array will be loaded before the execution of the programs i.e. at compile time.

·         The value will be static.

·         We must declare in keyword command DIM (), CTDATA (), and PERRCD ().

DIM() represents the size of the array.

CTDATA() represents that it is compile time array.

PERRCD() represents the number of entries in one array record.

Dim = row i* col j

e.g.   PERRCD=2, NO. OF ROWS=3, THEN DIM = PERRCD*NO. OF ROWS=6

·         We mention the array element just after the last statement of the program.

 

Example

Columns . . . :    1 100                                      Browse           
 SEU==>                                                                         
 FMT D  .....DName+++++++++++ETDsFrom+++To/L+++IDc.Keywords+++++++++++++++++++++
        *************** Beginning of data **************************************
0001.00      darr1             s              3P 0 dim(5) ctdata perrcd(1)      
0002.00      darr2             s              3P 0 dim(5) ctdata perrcd(1)      
0003.00      dS                s              3p 0 inz(0)                       
0004.00      dn                s              2p 0 inz(1)                       
0005.00      c     n             do        5                                    
0006.00      c                   eval      s=arr2(n)-arr1(n)                    
0007.00      c     s             dsply                                          
0008.00      c                   add       1             n                      
0009.00      c                   enddo                                          
0010.00      c                   seton                                      lr
0011.00 ** CTDATA arr1                                                          
0012.00 101                                                                     
0013.00 102                                                                     
0014.00 103                                                                     
0015.00 104                                                                     
0016.00 105                                                                     
0017.00 ** CTDATA arr2                                                          
0018.00 201                                                                     
0019.00 202                                                                     
0020.00 203                                                                        
0021.00 204                                                                        
0022.00 205                                                                        
        ****************** End of data ********************************************

 

 

OUTPUT

DSPLY    100

DSPLY    100

DSPLY    100

DSPLY    100

DSPLY    100

 

 

2)     Pre-runtime array

·         There are some limitations of compile time array. E.g. If we want to change the value of an array element, we need to make changes in the program source code where the array’s element is defined and then recompile the program.

·         In pre-runtime array, we maintain the array element in separate file. Hence, if we are making any change in array element we can just change this file containing the array element; we don’t need to compile the source program again and again as in compile time array.

·         The file that stores the array element must be defined in the F specs with ‘T’ as File Designation entry.

·         Record length is also a mandatory entry in F spec.

 length of record = Perrcd *size of 1 element

·         The file is opened at program initialization. At that time the array loads from this external file.

·         To define the array in our program, we use keyword FROMFILE() instead of CTDATA().

 

Example- I

Flat-File USED: Flat01

 

FLAT1                                                                                                                             

AAAAA

BBBBB

CCCCC

DDDDD

EEEEE

 

 

Columns . . . :    6  80                         Browse                       AMITCC/QRPGLESRC
SEU==>                                                                             PRE_RUN_AR
FMT F  FFilename++IPEASFRlen+LKlen+AIDevice+.Keywords+++++++++++++++++++++++++++++
        *************** Beginning of data ****************************************************
0001.00 FFLAT01    IT   F    5        DISK                                              130201
0002.00 DPRE_ARR          S              5    DIM(5) FROMFILE(FLAT01) PERRCD(1)         130201
0003.00 C     PRE_ARR(1)    DSPLY                                                       130201
0004.00 C     PRE_ARR(2)    DSPLY                                                       130201
0005.00 C     PRE_ARR(3)    DSPLY                                                       130201
0006.00 C     PRE_ARR(4)    DSPLY                                                       130201
0007.00 C     PRE_ARR(5)    DSPLY                                                       130201
0008.00 C                   SETON                                        LR             130201
        ****************** End of data *******************************************************

 

 

OUTPUT

AAAAA

BBBBB

CCCCC

DDDDD

EEEEE

 

 

Example - II

PHYSICAL FILE USED IN THE PRORAM: PF2

  FLD1     FLD2                                               

10,001   20,001                                               

10,002   20,002                                               

10,003   20,003                                                

10,004   20,004                                               

10,005   20,005                                               

********  End of data  ********                               

 

 

 


Columns . . . :    6  80                       Browse                                    AMITCC/QRPGLESRC
SEU==>                                                                                         PRE_RUN_A2
FMT F  FFilename++IPEASFRlen+LKlen+AIDevice+.Keywords+++++++++++++++++++++++++++++
*************** Beginning of data ***********************************************************************
0001.00 FPF2       IT   F   10        DISK    <<< Here length of record(10)= Perrcd(2)*size of 1 element(5)
0002.00 DPRE_ARR          S              5P 0 DIM(12) FROMFILE(PF2) PERRCD(2)  <<< 5P0 = size of 1 element,
	                                                                               DIM=2*5(i*j)
0003.00 D                                            EXTFMT(P)  <<<<<< Keyword to avoid decimal data error
0004.00 DN                S              2  0 INZ(1)
0005.00 C     N             DO        12
0006.00 C     PRE_ARR(N)    DSPLY
0007.00 C                   EVAL      N=N+1
0008.00 C                   ENDDO
0009.00 C                   SETON                                        LR
****************** End of data **************************************************************************

 

OUTPUT

10001

20001

10002

20002

10003

20003

10004

20004

10005

20005

10006

20006

 

 

3)     Run time array

·         The run time array means the value will be loaded during the runtime only.

·         The value will be dynamic.

 

Columns . . . :    1 100             Browse            
 SEU==>                                                                          
 FMT D  .....DName+++++++++++ETDsFrom+++To/L+++IDc.Keywords++++++++++++++++++++++
        *************** Beginning of data ***************************************
0001.00      darr1             s              3P 0 dim(5) 
0002.00      dn                s              2p 0 inz(1)                        
0003.00      c     n             do        5                                     
0004.00      c                   eval      arr1(n)=n                             
0005.00      c     arr1(n)       dsply                                           
0006.00      c                   add       1             n                       
0007.00      c                   enddo                                           
0008.00      c                   seton                                        lr 
        ****************** End of data ******************************************

 

O/P

DSPLY    1

DSPLY    2

DSPLY    3

DSPLY    4

DSPLY    5

 

 

 

Ü Some useful array related op-codes

Lookup: It is used to look for an element in the array.

Sorta: It is used to sort the array element

Xfoot: It is used to sum-up the array element.

 

 

Columns . . . :    1 100                   Browse                
 SEU==>                                                                              
 FMT D  .....DName+++++++++++ETDsFrom+++To/L+++IDc.Keywords++++++++++++++++++++++++++
        *************** Beginning of data *******************************************
0001.00      darr2             s              3P 0 dim(5) ctdata perrcd(1)           
0002.00      dn                s              2p 0 inz(1)                            
0003.00      C     n             do        5                                         
0004.00      C     arr2(n)       dsply                                               
0005.00      C                   eval      n=n+1                                     
0006.00      C                   enddo                                               
0007.00      C                   sorta     arr2                                      
0008.00      C                   eval      n=1                                       
0009.00      C     n             do        5                                         
0010.00      C     arr2(n)       dsply                                               
0011.00      C                   eval      n=n+1                                     
0012.00      C                   enddo                                               
0013.00      C     204           lookup    arr2                                   81 
0014.00      C                   if        *in81=*on                                 
0015.00      C     'found'      dsply                                               
0016.00      C                   endif                                               
0017.00      C                   xfoot     arr2          sum               4 0       
0018.00      C     sum           dsply                                               
0019.00      c                   seton                                        lr
0020.00 ** CTDATA arr2                                                                 
0021.00 201                                                                            
0022.00 205                                                                            
0023.00 203                                                                            
0024.00 202                                                                            
0025.00 204                                                                            
        ****************** End of data ************************************************

 

 

 

O/P

DSPLY  201   

DSPLY  205   

DSPLY  203   

DSPLY  202   

DSPLY  204   

DSPLY  201   

DSPLY  202   

DSPLY  203   

DSPLY  204   

DSPLY  205   

DSPLY  found 

DSPLY  1015  





User Comments:





Copyright © Go4as400.com, 2013-2017. Copyright notice