This is one version of
http://www.gtoal.com/languages/algol60/TESTS/jensen3.a60.html from your personal cache.
The page may have changed since that time. Click here for the current page.
Since this page is stored on your computer, publicly linking to this page will not work.
Google may not be affiliated with the authors of this page nor responsible for its content. This page may be protected by copyright.
|
|
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[1 : 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 ;