PASCAL-Programming
Question 1 |
Consider the following pascal program skeleton:
program sort(...);var a,x,...; procedure readarray; var i,....; begin ...:=a... end; procedure exchange(...); begin ...:=a... ...:=x... end; procedure qsort(...); var k,v,...; function partition (...)...; var i,j,...; begin ...:=a... ...:=v... end; begin . . end; begin . . end;
Assume that at a given point in time during program execution, following procedures are active: sort, qsort(1,9), qsort(1.3), partition(1,3), exchange(1,3).
Show snapshots of the runtime stack with access links after each of the activations.
Theory Explanation. |
Question 2 |
Given the following Pascal-like program segment
Procedure A; x,y: integer; Procedure B; x,z: real S1 end B; Procedure C; i: integer; S2 end C; end A;
The variables accessible in S1 and S2 are
x or A, y, x of B and z in S1 and x of B, y and i in S2 | |
x or B, y and z in S1 and x of B, i and z in S2 | |
x or B, z and y in S1 and x of A, i and y in S2 | |
None of the above |
Question 2 Explanation:
Note: Out of syllabus.
Question 3 |
Consider the following program in pseudo-pascal syntax. What is printed by the program if parameter a in procedure test 1 is passed as
(i) call-by-reference parameter
(ii) call-by-value-result parameter
program Example (input, output) var b: integer; procedure test2: begin b:=10; end procedure test1 (a:integer): begin a:=5; writeln ('point 1: ', a, b); test2; writeln ('point 2: ', a, b); end begin(*Example*) b:=3; test1(b); writeln('point3:', b); end
Theory Explanation. |