12.07.2015 Views

Spis treœci - Patrz

Spis treœci - Patrz

Spis treœci - Patrz

SHOW MORE
SHOW LESS
  • No tags were found...

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

7.4.7 Mnożenie macierzyDo obliczenia każdego elementu macierzy wynikowej jest potrzebny odpowiedni wierszpierwszej macierzy i odpowiednia kolumna drugiej, dlatego proces UŻYTKOWNJKumieszcza w przestrzeni krotek wiersze pierwszej macierzy i kolumny drugiej. ProcesWYKONAWCA dokonujący obliczeń imisi wiedzieć, który element macierzy wynikowejmaliczyć. W tym celu UŻYTKOWNIK umieszcza w przestrzeni specjalną krotkę zawierającąlicznik. Początkowo ma on wartość 1 i jest zwiększany przez każdy proces WYKONAWCA.Gdy wartość licznika przekroczy N*K, obliczenia procesu WYKONAWCA kończą się.const N = ?;M = ?;K = ?;{rozmiary macierzy}process UŻYTKOWNIK;var a: array[l..N,l..M] of real;b: array[l..M,l..K] of real;c: array[l..N,l..K] of real; {macierz wynikowa>pom: array[l..M] of real;i,j,l: integer;p: real;begin{wektor pomocniczy}{wypełnienie tablic a i b>OUTPUT(1);{wyslanielicznika>for i := 1 to N do begin {wysłanie wierszy}for j := 1 to M dopom[j] := a[i,j] ;OUTPUT(i, 'wiersz', pom)end;for i := 1 to K do begin {wysłanie kolumn}for j := 1 to M dopom[j] := b[j ,i] ;OUTPUT(i, 'kolumna', pom)end;for 1 := 1 to N*K do begin {pobranie wyników}INPUT(i:integer, j:integer, p:real);c[i,j] := pend;{korzystanie z wyniku}end;proces WYKONAWCA;type wektor = array[l..M] of real;var w,kol: array[l..M] of real;i,j,l,s: integer;c: real;beginwhile true do beginINPUT(l:integer);if 1

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!