|
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: 1536 (0x600) Types: TextFile Names: »algmatpr«
└─⟦621cfb9a2⟧ Bits:30002817 RC8000 Dump tape fra HCØ. Detaljer om "HC8000" projekt. └─⟦0364f57e3⟧ └─⟦7e928b248⟧ »algbib« └─⟦this⟧
;gosav matpr=set 35 permanent matpr.15 matpr=algol list.yes index.no begin integer l,m,n,i,j,k; read(in,l,m,n); begin real t,s; array a(1:l,1:m),b(1:m,1:n),c(1:l,1:n); boolean closeres; zone res(128,1,stderror); procedure writemat(b,m,n); value m,n; integer m,n; array b; begin for i:=1 step 1 until m do begin write(res,<:<10>:>); for j:=1 step 1 until n do begin t:= s:= b(i,j); if abs t<'-7 then k:=1 else begin k:= 0; for k:= k+1 while k<65 and abs(t-round t)>abs t*'-7 do t:= t+s; end; if k>64 then write(res,<<-dd.ddd>,b(i,j)) else begin write(res,<<-ddd>,t); if k>1 then write(res,<:/:>,<<d>,k,false add 32,1-k//10) else write(res,<: :>) end; if j//10*10=j then write(res,<:<10>:>) end; j:= j-1; if j//10*10<j and j>10 then write(res,<:<10>:>) end; write(res,<:<10>:>) end; procedure readmat(a,m,n); value m,n; integer m,n; array a; begin for i:=1 step 1 until m do for j:=1 step 1 until n do begin read(in,t); repeatchar(in); readchar(in,k); if k=47 then begin read(in,s); t:= t/s end; a(i,j):= t end end; closeres:= outmedium(res); readmat(a,l,m); readmat(b,m,n); write(res,<: Input matrices (A,B): :>); writemat(a,l,m); writemat(b,m,n); for i:=1 step 1 until l do for j:=1 step 1 until n do c(i,j):= sum(a(i,k)*b(k,j),k,1,m); write(res,<: Product matrix (A*B): :>); writemat(c,l,n); write(res,<:<25>:>); close(res,closeres); end end; ▶EOF◀