DataMuseum.dk

Presents historical artifacts from the history of:

RegneCentralen GIER Computer

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about RegneCentralen GIER Computer

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦c1eef37cb⟧ Bits:30000606 Sorteper Algol, 8-hole paper tape

    Length: 5303 (0x14b7)
    Description: Bits:30000606 Sorteper  Algol
    Types: 8-hole paper tape
    Notes: Gier Text

GIER Text (HTML)

Sorteper
begin _____
integer u,v,i,j,w,sp,m; _______
real b,r,rad; boolean sk; ____ _______
integer array col,val,post,ante[1:53], _______ _____
cat,prim,ult,num,prox,prev[0:9];
procedure mov(i,j,k); _________
value i,j,k; integer i,j,k; _____ _______
begin integer u; _____ _______
if prim[j]=i then prim[j]:= post[prim[j]] else __ ____ ____
if ult[j] =i then ult[j]:= ante[ult[j]] else begin __ ____ ____ _____
post[ante[i]]:= post[i];
ante[post[i]]:= ante[i] end; ___
if num[k]=0 then begin __ ____ _____
prim[k]:= ult[k]:= i end else ___ ____
if i<prim[k] then begin __ ____ _____
post[i]:= prim[k]; ante[prim[k]]:= i; prim[k]:= i end else ___ ____
if i>ult[k] then begin __ ____ _____
ante[i]:= ult[k]; post[ult[k]]:= i; ult[k]:= i end else ___ ____
begin _____
u:= prim[k];
L: u:= post[u]; if i>u then goto L; __ ____ ____
post[ante[u]]:= i; ante[i]:= ante[u]; post[i]:= u; ante[u]:= i
end; ___
num[k]:= num[k]+1; num[j]:= num[j]-1;
if num[j]=0∧j|0 then begin __ = ____ _____
prox[prev[j]]:= prox[j]; prev[prox[j]]:= prev[j]; scct(j);
skrvtekst(|< udgaar. <
|) end > ___
end mov; ___
integer procedure ext(t,v); _______ _________
value t,v; integer t,v; _____ _______
begin integer i,j; _____ _______
i:= prim[v];
for j:= 2 step 1 until t do i:= post[i]; ___ ____ _____ __
ext:= i
end ext; ___
integer procedure rand(n); _______ _________
value n; integer n; _____ _______
begin _____
b:= b+rad; b:= b-entier(b); rand:= b⨯(n-1)+1
end rand; ___
procedure scct(j); _________
value j; integer j; _____ _______
begin _____
skrvvr; skrvtegn(60); skrvtegn(cat[j]); skrvtegn(58)
end scct; ___
[stop]
procedure scrib(i); _________
value i; integer i; _____ _______
begin _____
skrvtegn(col[i]); skrvtegn(val[i]); skrvtegn(27)
end scrib; ___
procedure SCRIB(j); _________
value j; integer j; _____ _______
begin integer u; _____ _______
scct(j);
skrvtekst(|< har nu: |); < >
u:= prim[j]; rep: scrib(u);
if u<ult[j] then begin __ ____ _____
u:= post[u]; goto rep end; ____ ___
skrvvr
end SCRIB; ___
procedure trah; _________
begin _____
v:= prev[u]; i:= ext(rand(num[v]),v); mov(i,v,u); scct(u);
skrvtekst(|< trækker |); scrib(i) < >
end trah; ___
skrvtekst(|< <
Skriv her to tal mellem 0 og 1: |); >
om1: b:= tast; rad:= tast;
if b_0∨b_1∨rad_1∨rad_0 then begin __ < > > < ____ _____
skrvtekst(|< <
Begge tal skulle ligge mellem 0 og 1.
Kom igen: |); goto om1 end; > ____ ___
rad:= rad∧0.55; |
spil:
skrvtekst(|< <
Skriv antallet af spillere: |); >
om2: sp:= tast;
if sp_0∨sp>9∨(sp-entier(sp)|0) then begin __ < = ____ _____
skrvtekst(|< <
Antallet skal være et helt, positivt tal, mindre end 10.
Kom igen: |); goto om2 end; > ____ ___
for i:= 1 step 1 until 13 do begin ___ ____ _____ __ _____
col[i]:= 34; col[i+13]:= 41;
col[i+26]:= 56; col[i+39]:= 18 end; ___
col[53]:= 39;
for i:= 1 step 1 until 9 do ___ ____ _____ __
val[i]:= val[i+13]:= val[i+26]:= val[i+39]:= i;
for i:= 0,1,2,3 do begin ___ __ _____
val[10+i⨯13]:= 16; val[11+i⨯13]:= 50; val[12+i⨯13]:= 52;
val[13+i⨯13]:= 34 end; ___
val[53]:= 39;
for i:= 1 step 1 until 53 do ___ ____ _____ __
begin post[i]:= i+1; ante[i]:= i-1 end; _____ ___
[stop]
for i:= 1 step 1 until sp do begin ___ ____ _____ __ _____
cat[i]:= 48+i; num[i]:= 0;
prox[i]:= i+1; prev[i]:= i-1 end; ___
prim[0]:= 1; ult[0]:= 53; num[0]:= 53; prox[sp]:= 1; prev[1]:= sp; m:= 53; w:= u:= rand(sp); nyt: i:= ext(rand(m),0); mov(i,0,u);
if m>1 then begin __ ____ _____
m:= m-1; u:= prox[u]; goto nyt end; ____ ___
for i:= 1 step 1 until sp do SCRIB(i); ___ ____ _____ __
u:= w; runde: trah; SCRIB(u); u:= prox[u];
if u|w then goto runde; __ = ____ ____
A: trah; sk:= true; ____
B: i:= prim[u]; C: j:= post[i];
D: if val[i]=val[j] then begin __ ____ _____
if sk then begin __ ____ _____
skrvtekst(|< lægger |); sk:= false end; < > _____ ___
scrib(i); scrib(j); mov(i,u,0); mov(j,u,0);
if num[u]>1 then goto B end else begin __ ____ ____ ___ ____ _____
if j<ult[u] then begin __ ____ _____
j:= post[j]; goto D end; ____ ___
if i<ante[ult[u]] then begin __ ____ _____
i:= post[i]; goto C end end; ____ ___ ___
if num[u]>0 then SCRIB(u); v:= prox[u]; __ ____
if v| prox[v] then begin u:= v; goto A end; __ = ____ _____ ____ ___
scct(v); skrvtekst(|< blev Sorteper. <
Vil De se et nyt spil: |); >
om3: taststreng;
if streng(|<ja|) then goto spil; __ < > ____ ____
if streng(|<nej|) then goto exit; __ < > ____ ____
skrvtekst(|< <
Der skal skrives ja eller nej.
Kom igen: |); goto om3; > ____
exit: end Sorteper; ___
[stop]