Множення матриці на число – операція результатом якої є матриця такої ж розмірності, як і вхідна, кожен елемент результуючої матриці є добутком відповідного елемента вхідної матриці на задане число.
Опис алгоритму
Множенням матриці M на число k називають матрицю R = k · M того ж розміру, отримана з вхідної шляхом множення на задане число всіх її елементів: Ri,j = k · Mi,j
Реалізація алгоритму
using System;
// клас з методами розширення
static class MatrixExt
{
// метод розширення для отримання кількості рядків матриці
public static int RowsCount(this double[,] matrix)
{
return matrix.GetUpperBound(0) + 1;
}
// метод розширення для отримання кількості стовпців матриці
public static int ColumnsCount(this double[,] matrix)
{
return matrix.GetUpperBound(1) + 1;
}
// метод для виводу матриці на екран консолі
public static void PrintMatrix(this double[,] matrix)
{
for (var i = 0; i < matrix.RowsCount(); i++)
{
for (var j = 0; j < matrix.ColumnsCount(); j++)
{
Console.Write(matrix[i, j].ToString().PadLeft(4));
}
Console.WriteLine();
}
}
}
class Program
{
// метод для отримання матриці з консолі
static double[,] GetMatrixFromConsole(string name)
{
Console.Write("Кількість рядків матриці {0}: ", name);
var n = int.Parse(Console.ReadLine());
Console.Write("Кількість стовпців матриці {0}: ", name);
var m = int.Parse(Console.ReadLine());
var matrix = new double[n, m];
for (var i = 0; i < n; i++)
{
for (var j = 0; j < m; j++)
{
Console.Write("{0}[{1},{2}] = ", name, i, j);
matrix[i, j] = double.Parse(Console.ReadLine());
}
}
return matrix;
}
// метод для множення матриці на число
static double[,] ScalarMatrixMultiplication(double[,] inputMartix, double k)
{
var resultMatrix = new double[inputMartix.RowsCount(), inputMartix.ColumnsCount()];
for (var i = 0; i < inputMartix.RowsCount(); i++)
{
for (var j = 0; j < inputMartix.ColumnsCount(); j++)
{
resultMatrix[i, j] = inputMartix[i, j] * k;
}
}
return resultMatrix;
}
static void Main(string[] args)
{
Console.WriteLine("Програма для знаходження добутку матриці на число");
var m = GetMatrixFromConsole("M");
Console.Write("k = ");
var k = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("Матриця M:");
m.PrintMatrix();
Console.WriteLine("k = {0}", k);
var result = ScalarMatrixMultiplication(m, k);
Console.WriteLine("Результат множення матриці M на число k:");
result.PrintMatrix();
Console.ReadLine();
}
}