Portal | IBM Manuals | Downloads | Products | Refer | Info | Programs | JCLs | Forum Rules*| Site Map | Mainframe CD 
IBMMAINFRAMES.com - IBM Mainframe Support Forums Index
 
Register
 
IBMMAINFRAMES.com - IBM Mainframe Support Forums Index FAQ Search Memberlist Usergroups Profile Log in to check your private messages Log in
 
COBOL Interview Program Enquiry

 
Post new topic   Reply to topic    IBMMAINFRAMES.com Support Forums -> Interview Questions
Author Message
sivakanuri
Warnings : 1

New User


Joined: 07 Jun 2004
Posts: 5
Location: hyderabad

PostPosted: Mon Jun 14, 2004 11:32 pm    Post subject: COBOL Interview Program Enquiry
Reply with quote

icon_smile.gif Study the following
01 A PIC 99V0 VALUE 5
01 B PIC 9V9 VALUE 6
01 C PIC 99V9 VALUE 2.5
01 D PIC 99 VALUE 3
COMPUTE A ROUNDED B C = A+B*C/D
ON SIZE ERROR PERFORM PRINT-ERROR
the comments of A.B.C after execution of the above statement are
a.A=10 B=0 C=10 b.A=10 B=9.9 C=9.9 c.A=10 B=0 C=9.9 d.A=10 B=6 C=10

plz study the code an give the valid option , and also explain hou u got the answer,urgent plz.
thanks in advance
Back to top
View user's profile Send private message
References
PostPosted: Mon Jun 14, 2004 11:32 pm    Post subject: Re: COBOL Interview Program Enquiry Reply with quote

mcmillan

Site Admin


Joined: 18 May 2003
Posts: 846
Location: India

PostPosted: Fri Jun 18, 2004 8:07 am    Post subject: Re
Reply with quote

The answer is d) A = 10, B = 6, C = 10

You can not initialize a non-numeric (99v0) item with 5, so I assume as:

Quote:
01 A PIC 99V9 VALUE 5
01 B PIC 9V9 VALUE 6
01 C PIC 99V9 VALUE 2.5
01 D PIC 99 VALUE 3


Now the size of A is 3 Bytes (V doesn't occupy any memory)

B - 2 Bytes

C - 3 Bytes

Quote:
COMPUTE A ROUNDED B C = A+B*C/D



As by the rule,

B * C = 15.0 (It's not 15)

(B * C ) / D = 5.0

A + (( B * C) / D) = 10.0


So now the answer is

A = 10.0

B = 0.0 (has only 2 Bytes, so value truncated)

C = 10.0

But yu have specified ON SIZE ERROR...

Quote:

ON SIZE ERROR PERFORM PRINT-ERROR


If on size error specified, then insted of truncation, the value will be restored.


That's instead of 0.0 the value of B getting restored as 6.0 (as per in VALUE clause)


So your answer is now,

A = 100 (10.0 - assumed decimal)

B = 60 (6.0)

C = 100 ( 10.0)
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    IBMMAINFRAMES.com Support Forums -> Interview Questions All times are GMT + 6 Hours
Page 1 of 1