val N:ℕ; val M:ℕ; type int = ℤ[-N,N]; type elem = ℤ[-M,M]; type array = Array[N,elem]; proc maximumElement(a:array,n:int):elem { var m:elem ≔ 0; for var i:int ≔ 1; i < n; i ≔ i+1 do { if a[i] > m then m ≔ a[i]; } return m; } proc maximumIndex(a:array,n:int):int { var p:int ≔ 0; for var i:int ≔ 1; i < n; i ≔ i+1 do { if a[i] > a[p] then p ≔ i; } return p; }