The MAINPRG COBOL program is displayed below. For this program, if the variables X, Y, and Z are assigned the values "1", "5", and "50", which of the following are the possible outputs upon executing this program?
PERFORM VARYING X FROM 1 BY Y UNTIL X>Z
CALL CHECKPRG USING X,Y,Z
The PROCEDURE DIVISION of CHECKPRG is displayed below.
PROCEDURE DIVISION USING X1,Y1,Z1.
IF Z1>Y1 AND Y1>X1
DIVIDE Z1 BY X1 GIVING Y1
A. 35, 15, 45
B. 5, 10, 50
C. 20, 15, 45
D. 5, 15, 45
E. 50, 15, 45
Joined: 13 Jun 2007 Posts: 632 Location: Wisconsin
Just tracing through I get the same as iknow. The time through, in the subprogram:
Y1 = Z1/X1
Y1 = 50/1
Y1 = 50
and then after that the IF logic in the subprogram is always false and the divide will never happen again. Leaving Y = 50 and Z is never changed so that must be 50 and you loop until X > Z so X must be 51