|
DataMuseum.dkPresents historical artifacts from the history of: RC4000/8000/9000 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about RC4000/8000/9000 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 3072 (0xc00) Types: TextFile Names: »trandom «
└─⟦9ccaf6601⟧ Bits:30008165 Bånd med SW8000 kildetekst/release værktøjer └─⟦f546e193b⟧ └─⟦this⟧ »trandom «
p=algol list.yes blocks.yes begin integer rand, antal, i, j; message div random procedurer (tcputest2); zone zrandom (128, 1, stderror); real field randompil; procedure initrandom (name); string name; begin open (zrandom, 4, name, 1 shift 9); resetrandom; end procedure initrendom; procedure exitrandom; begin close (zrandom, true); end procedure exitrendom; procedure resetrandom; begin <* forfra *> randompil := 0; setposition (zrandom, 0, 0); end resetrandom; procedure nextrandom; begin <* næste tal *> if randompil >= 128000 then begin <* forfra *> randompil := 0; setposition (zrandom, 0, 0); end; if randompil mod 128 = 0 then inrec6 (zrandom, 512); randompil := randompil + 1; end procedure nextrandom; integer procedure i_random (min, max); value min, max; integer min, max; begin <* returnerer integer: min <= tal <= max *> nextrandom; i_random := zrandom (randompil mod 128 + 1) * (extend max - extend min) + min; end procedure i_random; long procedure l_random (min, max); value min, max; long min, max; begin <* returnerer long: min <= tal <= max *> nextrandom; l_random := zrandom (randompil mod 128 + 1) * (max - min) + min; end procedure l_random; real procedure r_random (min, max); value min, max; real min, max; begin <* returnerer real: min <= tal <= max *> nextrandom; r_random := zrandom (randompil mod 128 + 1) * (max - min) + min; end procedure r_random; \f i := antal := rand := randompil := 0; initrandom (<:cputestrand:>); repeat if randompil mod 128 = 0 then begin outchar (out, '.'); setposition (out, 0, 0); outrec6 (zrandom, 512); end; zrandom (randompil mod 128 + 1) := random (rand); randompil := randompil + 1; until randompil = 128000; exitrandom; write (out, "nl", 1, <:Ok:>, "nl", 1); setposition (out, 0, 0); initrandom (<:cputestrand:>); for i := 0 step 1 until 5 do begin write (out, "nl", 1, "ff", 1, case i mod 3 + 1 of (<:integer:>, <:long:>, <:real:>), "nl", 1); resetrandom; for j := 1 step 1 until 60 do case i mod 3 + 1 of begin write (out, "nl", 1, <<ddd>, randompil, <<-dddddddddddd_______>, irandom (-8388607, 8388605), irandom (0, 8388605), irandom (-8388607, 0), irandom (-5, 5)); write (out, "nl", 1, <<ddd>, randompil, <<-dddddddddddd_______>, lrandom (-1000000000, 1000000000), lrandom (0, 1000000000), lrandom (-1000000000, 0), lrandom (0, 10)); write (out, "nl", 1, <<ddd>, randompil, <<-dddddddddd'-ddd____>, rrandom (-1000000000, 1000000000), rrandom (0, 1000000000), rrandom (-1000000000, 0), rrandom (0, 1)); end case; end for i; exitrandom; end if warning.no p end ▶EOF◀