AS400 interview questions and answers-Part 6
1. What is array in AS400? What are the types of array?
Ans: Array is collection of elements of same data type.
Types
of Array
1) Compile time array
2) Pre-runtime array
3) Run time array
2. What is compile time array in AS400? Give example of compile time array.
Ans:
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 of compile time
array
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
3. What is Pre run time array in AS400? Give example of Pre run time array.
Ans:
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
4. What is run time array in AS400? Give example of run time array.
Ans:
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 ******************************************
OUTPUT
DSPLY 1
DSPLY 2
DSPLY 3
DSPLY 4
DSPLY 5
*** For more information please refer:
Click Here...