Предмет: Информатика, автор: misabuka193

Написать программу, вычисляющую произведение двух матриц произвольной размерности. Элементы матриц вводятся с клавиатуры в компонент StringGrid. Предусмотреть возможность ввода с клавиатуры количества строк и столбцов заданных матриц.

Ответы

Автор ответа: maslogsgo27
1

Ответ:

procedure TForm1.Button1Click(Sender: TObject);

var

i, j, k, n, m, p: Integer;

A, B, C: array of array of Integer;

begin

// запрос количества строк и столбцов матриц

n := StrToInt(Edit1.Text);

m := StrToInt(Edit2.Text);

p := StrToInt(Edit3.Text);

// создание матриц A и B, заполнение элементами из StringGrid

SetLength(A, n, m);

SetLength(B, m, p);

for i := 0 to n-1 do

for j := 0 to m-1 do

A[i][j] := StrToInt(StringGrid1.Cells[j, i]);

for i := 0 to m-1 do

for j := 0 to p-1 do

B[i][j] := StrToInt(StringGrid2.Cells[j, i]);

// создание матрицы C для результата умножения

SetLength(C, n, p);

// умножение матриц A и B, запись результата в C

for i := 0 to n-1 do

for j := 0 to p-1 do

begin

C[i][j] := 0;

for k := 0 to m-1 do

C[i][j] := C[i][j] + A[i][k] * B[k][j];

Похожие вопросы