Практикум по курсу "Алгоритмизация и программирование". Часть 1. Андрианова А.А - 81 стр.

UptoLike

81
максимальных элементов.
Задача 3. Найти произведение двух матриц размеров
mn
и
kt
.
По правилам перемножения матриц количество столбцов первой
матрицы должно совпадать с количеством строк второй матрицы. Поэтому
сначала требуется проверить это условие.
Если размеры были введены корректно, осуществляется перемножение.
Каждый элемент матрицы-результата вычисляется как скалярное
произведение соответствующей строки первой матрицы на столбец второй
матрицы. Поэтому при решении задачи создается три цикла: первые два
перебирают элементы результирующей матрицы, а третий используется для
вычисления самого элемента.
Блок-схема представлена на Рис.6.7.
Код программы для задачи 3.
using System;
namespace Examples
{
class Program1
{
static void Main(string[] args)
{
int m,n,k,t;
Console.Write("Введите количество строк первой матрицы m:");
int.TryParse(Console.ReadLine(),out m);
Console.Write("Введите количество столбцов первой матрицы n:");
int.TryParse(Console.ReadLine(),out n);
Console.Write("Введите количество строк второй матрицы k:");
int.TryParse(Console.ReadLine(),out k);
Console.Write("Введите количество столбцов второй матрицы t:");
int.TryParse(Console.ReadLine(),out t);
if(m<=0 || n<=0 || k<=0 || t<=0)
{
Console.WriteLine("Введите положительные размеры");
return;
}
if(n!=k)
{
Console.WriteLine("n должно быть равно k");
return;
}
int [,] a = new int [m, n];
int [,] b = new int [k, t];
int [,] c = new int [m, t];
if(a == null || b == null || c == null)
{
Console.WriteLine("Запрошено большое количество памяти.\n
Попробуйте ввести меньший размер.");
return;
                             максимальных элементов.
    Задача 3. Найти произведение двух матриц размеров m  n и k  t .
    По правилам перемножения матриц количество столбцов первой
матрицы должно совпадать с количеством строк второй матрицы. Поэтому
сначала требуется проверить это условие.
    Если размеры были введены корректно, осуществляется перемножение.
Каждый элемент матрицы-результата вычисляется как скалярное
произведение соответствующей строки первой матрицы на столбец второй
матрицы. Поэтому при решении задачи создается три цикла: первые два
перебирают элементы результирующей матрицы, а третий используется для
вычисления самого элемента.
    Блок-схема представлена на Рис.6.7.

   Код программы для задачи 3.
    using System;

    namespace Examples
    {
        class Program1
        {
            static void Main(string[] args)
            {
                int m,n,k,t;
                Console.Write("Введите количество строк первой матрицы m:");
                int.TryParse(Console.ReadLine(),out m);
                Console.Write("Введите количество столбцов первой матрицы n:");
                int.TryParse(Console.ReadLine(),out n);
                Console.Write("Введите количество строк второй матрицы k:");
                int.TryParse(Console.ReadLine(),out k);
                Console.Write("Введите количество столбцов второй матрицы t:");
                int.TryParse(Console.ReadLine(),out t);
                if(m<=0 || n<=0 || k<=0 || t<=0)
                {
                      Console.WriteLine("Введите положительные размеры");
                        return;
                }
                if(n!=k)
                {
                      Console.WriteLine("n должно быть равно k");
                        return;
                }
                int [,] a = new int [m, n];
                int [,] b = new int [k, t];
                int [,] c = new int [m, t];
                if(a == null || b == null || c == null)
                {
                        Console.WriteLine("Запрошено большое количество памяти.\n
                                        Попробуйте ввести меньший размер.");
                      return;
                                      81