Suppose you are given the following code written in a hybrid language whose squa
ID: 3694438 • Letter: S
Question
Suppose you are given the following code written in a hybrid language whose squareroots are traced to Algol-family of languages, such as Pascal, C, and Ada83. integer function caller() {integer i = 2; procedure someProc(integer x; integer y) {y++; x = x * i; } integer a[1..3]; for(integer j in 1..3) a[j] = j; someProc(a[i],i); print(i, a[1], a[2], a[3]); } Using static scoping rules, indicate the four values printed in each case when the parameters are passed as follows: (a) x by reference, y by value (b) x by reference, y by reference (c) x by value-result, y by value-resultExplanation / Answer
(A) x by reference, y by value
integer function caller()
{
integer i=2;
procedure someProc(integer *x; integer y)
{
y++;
*x=*x*i;
}
integer a[1..3];
for(integer j in 1..3) a[j]=j;
someProc(&a[i],i);
print(i,a[1],a[2],a[3]);
}
(B) x by reference, y by reference
integer function caller()
{
integer i=2;
procedure someProc(integer *x; integer *y)
{
*y++;
*x=*x*i;
}
integer a[1..3];
for(integer j in 1..3) a[j]=j;
someProc(&a[i],&i);
print(i,a[1],a[2],a[3]);
}
(C) x by value result, y by value-result
integer function caller()
{
integer i=2;
procedure someProc(valres x,y: integer ) //by value result
{
y++;
x=x*i;
}
integer a[1..3];
for(integer j in 1..3) a[j]=j;
someProc(a[i],i);
print(i,a[1],a[2],a[3]);
}
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.