DataMuseum.dk

Presents historical artifacts from the history of:

RC4000/8000/9000

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

See our Wiki for more about RC4000/8000/9000

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download

⟦a32c1a738⟧ TextFile

    Length: 3840 (0xf00)
    Types: TextFile
    Names: »algimominp«

Derivation

└─⟦621cfb9a2⟧ Bits:30002817 RC8000 Dump tape fra HCØ.  Detaljer om "HC8000" projekt.
    └─⟦0364f57e3⟧ 
        └─⟦7e928b248⟧ »algbib« 
            └─⟦this⟧ 

TextFile

;gosav
imominp=set 50
imominp=algol list.yes
begin
integer c,i,j,k,l,m,N;
integer array tail(1:10);
array head(1:12);
zone inp(128,1,stderror);
for i:=2 step 1 until 10 do tail(i):= 0; tail(1):= 1;
open(inp,4,<:imominput:>,0);
monitor(40,inp,0,tail);
start: setposition(inp,0,0);  write(out,<:
En tekst i een linie indrammet af < og >:
:>); forceout(out);
readhead(in,head,1);
write(out,<:Antal atomer: :>); forceout(out);
read(in,N); i:=1;
write(inp,<:
;gosav
imom:>,nl,1,false add 60,1,
string head(increase(i)),false add 62,1,nl,1,<<-dd>,-N,nl,1);

begin
real r1,r2,v;
boolean array p(1:N);
array Mass(1:N);
procedure repc;
begin repeatchar(in);
repp: readchar(in,c); if c<>10 then goto repp end;
boolean procedure ix(i);
value i; integer i;
begin
ix:= i>N; if i>N then write(out,<:
***Atom nr.:>,<<ddd>,i,<: for stort!:>)
end;
for i:=1 step 1 until N do p(i):= true;
write(out,<:
Numre på tre atomer (i,j,k)
samt r(i,j), r(j,k) og v(i,j,k): :>); forceout(out);
repc; read(in,i,j,k,r1,r2,v); repc;
if ix(i) or ix(j) or ix(k) then goto start;
write(inp,<<ddd>,i,j,k,<<dddd.dd000>,r1,r2,v,nl,1);
m:= 3; p(i):= p(j):= p(k):= false;
rep:
write(out,<:
Numre på fire atomer: :>); forceout(out);
read(in,i,j,k,l); repc;
if ix(i) or ix(j) or ix(k) or ix(l) then goto rep;
if p(i) or p(j) or p(k) or -,p(l) then begin
  write(out,<:
***Atom nr. :>,<<ddd>,i,j,k,<: skal være specificeret tidligere!
Dette er ikke tilfældet for atom:>);
  if p(i) then write(out,<<ddd>,i);
  if p(j) then write(out,<<ddd>,j);
  if p(k) then write(out,<<ddd>,k);
  if p(l) then goto rep end;
if -,p(l) then begin
  write(out,<:
***Atom nr. :>,<<dd>,l,<: må ikke være specificeret tidligere!:>);
  goto rep end;
write(out,<:
r(:>,<<d>,k,<:,:>,l,<:) og v(:>,j,<:,:>,k,<:,:>,l,<:):    :>);
forceout(out);
read(in,r1,v); repc; write(out,<:
Var dette korrekt? (ja eller nej): :>); forceout(out);
readchar(in,c);
if c<>106 then begin repc;
  write(out,<:Skal vi begynde forfra? (ja eller nej)::>);
  forceout(out); readchar(in,c);
  if c=106 then goto start else begin repc;
  write(out,<:Vi retter:>); goto rep end end;
repc; write(out,<:
Ligger atom :>,<<d>,i,<: og :>,l,<:
på samme side af linien :>,j,<:-:>,k,<: (ja eller nej): :>);
forceout(out); readchar(in,c);
write(inp,<<ddd>,i,j,k,l,<<ddd.ddddd>,r1,<:t:>,<<dddd.dd>,v,
      if c=106 then <: 0:> else <: 180:>,nl,1);
repc; m:= m+1; p(l):= false;
if m<N then goto rep;
write(out,<:
Atomsymboler svarende til nummerering (C, H, 35Cl etc.):
:>); forceout(out);
repm: if atomic(Mass,N) then begin
  write(out,<: om igen: :>); forceout(out); goto repm end;
write(inp,<:0 :>);
for i:=1 step 1 until N do write(inp,nl,1,<<ddd.dddddd>,Mass(i));
write(inp,nl,1,<:0:>,nl,1,<:<25>:>);
close(inp,true);
l:= 0; k:= psubmit(<:imominput:>,l);
if k=0 then write(out,<:
job nr. :>,<<dddd>,l);
end end;
▶EOF◀