Умножение матриц (перевести код из Pascal в C#)

Узнай цену своей работы

Формулировка задачи:

будьте добры решите задачу! Задача: Три продавца продают четыре вида товаров. Количество продаваемого товара сведено в таблицу A. Алгоритм решения задачи: В таблице B представлены цена каждого товара и комиссионные (наценка), получаемые от продажи. Вырученные от продажи деньги подсчитываются так: 1-й продавец: 5 * 20.30 + 3 * 18.60 + 7 * 12.10 + 0 * 23.00 = 242.00 2-й продавец: 7 * 20.30 + 1 * 18.60 + 9 * 12.10 + 2 * 23.00 = 315.60 3-й продавец: 3 * 20.30 + 4 * 18.60 + 7 * 12.10 + 6 * 23.00 = 358.00 А полученные комиссионные так: 1-й продавец: 5 * 1.60 + 3 * 1.30 + 7 * 1.00 + 0 * 1.80 = 18.90 2-й продавец: 7 * 1.60 + 1 * 1.30 + 9 * 1.00 + 2 * 1.80 = 25.10 3-й продавец: 3 * 1.60 + 4 * 1.30 + 7 * 1.00 + 6 * 1.80 = 27.80 Эти вычисления называются умножением матриц и записываются так, как представлено на рисунке выше. Число столбцов таблицы A должно совпадать с числом строк таблицы B. Результирующая таблица C имеет столько строк, сколько у A, и столько столбцов, сколько у B. Следующая программа вводит матрицы A и B, перемножает эти матрицы и затем печатает их произведение – матрицу C:
 atype = array[1..3,1..4] of integer;
    btype = array[1..4,1..2] of real;
    ctype = array[1..3,1..2] of real;
 
var
    a: atype; b: btype; c: ctype;
    n,i,j,k: integer;
 
begin
    for n := 1 to 3 do
        readln(a[n,1],a[n,2],a[n,3],a[n,4]);
 
    for n := 1 to 4 do
        readln(b[n,1],b[n,2]);
 
    for i := 1 to 3 do
        for j := 1 to 2 do begin
            c[i,j] := 0;
            for k := 1 to 4 do
                c[i,j] := c[i,j] + a[i,k] * b[k,j];
        end;
 
    for n := 1 to 3 do
        writeln(c[n,1]:8:2, c[n,2]:8:2);
 
readln
end.

Решение задачи: «Умножение матриц (перевести код из Pascal в C#)»

textual
Листинг программы
public float[,] Mult(float[,] X, float[,] C) // умножаем матрицы
        {
            float[,] Matrix = new float[8,4];
 
            for (int i = 0; i < 8; i++)
            {
                for (int j = 0; j < 4; j++)
                {
                    for (int k = 0; k < 4; k++)
                    {
                        Matrix[i, j] += X[i, k] * C[k, j];
                    }
                }
            }
            return Matrix;
        }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 4.3 из 5
Похожие ответы