procedure f(x, y, z) x := x + 1 y := z z := z + 1 . . . i := 1; a[1] := 10; a[2] := 11 f(i, a[i], i) println(i, a[1], a[2])What does the program print, when parameters are passed (a) by value, (b) by reference, (c) by value/result, or (d) by name? Explain why!