begin
comment This is a simple example of Jensen's device;
comment This takes the sum of expr from lo to hi, inclusive.
The variable index is incremented through the range.;
real procedure SUM(LO, HI, INDEX, EXPR);
value LO, HI;
integer LO, HI, INDEX;
real EXPR;
begin
real ACCUM;
comment initialize accum to zero and add the terms.;
ACCUM := 0.0;
for INDEX := LO step 1 until HI do begin
ACCUM := ACCUM + EXPR
end;
SUM := ACCUM
end;
begin
comment Sum of integers, 1 to 20.;
integer I;
OUTREAL(1, SUM(1, 20, I, I));
OUTSTRING(1, "\n");
end;
begin
comment sum of 10 die rolls;
integer I;
OUTREAL(1, SUM(1, 10, I, RAND 'MOD' 6));
OUTSTRING(1, "\n");
end;
begin
'comment; mean and variance;
real array DATA[10];
integer I;
real MEAN, SUMD, SUMSQ;
for I:=1 step 1 until 10 do
READREAL(2, DATA[I]);
SUMD = SUM(1, 10, I, DATA[I]);
SUMSQ = SUM(1, 10, I, DATA[I]*DATA[I]);
OUTSTRING(1, "Mean is: ");
MEAN = SUMD / 10.0;
OUTREAL(1, MEAN );
OUTSTRING(1, "Variance is :");
OUTREAL(1, SUMSQ / 10.0 - MEAN * MEAN);
end
end