nextupprevious

Next:5.4.3 Преобразование матриц
Up:5.4 Программы обработки матриц
Previous:5.4.1 Поиск максимума в матрице


5.4.2 Произведение матриц

Задача. Вычислить произведение C=AxB двух вещественных матриц A и B размером 30 х 30.

Решение. Напомним, что элемент матрицы C=AxB  определяется как

Таким образом, для каждой из пар (i, j) нужно вычислить сумму

Получаем следующую программу:
 

module ПроизведениеМатриц;
    const M = 30;
    var A,B : array M+1, M+1 of real; S:real; I,J,K : integer;
begin
    for I := 1 to M do for J := 1 to M do read(A[I,J]) end end;
    for I := 1 to M do for J := 1 to M do read(B[I,J]) end end;
    for I := 1 to M do
        for J := 1 to M do
            S := 0; (* {S = СУММА(I,J,0)}*)
            for K := 1 to M do
                  (* {S = СУММА(I,J,K-1)}*)
                  S := S + A [I,K] $*$ B [K,J] (* {S = СУММА(I,J,K)}*)
            end;
            (* {S = СУММА (I,J,M)} *)
            write(S:4:2)
        end; writeln
    end
end ПроизведениеМатриц.

Next:5.4.3 Преобразование матриц
Up:5.4 Программы обработки матриц
Previous:5.4.1 Поиск максимума в матрице


© В.Н. Касьянов, Е.В.Касьянова, 2004