with ada.integer_text_io; use ada.integer_text_io;
with ada.text_io; use ada.text_io;
procedure modes2 is
-- Try changing to in params and then out params
procedure sumPowers(v: in integer; c, sv, ss, sc: in out integer) is
begin
c := c + 1;
sv := sv + v;
ss := ss + v * v;
sc := sc + v * v * v;
end sumPowers;
-- Try changing to in params and then out params
procedure doit(cVals, sum1, sum2, sum3: in out integer) is
value: integer; -- Stores input value
begin
loop
exit when end_of_file;
get(value);
sumPowers(value, cVals, sum1, sum2, sum3);
end loop;
end doit;
procedure putResults(cvs, s1, s2, s3: in integer) is
begin
put(cvs);
put(s1);
put(s2);
put(s3);
new_line;
end putResults;
countValues, sumSquares, sumValues, sumCubes: integer := 0;
begin
doit(countValues, sumValues, sumSquares, sumCubes);
putResults(countValues, sumValues, sumSquares, sumCubes);
end modes2;