COP2213 Lecture Handout 10/6/99 {This is a test program to illustrate pass by value in functions and procedures.} program ProcTest; procedure X(a,b,c: integer); begin a := b + c; c := a + b; b := c - b; writeln('In X: a = ',a,' b = ',b,' c = ',c); end; function Y(a,b,c: integer): integer; begin a := 2*a; b := 2*b; c := 2*c; writeln('In Y: a = ',a,' b = ',b,' c = ',c); Y := a + b + c; end; var a,b,c : integer; begin a := 1; b := 2; c := 3; X(b,c,a); writeln('In Main: a = ',a,' b = ',b,' c = ',c); X(2*a-2, 3*c+b, b-a); writeln('In Main: a = ',a,' b = ',b,' c = ',c); b := Y(a+b,b+c,a+c); writeln('In Main: a = ',a,' b = ',b,' c = ',c); end. {This is a test program to illustrate pass by reference.} program ProcTest; procedure X(var a,b: integer; c: integer); begin a := b + c; c := a + b; b := c - b; writeln('In X: a = ',a,' b = ',b,' c = ',c); end; function Y(var a,b,c: integer): integer; begin a := 2*a; b := 2*b; c := 2*c; writeln('In Y: a = ',a,' b = ',b,' c = ',c); Y := a + b + c; end; var a,b,c : integer; begin writeln; a := 1; b := 2; c := 3; X(b,c,a+1); writeln('In Main: a = ',a,' b = ',b,' c = ',c); X(c,b,a); writeln('In Main: a = ',a,' b = ',b,' c = ',c); b := Y(a,b,c); writeln('In Main: a = ',a,' b = ',b,' c = ',c); end.