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

⟦a27c291a6⟧ Bits:30000657 Program Potens, 8-hole paper tape

    Length: 5840 (0x16d0)
    Description: Bits:30000657 Program Potens
    Types: 8-hole paper tape
    Notes: Gier Text, Has10

GIER Text (HTML)

algol,10<
jesper andreas tågholt e690744
potensopløftning
begin comment stavefejlen i potens i programmet beklages ; _____ _______
integer i,g,f,gang,eks,protens,j,antal,nulinput; _______
integer array v[1:100],ind[1:20],akt[1:20],res[1:20]; _______ _____
procedure enop(a,t,res,eks); _________
integer eks ; _______
integer array a , t , res ; _______ _____
begin _____
integer i, j ,p , m ; _______
integer array pro[ 1 :41 ]; _______ _____
for i := 1 step1 until 41 do pro[i]:=0 ; ___ ____ _____ __
for i := 1 step 1 until 20 do if t[i]|0 then ___ ____ _____ __ __ = ____
for j := 1 step 1 until 20 do ___ ____ _____ __
begin _____
p := a[j]⨯t[i]+pro[i+j-1];
m := p_100000; :
pro[i+j-1] :=p - m ⨯ 100000; pro[i+j] := m + pro[i+j];
m:=pro[i+j]_100000; :
pro[i+j] := pro[i+j] - m ⨯ 100000; pro[i+j+1] := pro[i+j+1] +m;
end; ___
for i := 1 step 1 until 41 do if pro[i] | 0 then m := i ; ___ ____ _____ __ __ = ____
p := if m< 20 then 0 else m-20; __ ____ ____
for i := 1 step 1 until 20 do res[i] := pro[i+p]; ___ ____ _____ __
eks := eks + p ;
end; ___
procedure iand(a,res,eks); _________
integer eks ; _______
integer array a , res ; _______ _____
begin _____
integer i , j ,p , m ; _______
integer array pro[ 1 :41 ]; _______ _____
for i := 1 step 1 until 41 do pro[i]:=0 ; ___ ____ _____ __
for i := 1 step 1 until 20 do if a[i] | 0 then ___ ____ _____ __ __ = ____
for j := i+1 step 1 until 20 do ___ ____ _____ __
begin _____
p := a[j]⨯a[i]⨯2+pro[i+j-1];
m := p_100000; :
pro[i+j-1] :=p - m ⨯100000; pro[i+j] := m + pro[i+j];
m:=pro[i+j]_100000; :
pro[i+j] := pro[i+j] - m ⨯ 100000; pro[i+j+1] := pro[i+j+1] +m;
end; ___
for i:= 1 step 1 until 20 do ___ ____ _____ __
begin _____
p := a[i]⨯a[i]+pro[i⨯2-1];
m := p_100000; :
pro[i⨯2-1] :=p - m ⨯ 100000; pro[i⨯2] := m + pro[i⨯2];
m := pro[2⨯i]_100000; :
pro[2⨯i] := pro[2⨯i] - m ⨯ 100000; pro[2⨯i+1] := pro[2⨯i+1] + m;
end; ___
for i:= 1 step 1 until 41 do if pro[i] | 0 then m := i ; ___ ____ _____ __ __ = ____
p := if m< 20 then 0 else m-20; __ ____ ____
for i := 1 step 1 until 20 do res[i] := pro[i+p]; ___ ____ _____ __
eks :=2 ⨯ eks + p;
end; ___
procedure itre(a,res,eks); _________
integer eks ; _______
integer array a , res ; _______ _____
begin _____
integer eks1,eks2; _______
integer array p[ 1 : 20 ]; _______ _____
eks1:=eks2:=0; iand(a,p,eks2); enop(p,a,res,eks1); eks:=3⨯eks+eks2+eks1;
end; ___
select(8);writechar(42); writechar(58); nulinput:=1;
for antal:= 100step -1 until 1 do ___ ____ _____ __
begin _____
nulinput := 20;
for i := 1 step 1 until 20 do ind[i] := 0; ___ ____ _____ __
for i := lyn while i|64 do if i = 11 then go to stop else writechar(i); ___ _____ = __ __ ____ __ __ ____
j:=0;
for i := lyn while i<10∨i=16do if i | 0 then ___ _____ __ __ = ____
begin _____
if i=16 then i:= 0 ; __ ____
j:=j+1; v[j]:=i;
end; ___
if i = 11 then go to stop; __ ____ __ __
for i:=j step -1 until 1 do ___ ____ _____ __
begin _____
g:=(j-i)_5; :
f:=j-i-5⨯g;
ind[g+1] :=ind[g+1] +v[i] ⨯ 10∧f; |
end; ___
protens := read integer;
for i := 1 step 1 until 20 do ___ ____ _____ __
begin _____
akt[i] := ind[i];
if ind[i] | 0then nulinput := i ; __ = ____
end; ___
for i:=1 step 1 until 100 dov[i]:=0 ; ___ ____ _____ __
for i:=1 step 1 until 100do ___ ____ _____ __
begin _____
v[i] := ifprotens mod 2 = 0 then 2 else if protens mod 3 = 0then 3 else 1 ; __ ___ ____ ____ __ ___ ____ ____
protens := if v[i] = 1 then protens - 1 else protens_v[i]; __ ____ ____ :
if protens = 1 then go to protens færdig ; __ ____ __ __
end; ___
writetext(|< for stor eksponent |); < >
goto slut; ____
protens færdig :f := i; writecr;
for g := f step-1 until1 do ___ ____ _____ __
begin _____
writetext(case v[g] of( ____ __
|< gange input|, < >
|< i anden |, < >
|< i tredie |)); < >
if(f-g)mod 8 = 7 then writecr; __ ___ ____
end; ___
writecr;
writetext(|<potens opløst til <
|); >
for g:=1 step 1 until f do ___ ____ _____ __
beginwritetext(casev[g]of( _____ ____ __
ifg=1then|<1+|else|<(1+|, __ ____< >____< >
ifg=fthen|<2| else|<2⨯|, __ ____< > ____< >
ifg=fthen|<3| else|<3⨯|)); __ ____< > ____< >
if g mod 40 = 0 then writetext(|< fortsættes __ ___ ____ <
|); >
end; ___
i:=0;
forg:=2 step 1 until f do if v[g]=1thenwritetext(|<)|); ___ ____ _____ __ __ ____ < >
writecr; eks := 0 ;
for gang := f step -1 until 1 do ___ ____ _____ __
begin _____
writecr;
protens := if v[gang]=1 then protens + 1 else protens⨯ v[gang]; __ ____ ____
case v[gang] of ____ __
begin _____
enop(akt,ind,res,eks); iand(akt,res,eks); itre(akt,res,eks);
end; ___
writecr; writecr;
for i := 5⨯(20-nulinput)step -1 until 1 dowritechar(0); ___ ____ _____ __
write(|ddddd|,ind[nulinput]); < >
for i := nulinput-1step -1 until 1 do write(|pdddd|,ind[i]); ___ ____ _____ __ < >
writetext(|<∧|); < >
write(|ddddddddddd|,protens); < >
writetext(|<= <
|); >
for i := -1,i+1while res[20-i] = 0 do; ___ _____ __
for g := 5⨯istep -1 until 1 do writechar(0); ___ ____ _____ __
write(|ddddd|,res[20-i]); < >
for i := 19-istep-1until 1 dowrite(|pdddd|,res[i]); ___ ____ _____ __ < >
writetext(|<10|); < >
write(|ddddddddddd|,5⨯eks); < >
for i :=1step 1until 20doakt[i]:=res[i]; ___ ____ _____ __
end; ___
slut:end; ___
stop:end; ___
[stop]