|
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: 3840 (0xf00) Types: TextFile Names: »algimominp«
└─⟦621cfb9a2⟧ Bits:30002817 RC8000 Dump tape fra HCØ. Detaljer om "HC8000" projekt. └─⟦0364f57e3⟧ └─⟦7e928b248⟧ »algbib« └─⟦this⟧
;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◀