integer p, q; array a, v, av,
begin integer i, j
204
Naamgeving waarnemingsrekening Verklaring ALGOL
De opdrachten, waarmee de vermenigvuldigingen van matrix
en vector worden uitgevoerd luiden dan, bij gebruikmaking van
de lopende variabelen rho, tau en i
for tau: i step i until b do
begin yi[tau]: o;
for rhoi step i until b do
yi[tau]: yi[tau] g[tau, rho] x 3/[rho]
end; (2.26)
for i: 1 step 1 until m do
begin e[ï]\ o;
for rho1 step 1 until b do
e[i\e[i] gi[i, rho] x yi[rho]
Het valt duidelijk op dat er slechts een klein verschil bestaat
tussen beide opdrachten. De opbouw is sterk analoog. Omdat als
uitkomst twee vectoren worden verkregen, bevattende resp. b en
m elementen, is gebruik van een functie-procedure niet mogelijk.
Wel kan de volgende gewone procedure worden verklaard en
gebruikt
procedure w(a, v, av, p, q)
for i1 step 1 until p do
begin av\i]0;
for j: 1 step 1 until q do
av\i\av[ia[i, j] x v[j~]
end
end vv; (2.28)
Deze procedure heeft dus 5 parameters:
a is de gegeven matrix
v is de gegeven vector
av is de resultaat vector
p en q geven de orde van matrix en vectoren aan.
Binnen de procedure zijn de lokale variabelen i en j nodig, die
buiten de procedure geen betekenis hebben.
De twee opdrachten (2.26) en (2.27) luiden nu eenvoudig:
vv(g, y, y 1, b, b)
vv(gl, y 1, e, m, b)
y[i:b]
g[i:b, i:£>]
yi[i :b]
gi[i:m, 1 :b]
e[i :m]
end;
(2.27)