What is output by this code?
PROCEDURE Adjust(BYVAL P : INTEGER, BYREF Q : INTEGER)
P ← P * 2
Q ← Q + P
ENDPROCEDURE
A ← 3
B ← 4
CALL Adjust(A, B)
OUTPUT A, " ", B
- P is a copy of A, so P starts at 3. Q refers to B, which holds 4.
- P ← 3 × 2 = 6. Only the copy changes, so A is still 3.
- Q ← 4 + 6 = 10. Q is passed by reference, so B becomes 10.
Answer: 3 10